Fix salvataggio viaggi senza cod forn trasp
This commit is contained in:
@@ -53,75 +53,77 @@ public class ViaggiService {
|
||||
|
||||
List<CreaViaggioDTO.PedanaDTO> pedane = creaViaggioDTO.getPedane();
|
||||
|
||||
String sql = Query.format(
|
||||
"SELECT gtb_anag.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc\n" +
|
||||
"FROM gtb_anag\n" +
|
||||
" INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" +
|
||||
"WHERE gtb_anag.part_iva IN (SELECT gtb_anag.part_iva\n" +
|
||||
" FROM gtb_anag\n" +
|
||||
" INNER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag\n" +
|
||||
" WHERE gtb_anag.cod_anag = %s)\n" +
|
||||
" AND vtb_clie.flag_stato = 'A'\n" +
|
||||
" AND vtb_clie.flag_td = 'N'",
|
||||
viaggio.getCodFornTrasp()
|
||||
);
|
||||
|
||||
GtbAnag datiClienteFornTrasp = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GtbAnag.class);
|
||||
|
||||
if (datiClienteFornTrasp == null) {
|
||||
throw new Exception(String.format(
|
||||
"Attenzione nessun codice cliente trovato per il fornitore %s",
|
||||
if (!UtilityString.isNullOrEmpty(viaggio.getCodFornTrasp())) {
|
||||
String sql = Query.format(
|
||||
"SELECT gtb_anag.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc\n" +
|
||||
"FROM gtb_anag\n" +
|
||||
" INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" +
|
||||
"WHERE gtb_anag.part_iva IN (SELECT gtb_anag.part_iva\n" +
|
||||
" FROM gtb_anag\n" +
|
||||
" INNER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag\n" +
|
||||
" WHERE gtb_anag.cod_anag = %s)\n" +
|
||||
" AND vtb_clie.flag_stato = 'A'\n" +
|
||||
" AND vtb_clie.flag_td = 'N'",
|
||||
viaggio.getCodFornTrasp()
|
||||
));
|
||||
}
|
||||
);
|
||||
|
||||
String tipoDocResi = setupGest.getSetup("DTB_DOCT", "FATTURA_PEDANE", "TIPO_DOC_RESI");
|
||||
GtbAnag datiClienteFornTrasp = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GtbAnag.class);
|
||||
|
||||
sql = Query.format(
|
||||
"SELECT ddt.cod_anag,\n" +
|
||||
" ddt.cod_dtip,\n" +
|
||||
" ddt.data_doc,\n" +
|
||||
" ddt.ser_doc,\n" +
|
||||
" ddt.num_doc\n" +
|
||||
"FROM dtb_doct ddt\n" +
|
||||
"WHERE ddt.cod_dtip = %s\n" +
|
||||
" AND id_viaggio = %s",
|
||||
tipoDocResi,
|
||||
viaggio.getIdViaggio()
|
||||
);
|
||||
|
||||
DtbDoct dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
|
||||
|
||||
if (dtbDoct == null) {
|
||||
dtbDoct = new DtbDoct();
|
||||
}
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(pedane)) {
|
||||
dtbDoct
|
||||
.setCodDtip(tipoDocResi)
|
||||
.setCodMdep(creaViaggioDTO.getCodMdep())
|
||||
.setCodAnag(datiClienteFornTrasp.getCodAnag())
|
||||
.setIdViaggio(viaggio.getIdViaggio())
|
||||
.setDtbDocr(new ArrayList<>());
|
||||
|
||||
dtbDoct.setOperation(OperationType.DELETE_THEN_INSERT);
|
||||
|
||||
for (CreaViaggioDTO.PedanaDTO pedana : pedane) {
|
||||
DtbDocr dtbDocr = new DtbDocr()
|
||||
.setCodMart(pedana.getCodMart())
|
||||
.setQtaDoc(pedana.getQtaDoc());
|
||||
|
||||
dtbDocr.setOperation(OperationType.INSERT);
|
||||
|
||||
dtbDoct.getDtbDocr().add(dtbDocr);
|
||||
if (datiClienteFornTrasp == null) {
|
||||
throw new Exception(String.format(
|
||||
"Attenzione nessun codice cliente trovato per il fornitore %s",
|
||||
viaggio.getCodFornTrasp()
|
||||
));
|
||||
}
|
||||
} else if (dtbDoct.getNumDoc() != null) {
|
||||
dtbDoct.setOperation(OperationType.DELETE);
|
||||
}
|
||||
|
||||
if (dtbDoct.getOperation() != null) {
|
||||
entityProcessor.processEntity(dtbDoct, true, multiDBTransactionManager);
|
||||
String tipoDocResi = setupGest.getSetup("DTB_DOCT", "FATTURA_PEDANE", "TIPO_DOC_RESI");
|
||||
|
||||
sql = Query.format(
|
||||
"SELECT ddt.cod_anag,\n" +
|
||||
" ddt.cod_dtip,\n" +
|
||||
" ddt.data_doc,\n" +
|
||||
" ddt.ser_doc,\n" +
|
||||
" ddt.num_doc\n" +
|
||||
"FROM dtb_doct ddt\n" +
|
||||
"WHERE ddt.cod_dtip = %s\n" +
|
||||
" AND id_viaggio = %s",
|
||||
tipoDocResi,
|
||||
viaggio.getIdViaggio()
|
||||
);
|
||||
|
||||
DtbDoct dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
|
||||
|
||||
if (dtbDoct == null) {
|
||||
dtbDoct = new DtbDoct();
|
||||
}
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(pedane)) {
|
||||
dtbDoct
|
||||
.setCodDtip(tipoDocResi)
|
||||
.setCodMdep(creaViaggioDTO.getCodMdep())
|
||||
.setCodAnag(datiClienteFornTrasp.getCodAnag())
|
||||
.setIdViaggio(viaggio.getIdViaggio())
|
||||
.setDtbDocr(new ArrayList<>());
|
||||
|
||||
dtbDoct.setOperation(OperationType.DELETE_THEN_INSERT);
|
||||
|
||||
for (CreaViaggioDTO.PedanaDTO pedana : pedane) {
|
||||
DtbDocr dtbDocr = new DtbDocr()
|
||||
.setCodMart(pedana.getCodMart())
|
||||
.setQtaDoc(pedana.getQtaDoc());
|
||||
|
||||
dtbDocr.setOperation(OperationType.INSERT);
|
||||
|
||||
dtbDoct.getDtbDocr().add(dtbDocr);
|
||||
}
|
||||
} else if (dtbDoct.getNumDoc() != null) {
|
||||
dtbDoct.setOperation(OperationType.DELETE);
|
||||
}
|
||||
|
||||
if (dtbDoct.getOperation() != null) {
|
||||
entityProcessor.processEntity(dtbDoct, true, multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
|
||||
multiDBTransactionManager.commitAll();
|
||||
|
||||
Reference in New Issue
Block a user