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-87c2c4800839master
parent
76cf3029ff
commit
d3ecdb59ef
|
@ -22,4 +22,5 @@ public interface BoletoDAO extends GenericDAO<Boleto, Long> {
|
|||
public String getSequenciaBoletoId();
|
||||
public String getSequenciaNumOperacion();
|
||||
public String getSequenciaNumReservacion();
|
||||
void insertBoletoRserva(Boleto miBoletoTemporal);
|
||||
}
|
||||
|
|
|
@ -82,4 +82,271 @@ public class BoletoHibernateDAO extends GenericHibernateDAO<Boleto, Long> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue