From d3ecdb59ef1fe530fbf4853b3fb37b85a812bfc3 Mon Sep 17 00:00:00 2001 From: valdevir Date: Thu, 25 Nov 2021 12:29:55 +0000 Subject: [PATCH] fixes bug#23106 qua: dev:Valdir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@109759 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/BoletoDAO.java | 1 + .../dao/hibernate/BoletoHibernateDAO.java | 267 ++++++++++++++++++ .../service/impl/BoletoServiceImpl.java | 14 +- .../service/impl/CorridaServiceImpl.java | 23 +- 4 files changed, 292 insertions(+), 13 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java index 64b07933d..d686a73f4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java @@ -22,4 +22,5 @@ public interface BoletoDAO extends GenericDAO { public String getSequenciaBoletoId(); public String getSequenciaNumOperacion(); public String getSequenciaNumReservacion(); + void insertBoletoRserva(Boleto miBoletoTemporal); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java index e2b7424aa..f50637606 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java @@ -82,4 +82,271 @@ public class BoletoHibernateDAO extends GenericHibernateDAO implem Object o = this.getSession().createSQLQuery(sql).uniqueResult(); return o.toString(); } + + @Override + public void insertBoletoRserva(Boleto miBoletoTemporal){ + SQLQuery query = getSession().createSQLQuery(getSqlInsertBoletoRserva()); + + query.setLong("boletoId", miBoletoTemporal.getBoletoId()); + query.setLong("boletooriginalId", miBoletoTemporal.getBoletooriginalId()); + query.setInteger("categoriaId", miBoletoTemporal.getCategoriaId()); + query.setInteger("clienteId", miBoletoTemporal.getClienteId()); + query.setInteger("claseservicioId", miBoletoTemporal.getClaseservicioId()); + query.setInteger("corridaId", miBoletoTemporal.getCorridaId()); + query.setInteger("destinoId", miBoletoTemporal.getDestinoId()); + query.setString("desctipodoc", miBoletoTemporal.getDesctipodoc()); + query.setString("descnumdoc", miBoletoTemporal.getDescnumdoc()); + query.setInteger("empresacorridaId", miBoletoTemporal.getEmpresacorridaId()); + query.setInteger("empresapuntoventaId", miBoletoTemporal.getEmpresapuntoventaId()); + query.setInteger("estacionId", miBoletoTemporal.getEstacionId()); + query.setDate("feccreacion", miBoletoTemporal.getFeccreacion()); + query.setDate("fecmodif", miBoletoTemporal.getFecmodif()); + query.setDate("fechorventa", miBoletoTemporal.getFechorventa()); + query.setDate("fechorventaH", miBoletoTemporal.getFechorventaH()); + query.setDate("fechorviaje", miBoletoTemporal.getFechorviaje()); + query.setDate("feccorrida", miBoletoTemporal.getFeccorrida()); + query.setInteger("corridaId", miBoletoTemporal.getCorridaId()); + query.setInteger("indcancelacion", Boolean.TRUE.equals(miBoletoTemporal.getIndcancelacion()) ? 1 :0 ); + query.setInteger("indreimpresion", Boolean.TRUE.equals(miBoletoTemporal.getIndreimpresion()) ? 1 :0 ); + query.setInteger("indextraviado", Boolean.TRUE.equals(miBoletoTemporal.getIndextraviado()) ? 1 :0 ); + query.setString("indstatusoperacion", miBoletoTemporal.getIndstatusoperacion() ); + query.setInteger("indreplica", Boolean.TRUE.equals(miBoletoTemporal.getIndreplica()) ? 1 :0 ); + query.setString("indstatusboleto", miBoletoTemporal.getIndstatusboleto()); + query.setInteger("indviajeredondo", Boolean.TRUE.equals(miBoletoTemporal.getIndviajeredondo()) ? 1 :0 ); + query.setBigDecimal("importetaxaembarque", miBoletoTemporal.getImportetaxaembarque()); + query.setBigDecimal("importeseguro", miBoletoTemporal.getImporteseguro()); + query.setBigDecimal("importepedagio", miBoletoTemporal.getImportepedagio()); + query.setBigDecimal("importeoutros", miBoletoTemporal.getImporteoutros()); + query.setInteger("marcaId", miBoletoTemporal.getMarcaId()); + query.setInteger("monedaId", miBoletoTemporal.getMonedaId()); + query.setInteger("nodoId", miBoletoTemporal.getNodoId()); + query.setBigDecimal("numkmviaje", miBoletoTemporal.getNumkmviaje()); + query.setString("nombpasajero", miBoletoTemporal.getNombpasajero()); + query.setString("numasiento", miBoletoTemporal.getNumasiento()); + query.setString("numfidelidad", miBoletoTemporal.getNumfidelidad()); + query.setString("numoperacion", miBoletoTemporal.getNumoperacion()); + query.setString("numreservacion", miBoletoTemporal.getNumreservacion()); + query.setInteger("origenId", miBoletoTemporal.getOrigenId()); + query.setBigDecimal("preciopagado", miBoletoTemporal.getPreciopagado()); + query.setBigDecimal("preciobase", miBoletoTemporal.getPreciobase()); + query.setInteger("ptovtaventaId", miBoletoTemporal.getPtovtaventaId()); + query.setInteger("puntoventaId", miBoletoTemporal.getPuntoVenta().getPuntoventaId()); + query.setInteger("rutaId", miBoletoTemporal.getRutaId()); + query.setInteger("temporeservafidelidade", miBoletoTemporal.getTemporeservafidelidade()); + query.setInteger("tipoventaId", miBoletoTemporal.getTipoventaId()); + query.setInteger("usuarioautorizacionId", miBoletoTemporal.getUsuarioautorizacionId()); + query.setInteger("usuarioId", miBoletoTemporal.getUsuario().getUsuarioId()); + query.setInteger("activo", Boolean.TRUE.equals(miBoletoTemporal.getActivo()) ? 1: 0); + query.executeUpdate(); + + } + + + private String getSqlInsertBoletoRserva() { + StringBuilder sql = new StringBuilder(); + sql.append(" INSERT INTO boleto ( "); + sql.append(" activo,"); //1 + sql.append(" aidf_id,"); //2 - null + sql.append(" boletoanterior_id,");//3 - null + sql.append(" boletooriginal_id,"); //4 + sql.append(" cantpuntos,"); //5 - null + sql.append(" canttransferencia,"); //6 - null + sql.append(" categoria_id,"); //7 + sql.append(" ccf,"); //8 - null + sql.append(" claseservicio_id,"); //9 + sql.append(" cliente_id,"); //10 + sql.append(" clientefidelidad_id,"); //11 - null + sql.append(" conveniodet_id,"); //12 - null + sql.append(" corrida_id,"); //13 + sql.append(" desccorreo,"); //14 - null + sql.append(" descnumdoc,"); //15 + sql.append(" descnumdoc2,"); //16 - null + sql.append(" descorgaodoc,"); //17 - null + sql.append(" desctelefono,"); //18 - null + sql.append(" desctipodoc,"); //19 + sql.append(" desctipodoc2,"); //20 + sql.append(" descuentoamparado,"); //21 + sql.append(" destino_id,"); //22 + sql.append(" dispositivoembarcada,"); //23 + sql.append(" empresacorrida_id,"); //24 + sql.append(" empresapuntoventa_id,"); //25 + sql.append(" entregaboleto_id,"); //26 + sql.append(" estacion_id,"); //27 + sql.append(" estadocivil_id,"); //28 + sql.append(" estadofolio_id,"); //29 + sql.append(" feccorrida,"); //30 + sql.append(" feccreacion,"); //31 + sql.append(" fechorventa,"); //32 + sql.append(" fechorventa_h,"); //33 + sql.append(" fechorviaje,"); //34 + sql.append(" fecmodif,"); //35 + sql.append(" fecnacimiento,"); //36 + sql.append(" imei_dispositivo_embarcada,"); //37 + sql.append(" importecategoria,"); //38 + sql.append(" importeoutros,"); //39 + sql.append(" importepedagio,"); //40 + sql.append(" importeseguro,"); //41 + sql.append(" importetaxaembarque,"); //42 + sql.append(" indcancelacion,"); //43 + sql.append(" indconexion,"); //44 + sql.append(" indextraviado,"); //45 + sql.append(" indreimpresion,"); // 46 + sql.append(" indreplica,"); //47 + sql.append(" indsegundaviaimpressa,"); //48 + sql.append(" indstatusboleto,"); //49 + sql.append(" indstatusoperacion,"); //50 + sql.append(" indviajeredondo,"); //51 + sql.append(" infopasajero,"); //52 + sql.append(" levante_id,"); //53 + sql.append(" marca_id,"); //54 + sql.append(" moneda_id,"); //55 + sql.append(" motivocancelacion_id,"); //56 + sql.append(" motivoreimpresion_id,"); //57 + sql.append(" nacionalidad,"); //58 + sql.append(" nodo_id,"); //59 + sql.append(" nombpasajero,"); //60 + sql.append(" numasiento,"); //61 + sql.append(" numasientovinculado,"); //62 + sql.append(" numdocdescuento,"); //63 + sql.append(" numerobilheteembarcada,"); //64 + sql.append(" numfidelidad,"); //65 + sql.append(" numfoliopreimpreso,"); //66 + sql.append(" numfoliosistema,"); //67 + sql.append(" numidentificacion,"); //68 + sql.append(" numkmviaje,"); //69 + sql.append(" numoperacion,"); //70 + sql.append(" numreservacion,"); //71 + sql.append(" numseriepreimpresa,"); //72 + sql.append(" opcional1,"); // 73 + sql.append(" opcional2,"); // 74 + sql.append(" opcional3,"); // 75 + sql.append(" origen_id,"); // 76 + sql.append(" paridad,"); // 77 + sql.append(" porccategoria,"); // 78 + sql.append(" preciobase,"); //79 + sql.append(" preciocargoextra,"); // 80 + sql.append(" preciopagado,"); //81 + sql.append(" preciopricing,"); // 82 + sql.append(" ptovtaventa_id,"); //83 + sql.append(" puntoventa_id,"); //84 + sql.append(" puntoventaremoto_id,"); // 85 + sql.append(" rmd_id,"); //86 + sql.append(" ruta_id,"); //87 + sql.append(" serieimpfiscal,"); //88 + sql.append(" serieimpfiscaloriginal,"); // 89 + sql.append(" sexo,"); //90 + sql.append(" temporeservafidelidade,"); //91 + sql.append(" tipoidentificacion_id,"); // 92 + sql.append(" tipoidentificaciondoc_id,"); //93 + sql.append(" tipoventa_id,"); //94 + sql.append(" turno_id,"); //95 + sql.append(" usuario_id,"); //96 + sql.append(" usuarioautorizacion_id,"); //97 + sql.append(" usuarioremoto_id,"); // 98 + sql.append(" boleto_id"); //99 + // Values + sql.append(" ) VALUES ( "); + sql.append(" :activo,"); //1 + sql.append(" null,"); //2 + sql.append(" null,"); //3 + sql.append(" :boletooriginalId,");//4 + sql.append(" null,");//5 + sql.append(" null,");//6 + sql.append(" :categoriaId,");//7 + sql.append(" null,");//8 + sql.append(" :claseservicioId,"); //9 + sql.append(" :clienteId,"); //10 + sql.append(" null,");//11 + sql.append(" null,");//12 + sql.append(" :corridaId,");//13 + sql.append(" null,"); //14 + sql.append(" :descnumdoc,"); //15 + sql.append(" null,"); //16 + sql.append(" null,"); //17 + sql.append(" null,"); //18 + sql.append(" :desctipodoc,"); //19 + sql.append(" null,"); //20 + sql.append(" null,"); //21 + sql.append(" :destinoId,"); //22 + sql.append(" null,"); //23 + sql.append(" :empresacorridaId,"); //24 + sql.append(" :empresapuntoventaId,"); //25 + sql.append(" null,"); //26 + sql.append(" :estacionId,"); //27 + sql.append(" null,"); //28 + sql.append(" null,"); //29 + sql.append(" :feccorrida,");//30 + sql.append(" :feccreacion,");//31 + sql.append(" :fechorventa,"); //32 + sql.append(" :fechorventaH,"); //33 + sql.append(" :fechorviaje,"); //34 + sql.append(" :fecmodif,"); //35 + sql.append(" null,"); //36 + sql.append(" null,"); //37 + sql.append(" null,"); //38 + sql.append(" :importeoutros,"); //39 + sql.append(" :importepedagio,"); //40 + sql.append(" :importeseguro,"); //41 + sql.append(" :importetaxaembarque,"); //42 + sql.append(" :indcancelacion,"); //43 + sql.append(" null,"); //44 + sql.append(" :indextraviado,"); //45 + sql.append(" :indreimpresion,"); //46 + sql.append(" :indreplica,"); //47 + sql.append(" null,"); //48 + sql.append(" :indstatusboleto,"); //49 + sql.append(" :indstatusoperacion,"); //50 + sql.append(" :indviajeredondo,"); //51 + sql.append(" null,");//52 + sql.append(" null,");//53 + sql.append(" :marcaId,"); //54 + sql.append(" :monedaId,"); //55 + sql.append(" null,"); //56 + sql.append(" null,"); //57 + sql.append(" null,"); //58 + sql.append(" :nodoId,");//59 + sql.append(" :nombpasajero,"); //60 + sql.append(" :numasiento,"); //61 + sql.append(" null,"); //62 + sql.append(" null,"); //63 + sql.append(" null,"); //64 + sql.append(" :numfidelidad,"); //65 + sql.append(" null,"); //66 + sql.append(" null,"); //67 + sql.append(" null,"); //68 + sql.append(" :numkmviaje,"); //69 + sql.append(" :numoperacion,"); //70 + sql.append(" :numreservacion,"); //71 + sql.append(" null,"); //72 + sql.append(" null,"); //73 + sql.append(" null,"); //74 + sql.append(" null,"); //75 + sql.append(" :origenId,"); //76 + sql.append(" null,"); //77 + sql.append(" null,"); //78 + sql.append(" :preciobase,"); //79 + sql.append(" null,"); //80 + sql.append(" :preciopagado,"); //81 + sql.append(" null,"); //82 + sql.append(" :ptovtaventaId,"); //83 + sql.append(" :puntoventaId,"); //84 + sql.append(" null,"); //85 + sql.append(" null,"); //86 + sql.append(" :rutaId,"); //87 + sql.append(" null,"); //88 + sql.append(" null,"); //89 + sql.append(" null,"); //90 + sql.append(" :temporeservafidelidade,"); //91 + sql.append(" null,"); //92 + sql.append(" null,"); //93 + sql.append(" :tipoventaId,"); //94 + sql.append(" null,"); //95 + sql.append(" :usuarioId,"); //96 + sql.append(" :usuarioautorizacionId,"); //97 + sql.append(" null,"); //98 + sql.append(" :boletoId"); //99 + sql.append(" )"); + + return sql.toString(); + } } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java index 527e4d84d..81d491d57 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/BoletoServiceImpl.java @@ -55,6 +55,7 @@ public class BoletoServiceImpl implements BoletoService { } @Override + @Transactional public void criaBoletoReserva(String unoAsientoSelec, Integer unaCorridaId, Date unaFecCorrida, Integer unoTerminalOrigenId, Integer unoTerminalDestinoId, Integer unoTipoVenta, Integer unaCategoriaSelec, String unoNumeOperacion, Integer unUsuarioId, Integer unPuntoVenta, @@ -98,6 +99,7 @@ public class BoletoServiceImpl implements BoletoService { miBoletoTemporal.setImportepedagio(BigDecimal.ZERO); miBoletoTemporal.setImporteoutros(BigDecimal.ZERO); miBoletoTemporal.setMarcaId(marcaId); + miBoletoTemporal.setMonedaId(1); miBoletoTemporal.setNodoId((byte) 1); miBoletoTemporal.setNumkmviaje( calcularKmViaje(rutaId, unoTerminalOrigenId, unoTerminalDestinoId)); @@ -112,15 +114,16 @@ public class BoletoServiceImpl implements BoletoService { miBoletoTemporal.setPreciopagado(miPrecio); miBoletoTemporal.setPreciobase(miPrecio); miBoletoTemporal.setPuntoVenta(miPuntoVenta); + miBoletoTemporal.setPtovtaventaId(miPuntoVenta.getPuntoventaId()); miBoletoTemporal.setRutaId(rutaId); - miBoletoTemporal.setTemporeservafidelidade(tempoReserva!=null ? tempoReserva.intValue() : null); + miBoletoTemporal.setTemporeservafidelidade(tempoReserva!=null ? tempoReserva.intValue() : 0); miBoletoTemporal.setTipoventaId(unoTipoVenta.byteValue()); Usuario usuario = usuarioService.obtenerID(unUsuarioId); miBoletoTemporal.setUsuarioautorizacionId(usuario.getUsuarioUbicacionActivoList().get(0).getUsuarioubicacionId()); miBoletoTemporal.setUsuario(usuario); miBoletoTemporal.setActivo(true); // Cria boleto de reserva - suscribir(miBoletoTemporal); + boletoDAO.insertBoletoRserva(miBoletoTemporal); } @@ -142,8 +145,13 @@ public class BoletoServiceImpl implements BoletoService { return boletoDAO.getSequenciaNumReservacion(); } + /** + * Foemata boleto Id com 15 dígitos conforme Totalbus + * @param boletoSeq + * @return + */ public Long formataBoletoId(String boletoSeq){ - String valor = "1" + String.format("%014d", Integer.valueOf(boletoSeq).intValue()); + String valor = "1" + String.format("%013d", Integer.valueOf(boletoSeq).intValue()); return Long.valueOf(valor); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 33c4b6935..8b155b2da 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -868,6 +868,7 @@ public class CorridaServiceImpl implements CorridaService { Integer unPuntoVenta= constanteService.buscarValorConstantePorNomeConstante("PUNTOVENTA_RESERVA_CLIENTES"); Integer estacionId = constanteService.buscarValorConstantePorNomeConstante("ESTACION_RESERVA_CLIENTES"); + Corrida corrida = null; try { for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) { @@ -886,7 +887,7 @@ public class CorridaServiceImpl implements CorridaService { } } - Corrida corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado); + corrida = generarCorrida(esquemaCorrida, dataGeracao, false, isFeriado); Corrida corridaPisoExtra = null; Corrida corridaPisoExtra2 = null; @@ -1009,23 +1010,25 @@ public class CorridaServiceImpl implements CorridaService { } + if (cantCorridaGenerada >= cantCorridaCommit) { cantCorridaGenerada = 0; transactionManager.commit(status); status = transactionManager.getTransaction(def); } - //Valida se existe configuração de reserva para o cliente e crria Cria reserva - if(corrida !=null) { - if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) { - validaCriaReservaCliente(corrida, unUsuarioId, unPuntoVenta, estacionId); - } - } + } // for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) } finally { if ((status != null) && (!status.isCompleted())) { transactionManager.commit(status); } } + //Valida se existe configuração de reserva para o cliente e crria Cria reserva + if(corrida !=null) { + if(unUsuarioId!=null && unPuntoVenta!=null && estacionId!=null) { + validaCriaReservaCliente(corrida, unUsuarioId, unPuntoVenta, estacionId); + } + } } private void validaCriaReservaCliente(Corrida corrida, Integer unUsuarioId, Integer unPuntoVenta, Integer estacionId) { @@ -1058,9 +1061,8 @@ public class CorridaServiceImpl implements CorridaService { for (CorridaTramo corridaTramo : corrida.getCorridaTramoList()) { //(Se origem corridatramo = origem cadastrada && destino corridatramo = destino cadastrado) // ou (se origem corridatramo = destino do cadastrado), tendo em vista que corridatramo são a sequencias e não as combinações - if(((corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue()) - && (corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue())) - || (corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalDestinoId.intValue())){ + if(corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue() + && corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue()) { fecViaje = corridaTramo.getFechorsalidaH(); break; } @@ -1487,4 +1489,5 @@ public class CorridaServiceImpl implements CorridaService { public Integer buscarOcupacaoCorrida(Corrida corrida) { return corridaDAO.buscarOcupacaoCorrida(corrida); } + }