Merge branch 'develop' into feature/RefactoringGestioneColli
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-04-22 11:46:08 +02:00
5 changed files with 298 additions and 6 deletions

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250418155242 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("PICKING", "SPEDIZIONE", "ELENCO_FORNITORI_INTERNI", null,
"Elenco utilizzato per riconoscere i fornitori del gruppo. Separati da pipe", false, null, false, false,
false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,232 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250418165533 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateView("[WMS_OrdPrelievo]", "CREATE VIEW [dbo].[WMS_OrdPrelievo] AS\n" +
"WITH DispCom AS (SELECT cod_mart, cod_mdep, cod_jcom, SUM(qta_col) AS qtaDispCom\n" +
" FROM mvw_sitart_udc_det_inventario\n" +
" WHERE gestione IN ('A', 'L')\n" +
" AND cod_jcom IS NOT NULL\n" +
" AND cod_jcom <> 'MAG'\n" +
" AND ISNULL(posizione, '') <> 'PARK'\n" +
" GROUP BY cod_mart, cod_mdep, cod_jcom),\n" +
" DispMag AS (SELECT cod_mart, cod_mdep, SUM(qta_col) AS qtaDispMag\n" +
" FROM mvw_sitart_udc_det_inventario\n" +
" WHERE gestione IN ('A', 'L')\n" +
" AND (cod_jcom IS NULL OR cod_jcom = 'MAG')\n" +
" AND ISNULL(posizione, '') <> 'PARK'\n" +
" GROUP BY cod_mart, cod_mdep),\n" +
" elencoFornitoriInterni AS (SELECT value_string AS fornitore\n" +
" FROM dbo.ParseStringIntoArray((SELECT value\n" +
" FROM stb_gest_setup\n" +
" WHERE gest_name = 'PICKING'\n" +
" AND section = 'SPEDIZIONE'\n" +
" AND key_section = 'ELENCO_FORNITORI_INTERNI'),\n" +
" '|')),\n" +
" riservatoPerOrd AS (SELECT mtb_colt.gestione,\n" +
" mtb_colr.data_ord,\n" +
" mtb_colr.num_ord,\n" +
" mtb_colr.riga_ord,\n" +
" SUM(mtb_colr.qta_col) AS qtaCollo,\n" +
" SUM(mtb_colr.num_cnf) AS numCnfCollo,\n" +
" COUNT(DISTINCT mtb_colr.num_ord) AS ColliRiservati\n" +
" FROM mtb_colr\n" +
" INNER JOIN mtb_colt ON mtb_colr.gestione = mtb_colt.gestione AND\n" +
" mtb_colr.data_collo = mtb_colt.data_collo AND\n" +
" mtb_colr.ser_collo = mtb_colt.ser_collo AND\n" +
" mtb_colr.num_collo = mtb_colt.num_collo\n" +
" WHERE segno = - 1\n" +
" AND mtb_colr.gestione IN ('L', 'V')\n" +
" AND mtb_colt.cod_dtip IS NULL\n" +
" AND mtb_colr.data_ord IS NOT NULL\n" +
" GROUP BY mtb_colt.gestione, mtb_colr.data_ord, mtb_colr.num_ord, mtb_colr.riga_ord),\n" +
" OrdVr AS (SELECT dtb_ordr.gestione,\n" +
" dtb_ordr.data_ord,\n" +
" dtb_ordr.num_ord,\n" +
" dtb_ordt.cod_vdes,\n" +
" CASE\n" +
" WHEN dtb_ordr.gestione = 'V'\n" +
" THEN LEFT(ISNULL(vtb_dest.citta + ' - ', '') + vtb_dest.indirizzo, 40)\n" +
" ELSE dtb_ordt.rif_ord END AS rif_ord,\n" +
" dtb_ordt.cod_anag,\n" +
" dtb_ordt.cod_prod,\n" +
" CASE dtb_ordr.gestione WHEN 'L' THEN '2' WHEN 'V' THEN '3' END +\n" +
" REPLACE(CONVERT(VARCHAR(10), dtb_ordr.data_ord, 105), '-', '') +\n" +
" REPLICATE('0', 5 - LEN(dtb_ordr.num_ord)) +\n" +
" CONVERT(VARCHAR(6), dtb_ordr.num_ord) AS chiave_ordine,\n" +
" dtb_ordr.cod_jcom,\n" +
" dtb_ordr.cod_mart,\n" +
" SUM(ROUND(dtb_ordr.qta_ord - dtb_ordr.qta_evasa, mtb_unt_mis.cifre_dec)) *\n" +
" dtb_ordr.rap_conv AS qta_inevasa,\n" +
" SUM(ISNULL(dispCom.qtaDispCom, 0)) AS qtaDispCom,\n" +
" SUM(ISNULL(dispMag.qtaDispMag, 0)) AS qtaDispMag,\n" +
" dtb_ordt.listino,\n" +
" dtb_ordt.term_cons,\n" +
" dtb_ordt.cod_auto,\n" +
" dtb_ordt.cod_vvet,\n" +
" dtb_ordt.data_iniz_trasp,\n" +
" dtb_ordt.cod_mdep,\n" +
" dtb_ordr.data_cons AS data_cons,\n" +
" dtb_ordr.id_viaggio,\n" +
" dtb_ordt.cod_vage,\n" +
" SUM(colli.qtaCollo) AS qtaCollo,\n" +
" SUM(ROUND((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv -\n" +
" ISNULL(colli.qtaCollo, 0),\n" +
" mtb_unt_mis.cifre_dec)) AS qtaInevasaColli,\n" +
" SUM(colli.numCnfCollo) AS numCnfCollo,\n" +
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa -\n" +
" ISNULL(colli.numCnfCollo, 0)) AS numCnfInevasaColli,\n" +
" CASE\n" +
" WHEN (dtb_ordr.gestione = 'L' AND dtb_ordt.gestione_rif = 'T') OR\n" +
" elencoFornitoriInterni.fornitore IS NOT NULL THEN 'S'\n" +
" ELSE 'N' END AS ord_trasf\n" +
" FROM dtb_ordt\n" +
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
" INNER JOIN mtb_unt_mis ON mtb_unt_mis.unt_mis = dtb_ordr.unt_ord\n" +
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart\n" +
" LEFT OUTER JOIN vtb_dest ON dtb_ordt.cod_anag = vtb_dest.cod_anag AND\n" +
" dtb_ordt.cod_vdes = vtb_dest.cod_vdes\n" +
" LEFT OUTER JOIN riservatoPerOrd colli\n" +
" ON dtb_ordt.gestione = colli.gestione AND\n" +
" dtb_ordt.data_ord = colli.data_ord AND\n" +
" dtb_ordt.num_ord = colli.num_ord AND\n" +
" dtb_ordr.riga_ord = colli.riga_ord\n" +
" LEFT OUTER JOIN dispCom ON dtb_ordr.cod_mart = dispCom.cod_mart AND\n" +
" dtb_ordr.cod_mdep = dispCom.cod_mdep AND\n" +
" ISNULL(dtb_ordr.cod_jcom, '') = dispCom.cod_jcom\n" +
" LEFT OUTER JOIN dispMag\n" +
" ON dtb_ordr.cod_mart = dispMag.cod_mart AND\n" +
" dtb_ordr.cod_mdep = dispMag.cod_mdep\n" +
" LEFT OUTER JOIN elencoFornitoriInterni ON fornitore = dtb_ordt.cod_anag\n" +
" WHERE dtb_ordt.flag_annulla = 'N'\n" +
" AND dtb_ordt.flag_sospeso = 'N'\n" +
" AND dtb_ordr.flag_evaso = 'I'\n" +
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
" AND dtb_ordt.gestione IN ('L', 'V')\n" +
" AND ((mtb_aart.flag_qta_cnf_fissa = 'S' AND qta_ord > qta_evasa) OR\n" +
" (mtb_aart.flag_qta_cnf_fissa <> 'S' AND num_cnf > num_cnf_evasa))\n" +
" GROUP BY dtb_ordr.gestione, dtb_ordr.data_ord, dtb_ordr.num_ord, dtb_ordt.cod_vdes,\n" +
" vtb_dest.indirizzo,\n" +
" vtb_dest.citta, dtb_ordt.rif_ord, dtb_ordt.cod_anag, dtb_ordr.cod_jcom, dtb_ordr.cod_mart,\n" +
" dtb_ordt.cod_prod, dtb_ordt.listino, dtb_ordt.term_cons, dtb_ordt.cod_auto,\n" +
" dtb_ordt.cod_vvet, fornitore,\n" +
" dtb_ordt.data_iniz_trasp, dtb_ordt.cod_mdep, dtb_ordt.cod_vage, dtb_ordr.id_viaggio,\n" +
" colli.num_ord, dtb_ordr.data_cons, dtb_ordt.gestione_rif, dtb_ordr.rap_conv),\n" +
" OrdV AS (SELECT gestione,\n" +
" data_ord,\n" +
" num_ord,\n" +
" rif_ord,\n" +
" cod_anag,\n" +
" chiave_ordine,\n" +
" cod_jcom,\n" +
" cod_prod,\n" +
" listino,\n" +
" term_cons,\n" +
" cod_auto,\n" +
" cod_vvet,\n" +
" data_iniz_trasp,\n" +
" data_cons,\n" +
" cod_vdes,\n" +
" cod_mdep,\n" +
" COUNT(DISTINCT cod_mart) AS arts_da_evadere,\n" +
" SUM(qtaInevasaColli) AS qtaInevasa,\n" +
" SUM(numCnfInevasaColli) AS numCnfInevasa,\n" +
" id_viaggio,\n" +
" cod_vage,\n" +
" COUNT(DISTINCT qtaCollo) AS colliRiservati,\n" +
" ord_trasf\n" +
" FROM OrdVr\n" +
" GROUP BY gestione, data_ord, num_ord, rif_ord, cod_anag, chiave_ordine, cod_jcom, cod_prod, listino,\n" +
" term_cons, cod_auto, cod_vvet, data_iniz_trasp, data_cons, cod_vdes, cod_mdep, cod_vage,\n" +
" id_viaggio, ord_trasf),\n" +
" OrdV2 AS (SELECT OrdV.gestione,\n" +
" OrdV.data_ord,\n" +
" OrdV.num_ord,\n" +
" rif_ord,\n" +
" OrdV.cod_anag,\n" +
" chiave_ordine,\n" +
" cod_jcom,\n" +
" cod_prod,\n" +
" listino,\n" +
" term_cons,\n" +
" OrdV.cod_auto,\n" +
" ISNULL(vtb_viaggi.cod_vvet, OrdV.cod_vvet) AS cod_vvet,\n" +
" data_iniz_trasp,\n" +
" ISNULL(CONVERT(DATETIME, CONVERT(VARCHAR(10), vtb_viaggi.data_ora_iniz_trasp, 121)),\n" +
" data_cons) AS data_cons,\n" +
" cod_vdes,\n" +
" cod_mdep,\n" +
" arts_da_evadere AS ArtDaEvadere,\n" +
" OrdV.id_viaggio,\n" +
" cod_vage,\n" +
" ISNULL(ordV.ColliRiservati, 0) AS colli_riservati,\n" +
" qtaInevasa,\n" +
" numCnfInevasa,\n" +
" CASE WHEN ISNULL(ordV.ColliRiservati, 0) > 0 THEN 'S' ELSE 'N' END exist_collo,\n" +
" CAST(CASE WHEN ISNULL(ordV.ColliRiservati, 0) > 0 THEN 1 ELSE 0 END AS BIT) exist_collo_boolean,\n" +
" CAST(CASE\n" +
" WHEN ISNULL(qtaInevasa, 0) > 0 THEN\n" +
" CASE\n" +
" WHEN ISNULL(numCnfInevasa, 0) > 0 THEN 0\n" +
" ELSE\n" +
" CASE WHEN ordV.colliRiservati > 0 THEN 1 ELSE 0 END\n" +
" END\n" +
" ELSE 1 END AS BIT) AS flag_evaso,\n" +
" ord_trasf,\n" +
" CASE\n" +
" WHEN (SELECT azienda.part_iva\n" +
" FROM azienda\n" +
" WHERE azienda.part_iva = gtb_anag.part_iva) IS NULL\n" +
" THEN 'N'\n" +
" ELSE 'S' END AS ord_aziendale\n" +
" FROM Ordv\n" +
" INNER JOIN gtb_anag ON OrdV.cod_anag = gtb_anag.cod_anag\n" +
" LEFT OUTER JOIN vtb_viaggi ON OrdV.id_viaggio = vtb_viaggi.id_viaggio\n" +
" WHERE (arts_da_evadere > 0 OR ISNULL(ColliRiservati, 0) > 0))\n" +
"SELECT gestione,\n" +
" data_ord,\n" +
" num_ord,\n" +
" rif_ord,\n" +
" cod_anag,\n" +
" chiave_ordine,\n" +
" cod_jcom,\n" +
" cod_prod,\n" +
" listino,\n" +
" term_cons,\n" +
" cod_auto,\n" +
" cod_vvet,\n" +
" data_iniz_trasp,\n" +
" data_cons,\n" +
" cod_vdes,\n" +
" cod_mdep,\n" +
" SUM(ArtDaEvadere) AS ArtDaEvadere,\n" +
" id_viaggio,\n" +
" cod_vage,\n" +
" SUM(colli_riservati) AS colli_riservati,\n" +
" SUM(qtaInevasa) AS qtaInevasa,\n" +
" SUM(numCnfInevasa) AS numCnfInevasa,\n" +
" exist_collo,\n" +
" exist_collo_boolean,\n" +
" flag_evaso,\n" +
" ord_trasf,\n" +
" ord_aziendale\n" +
"FROM OrdV2\n" +
"GROUP BY gestione, data_ord, num_ord, rif_ord, cod_anag, chiave_ordine, cod_jcom, cod_prod, listino, term_cons,\n" +
" cod_auto, cod_vvet, data_iniz_trasp, data_cons, cod_vdes, cod_mdep, id_viaggio, cod_vage, exist_collo,\n" +
" exist_collo_boolean, flag_evaso, ord_trasf, ord_aziendale");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomer;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250418173355 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
updateSetupValue("W_LDOCU_TAB_RC","SAVE_REST","DIRETTA", "S");
updateSetupValue("W_ADOCU_TAB_RC","SAVE_REST","DIRETTA", "S");
updateSetupValue("W_VDOCU_TAB_RC","SAVE_REST","DIRETTA", "S");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -193,7 +193,7 @@ public class StbActivity extends EntityBase {
@ImportFromParent(value = "id")
@SqlField(value = "plan_id", maxLength = 15)
private String planId;
private Long planId;
@EntityChild
private List<StbActivityCosts> stbActivityCosts = new ArrayList<>();
@@ -734,11 +734,11 @@ public class StbActivity extends EntityBase {
return this;
}
public String getPlanId() {
public Long getPlanId() {
return planId;
}
public StbActivity setPlanId(String planId) {
public StbActivity setPlanId(Long planId) {
this.planId = planId;
return this;
}

View File

@@ -2119,7 +2119,7 @@ public class DocumentService {
WtbJreptSetup impostazioniStampa = printerService.getSetupReportType(reportTypeDto);
if (impostazioniStampa != null && !UtilityString.isNullOrEmpty(impostazioniStampa.getPrinterName())){
if (impostazioniStampa != null && !UtilityString.isNullOrEmpty(impostazioniStampa.getPrinterName())) {
byte[] printedReport = printerService.printReportType(reportTypeDto);
if (i > 0)
@@ -2143,14 +2143,28 @@ public class DocumentService {
if (printDocumentRequest.isSendEmail() || stampaImmediata) {
String sql = it.integry.ems_model.utility.Query.format(
"SELECT cod_vdes\n" +
"FROM dtb_doct\n" +
"WHERE cod_anag = %s\n" +
" AND cod_dtip = %s\n" +
" AND data_doc = %s\n" +
" AND ser_doc = %s\n" +
" AND num_doc = %s",
printDocumentRequest.getCodAnag(), codDtip, printDocumentRequest.getDataDoc(),
printDocumentRequest.getSerDoc(), printDocumentRequest.getNumDoc()
);
String codVdes = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
sql = it.integry.ems_model.utility.Query.format(
"SELECT e_mail\n" +
"FROM vtb_clie_pers_rif\n" +
" INNER JOIN stb_tipi_indirizzi ON stb_tipi_indirizzi.tipo_indirizzo = vtb_clie_pers_rif.tipo_indirizzo\n" +
"WHERE tipo_documento = %s\n" +
" AND cod_anag = %s\n" +
" AND stb_tipi_indirizzi.tipo_indirizzo = 'UFFICIO ACQUISTI'",
" AND stb_tipi_indirizzi.tipo_indirizzo = 'UFFICIO ACQUISTI'\n" +
" AND ((:codVdes IS NULL AND cod_vdes IS NULL) OR (:codVdes IS NOT NULL AND ISNULL(cod_vdes, :codVdes) = :codVdes))",
codDtip, printDocumentRequest.getCodAnag()
);
).replace(":codVdes", UtilityDB.valueToString(codVdes));
String elencoEmail = String.join(",", UtilityDB.executeSimpleQueryOnlyFirstColumn(conn, sql));
if (!elencoEmail.isEmpty()) {