diff --git a/.idea/runConfigurations/Tomcat9__1__DBServer_.xml b/.idea/runConfigurations/Tomcat9__1__DBServer_.xml new file mode 100644 index 0000000000..f6e823975f --- /dev/null +++ b/.idea/runConfigurations/Tomcat9__1__DBServer_.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/build/Jenkinsfile.groovy b/build/Jenkinsfile.groovy index 76d1586a1b..6072c624e5 100644 --- a/build/Jenkinsfile.groovy +++ b/build/Jenkinsfile.groovy @@ -49,6 +49,7 @@ pipeline { echo "Updating Tomcat9 from ${WORKSPACE}" powershell returnStdout: true, script: "build\\update_tomcat.ps1 -serviceName \"Tomcat9Backup\" -httpPort \"8082\" -updatedArtifactPath \"${WORKSPACE}\\ems-engine\\target\\ems-api.war\"" bat 'curl -k https://devservices.studioml.it/ems-api/updateWMSApp' + bat 'curl -k https://devservices.studioml.it/ems-api/updateWMSApp?suffix=beta' } } } @@ -86,6 +87,7 @@ sudo /usr/bin/systemctl start tomcat9backup sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tomcat9backup/webapps', remoteDirectorySDF: false, removePrefix: 'ems-engine/target/', sourceFiles: 'ems-engine/target/*.war*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) bat 'curl -k https://services.studioml.it/ems-api/updateWMSApp' + bat 'curl -k https://services.studioml.it/ems-api/updateWMSApp?suffix=beta' } } } diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250214112245.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250214112245.java index ab1b87be17..c39c6012c8 100644 --- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250214112245.java +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250214112245.java @@ -2,6 +2,7 @@ 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.IntegryCustomerDB; import it.integry.ems.migration._base.MigrationModelInterface; public class Migration_20250214112245 extends BaseMigration implements MigrationModelInterface { @@ -11,7 +12,7 @@ public class Migration_20250214112245 extends BaseMigration implements Migration if (isHistoryDB()) return; - if (isCustomer(IntegryCustomer.RossoGargano)) + if (isCustomer(IntegryCustomer.RossoGargano) || isCustomerDb(IntegryCustomerDB.Siciliani_DMS)) return; executeStatement("update stb_menu set flag_attivo = 'N' where cod_opz = 'lr069'"); diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250219120547.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250219120547.java new file mode 100644 index 0000000000..d2a5eb3057 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250219120547.java @@ -0,0 +1,20 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250219120547 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement("UPDATE stb_gest_setup SET description = 'Nel raggruppare gli articoli presenti nei colli ignora tipo pedana e colli per pedana del collo e li prende dall''ordine'" + + " WHERE gest_name = 'w_ddocu_rc' AND section = 'LOAD_COLLI' AND key_section = 'IGNORA_TIPO_PEDANA'"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221090218.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221090218.java new file mode 100644 index 0000000000..beb4efe6a7 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221090218.java @@ -0,0 +1,19 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250221090218 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + executeStatement( + "alter table ctb_ireg add flag_extracee varchar(1) not null default 'N'"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221104043.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221104043.java new file mode 100644 index 0000000000..c4ef64848b --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221104043.java @@ -0,0 +1,32 @@ +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_20250221104043 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'"); + createSetup("SEPA", "BONIFICI", "CREATE_READ_ONLY_FILE", "N", +"Crea il file sepa in sola lettura", false, "SI_NO", false, false, +false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'"); + createSetup("SEPA", "SDD", "CREATE_READ_ONLY_FILE", "N", + "Crea il file sepa in sola lettura", false, "SI_NO", false, false, + false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'"); + + + if (isCustomer(IntegryCustomer.Carelli)) + updateSetupValue("SEPA", "BONIFICI", "CREATE_READ_ONLY_FILE", "S"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221131613.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221131613.java new file mode 100644 index 0000000000..5be239c5e7 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250221131613.java @@ -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_20250221131613 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement("UPDATE stb_gest_setup\n" + + "SET tipo_setup = 'mtb_grup', key_section = 'INCLUDI_BUDGET', flag_setup_depo = 'N'\n" + + "WHERE gest_name = 'PVM'\n" + + " AND section = 'MRP'\n" + + " AND key_section = 'ASSEGNA_BUDGET'"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224114817.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224114817.java new file mode 100644 index 0000000000..518b9aa376 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224114817.java @@ -0,0 +1,21 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250224114817 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if (existsTable("apuliac_agg_prz_csv") && !existColumn("apuliac_agg_prz_csv", "altro")){ + executeStatement("alter table apuliac_agg_prz_csv add altro varchar(max)"); + } + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224145759.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224145759.java new file mode 100644 index 0000000000..21f47d2544 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224145759.java @@ -0,0 +1,22 @@ +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_20250224145759 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + createSetup("PVM","MONITORAGGIO_LINEE_V2","REIMPOSTA_LOTTO_ORDINE_RIPIANIFICATO","N","Se impostato sul deposito di destinazione dell'ordine ripianificato ne azzera il lotto in testata costringendo alla reimpostazione dello stesso prima dell'avvio dell'ordine",false,"SI_NO",false,true,false,false,false,null,false); + if (isCustomer(IntegryCustomer.Gramm)) + executeStatement("INSERT INTO stb_gest_setup_depo VALUES ('01',\t'PVM',\t'MONITORAGGIO_LINEE_V2',\t'REIMPOSTA_LOTTO_ORDINE_RIPIANIFICATO',\t'S',\t'N');"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224165212.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224165212.java new file mode 100644 index 0000000000..ef0f301a45 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250224165212.java @@ -0,0 +1,57 @@ +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_20250224165212 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if (isCustomerDb(IntegryCustomerDB.Siciliani_DMS)) + return; + + createOrUpdateFunction("getEffettiCliente", + "CREATE FUNCTION [dbo].[getEffettiCliente](\n" + + " @codAnag varchar(5), @viewAllDist varchar(1)\n" + + ")\n" + + " RETURNS TABLE as\n" + + " return(SELECT ctb_scad.cod_anag,\n" + + " ctb_scad.data_scad,\n" + + " case\n" + + " when DateAdd(day, -2, ctb_scad.data_scad) <= Cast(getDate() as date) THEN 'R'\n" + + " ELSE 'S' END as tipo_scad_effetto,\n" + + " (ctb_scad.imp_dare * ctb_part.tipo_partita - (1 - ctb_part.tipo_partita) *\n" + + " ctb_scad.imp_avere) AS Importo,\n" + + " gtb_paga.tipo_paga,\n" + + " ctb_scad.data_doc,\n" + + " ctb_scad.ser_doc,\n" + + " ctb_scad.num_doc\n" + + " FROM ctb_scad\n" + + " inner join vtb_riba on ctb_scad.tipo_anag = vtb_riba.tipo_anag AND\n" + + " ctb_scad.cod_anag = vtb_riba.cod_anag AND\n" + + " ctb_scad.data_doc = vtb_riba.data_doc AND\n" + + " ctb_scad.ser_doc = vtb_riba.ser_doc AND\n" + + " ctb_scad.num_doc = vtb_riba.num_doc AND\n" + + " ctb_scad.id_riga = vtb_riba.num_scad\n" + + " inner join ctb_part on ctb_scad.tipo_anag = ctb_part.tipo_anag AND\n" + + " ctb_scad.cod_anag = ctb_part.cod_anag AND\n" + + " ctb_scad.data_doc = ctb_part.data_doc AND\n" + + " ctb_scad.ser_doc = ctb_part.ser_doc AND\n" + + " ctb_scad.num_doc = ctb_part.num_doc\n" + + " inner join vtb_dist on vtb_dist.rif_dist = vtb_riba.rif_dist AND\n" + + " vtb_dist.data_dist = vtb_riba.data_dist\n" + + " inner join gtb_paga on ctb_scad.cod_paga = gtb_paga.cod_paga\n" + + " WHERE ctb_scad.cod_anag = @codAnag\n" + + " AND ctb_scad.data_pag is not null\n" + + " AND DateAdd(day, 5, ctb_scad.data_scad) > Cast(getDate() as date)\n" + + " AND (@viewAllDist = 'S' or vtb_dist.num_cmov is not null))"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225115502.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225115502.java new file mode 100644 index 0000000000..728c7f6dd7 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225115502.java @@ -0,0 +1,24 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250225115502 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'"); + createSetup("W_CMOD_UNICO_RC", "SETUP", "ESCLUDI_FORFETTARI", "S", +null, false, "SI_NO", false, false, +false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225124406.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225124406.java new file mode 100644 index 0000000000..ccc9557932 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225124406.java @@ -0,0 +1,26 @@ +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_20250225124406 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + if (isCustomerDb(IntegryCustomerDB.Siciliani_DMS)) + return; + + if (!existColumn("mtb_aart", "flag_stampa_docu_vend")) + executeStatement( + "alter table mtb_aart add flag_stampa_docu_vend bit not null default 1"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225162629.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225162629.java new file mode 100644 index 0000000000..f49c631568 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250225162629.java @@ -0,0 +1,23 @@ +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_20250225162629 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if (!isCustomerDb(IntegryCustomerDB.RistoCash_RistoCash)) + return; + + executeStatement("update stb_gest_setup set value = 'S' where gest_name = 'W_VDOCU_PAGA_DLG' and section = 'SETUP' and key_section = 'SAVE_REST'"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250226123236.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250226123236.java new file mode 100644 index 0000000000..d625b32a50 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250226123236.java @@ -0,0 +1,19 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250226123236 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement("update stb_gest_setup set value ='S' where gest_name ='W_CGIRORISCONTI_DLG' and section ='SETUP' and key_section ='USE_REST_SERVICE'"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/rules/businessLogic/LoadColliService.java b/ems-core/src/main/java/it/integry/ems/rules/businessLogic/LoadColliService.java index bd0f169fdc..02376197c3 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/businessLogic/LoadColliService.java +++ b/ems-core/src/main/java/it/integry/ems/rules/businessLogic/LoadColliService.java @@ -611,13 +611,8 @@ public class LoadColliService { " SUM(mvw_colr_sum.num_cnf) AS 'num_cnf',\n" + " SUM(mvw_colr_sum.peso_netto_kg_riga) AS 'peso_netto',\n" + " SUM(mvw_colr_sum.peso_lordo_kg_riga) AS 'peso_lordo',\n" + - (ignoreTipoPedana? - " sum(CONVERT(NUMERIC(20, 5), CASE WHEN [gestione] = 'L' THEN NULL ELSE mvw_colr_sum.colli_pedana END))/count(*) AS 'colli_pedana',\n" + - " null AS 'cod_tcol',\n" - : - " CONVERT(NUMERIC(20, 5), CASE WHEN [gestione] = 'L' THEN NULL ELSE mvw_colr_sum.colli_pedana END) AS 'colli_pedana',\n" + - " mvw_colr_sum.cod_tcol AS 'cod_tcol',\n" - ) + + " CONVERT(NUMERIC(20, 5), CASE WHEN [gestione] = 'L' THEN NULL ELSE " + (ignoreTipoPedana?"dtb_ordr.colli_pedana":"mvw_colr_sum.colli_pedana") + " END) AS 'colli_pedana',\n" + + " " + (ignoreTipoPedana?"dtb_ordr.cod_tcol_UL":"mvw_colr_sum.cod_tcol") + " AS 'cod_tcol',\n" + " mvw_colr_sum.cod_dtip_comp AS 'cod_dtip_comp',\n" + " mvw_colr_sum.data_doc_comp AS 'data_doc_comp',\n" + " mvw_colr_sum.ser_doc_comp AS 'ser_doc_comp',\n" + @@ -655,9 +650,8 @@ public class LoadColliService { " mtb_aart.flag_stato, dtb_ordr.cod_art_for, mvw_kit.flag_kit, dtb_ordr.cod_jcom,\n" + " ISNULL(dtb_ordr.unt_ord2, mtb_aart.unt_mis2), ISNULL(dtb_ordr.unt_ord3, mtb_aart.unt_mis3), mtb_aart.tara_kg,\n" + " dtb_ordr.cod_kit, dtb_ordr.cod_alis, dtb_ordr.note,\n" + - (ignoreTipoPedana?"": - " CASE WHEN [gestione] = 'L' THEN NULL ELSE mvw_colr_sum.colli_pedana END, mvw_colr_sum.cod_tcol,\n" - ) + + " CONVERT(NUMERIC(20, 5), CASE WHEN [gestione] = 'L' THEN NULL ELSE " + (ignoreTipoPedana?"dtb_ordr.colli_pedana":"mvw_colr_sum.colli_pedana") + " END),\n" + + " " + (ignoreTipoPedana?"dtb_ordr.cod_tcol_UL":"mvw_colr_sum.cod_tcol") + ",\n" + " mtb_aart.flag_qta_cnf_fissa, dtb_ordr.cod_mart, mvw_colr_sum.cod_dtip_comp, mvw_colr_sum.data_doc_comp,\n" + " mvw_colr_sum.ser_doc_comp, mvw_colr_sum.num_doc_comp, mvw_colr_sum.id_riga_doc_comp, dtb_ordr.id_contratto,\n" + " dtb_ordr.riga_ord, mvw_colr_sum.cod_jcom\n" + diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java index 00123482cb..f4a557f3f5 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java @@ -66,10 +66,12 @@ public class AccountingRules extends QueryRules { } public static Integer completeNumProt(Connection connection, CtbMovt entity) throws Exception { - Integer annoComp = entity.getAnnoComp(); + //Integer annoComp = entity.getAnnoComp(); String codIreg = entity.getCodIreg(); Integer numIreg = entity.getNumIreg(); Integer numProt = entity.getNumProt(); + Date dataCmov = entity.getDataCmov(); + Integer annoProt = UtilityDate.datePart(Calendar.YEAR, dataCmov); if (numIreg == 0) { numIreg = 1; @@ -82,13 +84,13 @@ public class AccountingRules extends QueryRules { + "FROM ctb_inum " + "WHERE cod_ireg = " + UtilityDB.valueToString(codIreg) + " AND " + " num_ireg = " + UtilityDB.valueToString(numIreg) + " AND " - + " anno = " + UtilityDB.valueToString(annoComp); + + " anno = " + UtilityDB.valueToString(annoProt); boolean existReg = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); if (existReg) { CallableStatement cs = connection.prepareCall("{call dbo.NextNumProt(?, ?, ?, ?)}"); - cs.setShort(1, annoComp.shortValue()); + cs.setShort(1, annoProt.shortValue()); cs.setString(2, codIreg); cs.setShort(3, numIreg.shortValue()); cs.setInt(4, numProt); @@ -100,7 +102,7 @@ public class AccountingRules extends QueryRules { if (numProt == 0) numProt = 1; CtbInum ctbInum = new CtbInum() - .setAnno(annoComp) + .setAnno(annoProt) .setCodIreg(codIreg) .setNumIreg(numIreg) .setNumProt(numProt); @@ -1026,15 +1028,14 @@ public class AccountingRules extends QueryRules { if ( ctbMovi.getParent() instanceof CtbMovt) { String sql = Query.format( - "SELECT CAST(IIF((SELECT segno_liquid FROM ctb_ireg WHERE cod_ireg = %s) = -1 AND flag_iva_acq_merci = 'S', 1, 0) AS BIT)\n" + - "FROM gtb_aliq\n" + + "SELECT CAST(IIF((registro.segno_liquid = -1 AND flag_iva_acq_merci = 'S') OR ( registro.segno_liquid = 1 AND flag_iva_da_ventilare = 'S'), 1, 0) AS BIT)\n" + + "FROM gtb_aliq,\n" + + " (SELECT segno_liquid FROM ctb_ireg WHERE cod_ireg = %s) registro \n" + "WHERE cod_aliq = %s", ((CtbMovt) ctbMovi.getParent()).getCodIreg(), ctbMovi.getCodAliq()); ventilazione = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); - - } else { ventilazione = ctbMovi.getVentilazione()==null?false:ctbMovi.getVentilazione(); } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/AtbOfft.java b/ems-core/src/main/java/it/integry/ems_model/entity/AtbOfft.java index 33190e7308..6d2f8a8928 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/AtbOfft.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/AtbOfft.java @@ -422,9 +422,10 @@ public class AtbOfft extends EntityBase { atbOffr.deleteAllEntities(connection, this); } - public enum StatoOfferta implements IBaseEnum { - - RICHIESTA_DI_OFFERTA(0), OFFERTA(1), CONTRATTO(2); + public enum StatoOfferta implements IBaseEnum { + RICHIESTA_DI_OFFERTA(0), + OFFERTA(1), + CONTRATTO(2); private final int value; @@ -432,6 +433,23 @@ public class AtbOfft extends EntityBase { this.value = value; } + public static StatoOfferta from(Object value) { + int castValue; + + if (value instanceof String) { + castValue = Integer.parseInt(value.toString()); + } else { + castValue = (int) value; + } + + for (StatoOfferta b : StatoOfferta.values()) { + if (b.value == castValue) + return b; + } + + return null; + } + @JsonValue public int getValue() { return value; @@ -443,27 +461,13 @@ public class AtbOfft extends EntityBase { } @Override - public Object fromInternal(Object val) { + public StatoOfferta fromInternal(Object val) { return from(val); } - public static AtbOfft.StatoOfferta fromValue(int value) { - for (AtbOfft.StatoOfferta statoOfferta : AtbOfft.StatoOfferta.values()) { - if (statoOfferta.value == value) { - return statoOfferta; - } - } - return null; - } - - public static AtbOfft.StatoOfferta from(Object value) { - int castValue = (int) value; - for (AtbOfft.StatoOfferta statoOfferta : AtbOfft.StatoOfferta.values()) { - if (statoOfferta.value == castValue) { - return statoOfferta; - } - } - return null; + @Override + public String toString() { + return String.valueOf(value); } } } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/CtbIreg.java b/ems-core/src/main/java/it/integry/ems_model/entity/CtbIreg.java index 21bb3efbd6..435c57e984 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/CtbIreg.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/CtbIreg.java @@ -44,6 +44,9 @@ public class CtbIreg extends EntityBase { @SqlField(value = "flag_iva_da_ventilare", maxLength = 1, nullable = false, defaultObjectValue = "N") private String flagIvaDaVentilare; + @SqlField(value = "flag_extracee", maxLength = 1, nullable = false, defaultObjectValue = "N") + private String flagExtracee; + @EntityChild private List ctbInum = new ArrayList<>(); @@ -58,92 +61,90 @@ public class CtbIreg extends EntityBase { return codIreg; } - public void setCodIreg(String codIreg) { + public CtbIreg setCodIreg(String codIreg) { this.codIreg = codIreg; + return this; } public String getDescrizione() { return descrizione; } - public void setDescrizione(String descrizione) { + public CtbIreg setDescrizione(String descrizione) { this.descrizione = descrizione; + return this; } public String getFlagScorporo() { return flagScorporo; } - public void setFlagScorporo(String flagScorporo) { + public CtbIreg setFlagScorporo(String flagScorporo) { this.flagScorporo = flagScorporo; + return this; } public String getTipoNumerazione() { return tipoNumerazione; } - public void setTipoNumerazione(String tipoNumerazione) { + public CtbIreg setTipoNumerazione(String tipoNumerazione) { this.tipoNumerazione = tipoNumerazione; + return this; } public BigDecimal getSegnoLiquid() { return segnoLiquid; } - public void setSegnoLiquid(BigDecimal segnoLiquid) { + public CtbIreg setSegnoLiquid(BigDecimal segnoLiquid) { this.segnoLiquid = segnoLiquid; + return this; } public String getFlagIva() { return flagIva; } - public void setFlagIva(String flagIva) { + public CtbIreg setFlagIva(String flagIva) { this.flagIva = flagIva; + return this; } public String getFlagIvaDaVentilare() { return flagIvaDaVentilare; } - public void setFlagIvaDaVentilare(String flagIvaDaVentilare) { + public CtbIreg setFlagIvaDaVentilare(String flagIvaDaVentilare) { this.flagIvaDaVentilare = flagIvaDaVentilare; + return this; + } + + public String getFlagExtracee() { + return flagExtracee; + } + + public CtbIreg setFlagExtracee(String flagExtracee) { + this.flagExtracee = flagExtracee; + return this; } public List getCtbInum() { return ctbInum; } - public void setCtbInum(List ctbInum) { + public CtbIreg setCtbInum(List ctbInum) { this.ctbInum = ctbInum; + return this; } public List getDtbInum() { return dtbInum; } - public void setDtbInum(List dtbInum) { + public CtbIreg setDtbInum(List dtbInum) { this.dtbInum = dtbInum; - } - - @Override - protected void insertChilds() throws Exception { - for (CtbInum ctbInum : getCtbInum()) { - ctbInum.manageWithParentConnection(connection, ctbInum.getOperation(), dataCompleting, entityHolder); - } - for (DtbInum dtbInum : getDtbInum()) { - dtbInum.manageWithParentConnection(connection, dtbInum.getOperation(), dataCompleting, entityHolder); - } - } - - @Override - protected void updateChilds() throws Exception { - for (CtbInum ctbInum : getCtbInum()) { - ctbInum.manageWithParentConnection(connection, ctbInum.getOperation(), dataCompleting, entityHolder); - } - for (DtbInum dtbInum : getDtbInum()) { - dtbInum.manageWithParentConnection(connection, dtbInum.getOperation(), dataCompleting, entityHolder); - } + return this; } @Override diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java b/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java index aac353784b..6ceec682eb 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java @@ -237,6 +237,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface cancellaAutofattura(AutofatturaDTO autofatturaDTO) throws Exception { + List entitylist = cancellaAutofattura(autofatturaDTO.getNumCmov()); + + List entityRet = entityProcessor.processEntityList(entitylist, true); + + UtilityEntity.throwEntitiesException(entityRet); + + return entityRet; + + } + + public List cancellaAutofattura(Integer numCmov) throws Exception { List entitylist = new ArrayList<>(); String sql = @@ -57,7 +68,7 @@ public class AutofatturaService { "dtb_tipi.cod_ccau is not null AND " + "dtb_tipi.tipo_emissione = 'DIRETTA' AND " + "dtb_tipi.cod_dtip in (select cod_dtip FROM dvw_tipi_integrazioni) ", - autofatturaDTO.getNumCmov()); + numCmov); DtbDoct dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class); @@ -69,18 +80,107 @@ public class AutofatturaService { sql = Query.format( "SELECT * FROM crl_movt_rif_cmov WHERE num_cmov_rif = %s", - autofatturaDTO.getNumCmov()); + numCmov); CrlMovtRifCmov crlMovtRifCmov = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CrlMovtRifCmov.class); crlMovtRifCmov.setOperation(OperationType.DELETE); entitylist.add(crlMovtRifCmov); entitylist.add(dtbDoct); + return entitylist; - List entityRet = entityProcessor.processEntityList(entitylist, true); + } - UtilityEntity.throwEntitiesException(entityRet); + public List rigeneraAutofatture(Date dataInizio, + String codIreg, + String codIregAutoFat, + Integer numDocFirst, + Integer numProtFirst) throws Exception { - return entityRet; + + String sql = + Query.format("SELECT cod_dtip, Cast(num_ireg as int) as num_ireg, dare_avere, serie FROM dtb_tipi WHERE cod_ireg = %s and flag_gestione_speciale = 1 and flag_attivo = 'S' ", codIregAutoFat); + + List> tipiDocumento = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql); + + if ( tipiDocumento == null || tipiDocumento.isEmpty() ) + throw new Exception(String.format("Nessun tipo documento trovato per il registro %s", codIreg)); + + Integer anno = UtilityDate.getYear(dataInizio); + + CtbIreg ctbIreg = new CtbIreg() + .setCodIreg(codIregAutoFat); + + for (HashMap documento : tipiDocumento) { + Integer numIreg = (Integer) documento.get("num_ireg"); + String serie = (String) documento.get("serie"); + if (ctbIreg.getCtbInum().stream().noneMatch(x->x.getNumIreg().equals(numIreg))) { + CtbInum ctbInum = new CtbInum() + .setAnno(anno) + .setNumIreg(numIreg) + .setNumProt(numProtFirst); + ctbInum.setOperation(OperationType.UPDATE); + ctbIreg.getCtbInum().add(ctbInum); + } + + if (ctbIreg.getDtbInum().stream().noneMatch(x->x.getNumIreg().equals(numIreg) && ((String) x.getSerDoc()).equalsIgnoreCase(serie))) { + DtbInum dtbInum = new DtbInum() + .setAnno(anno) + .setNumIreg(numIreg) + .setSerDoc(serie) + .setNumDoc(numDocFirst); + dtbInum.setOperation(OperationType.UPDATE); + ctbIreg.getDtbInum().add(dtbInum); + } + } + + entityProcessor.processEntity(ctbIreg, multiDBTransactionManager); + + sql = + Query.format( + "SELECT ctb_movt.num_cmov,\n" + + " dtb_docr.descrizione_estesa as descrizione,\n" + + " dtb_docr.note AS identificativo_sdi, \n" + + " CAST(ctb_caus.segno_ireg as int) as segno_ireg \n" + + "FROM ctb_movt\n" + + " INNER JOIN crl_movt_rif_cmov ON ctb_movt.num_cmov = crl_movt_rif_cmov.num_cmov\n" + + " INNER JOIN ctb_caus ON ctb_movt.cod_ccau = ctb_caus.cod_ccau\n" + + " INNER JOIN dtb_doct ON crl_movt_rif_cmov.num_cmov_rif = dtb_doct.num_cmov\n" + + " INNER JOIN dtb_docr 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" + + "WHERE ctb_movt.data_cmov BETWEEN %s AND DateFromParts( %s, 12, 31)\n" + + " AND ctb_movt.cod_ireg = %s\n" + + "ORDER BY ctb_movt.data_cmov, ctb_movt.num_prot", + dataInizio, anno, codIreg); + + List> listaMov = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql); + + List entityBaseList = new ArrayList<>(); + for (HashMap mov : listaMov) { + String dareAvere; + if (UtilityHashMap.getValueIfExists(mov, "segno_ireg") < 0) { + dareAvere = "A"; + } else { + dareAvere = "D"; + } + String codDtip = (String) tipiDocumento.stream() + .filter(x->((String) x.get("dare_avere")) + .equalsIgnoreCase(dareAvere)).map(x->x.get("cod_dtip")) + .findFirst().orElse(null); + if ( UtilityString.isNullOrEmpty(codDtip) ) { + throw new Exception(String.format("Tipo documento non configurato per la registrazione delle ", + dareAvere.equalsIgnoreCase("D")?"fatture":"note credito")); + } + + AutofatturaDTO autofatturaDTO = + new AutofatturaDTO().setCodDtip(codDtip) + .setNumCmov((Integer) mov.get("num_cmov")) + .setDescrizione((String) mov.get("descrizione")) + .setIdentificativoSdi((String) mov.get("identificativo_sdi")) + .setRigeneraAutofattura(true); + entityBaseList.add(generaAutofattura(autofatturaDTO)); + } + return entityBaseList; } public EntityBase generaAutofattura(AutofatturaDTO autofatturaDTO) throws Exception { @@ -144,7 +244,6 @@ public class AutofatturaService { throw new Exception(String.format("Attenzione sul cliente %s non è stata inserita la modalità di pagamento, impossibile procedere", datiMov.get("cod_anag"))); } - boolean pagaScadenze = false; String codDtip = (String) datiMov.get("cod_dtip"); OperationType operationType = OperationType.DELETE_THEN_INSERT; @@ -169,29 +268,40 @@ public class AutofatturaService { } } - DtbDoct dtbDoct = - new DtbDoct() - .setCodAnag((String) datiMov.get("cod_anag")) - .setCodDtip(codDtip) - .setDataDoc((Date) datiMov.get("data_cmov")) - .setDataReg((Date) datiMov.get("data_cmov")) - .setSerDoc((String) datiMov.get("ser_doc")) - .setNumDoc((Integer) datiMov.get("num_doc")); - - dtbDoct.setOperation(operationType); - String codDtipOld = UtilityHashMap.getValueIfExists(datiMov, "cod_dtip"); - if (datiMov.get("cod_anag_old") != null || - datiMov.get("data_doc_old") != null || - (codDtipOld != null && !codDtipOld.equalsIgnoreCase(autofatturaDTO.getCodDtip()))) { - HashMap oldPk = new HashMap<>(); - if (datiMov.get("cod_anag_old") != null) oldPk.put("codAnag", datiMov.get("cod_anag_old")); - if (datiMov.get("data_doc_old") != null) - oldPk.put("dataDoc", new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(datiMov.get("data_doc_old"))); - if (datiMov.get("cod_dtip") != null && !datiMov.get("cod_dtip").equals(codDtip)) - oldPk.put("codDtip", datiMov.get("cod_dtip")); - dtbDoct.setOldPk(oldPk); + DtbDoct dtbDoct; + if (autofatturaDTO.isRigeneraAutofattura()) { + entityList.addAll(cancellaAutofattura((Integer) datiMov.get("num_cmov_rif"))); + operationType = OperationType.INSERT; + dtbDoct = + new DtbDoct() + .setCodAnag((String) datiMov.get("cod_anag")) + .setCodDtip(codDtip) + .setDataDoc((Date) datiMov.get("data_cmov")) + .setDataReg((Date) datiMov.get("data_cmov")); + } else { + dtbDoct = + new DtbDoct() + .setCodAnag((String) datiMov.get("cod_anag")) + .setCodDtip(codDtip) + .setDataDoc((Date) datiMov.get("data_cmov")) + .setDataReg((Date) datiMov.get("data_cmov")) + .setSerDoc((String) datiMov.get("ser_doc")) + .setNumDoc((Integer) datiMov.get("num_doc")); + String codDtipOld = UtilityHashMap.getValueIfExists(datiMov, "cod_dtip"); + if (datiMov.get("cod_anag_old") != null || + datiMov.get("data_doc_old") != null || + (codDtipOld != null && !codDtipOld.equalsIgnoreCase(autofatturaDTO.getCodDtip()))) { + HashMap oldPk = new HashMap<>(); + if (datiMov.get("cod_anag_old") != null) oldPk.put("codAnag", datiMov.get("cod_anag_old")); + if (datiMov.get("data_doc_old") != null) + oldPk.put("dataDoc", new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(datiMov.get("data_doc_old"))); + if (datiMov.get("cod_dtip") != null && !datiMov.get("cod_dtip").equals(codDtip)) + oldPk.put("codDtip", datiMov.get("cod_dtip")); + dtbDoct.setOldPk(oldPk); + } } dtbDoct.setNumCmovAutofattura(autofatturaDTO.getNumCmov()); + dtbDoct.setOperation(operationType); if (UtilityString.isNullOrEmpty(dtbDoct.getCodMdep())) { sql = "SELECT min(cod_mdep) FROM mtb_depo WHERE flag_movimentabile = 'S'"; @@ -255,7 +365,7 @@ public class AutofatturaService { if (entityBase.getException() != null) { multiDBTransactionManager.rollbackAll(); throw new Exception(entityBase.getException()); - } else if (entityBase instanceof DtbDoct) { + } else if (entityBase instanceof DtbDoct && entityBase.getOperation() != OperationType.DELETE) { docRet = (DtbDoct) entityBase; } } diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliEviosysImportService.java b/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliEviosysImportService.java index 415bf98a8f..fd36455046 100644 --- a/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliEviosysImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliEviosysImportService.java @@ -92,43 +92,43 @@ public class ColliEviosysImportService { } String sql = Query.format( - "SELECT TOP 1 dtb_ordt.num_ord,\n" + - " dtb_ordt.data_ord,\n" + - " dtb_ordt.cod_mdep\n" + - "FROM dtb_ordt\n" + - " INNER JOIN dbo.dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord AND dtb_ordr.data_ord = dtb_ordt.data_ord AND\n" + - " dtb_ordt.gestione = dtb_ordr.gestione\n" + - "WHERE cod_anag = %s\n" + - " AND dtb_ordt.gestione = 'A'\n" + - " AND flag_annulla = 'N'\n" + - " AND flag_evaso = 'I'\n" + - " AND cod_mart = %s\n" + - "GROUP BY dtb_ordt.num_ord, dtb_ordt.data_ord, dtb_ordt.cod_mdep, data_cons\n" + - "HAVING MAX(data_cons) <= %s\n" + - "ORDER BY data_cons DESC", + "WITH getOrder AS (SELECT dtb_ordr.num_ord,\n" + + " dtb_ordr.data_ord,\n" + + " dtb_ordr.riga_ord,\n" + + " dtb_ordr.cod_mdep,\n" + + " DENSE_RANK() OVER (ORDER BY data_cons DESC, dtb_ordt.data_ord, dtb_ordt.num_ord) AS dr\n" + + " FROM dtb_ordt\n" + + " INNER JOIN dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord\n" + + " AND dtb_ordr.data_ord = dtb_ordt.data_ord\n" + + " AND dtb_ordt.gestione = dtb_ordr.gestione\n" + + " WHERE cod_anag = %s\n" + + " AND dtb_ordt.gestione = 'A'\n" + + " AND flag_annulla = 'N'\n" + + " AND flag_evaso = 'I'\n" + + " AND cod_mart = %s\n" + + " AND data_cons <= %s)\n" + + "SELECT *\n" + + "FROM getOrder\n" + + "WHERE dr = 1", codAnag, codMart, new Date() ); - HashMap returnQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql); - - codMdep = returnQuery.get("cod_mdep").toString(); - - DtbOrdr ordr = new DtbOrdr(); - ordr.setDataOrd((Date) returnQuery.get("data_ord")).setGestione("A").setNumOrd((Integer) returnQuery.get("num_ord")); - List dtbOrdrs = new ArrayList<>(); - dtbOrdrs.add(ordr); + DtbOrdr dtbOrdr = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(conn, sql, DtbOrdr.class); MtbColr mtbColr = new MtbColr() .setCodMart(codMart) .setPartitaMag(lotto) - .setQtaCol(UtilityString.stringToBigDecimal(qta)); + .setQtaCol(UtilityString.stringToBigDecimal(qta)) + .setCodMart(codMart) + .setDataOrd(UtilityLocalDate.localDateFromDate(dtbOrdr.getDataOrd())) + .setNumOrd(dtbOrdr.getNumOrd()) + .setRigaOrd(dtbOrdr.getRigaOrd());; MtbColt mtbColt = new MtbColt() .setDataCollo(LocalDate.now()) .setSegno(1) .setGestione("A") .setBarcodeUl(barcodeUl) - .setCodMdep(codMdep) - .setFiltroOrdini(MtbColtUtils.generaFiltroOrdini(null, dtbOrdrs)) + .setCodMdep(dtbOrdr.getCodMdep()) .setCodAnag(codAnag); mtbColt.setMtbColr(new ArrayList<>()) @@ -141,20 +141,7 @@ public class ColliEviosysImportService { } } - for (MtbColt mtbColt : mtbColtList) { - entityProcessor.processEntity(mtbColt, multiDBTransactionManager); - - List colDistributed = distribuzioneColliService.distribuzioneRigheColloNew(new FiltroDistribuzioneColloDTO() - .setDataCollo(mtbColt.getDataCollo()) - .setSerCollo(mtbColt.getSerCollo()) - .setGestione(mtbColt.getGestione()) - .setNumCollo(mtbColt.getNumCollo()) - .setCriterioDistribuzione("U"), true); - - entityBases.addAll(entityProcessor.processEntityList(colDistributed, multiDBTransactionManager, true)); - } - - return entityBases; + return entityProcessor.processEntityList(mtbColtList, multiDBTransactionManager, true); } private Object cellToString(Cell cell) { diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliImportService.java b/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliImportService.java index 6c938fe321..e8c48a44b5 100644 --- a/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/logistic/service/ColliImportService.java @@ -452,6 +452,9 @@ public class ColliImportService { dataScad = new Date(); } + String oraProdTemp = line.substring(224, 224 + 4).trim(); + Integer oraProd = oraProdTemp.isEmpty() ? null : Integer.parseInt(oraProdTemp); + vebadDesadv.getDettagliLotti() .add( new VebadDesadvDettagliLottiDTO() @@ -469,7 +472,7 @@ public class ColliImportService { .setTranscodifica(line.substring(134, 134 + 20)) .setCodStabilimentoProd(line.substring(154, 154 + 20)) .setDescStabilimentoProd(line.substring(174, 174 + 50)) - .setOraProd(Integer.parseInt(line.substring(224, 224 + 4))) + .setOraProd(oraProd) ); } } @@ -503,38 +506,36 @@ public class ColliImportService { String codMart = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); sql = Query.format( - "SELECT TOP 1 dtb_ordt.num_ord,\n" + - " dtb_ordt.data_ord,\n" + - " dtb_ordt.cod_mdep\n" + - "FROM dtb_ordt\n" + - " INNER JOIN dbo.dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord AND dtb_ordr.data_ord = dtb_ordt.data_ord AND\n" + - " dtb_ordt.gestione = dtb_ordr.gestione\n" + - "WHERE cod_anag = %s\n" + - " AND dtb_ordt.gestione = 'A'\n" + - " AND flag_annulla = 'N'\n" + - " AND flag_evaso = 'I'\n" + - " AND cod_mart = %s\n" + - "GROUP BY dtb_ordt.num_ord, dtb_ordt.data_ord, dtb_ordt.cod_mdep, data_cons\n" + - "HAVING MAX(data_cons) <= %s\n" + - "ORDER BY data_cons DESC", + "WITH getOrder AS (SELECT dtb_ordr.num_ord,\n" + + " dtb_ordr.data_ord,\n" + + " dtb_ordr.riga_ord,\n" + + " DENSE_RANK() OVER (ORDER BY data_cons DESC, dtb_ordt.data_ord, dtb_ordt.num_ord) AS dr\n" + + " FROM dtb_ordt\n" + + " INNER JOIN dtb_ordr ON dtb_ordt.num_ord = dtb_ordr.num_ord\n" + + " AND dtb_ordr.data_ord = dtb_ordt.data_ord\n" + + " AND dtb_ordt.gestione = dtb_ordr.gestione\n" + + " WHERE cod_anag = %s\n" + + " AND dtb_ordt.gestione = 'A'\n" + + " AND flag_annulla = 'N'\n" + + " AND flag_evaso = 'I'\n" + + " AND cod_mart = %s\n" + + " AND data_cons <= %s)\n" + + "SELECT *\n" + + "FROM getOrder\n" + + "WHERE dr = 1", codAnag, codMart, vebadDesadv.getTestataDoc().getDataDDT() ); - HashMap returnQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql); - - DtbOrdr ordr = new DtbOrdr(); - ordr.setDataOrd((Date) returnQuery.get("data_ord")).setGestione("A").setNumOrd((Integer) returnQuery.get("num_ord")); - List dtbOrdrs = new ArrayList<>(); - dtbOrdrs.add(ordr); - - mtbColt.setFiltroOrdini(MtbColtUtils.generaFiltroOrdini(null, dtbOrdrs)) - .setCodMdep(returnQuery.get("cod_mdep").toString()); + DtbOrdr dtbOrdr = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(conn, sql, DtbOrdr.class); MtbColr mtbColr = new MtbColr() .setDataScadPartita(dettagliLotti.getDataScad()) .setPartitaMag(dettagliLotti.getLotto()) .setCodBarre(dettagliLotti.getGtin()) .setNumCnf(new BigDecimal(dettagliLotti.getQtaSscc())) - .setCodMart(codMart); + .setCodMart(codMart) + .setDataOrd(UtilityLocalDate.localDateFromDate(dtbOrdr.getDataOrd())) + .setNumOrd(dtbOrdr.getNumOrd()) + .setRigaOrd(dtbOrdr.getRigaOrd()); mtbColt.setMtbColr(new ArrayList<>()) .getMtbColr() @@ -543,19 +544,6 @@ public class ColliImportService { mtbColts.add(mtbColt); } - for (MtbColt mtbColt : mtbColts) { - entityProcessor.processEntity(mtbColt, multiDBTransactionManager); - - List colDistributed = distribuzioneColliService.distribuzioneRigheColloNew(new FiltroDistribuzioneColloDTO() - .setDataCollo(mtbColt.getDataCollo()) - .setSerCollo(mtbColt.getSerCollo()) - .setGestione(mtbColt.getGestione()) - .setNumCollo(mtbColt.getNumCollo()) - .setCriterioDistribuzione("U"), true); - - entityBases.addAll(entityProcessor.processEntityList(colDistributed, multiDBTransactionManager, true)); - } - - return entityBases; + return entityProcessor.processEntityList(mtbColts, multiDBTransactionManager, true); } } diff --git a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportApuliaPromoService.java b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportApuliaPromoService.java index 7d2a2983c6..d58c481d58 100644 --- a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportApuliaPromoService.java +++ b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportApuliaPromoService.java @@ -88,7 +88,13 @@ public class ImportApuliaPromoService { " INNER JOIN mtb_lisa art ON mtb_lisa.cod_barre = art.cod_barre AND mtb_lisa.cod_alis = art.cod_alis\n" + "WHERE mtb_lisa.cod_art_for = " + UtilityDB.valueToString(promozione.getCodArtForn()) + "\n" + " AND mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) + "\n" + - " AND mtb_lisa.cod_barre is not null \n"; + " AND mtb_lisa.cod_barre is not null \n" + + "SELECT art.cod_mart, art.cod_art_for\n" + + "FROM mtb_lisa\n" + + " INNER JOIN mtb_lisa art ON mtb_lisa.descr_art_forn = art.descr_art_forn AND mtb_lisa.cod_alis = art.cod_alis\n" + + "WHERE mtb_lisa.cod_art_for = " + UtilityDB.valueToString(promozione.getCodArtForn()) + "\n" + + " AND mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) + "\n" + + " AND mtb_lisa.descr_art_forn is not null \n"; List mtbLisaData = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, MtbLisaData.class, OperationType.INSERT_OR_UPDATE); diff --git a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoApuliaCarrefourService.java b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoApuliaCarrefourService.java index 78999ef682..6df9a006f3 100644 --- a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoApuliaCarrefourService.java +++ b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportListiniAcquistoApuliaCarrefourService.java @@ -446,7 +446,8 @@ public class ImportListiniAcquistoApuliaCarrefourService { + " um_frontalino varchar(80)," + " um_peso varchar(80)," + " espolodi_dist varchar(80)," - + " partita_iva_forn varchar(80))"; + + " partita_iva_forn varchar(80)," + + " altro varchar(max))"; } ps = conn.prepareStatement(sql); ps.executeUpdate(); diff --git a/ems-engine/src/main/java/it/integry/ems/production/Import/service/ProductionPlanService.java b/ems-engine/src/main/java/it/integry/ems/production/Import/service/ProductionPlanService.java index 5bc3650f26..49e595bddc 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/Import/service/ProductionPlanService.java +++ b/ems-engine/src/main/java/it/integry/ems/production/Import/service/ProductionPlanService.java @@ -305,25 +305,29 @@ public class ProductionPlanService { ordLavDTO.setPartite(saveProductionPlanDTO.getPartite()); - sql = Query.format( - "SELECT num_ord, qta_prod\n" + - "FROM dtb_ordt\n" + - "WHERE cod_jcom = %s\n" + - " AND cod_prod = %s\n" + - " AND data_ord = %s", - saveProductionPlanDTO.getCodJcom(), - saveProductionPlanDTO.getCodProd(), - saveProductionPlanDTO.getDataOrd() - ); + // Se il deposito dell'ordine di lavorazione è diverso dal quello della sede + // allora siamo in campagna e quindi non accorpiamo prodotto, commessa nello stesso ordine + if (depo != null && codMdep.equalsIgnoreCase(depo.getCodMdep())) { + sql = Query.format( + "SELECT num_ord, qta_prod\n" + + "FROM dtb_ordt\n" + + "WHERE cod_jcom = %s\n" + + " AND cod_prod = %s\n" + + " AND data_ord = %s", + saveProductionPlanDTO.getCodJcom(), + saveProductionPlanDTO.getCodProd(), + saveProductionPlanDTO.getDataOrd() + ); - if (numOrdL == null || numOrdL == 0) { - HashMap ordData = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql); + if (numOrdL == null || numOrdL == 0) { + HashMap ordData = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql); - if (ordData != null) { - numOrdL = UtilityHashMap.getValueIfExists(ordData, "num_ord"); + if (ordData != null) { + numOrdL = UtilityHashMap.getValueIfExists(ordData, "num_ord"); - qtaProd = (qtaProd != null ? qtaProd : BigDecimal.ZERO) - .add(UtilityHashMap.getValueIfExists(ordData, "qta_prod")); + qtaProd = (qtaProd != null ? qtaProd : BigDecimal.ZERO) + .add(UtilityHashMap.getValueIfExists(ordData, "qta_prod")); + } } } diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MRPDailySetupGruppiDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MRPDailySetupGruppiDTO.java index 7bce718047..8d05cf1827 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MRPDailySetupGruppiDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MRPDailySetupGruppiDTO.java @@ -5,11 +5,16 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class MRPDailySetupGruppiDTO { @JsonProperty("cod_mgrp") private String codMgrp; + @JsonProperty("includi_sospesi") private boolean includiSospesi; + @JsonProperty("agg_imp_prox") private boolean aggImpProx; + @JsonProperty("includi_budget") + private boolean includiBudget; + public boolean isAggImpProx() { return aggImpProx; } @@ -36,4 +41,13 @@ public class MRPDailySetupGruppiDTO { this.includiSospesi = includiSospesi; return this; } + + public boolean isIncludiBudget() { + return includiBudget; + } + + public MRPDailySetupGruppiDTO setIncludiBudget(boolean includiBudget) { + this.includiBudget = includiBudget; + return this; + } } diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MrpDailyMaterialReqDetDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MrpDailyMaterialReqDetDTO.java index 656259f2a7..a046179e35 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MrpDailyMaterialReqDetDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/MRP/MrpDailyMaterialReqDetDTO.java @@ -351,15 +351,15 @@ public class MrpDailyMaterialReqDetDTO { @JsonIgnore public BigDecimal getFabbisogno(boolean includiSospesi, boolean includiBudget) { BigDecimal fabbisogno = getImpegni(); - if (includiSospesi) { - fabbisogno = fabbisogno.add(getImpegniProx(includiBudget)); - } + fabbisogno = fabbisogno.add(getImpegniProx(includiSospesi, includiBudget)); return fabbisogno; } @JsonIgnore - public BigDecimal getImpegniProx(boolean includiBudget) { - BigDecimal qtaImpProx = getQtaContrVend().add(getQtaImpProxOrd()); + public BigDecimal getImpegniProx(boolean includiSospesi, boolean includiBudget) { + BigDecimal qtaImpProx = BigDecimal.ZERO; + if (includiSospesi) + qtaImpProx = getQtaContrVend().add(getQtaImpProxOrd()); if (includiBudget) qtaImpProx = qtaImpProx.add(getQtaImpBudget()); return qtaImpProx; diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/RegisterSupervisorDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/RegisterSupervisorDTO.java index 303cd44f7c..7110431b77 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/RegisterSupervisorDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/RegisterSupervisorDTO.java @@ -17,6 +17,8 @@ public class RegisterSupervisorDTO { private int supervisorServicePort = 10251; + private int printQuantity = 1; + private String lineaType; public String getCodJfas() { @@ -76,4 +78,13 @@ public class RegisterSupervisorDTO { this.lineaType = lineaType; return this; } + + public int getPrintQuantity() { + return printQuantity; + } + + public RegisterSupervisorDTO setPrintQuantity(int printQuantity) { + this.printQuantity = printQuantity; + return this; + } } diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java index d0c7ca78b3..7a3d5d3a9c 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java @@ -814,7 +814,9 @@ public class MesProductionServiceV2 { } - printerService.print(printerName, new ByteArrayInputStream(bytes), "application/pdf", orientation); + for (int i= 0;i dettagliArt = UtilityHashMap.getValueIfExists(listArticoli, art.getCodMart()); if (dettagliArt == null) continue; @@ -200,8 +201,6 @@ public class MrpDailyMaterialReqService { } for (MrpDailyMaterialReqDetDTO x : gg.getValue()) { - boolean includiBudget = setupGest.getSetupDepoBoolean(multiDBTransactionManager.getPrimaryConnection(), GEST_NAME, SECTION, "ASSEGNA_BUDGET", x.getCodMdep()); - giacenza = giacenza.add(x.getGiacenza()); qtaContVend = qtaContVend.add(x.getQtaContrVend()); qtaArrivi = qtaArrivi.add(x.getArrivi()); @@ -219,7 +218,7 @@ public class MrpDailyMaterialReqService { .addQtaImpegni(x.getImpegni()) .addQtaArrivi(x.getArrivi()) .addGiacenza(!datiGg.isEmpty() ? datiGg.get(datiGg.size() - 1).getDisponibilita() : x.getGiacenza()) - .addQtaImpegniProx(x.getImpegniProx(includiBudget)); + .addQtaImpegniProx(x.getImpegniProx(inclusiSospesi, includiBudget)); if (depoArt != null) addDisponibilitaDepo((String) gg.getKey().get("codMdep"), depoArt, x.getDisponibilita(inclusiSospesi, includiArrivi, includiBudget)); @@ -303,6 +302,14 @@ public class MrpDailyMaterialReqService { } + private boolean getSetupIncludiBudget(String codMgrp, List setupGruppiDTO) { + return + Boolean.TRUE.equals(Stream.of(setupGruppiDTO).filter(x -> x.getCodMgrp().equalsIgnoreCase(codMgrp)) + .findFirst() + .map(MRPDailySetupGruppiDTO::isIncludiBudget).orElse(true)); + + } + private boolean isSottoScorta(List datiDepo) { if (datiDepo == null) return false; diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/MrpSetupHandlerService.java b/ems-engine/src/main/java/it/integry/ems/production/service/MrpSetupHandlerService.java index a356187aad..1b643fe8cb 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/MrpSetupHandlerService.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/MrpSetupHandlerService.java @@ -7,6 +7,7 @@ import it.integry.ems.production.dto.MRP.MRPDailySetupSottogruppiDTO; import it.integry.ems.settings.Model.AvailableConnectionsModel; import it.integry.ems.settings.Model.SettingsModel; import it.integry.ems.settings.SettingsController; +import it.integry.ems.sync.MultiDBTransaction.Connection; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityDebug; import it.integry.ems_model.service.SetupGest; @@ -135,21 +136,27 @@ public class MrpSetupHandlerService { } private List getSetupGruppi(MultiDBTransactionManager multiDBTransactionManager) throws Exception { + Connection conn = multiDBTransactionManager.getPrimaryConnection(); final String gestName = "PVM"; final String section = "MRP"; final String keySectionSospesi = "USE_SOSPESI"; - String useSosepsi = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), gestName, section, keySectionSospesi); + String useSosepsi = setupGest.getSetup(conn, gestName, section, keySectionSospesi); if (UtilityString.isNullOrEmpty(useSosepsi)) useSosepsi = "N"; final String keySectionAggImpProx = "AGGIORNA_IMP_PROX"; - String aggImpProx = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), gestName, section, keySectionAggImpProx); + String aggImpProx = setupGest.getSetup(conn, gestName, section, keySectionAggImpProx); if (UtilityString.isNullOrEmpty(aggImpProx)) aggImpProx = "N"; + final String keySectionIncludiBudget = "INCLUDI_BUDGET"; + String includiBudget = setupGest.getSetup(conn, gestName, section, keySectionIncludiBudget); + if (UtilityString.isNullOrEmpty(includiBudget)) includiBudget = "N"; + String sql = Query.format( "SELECT cod_mgrp, \n" + "CAST(CASE WHEN IsNull("+ keySectionSospesi +", %s) = 'S' THEN 1 ELSE 0 END as BIT) as includi_sospesi, \n" + - "CAST(CASE WHEN IsNull("+ keySectionAggImpProx +", %s) = 'S' THEN 1 ELSE 0 END as BIT) as agg_imp_prox\n" + + "CAST(CASE WHEN IsNull("+ keySectionAggImpProx +", %s) = 'S' THEN 1 ELSE 0 END as BIT) as agg_imp_prox, \n" + + "CAST(CASE WHEN IsNull("+ keySectionIncludiBudget +", %s) = 'S' THEN 1 ELSE 0 END as BIT) as includi_budget\n" + "FROM (\n" + "SELECT mtb_grup.cod_mgrp, stb_gest_setup_det.key_section, stb_gest_setup_det.value \n" + "FROM mtb_grup\n" + @@ -160,10 +167,10 @@ public class MrpSetupHandlerService { " mtb_grup.cod_mgrp = stb_gest_setup_det.val_col_rif) t\n" + "PIVOT\n" + "( max(value) \n" + - "FOR key_section IN (["+ keySectionAggImpProx +"],["+ keySectionSospesi +"])) AS PivotTable" , - useSosepsi, aggImpProx, gestName, section); + "FOR key_section IN (["+ keySectionAggImpProx +"],["+ keySectionSospesi +"],["+ keySectionIncludiBudget +"])) AS PivotTable" , + useSosepsi, aggImpProx, includiBudget, gestName, section); - return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MRPDailySetupGruppiDTO.class); + return UtilityDB.executeSimpleQueryDTO(conn, sql, MRPDailySetupGruppiDTO.class); } private List getSetupSottogruppi(MultiDBTransactionManager multiDBTransactionManager) throws Exception { diff --git a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmAccettazioneService.java b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmAccettazioneService.java index 44ff51d7fb..3184b8ee25 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmAccettazioneService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmAccettazioneService.java @@ -362,7 +362,8 @@ public class PvmAccettazioneService { if (dtbDoct instanceof WdtbDoct) ((WdtbDoct) dtbDoct) .setDataInizTrasp(dataInizTrap) - .setOraInizTrasp(oraInizTrasp); + .setOraInizTrasp(oraInizTrasp) + .setDataReg(dataInizTrap); } private WdtbDocr insertRowBolla(AccettazioneDTO.Articoli articolo, Integer idRiga, String partitaMag, BigDecimal qtaDoc, BigDecimal valUnt) throws Exception { diff --git a/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java b/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java index 157facf408..6232b75d1c 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/service/GiacenzaService.java @@ -739,7 +739,7 @@ public class GiacenzaService { " )\n" + " )\n" + " -- prendiamo i soli ordini del SECCO, sarà da modificare quando inizieranno ad ordinare anche altri (es. APULD)\n" + - " AND t.listino IN (" + UtilityDB.listValueToString(listini) + ")\n" + + ( listini != null && !listini.isEmpty() ?" AND t.listino IN (" + UtilityDB.listValueToString(listini) + ")\n":"") + " -- ordine non ancora evaso\n" + " AND flag_evaso <> 'E'\n" + " -- filtro solamente un Pdv\n" + diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java index c607f16b9d..cedb737fc0 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java @@ -37,7 +37,6 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.net.InetAddress; import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -103,24 +102,34 @@ public class WMSGenericController { return ServiceRestResponse.createPositiveResponse(wmsGenericService.getPickingListFromBarcodeOrdine(codBarreBancale)); } - @RequestMapping(value = "updateWMSApp", method = RequestMethod.GET) - public ServiceRestResponse updateWMSApp() throws Exception { + @GetMapping(value = "updateWMSApp") + public ServiceRestResponse updateWMSApp(@RequestParam(required = false) String suffix) throws Exception { String baseDownloadUrl = "https://jnxuo98bbuecrmbkciijvpkg.file.core.windows.net/storage-ci/wms/"; String azureToken = "?sv=2022-11-02&ss=bf&srt=sco&sp=r&se=2030-11-04T17:45:57Z&st=2024-11-04T09:45:57Z&spr=https&sig=CGxbbC08xuvAz%2B6k2C6HDq6e9UGitb0lnbbsWeRG%2FiU%3D"; - String androidAppFilePath = Paths.get(UtilityDirs.getWebAppPath(), "wms", "android-release.apk").toString(); - HttpRestWrapper.downloadFile(baseDownloadUrl + "android-release.apk" + azureToken, androidAppFilePath); + if (UtilityString.isNullOrEmpty(suffix)) + suffix = ""; + else + suffix = "-" + suffix; - String androidAppVersionFilePath = Paths.get(UtilityDirs.getWebAppPath(), "wms", "version.txt").toString(); - HttpRestWrapper.downloadFile(baseDownloadUrl + "version.txt" + azureToken, androidAppVersionFilePath); + String androidAppFilePath = Paths.get(UtilityDirs.getWebAppPath(), "wms", "android-release" + suffix + ".apk").toString(); + HttpRestWrapper.downloadFile(baseDownloadUrl + "android-release" + suffix + ".apk" + azureToken, androidAppFilePath); + + String androidAppVersionFilePath = Paths.get(UtilityDirs.getWebAppPath(), "wms", "version" + suffix + ".txt").toString(); + HttpRestWrapper.downloadFile(baseDownloadUrl + "version" + suffix + ".txt" + azureToken, androidAppVersionFilePath); return ServiceRestResponse.createPositiveResponse(); } - @RequestMapping(value = EmsRestConstants.PATH_CHECK_LATEST_WMS_VERSION_JSON, method = RequestMethod.GET) - public Object checkWMSLatestVersionJSON(HttpServletResponse response) throws Exception { - String wmsVersionFile = Paths.get(UtilityDirs.getWebAppPath(), "wms", "version.txt").toString(); + @GetMapping(value = EmsRestConstants.PATH_CHECK_LATEST_WMS_VERSION_JSON) + public WMSVersionDTO checkWMSLatestVersionJSON(HttpServletResponse response, @RequestParam(required = false) String suffix) throws Exception { + if (UtilityString.isNullOrEmpty(suffix)) + suffix = ""; + else + suffix = "-" + suffix; + + String wmsVersionFile = Paths.get(UtilityDirs.getWebAppPath(), "wms", "version" + suffix + ".txt").toString(); if (new File(wmsVersionFile).exists()) { List lines = UtilityString.splitStringToMultipleLine(IoUtils.readFileAsString(new File(wmsVersionFile))); @@ -139,14 +148,13 @@ public class WMSGenericController { WMSVersionDTO wmsVersionDTO = new WMSVersionDTO() .setLatestVersion(versionString) .setLatestVersionCode(versionCode) - .setUrl("http://" + InetAddress.getLocalHost().getHostAddress() + ":8080" + emsProperties.getRootApi() + "/wms/android-release.apk"); + .setUrl("/wms/android-release" + suffix + ".apk"); - - if(lines.size() > 2) { + if (lines.size() > 2) { String forcedLine = lines.get(2); - if(forcedLine.startsWith("forced=")) { + if (forcedLine.startsWith("forced=")) { String forcedValue = forcedLine.replace("forced=", "").trim(); boolean forced = Boolean.parseBoolean(forcedValue); wmsVersionDTO.setForced(forced); @@ -156,8 +164,8 @@ public class WMSGenericController { return wmsVersionDTO; } else { - logger.warn("File version.txt non trovato"); - response.sendError(404, "File version.txt non trovato"); + logger.warn("File version" + suffix + ".txt non trovato"); + response.sendError(404, "File version" + suffix + ".txt non trovato"); return null; } } @@ -630,7 +638,7 @@ public class WMSGenericController { @RequestMapping(value = "wms/rientroMerce", method = RequestMethod.POST) public @ResponseBody ServiceRestResponse rientroMerce(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, - @RequestBody RientroMerceRequestDTO rientroMerceRequestDTO) throws Exception { + @RequestBody RientroMerceRequestDTO rientroMerceRequestDTO) throws Exception { wmsGenericService.rientroMerce(rientroMerceRequestDTO); return ServiceRestResponse.createPositiveResponse(); @@ -639,7 +647,7 @@ public class WMSGenericController { @RequestMapping(value = "wms/updateTipoUL", method = RequestMethod.POST) public @ResponseBody ServiceRestResponse updateTipoUL(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, - @RequestBody UpdateTipoULRequestDTO updateTipoULRequest) throws Exception { + @RequestBody UpdateTipoULRequestDTO updateTipoULRequest) throws Exception { wmsGenericService.cambiaTipoUL(updateTipoULRequest); return ServiceRestResponse.createPositiveResponse(); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java index 8ff7e6e7c2..ef3870f8ed 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java @@ -2039,10 +2039,10 @@ public class WMSGenericService { boolean gestisciColli = WMSUtility.isGestisciColli(mtbDepo, entityProcessor, multiDBTransactionManager); MtbColt uds = null; - if (!gestisciColli){ + if (!gestisciColli) { CreateUDSRequestDTO createUDSRequest = new CreateUDSRequestDTO(); createUDSRequest.setCodMdep(mtbDepo.getCodMdep()) - .setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO); + .setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO); uds = wmsLavorazioneService.createUDS(createUDSRequest); } @@ -2050,7 +2050,7 @@ public class WMSGenericService { for (MtbColt mtbColtToMove : mtbCotlList) { if (dtbDoct != null) { for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) { - if(!gestisciColli){ + if (!gestisciColli) { InsertUDSRowRequestDTO insertUDSRowRequest = new InsertUDSRowRequestDTO(); insertUDSRowRequest .setSourceMtbColr(mtbColr) @@ -2143,12 +2143,17 @@ public class WMSGenericService { .setNumColloRif(cloneMtbColr.getNumColloRif()) .setSerColloRif(cloneMtbColr.getSerColloRif()) .setDataColloRif(cloneMtbColr.getDataColloRif()) - .setCausale(MtbColr.Causale.VERSAMENTO) .setUtente(requestDataDTO.getUsername()) .setQtaCol(stornoSourceMtbColr.getQtaCol().multiply(new BigDecimal(-1))) .setNumCnf(stornoSourceMtbColr.getNumCnf().multiply(new BigDecimal(-1))); + if (destinationMtbColt.getGestione().equalsIgnoreCase("V") && destinationMtbColt.getSegno() == -1) { + stornoSourceMtbColr.setCausale(null); + } else { + stornoSourceMtbColr.setCausale(MtbColr.Causale.VERSAMENTO); + } + mtbColrSourceObservableField.add(stornoSourceMtbColr); } @@ -2164,13 +2169,18 @@ public class WMSGenericService { cloneMtbColr.setCodJcom(null); } + if (destinationMtbColt.getGestione().equalsIgnoreCase("V") && destinationMtbColt.getSegno() == -1) { + cloneMtbColr.setCausale(null); + } else { + cloneMtbColr.setCausale(MtbColr.Causale.VERSAMENTO); + } + cloneMtbColr .setGestione(null) .setSerCollo(null) .setNumCollo(null) .setDataCollo(null) .setRiga(null) - .setCausale(MtbColr.Causale.VERSAMENTO) .setUtente(requestDataDTO.getUsername()); mtbColrDestObservableField.add(cloneMtbColr); diff --git a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java index ab409820df..c857a2a420 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java +++ b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java @@ -216,10 +216,8 @@ public class SystemController { stbActivitiesToUpdate.forEach (x -> { - StbActivity stbActivity = new StbActivity() - .setActivityResultId(activityResultId); - stbActivity - .setOperation(OperationType.UPDATE); + x.setActivityResultId(activityResultId); + x.setOperation(OperationType.UPDATE); }); String activityTypeId = "AGGIORNAMENTI SOFTWARE";