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
master
valdevir 2021-11-25 12:29:55 +00:00
parent 76cf3029ff
commit d3ecdb59ef
4 changed files with 292 additions and 13 deletions

View File

@ -22,4 +22,5 @@ public interface BoletoDAO extends GenericDAO<Boleto, Long> {
public String getSequenciaBoletoId(); public String getSequenciaBoletoId();
public String getSequenciaNumOperacion(); public String getSequenciaNumOperacion();
public String getSequenciaNumReservacion(); public String getSequenciaNumReservacion();
void insertBoletoRserva(Boleto miBoletoTemporal);
} }

View File

@ -82,4 +82,271 @@ public class BoletoHibernateDAO extends GenericHibernateDAO<Boleto, Long> implem
Object o = this.getSession().createSQLQuery(sql).uniqueResult(); Object o = this.getSession().createSQLQuery(sql).uniqueResult();
return o.toString(); 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();
}
} }

View File

@ -55,6 +55,7 @@ public class BoletoServiceImpl implements BoletoService {
} }
@Override @Override
@Transactional
public void criaBoletoReserva(String unoAsientoSelec, Integer unaCorridaId, Date unaFecCorrida, public void criaBoletoReserva(String unoAsientoSelec, Integer unaCorridaId, Date unaFecCorrida,
Integer unoTerminalOrigenId, Integer unoTerminalDestinoId, Integer unoTipoVenta, Integer unaCategoriaSelec, Integer unoTerminalOrigenId, Integer unoTerminalDestinoId, Integer unoTipoVenta, Integer unaCategoriaSelec,
String unoNumeOperacion, Integer unUsuarioId, Integer unPuntoVenta, String unoNumeOperacion, Integer unUsuarioId, Integer unPuntoVenta,
@ -98,6 +99,7 @@ public class BoletoServiceImpl implements BoletoService {
miBoletoTemporal.setImportepedagio(BigDecimal.ZERO); miBoletoTemporal.setImportepedagio(BigDecimal.ZERO);
miBoletoTemporal.setImporteoutros(BigDecimal.ZERO); miBoletoTemporal.setImporteoutros(BigDecimal.ZERO);
miBoletoTemporal.setMarcaId(marcaId); miBoletoTemporal.setMarcaId(marcaId);
miBoletoTemporal.setMonedaId(1);
miBoletoTemporal.setNodoId((byte) 1); miBoletoTemporal.setNodoId((byte) 1);
miBoletoTemporal.setNumkmviaje( miBoletoTemporal.setNumkmviaje(
calcularKmViaje(rutaId, unoTerminalOrigenId, unoTerminalDestinoId)); calcularKmViaje(rutaId, unoTerminalOrigenId, unoTerminalDestinoId));
@ -112,15 +114,16 @@ public class BoletoServiceImpl implements BoletoService {
miBoletoTemporal.setPreciopagado(miPrecio); miBoletoTemporal.setPreciopagado(miPrecio);
miBoletoTemporal.setPreciobase(miPrecio); miBoletoTemporal.setPreciobase(miPrecio);
miBoletoTemporal.setPuntoVenta(miPuntoVenta); miBoletoTemporal.setPuntoVenta(miPuntoVenta);
miBoletoTemporal.setPtovtaventaId(miPuntoVenta.getPuntoventaId());
miBoletoTemporal.setRutaId(rutaId); miBoletoTemporal.setRutaId(rutaId);
miBoletoTemporal.setTemporeservafidelidade(tempoReserva!=null ? tempoReserva.intValue() : null); miBoletoTemporal.setTemporeservafidelidade(tempoReserva!=null ? tempoReserva.intValue() : 0);
miBoletoTemporal.setTipoventaId(unoTipoVenta.byteValue()); miBoletoTemporal.setTipoventaId(unoTipoVenta.byteValue());
Usuario usuario = usuarioService.obtenerID(unUsuarioId); Usuario usuario = usuarioService.obtenerID(unUsuarioId);
miBoletoTemporal.setUsuarioautorizacionId(usuario.getUsuarioUbicacionActivoList().get(0).getUsuarioubicacionId()); miBoletoTemporal.setUsuarioautorizacionId(usuario.getUsuarioUbicacionActivoList().get(0).getUsuarioubicacionId());
miBoletoTemporal.setUsuario(usuario); miBoletoTemporal.setUsuario(usuario);
miBoletoTemporal.setActivo(true); miBoletoTemporal.setActivo(true);
// Cria boleto de reserva // Cria boleto de reserva
suscribir(miBoletoTemporal); boletoDAO.insertBoletoRserva(miBoletoTemporal);
} }
@ -142,8 +145,13 @@ public class BoletoServiceImpl implements BoletoService {
return boletoDAO.getSequenciaNumReservacion(); return boletoDAO.getSequenciaNumReservacion();
} }
/**
* Foemata boleto Id com 15 dígitos conforme Totalbus
* @param boletoSeq
* @return
*/
public Long formataBoletoId(String boletoSeq){ 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); return Long.valueOf(valor);
} }

View File

@ -868,6 +868,7 @@ public class CorridaServiceImpl implements CorridaService {
Integer unPuntoVenta= constanteService.buscarValorConstantePorNomeConstante("PUNTOVENTA_RESERVA_CLIENTES"); Integer unPuntoVenta= constanteService.buscarValorConstantePorNomeConstante("PUNTOVENTA_RESERVA_CLIENTES");
Integer estacionId = constanteService.buscarValorConstantePorNomeConstante("ESTACION_RESERVA_CLIENTES"); Integer estacionId = constanteService.buscarValorConstantePorNomeConstante("ESTACION_RESERVA_CLIENTES");
Corrida corrida = null;
try { try {
for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) { 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 corridaPisoExtra = null;
Corrida corridaPisoExtra2 = null; Corrida corridaPisoExtra2 = null;
@ -1009,23 +1010,25 @@ public class CorridaServiceImpl implements CorridaService {
} }
if (cantCorridaGenerada >= cantCorridaCommit) { if (cantCorridaGenerada >= cantCorridaCommit) {
cantCorridaGenerada = 0; cantCorridaGenerada = 0;
transactionManager.commit(status); transactionManager.commit(status);
status = transactionManager.getTransaction(def); 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) } // for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida)
} finally { } finally {
if ((status != null) && (!status.isCompleted())) { if ((status != null) && (!status.isCompleted())) {
transactionManager.commit(status); 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) { 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()) { for (CorridaTramo corridaTramo : corrida.getCorridaTramoList()) {
//(Se origem corridatramo = origem cadastrada && destino corridatramo = destino cadastrado) //(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 // 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()) if(corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalOrigenId.intValue()
&& (corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue())) && corridaTramo.getDestino()!=null && corridaTramo.getDestino().getParadaId().intValue()==unoTerminalDestinoId.intValue()) {
|| (corridaTramo.getOrigem()!=null && corridaTramo.getOrigem().getParadaId().intValue()==unoTerminalDestinoId.intValue())){
fecViaje = corridaTramo.getFechorsalidaH(); fecViaje = corridaTramo.getFechorsalidaH();
break; break;
} }
@ -1487,4 +1489,5 @@ public class CorridaServiceImpl implements CorridaService {
public Integer buscarOcupacaoCorrida(Corrida corrida) { public Integer buscarOcupacaoCorrida(Corrida corrida) {
return corridaDAO.buscarOcupacaoCorrida(corrida); return corridaDAO.buscarOcupacaoCorrida(corrida);
} }
} }