aggiunta cancellazione
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-01-20 11:45:41 +01:00
parent 0f842aa457
commit f26342afc2
2 changed files with 101 additions and 87 deletions

View File

@@ -1019,10 +1019,11 @@ public class DocumentController {
@RequestParam String codAnag,
@RequestParam Date dataDoc,
@RequestParam String serDoc,
@RequestParam Integer numDoc) throws Exception {
@RequestParam Integer numDoc,
@RequestParam boolean deleteDoc) throws Exception {
documentService.popolaTabellaCosti(codAnag, codDtip, dataDoc, serDoc, numDoc);
documentService.popolaTabellaCosti(codAnag, codDtip, dataDoc, serDoc, numDoc, deleteDoc);
return ServiceRestResponse.createPositiveResponse();
}

View File

@@ -1982,95 +1982,108 @@ public class DocumentService {
return null;
}
public void popolaTabellaCosti(String codAnag, String codDtip, Date dataDoc, String serDoc, Integer numDoc) throws Exception {
String sql =
it.integry.ems_model.utility.Query.format(
"WITH doc AS (SELECT dtb_doct.listino,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_reg,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" dtb_docr.cod_mart,\n" +
" dtb_docr.cod_art_for,\n" +
" dtb_docr.cod_promo,\n" +
" (CASE atb_list.tipo_calc_prz\n" +
" WHEN 0 THEN ISNULL(dtb_docr.data_ord, dtb_doct.data_doc)\n" +
" WHEN 1 THEN dtb_doct.data_doc\n" +
" ELSE dtb_doct.data_reg END) AS data_rif\n" +
" FROM dtb_doct\n" +
" INNER JOIN dtb_docr\n" +
" ON dtb_doct.cod_anag = dtb_docr.cod_anag AND dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
" dtb_doct.data_doc = dtb_docr.data_doc AND dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
" INNER JOIN atb_list ON dtb_doct.listino = atb_list.cod_alis\n" +
" INNER JOIN atb_list_data\n" +
" ON dtb_docr.cod_promo = atb_list_data.cod_promo AND\n" +
" dtb_doct.listino = atb_list_data.cod_alis\n" +
" WHERE dtb_doct.gestione = 'A'\n" +
" AND dtb_doct.cod_anag = %s\n" +
" AND dtb_doct.cod_dtip = %s\n" +
" AND dtb_doct.data_doc = %s\n" +
" AND dtb_doct.ser_doc = %s\n" +
" AND dtb_doct.num_doc = %s\n" +
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
" AND dtb_tipi.segno_qta_car > 0\n" +
" AND dtb_docr.cod_mart IS NOT NULL\n" +
" AND atb_list_data.flag_riversa_promo = 0\n" +
" GROUP BY dtb_doct.listino,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_reg,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" dtb_docr.cod_mart,\n" +
" dtb_docr.cod_art_for,\n" +
" dtb_docr.cod_promo,\n" +
" (CASE atb_list.tipo_calc_prz\n" +
" WHEN 0 THEN ISNULL(dtb_docr.data_ord, dtb_doct.data_doc)\n" +
" WHEN 1 THEN dtb_doct.data_doc\n" +
" ELSE dtb_doct.data_reg END) ) \n" +
"SELECT doc.listino\n" +
" ,doc.data_reg\n" +
" ,doc.cod_anag\n" +
" ,doc.cod_dtip\n" +
" ,doc.data_doc\n" +
" ,doc.ser_doc\n" +
" ,doc.num_doc\n" +
" ,doc.cod_mart\n" +
" ,doc.cod_art_for\n" +
" ,doc.cod_promo\n" +
" ,lisa.prz_acq_netto_um as costo_lisa\n" +
" ,gtb_anag.part_iva\n" +
"FROM doc\n" +
" CROSS APPLY dbo.getlistinoacquisto(doc.data_rif, doc.listino, doc.cod_art_for,\n" +
" doc.cod_mart, 'N', NULL) AS lisa\n" +
" INNER JOIN gtb_anag ON doc.cod_anag = gtb_anag.cod_anag \n"+
" LEFT OUTER JOIN mtb_lisa_costo_data ON doc.listino = mtb_lisa_costo_data.listino AND\n" +
" doc.cod_mart = mtb_lisa_costo_data.cod_mart AND\n" +
" doc.cod_art_for = mtb_lisa_costo_data.cod_art_for AND\n" +
" doc.cod_promo = mtb_lisa_costo_data.cod_promo AND\n" +
" doc.cod_anag = mtb_lisa_costo_data.cod_anag AND\n" +
" doc.cod_dtip = mtb_lisa_costo_data.cod_dtip AND\n" +
" doc.data_doc = mtb_lisa_costo_data.data_doc AND\n" +
" doc.ser_doc = mtb_lisa_costo_data.ser_doc AND\n" +
" doc.num_doc = mtb_lisa_costo_data.num_doc\n" +
"\n" +
"WHERE (mtb_lisa_costo_data.costo_lisa IS NULL OR mtb_lisa_costo_data.costo_lisa <> lisa.prz_acq_netto_um)\n"
,
codAnag,codDtip,dataDoc,serDoc,numDoc);
public void popolaTabellaCosti(String codAnag, String codDtip, Date dataDoc, String serDoc, Integer numDoc, boolean deleteDoc) throws Exception {
List<MtbLisaCostoData> mtbLisaCostoData;
if (deleteDoc) {
String sql =
it.integry.ems_model.utility.Query.format(
"SELECT * FROM mtb_lisa_costo_data WHERE cod_anag= %s AND cod_dtip = %s AND data_doc = %s AND ser_doc = %s AND num_doc = %s",
codAnag, codDtip, dataDoc, serDoc, numDoc);
mtbLisaCostoData = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbLisaCostoData.class);
if (mtbLisaCostoData == null || mtbLisaCostoData.isEmpty()) return;
List<MtbLisaCostoData> mtbLisaCostoData = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbLisaCostoData.class);
mtbLisaCostoData.forEach(
x -> x.setOperation(OperationType.DELETE)
);
} else {
String sql =
it.integry.ems_model.utility.Query.format(
"WITH doc AS (SELECT dtb_doct.listino,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_reg,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" dtb_docr.cod_mart,\n" +
" dtb_docr.cod_art_for,\n" +
" dtb_docr.cod_promo,\n" +
" (CASE atb_list.tipo_calc_prz\n" +
" WHEN 0 THEN ISNULL(dtb_docr.data_ord, dtb_doct.data_doc)\n" +
" WHEN 1 THEN dtb_doct.data_doc\n" +
" ELSE dtb_doct.data_reg END) AS data_rif\n" +
" FROM dtb_doct\n" +
" INNER JOIN dtb_docr\n" +
" ON dtb_doct.cod_anag = dtb_docr.cod_anag AND dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
" dtb_doct.data_doc = dtb_docr.data_doc AND dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
" INNER JOIN atb_list ON dtb_doct.listino = atb_list.cod_alis\n" +
" INNER JOIN atb_list_data\n" +
" ON dtb_docr.cod_promo = atb_list_data.cod_promo AND\n" +
" dtb_doct.listino = atb_list_data.cod_alis\n" +
" WHERE dtb_doct.gestione = 'A'\n" +
" AND dtb_doct.cod_anag = %s\n" +
" AND dtb_doct.cod_dtip = %s\n" +
" AND dtb_doct.data_doc = %s\n" +
" AND dtb_doct.ser_doc = %s\n" +
" AND dtb_doct.num_doc = %s\n" +
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
" AND dtb_tipi.segno_qta_car > 0\n" +
" AND dtb_docr.cod_mart IS NOT NULL\n" +
" AND atb_list_data.flag_riversa_promo = 0\n" +
" GROUP BY dtb_doct.listino,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_reg,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" dtb_docr.cod_mart,\n" +
" dtb_docr.cod_art_for,\n" +
" dtb_docr.cod_promo,\n" +
" (CASE atb_list.tipo_calc_prz\n" +
" WHEN 0 THEN ISNULL(dtb_docr.data_ord, dtb_doct.data_doc)\n" +
" WHEN 1 THEN dtb_doct.data_doc\n" +
" ELSE dtb_doct.data_reg END) ) \n" +
"SELECT doc.listino\n" +
" ,doc.data_reg\n" +
" ,doc.cod_anag\n" +
" ,doc.cod_dtip\n" +
" ,doc.data_doc\n" +
" ,doc.ser_doc\n" +
" ,doc.num_doc\n" +
" ,doc.cod_mart\n" +
" ,doc.cod_art_for\n" +
" ,doc.cod_promo\n" +
" ,lisa.prz_acq_netto_um as costo_lisa\n" +
" ,gtb_anag.part_iva\n" +
"FROM doc\n" +
" CROSS APPLY dbo.getlistinoacquisto(doc.data_rif, doc.listino, doc.cod_art_for,\n" +
" doc.cod_mart, 'N', NULL) AS lisa\n" +
" INNER JOIN gtb_anag ON doc.cod_anag = gtb_anag.cod_anag \n" +
" LEFT OUTER JOIN mtb_lisa_costo_data ON doc.listino = mtb_lisa_costo_data.listino AND\n" +
" doc.cod_mart = mtb_lisa_costo_data.cod_mart AND\n" +
" doc.cod_art_for = mtb_lisa_costo_data.cod_art_for AND\n" +
" doc.cod_promo = mtb_lisa_costo_data.cod_promo AND\n" +
" doc.cod_anag = mtb_lisa_costo_data.cod_anag AND\n" +
" doc.cod_dtip = mtb_lisa_costo_data.cod_dtip AND\n" +
" doc.data_doc = mtb_lisa_costo_data.data_doc AND\n" +
" doc.ser_doc = mtb_lisa_costo_data.ser_doc AND\n" +
" doc.num_doc = mtb_lisa_costo_data.num_doc\n" +
"\n" +
"WHERE (mtb_lisa_costo_data.costo_lisa IS NULL OR mtb_lisa_costo_data.costo_lisa <> lisa.prz_acq_netto_um)\n"
,
codAnag, codDtip, dataDoc, serDoc, numDoc);
if ( mtbLisaCostoData == null || mtbLisaCostoData.isEmpty()) return;
mtbLisaCostoData = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbLisaCostoData.class);
mtbLisaCostoData.stream().forEach(
x->x.setOperation(x.getId()==null?OperationType.INSERT:OperationType.UPDATE)
);
if (mtbLisaCostoData == null || mtbLisaCostoData.isEmpty()) return;
mtbLisaCostoData.stream().forEach(
x -> x.setOperation(x.getId() == null ? OperationType.INSERT : OperationType.UPDATE)
);
}
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(mtbLisaCostoData, true));
}
}