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();
|
List<CreaViaggioDTO.PedanaDTO> pedane = creaViaggioDTO.getPedane();
|
||||||
|
|
||||||
String sql = Query.format(
|
if (!UtilityString.isNullOrEmpty(viaggio.getCodFornTrasp())) {
|
||||||
"SELECT gtb_anag.cod_anag,\n" +
|
String sql = Query.format(
|
||||||
" gtb_anag.rag_soc\n" +
|
"SELECT gtb_anag.cod_anag,\n" +
|
||||||
"FROM gtb_anag\n" +
|
" gtb_anag.rag_soc\n" +
|
||||||
" INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" +
|
"FROM gtb_anag\n" +
|
||||||
"WHERE gtb_anag.part_iva IN (SELECT gtb_anag.part_iva\n" +
|
" INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" +
|
||||||
" FROM gtb_anag\n" +
|
"WHERE gtb_anag.part_iva IN (SELECT gtb_anag.part_iva\n" +
|
||||||
" INNER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag\n" +
|
" FROM gtb_anag\n" +
|
||||||
" WHERE gtb_anag.cod_anag = %s)\n" +
|
" INNER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag\n" +
|
||||||
" AND vtb_clie.flag_stato = 'A'\n" +
|
" WHERE gtb_anag.cod_anag = %s)\n" +
|
||||||
" AND vtb_clie.flag_td = 'N'",
|
" AND vtb_clie.flag_stato = 'A'\n" +
|
||||||
viaggio.getCodFornTrasp()
|
" AND vtb_clie.flag_td = 'N'",
|
||||||
);
|
|
||||||
|
|
||||||
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",
|
|
||||||
viaggio.getCodFornTrasp()
|
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(
|
if (datiClienteFornTrasp == null) {
|
||||||
"SELECT ddt.cod_anag,\n" +
|
throw new Exception(String.format(
|
||||||
" ddt.cod_dtip,\n" +
|
"Attenzione nessun codice cliente trovato per il fornitore %s",
|
||||||
" ddt.data_doc,\n" +
|
viaggio.getCodFornTrasp()
|
||||||
" 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) {
|
String tipoDocResi = setupGest.getSetup("DTB_DOCT", "FATTURA_PEDANE", "TIPO_DOC_RESI");
|
||||||
entityProcessor.processEntity(dtbDoct, true, multiDBTransactionManager);
|
|
||||||
|
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();
|
multiDBTransactionManager.commitAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user