Finish Hotfix-100
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit is unstable

This commit is contained in:
2025-03-31 09:02:22 +02:00
3 changed files with 283 additions and 1 deletions

View File

@@ -0,0 +1,249 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250328174415 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("getSospesoClienti_completa", "CREATE FUNCTION [dbo].[getSospesoClienti_completa]\n" +
"\n" +
" (\n" +
" @datasospeso DATETIME, @codanag VARCHAR(5), @filtaclienti VARCHAR(1), @filtracondpaga VARCHAR(1)\n" +
" )\n" +
" RETURNS TABLE AS\n" +
" RETURN(\n" +
" \n" +
" WITH setup\n" +
" AS (SELECT MAX(CASE WHEN key_section = 'ESCLUDI_CLIENTI' THEN value ELSE NULL END) AS escludi_clienti,\n" +
" MAX(CASE WHEN key_section = 'ESCLUDI_COND_PAGA' THEN value ELSE NULL END) AS escludi_cond_paga,\n" +
" MAX(CASE WHEN key_section = 'GESTISCI_SOSPESI_BOLLA' THEN value ELSE NULL END) AS gestisci_sospesi_bolla\n" +
" FROM stb_gest_setup\n" +
" WHERE gest_name = 'VTB_DIST_INCA'\n" +
" AND section = 'SETUP'),\n" +
" clienti AS\n" +
" (SELECT gtb_anag.cod_anag\n" +
" FROM gtb_anag\n" +
" INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" +
" WHERE gtb_anag.cod_anag NOT IN (SELECT value_string\n" +
" FROM dbo.parsestringintoarray((SELECT CASE\n" +
" WHEN @filtaclienti = 'S'\n" +
" THEN (SELECT escludi_clienti FROM setup)\n" +
" ELSE NULL END), '|'))\n" +
" AND (@codanag IS NULL OR gtb_anag.cod_anag = @codanag)),\n" +
" incassi AS\n" +
" (SELECT dtb_doct.cod_dtip_val AS cod_dtip,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc_val AS data_doc,\n" +
" dtb_doct.ser_doc_val AS ser_doc,\n" +
" dtb_doct.num_doc_val AS num_doc,\n" +
" SUM(vtb_dist_incar.imp_incasso) AS imp_incasso\n" +
" FROM vtb_dist_incat\n" +
" INNER JOIN vtb_dist_incar ON vtb_dist_incat.data_dist = vtb_dist_incar.data_dist AND\n" +
" vtb_dist_incat.num_dist = vtb_dist_incar.num_dist\n" +
" INNER JOIN clienti ON vtb_dist_incar.cod_anag = clienti.cod_anag\n" +
" INNER JOIN dtb_doct ON (vtb_dist_incar.cod_anag = dtb_doct.cod_anag) AND\n" +
" (vtb_dist_incar.cod_dtip = dtb_doct.cod_dtip) AND\n" +
" (vtb_dist_incar.data_doc = dtb_doct.data_doc) AND\n" +
" (vtb_dist_incar.ser_doc = dtb_doct.ser_doc) AND\n" +
" (vtb_dist_incar.num_doc = dtb_doct.num_doc)\n" +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip_val = dtb_tipi.cod_dtip\n" +
" WHERE (vtb_dist_incat.num_cmov IS NULL)\n" +
" AND (dtb_tipi.prevista_fat = 'N')\n" +
" AND (vtb_dist_incat.data_dist <=\n" +
" ISNULL(@datasospeso, cast(getDate() as date)))\n" +
"\n" +
" GROUP BY dtb_doct.cod_dtip_val,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.data_doc_val,\n" +
" dtb_doct.ser_doc_val,\n" +
" dtb_doct.num_doc_val)\n" +
" ,sospesi as (\n" +
" \n" +
" \n" +
" SELECT CONVERT(INT, 1) AS gruppo,\n" +
" ctb_part.cod_anag,\n" +
" dtb_doct.cod_dtip,\n" +
" ctb_part.data_doc,\n" +
" ctb_part.ser_doc,\n" +
" ctb_part.num_doc,\n" +
" dtb_doct.cod_vdes,\n" +
" CONVERT(NUMERIC(20, 5),\n" +
" SUM((CASE\n" +
" WHEN ctb_part.tipo_partita = 0 THEN - ctb_scad.imp_avere\n" +
" ELSE ctb_scad.imp_dare END)) -\n" +
" ISNULL(incassi_part.imp_incasso, 0)) AS imp_sospeso,\n" +
" ctb_part.cod_vage,\n" +
" dtb_doct.cod_vvet,\n" +
" MIN(ctb_scad.data_scad) AS data_scad,\n" +
" 'N' AS 'flag_doc_da_fatturare',\n" +
" dtb_doct.listino,\n" +
" ctb_part.cod_paga\n" +
" FROM ctb_part\n" +
" \n" +
" INNER JOIN ctb_scad ON (ctb_part.tipo_anag = ctb_scad.tipo_anag)\n" +
" AND (ctb_part.cod_anag = ctb_scad.cod_anag)\n" +
" AND (ctb_part.anno_part = ctb_scad.anno_part)\n" +
" AND (ctb_part.ser_doc = ctb_scad.ser_doc)\n" +
" AND (ctb_part.num_doc = ctb_scad.num_doc)\n" +
" AND (ctb_part.data_doc = ctb_scad.data_doc)\n" +
" \n" +
" INNER JOIN clienti ON (ctb_part.cod_anag = clienti.cod_anag)\n" +
"\n" +
" LEFT OUTER JOIN (SELECT *\n" +
" FROM dtb_doct\n" +
" WHERE dtb_doct.gestione = 'V'\n" +
" AND dtb_doct.prevista_fat = 'N') dtb_doct\n" +
" ON ctb_part.cod_anag = dtb_doct.cod_anag AND\n" +
" ctb_part.data_doc = dtb_doct.data_doc AND\n" +
" ctb_part.ser_doc = dtb_doct.ser_doc AND\n" +
" ctb_part.num_doc = dtb_doct.num_doc\n" +
"\n" +
" LEFT OUTER JOIN incassi incassi_part ON dtb_doct.cod_anag = incassi_part.cod_anag AND\n" +
" dtb_doct.data_doc = incassi_part.data_doc AND\n" +
" dtb_doct.cod_dtip = incassi_part.cod_dtip AND\n" +
" dtb_doct.num_doc = incassi_part.num_doc AND\n" +
" dtb_doct.ser_doc = incassi_part.ser_doc\n" +
" \n" +
" WHERE ctb_part.tipo_anag = 'C'\n" +
" and exists (SELECT DISTINCT ctb_parr.tipo_anag,\n" +
" ctb_parr.cod_anag,\n" +
" ctb_parr.anno_part,\n" +
" ctb_parr.ser_doc,\n" +
" ctb_parr.num_doc\n" +
" FROM ctb_parr inner join ctb_cont on ctb_parr.cod_ccon = ctb_cont.cod_ccon\n" +
" WHERE ctb_cont.tipo_riep = 'CREDITI V/CLIENTI' and \n" +
" (ctb_part.cod_anag = ctb_parr.cod_anag)\n" +
" AND (ctb_part.anno_part = ctb_parr.anno_part)\n" +
" AND (ctb_part.ser_doc = ctb_parr.ser_doc)\n" +
" AND (ctb_part.num_doc = ctb_parr.num_doc)\n" +
" AND (ctb_part.tipo_anag = ctb_parr.tipo_anag) ) \n" +
" AND (ctb_scad.data_doc <=\n" +
" ISNULL(@datasospeso, cast(getDate() as date)))\n" +
" AND (ctb_scad.data_pag IS NULL OR ctb_scad.data_pag > ISNULL(@datasospeso,\n" +
" cast(getDate() as date)))\n" +
" AND (ctb_scad.cod_paga NOT IN (SELECT value_string\n" +
" FROM dbo.parsestringintoarray((SELECT CASE\n" +
" WHEN @filtracondpaga = 'S'\n" +
" THEN (SELECT escludi_cond_paga FROM setup)\n" +
" ELSE NULL END), '|')))\n" +
" GROUP BY ctb_part.cod_anag,\n" +
" dtb_doct.cod_dtip,\n" +
" ctb_part.data_doc,\n" +
" ctb_part.ser_doc,\n" +
" ctb_part.num_doc,\n" +
" ctb_part.cod_vage,\n" +
" dtb_doct.cod_vvet,\n" +
" dtb_doct.cod_vdes,\n" +
" incassi_part.imp_incasso,\n" +
" dtb_doct.listino,\n" +
" ctb_part.cod_paga\n" +
" HAVING SUM((CASE\n" +
" WHEN ctb_part.tipo_partita = 0 THEN - ctb_scad.imp_avere\n" +
" ELSE ctb_scad.imp_dare END)) - ISNULL(incassi_part.imp_incasso, 0) <> 0\n" +
"\n" +
" UNION ALL \n" +
" SELECT CONVERT(INT, 2) AS gruppo,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" CONVERT(VARCHAR(5), dtb_doct.cod_vdes) AS cod_vdes,\n" +
" CONVERT(NUMERIC(20, 5), (dtb_tipi.segno_qta_scar *\n" +
" (dtb_doct.tot_imponib + dtb_doct.tot_iva - dtb_doct.tot_omaggi) -\n" +
" ISNULL(SUM(vtb_dist_incar.imp_incasso), 0))) AS imp_sospeso,\n" +
" dtb_doct.cod_vage,\n" +
" dtb_doct.cod_vvet,\n" +
" dtb_doct.data_doc AS data_scad /* GESTIRE SCADENZE CON FUNZIONE ROSANNA*/,\n" +
" 'S' AS 'flag_doc_da_fatturare',\n" +
" dtb_doct.listino,\n" +
" dtb_doct.cod_paga\n" +
" FROM dtb_doct \n" +
" INNER JOIN dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
" inner join clienti on dtb_doct.cod_anag = clienti.cod_anag \n" +
" LEFT OUTER JOIN vtb_dist_incar ON vtb_dist_incar.cod_anag = dtb_doct.cod_anag AND\n" +
" vtb_dist_incar.cod_dtip = dtb_doct.cod_dtip AND\n" +
" vtb_dist_incar.data_doc = dtb_doct.data_doc AND\n" +
" vtb_dist_incar.ser_doc = dtb_doct.ser_doc AND\n" +
" vtb_dist_incar.num_doc = dtb_doct.num_doc AND\n" +
" vtb_dist_incar.data_dist <= ISNULL(@datasospeso, cast(getDate() as date)),\n" +
" setup\n" +
" WHERE (dtb_doct.data_doc_val IS NULL OR (dtb_doct.data_doc_val IS NOT NULL AND\n" +
" dtb_tipi.cod_ccau IS NULL AND\n" +
" dtb_tipi.prevista_fat = 'N')) \n" +
" AND dtb_doct.gestione = 'V'\n" +
" AND dtb_doct.data_doc <=\n" +
" ISNULL(@datasospeso, cast(getDate() as date))\n" +
" AND dtb_tipi.flag_doc_td = 'N'\n" +
" AND ((setup.gestisci_sospesi_bolla = 'N' AND dtb_doct.prevista_fat = 'N') OR\n" +
" setup.gestisci_sospesi_bolla = 'S') \n" +
"\n" +
" GROUP BY dtb_doct.cod_anag,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" dtb_doct.cod_vage,\n" +
" dtb_doct.cod_vvet,\n" +
" dtb_doct.cod_vdes,\n" +
" dtb_tipi.segno_qta_scar,\n" +
" dtb_doct.tot_imponib,\n" +
" dtb_doct.tot_iva,\n" +
" dtb_doct.tot_omaggi,\n" +
" dtb_doct.acconto,\n" +
" dtb_doct.listino,\n" +
" dtb_doct.cod_paga\n" +
" HAVING (dtb_tipi.segno_qta_scar * (dtb_doct.tot_imponib + dtb_doct.tot_iva - dtb_doct.tot_omaggi) -\n" +
" ISNULL(SUM(vtb_dist_incar.imp_incasso), 0)) <> 0\n" +
" UNION ALL\n" +
" SELECT CONVERT(INT, 3) AS gruppo,\n" +
" vtb_dist_incar.cod_anag,\n" +
" NULL AS cod_dtip,\n" +
" NULL AS data_doc,\n" +
" NULL AS ser_doc,\n" +
" NULL AS num_doc,\n" +
" vtb_dist_incar.cod_vdes AS cod_vdes,\n" +
" CONVERT(NUMERIC(20, 5), -SUM(vtb_dist_incar.imp_incasso)) AS imp_sospeso,\n" +
" ISNULL(vtb_dist_incat.cod_vage, vtb_dist_incat.cod_vvet) AS cod_vage,\n" +
" ISNULL(vtb_dist_incat.cod_vvet, vtb_dist_incat.cod_vage) AS cod_vvet,\n" +
" vtb_dist_incat.data_dist,\n" +
" 'N' AS 'flag_doc_da_fatturare',\n" +
" NULL AS listino,\n" +
" vtb_dist_incar.cod_paga\n" +
" FROM vtb_dist_incat \n" +
" inner join vtb_dist_incar on vtb_dist_incat.data_dist = vtb_dist_incar.data_dist\n" +
" AND vtb_dist_incat.num_dist = vtb_dist_incar.num_dist\n" +
" inner join clienti on vtb_dist_incar.cod_anag = clienti.cod_anag\n" +
" WHERE vtb_dist_incat.num_cmov IS NULL\n" +
" AND vtb_dist_incat.data_dist <=\n" +
" ISNULL(@datasospeso, cast(getDate() as date))\n" +
" AND vtb_dist_incar.cod_dtip IS NULL\n" +
" GROUP BY vtb_dist_incat.cod_vage,\n" +
" vtb_dist_incat.cod_vvet,\n" +
" vtb_dist_incar.cod_anag,\n" +
" vtb_dist_incar.cod_vdes,\n" +
" vtb_dist_incat.data_dist,\n" +
" vtb_dist_incar.cod_paga ) \n" +
"\n" +
" select * from sospesi \n" +
" WHERE NOT EXISTS(SELECT *\n" +
" FROM gtb_anag_note\n" +
" WHERE gtb_anag_note.cod_anag = sospesi.cod_anag\n" +
" AND ((data_scad IS NULL OR\n" +
" data_scad >= ISNULL(@datasospeso, CAST(GETDATE() AS DATE))) AND\n" +
" tipo_note = 'SOSPESI'))\n" +
" )");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,29 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250328183449 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli) || isCustomerDb(IntegryCustomerDB.Carelli_GestFood)) {
executeStatement("\n" +
"insert into stb_activity_type ( activity_type_id, flag_tipologia, flag_view_calendar, flag_attiva)\n" +
"select left(value_string,40), 'A', 1, 'S'\n" +
"from dbo.ParseStringIntoArray('SCARICO MERCE SALA+FRESCHISSIMI|SPUNTA MERCE E POSIZIONAMENTO A SCAFFALE|COMPILAZIONE SCHEDE HACCP|PULIZIA CESTINI E BAGNI|CONSEGNA FONDICASSA|ORDINE MACELLERIA|ORDINE SURGELATI|GESTIONE TRACCIABILITA MACELLERIA E GASTRONOMIA|MONITORAGGIO FRUTTA|MONITORAGGIO DEPERIBILE|MONITORAGGIO MACELLERIA|MONITORAGGIO SALUMERIA|SCARICO APULIA E POSIZIONAMENTO MERCE|EVIDENZIAMENTO SALA|ACCETTAZIONE MERCE |GESTIONE PERDITE SALA|RETTIFICA GIACENZE PER ORDINE AUTOMATICO|INVIO ORDINE CON DELPHI|DISCESA CAPPELLI|EVIDENZIAMENTO SERALE|PULIZIA SERALE SCOPA,BORDI E LAVASGIUGA|CONTA CHIUSURA CASSETTI|VERIFICA PULIZIA CASSE|RAPPORTINO CN|VERIFICA PRESENZA FRONTALINI|CONTROLLO PRODOTTI SOTTOSCADENZA|ORDINE CONSIGLIATO|PREPARAZIONE TESTATE VOLANTINO|POSIZIONAMENTO CARTELLONISTICA VOLANTINO|VERIFICA PRODUTTIVITA SETTIMANA PRECEDENTE|PIANIFICAZIONE ORARI|PULIZIE STRAORDINARIE','|') t\n" +
"where NOt exists(select *\n" +
"from stb_activity_type \n" +
"where value_string = activity_type_id\n" +
")");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -432,13 +432,17 @@ public class PassiveInvoiceService {
codAnag_FP = rifAutofattura.getCodAnag();
}
String iban = UtilityHashMap.<String>getValueIfExists(additionalInfo, IBAN_KEY);
if ( iban != null ) {
iban = iban.toUpperCase();
}
DtbFatturePassive fatturePassive = new DtbFatturePassive()
.setIdAttach(parentActivityId)
.setPartIva(UtilityHashMap.<String>getValueIfExists(additionalInfo, PART_IVA_KEY))
.setDataDoc(dataDoc_FP)
.setNumDoc(numDoc_FP)
.setTotDoc(UtilityHashMap.<BigDecimal>getValueIfExists(additionalInfo, TOT_DOC_KEY))
.setIban(UtilityHashMap.<String>getValueIfExists(additionalInfo, IBAN_KEY))
.setIban(iban)
.setCodDtip(codDtip_FP)
.setCodAnag(codAnag_FP)
.setIdentificativoSdi(UtilityHashMap.getValueIfExists(additionalInfo, RECEIVED_IDENTIFIER_SDI));