diff --git a/build/Jenkinsfile.groovy b/build/Jenkinsfile.groovy index 1a779c0f54..c356f9a40d 100644 --- a/build/Jenkinsfile.groovy +++ b/build/Jenkinsfile.groovy @@ -108,9 +108,7 @@ sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaul } } steps { - steps { - azureUpload fileShareName: 'storage-ci', filesPath: 'ems-engine/target/*.war*', removePrefixPath: 'ems-engine/target/', storageCredentialId: '83a86793-c1d6-4776-b20f-1ff652a57fee', storageType: 'filestorage', uploadArtifactsOnlyIfSuccessful: true, verbose: true, virtualPath: 'ems-api' - } + azureUpload fileShareName: 'storage-ci', filesPath: 'ems-engine/target/*.war*', removePrefixPath: 'ems-engine/target/', storageCredentialId: '83a86793-c1d6-4776-b20f-1ff652a57fee', storageType: 'filestorage', uploadArtifactsOnlyIfSuccessful: true, verbose: true, virtualPath: "ems-api/${env.GIT_BRANCH}" } } diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250514085241.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250514085241.java new file mode 100644 index 0000000000..2477fdd3d4 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250514085241.java @@ -0,0 +1,221 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250514085241 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createOrUpdateFunction("f_GetCostoUltArt_depo", "CREATE FUNCTION [dbo].[f_GetCostoUltArt_depo](@dataReg datetime, @codMdep varchar(5), @codMart varchar(15))\n" + + "RETURNS numeric(20,5) AS\n" + + "BEGIN\n" + + " /* UFFICIALE DEL 20-06-2016 */\n" + + " DECLARE @lc_costoUltUnt numeric(20,5),\n" + + " @lc_costoComp numeric(20,5),\n" + + " @ls_codComp varchar(15),\n" + + " @lc_qtaStd numeric(20,5),\n" + + " @ls_flagCalcPrzAcq varchar(1),\n" + + " @ls_isKit varchar(1),\n" + + " @ls_idArtEqui varchar(40),\n" + + " @ls_flagUltCostoEqui varchar(1),\n" + + " @ls_flagArticoloMov varchar(1),\n" + + " @ls_codMartEqui varchar(40),\n" + + " @ldt_dataDocMax datetime,\n" + + " @lc_qtaCarTot numeric(20,5),\n" + + " @lc_valCarTot numeric(20,5);\n" + + " \n" + + " select @ls_isKit = 'N';\n" + + " \n" + + " select @codMdep = (case when value = 'S' AND @codMdep is not null then @codMdep else null end) \n" + + " from stb_gest_setup where gest_name = 'dati_azienda' and section = 'COSTO_ULTIMO' AND key_section = 'COSTO_DA_DEPO' \n" + + "\n" + + " Declare csr_comp Cursor LOCAL SCROLL FOR\n" + + " SELECT mtb_comp.cod_comp, \n" + + " mtb_comp.qta_std,\n" + + " mtb_aart.flag_calc_prz_acq \n" + + " FROM mtb_comp,\n" + + " mtb_aart\n" + + " WHERE mtb_comp.cod_mart = @codMart and\n" + + " mtb_aart.cod_mart = mtb_comp.cod_mart and\n" + + " mtb_aart.articolo_composto = 'S' ;\n" + + " OPEN csr_comp\n" + + " FETCH NEXT FROM csr_comp INTO @ls_codComp, @lc_qtaStd, @ls_flagCalcPrzAcq\n" + + " if @@CURSOR_ROWS > 0\n" + + " begin\n" + + " select @ls_isKit = 'S'\n" + + " SELECT @lc_costoUltUnt = 0 \n" + + " if @ls_flagCalcPrzAcq = 'K' \n" + + " begin\n" + + " SELECT @lc_costoUltUnt = IsNull(Round((sum(importo_riga)/sum(qta_doc*rap_conv)) * last_doc.cambio / gtb_divi.cambio_euro , 5),0)\n" + + " FROM dtb_docr, \n" + + " gtb_anag,\n" + + " (SELECT TOP 1 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_divi,\n" + + " dtb_doct.cambio,\n" + + " dtb_docr.cod_mart\n" + + " FROM dtb_doct, \n" + + " dtb_docr,\n" + + " dtb_tipi\n" + + " WHERE dtb_doct.cod_anag = dtb_docr.cod_anag and\n" + + " dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" + + " dtb_doct.data_doc = dtb_docr.data_doc and\n" + + " dtb_doct.ser_doc = dtb_docr.ser_doc and\n" + + " dtb_doct.num_doc = dtb_docr.num_doc and\n" + + " dtb_doct.cod_dtip = dtb_tipi.cod_dtip and \n" + + " dtb_tipi.segno_val_car = 1 and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " dtb_doct.data_doc <= @dataReg and\n" + + " dtb_docr.cod_mart = @codMart and\n" + + " dtb_doct.cod_mdep like IsNUll(@codMdep, '%')\n" + + " ORDER BY dtb_doct.data_reg DESC ) last_doc, \n" + + " mtb_aart,\n" + + " gtb_divi\n" + + " WHERE dtb_docr.cod_anag = last_doc.cod_anag and\n" + + " dtb_docr.cod_dtip = last_doc.cod_dtip and\n" + + " dtb_docr.data_doc = last_doc.data_doc and\n" + + " dtb_docr.ser_doc = last_doc.ser_doc and\n" + + " dtb_docr.num_doc = last_doc.num_doc and\n" + + " dtb_docr.cod_mart = last_doc.cod_mart and\n" + + " last_doc.cod_anag = gtb_anag.cod_anag and\n" + + " dtb_docr.cod_mart = mtb_aart.cod_mart and\n" + + " last_doc.cod_divi = gtb_divi.cod_divi and\n" + + " mtb_aart.cod_mart = @codMart\n" + + " group by last_doc.cambio , gtb_divi.cambio_euro \n" + + " end\n" + + " end\n" + + " \n" + + " if @lc_costoUltUnt = 0 or @ls_flagCalcPrzAcq = 'C'\n" + + " begin\n" + + " WHILE @@FETCH_STATUS = 0\n" + + " Begin\n" + + " select @lc_costoComp = dbo.f_GetCostoUltArt_depo(@dataReg, @codMdep, @ls_codComp)\n" + + " select @lc_costoUltUnt = @lc_costoUltUnt + (@lc_costoComp * @lc_qtaStd)\n" + + " FETCH NEXT FROM csr_comp INTO @ls_codComp, @lc_qtaStd, @ls_flagCalcPrzAcq\n" + + " end\n" + + " close csr_comp\n" + + " deallocate csr_comp\n" + + " end \n" + + " select @ldt_dataDocMax = null;\n" + + " if @ls_isKit = 'N' \n" + + " begin\n" + + " SELECT @ls_idArtEqui = mtb_aart.id_art_equi, \n" + + " @ls_flagUltCostoEqui = mtb_aart_equi.flag_equi_costo, \n" + + " @ls_flagArticoloMov = mtb_aart.flag_mov_art_mag \n" + + " FROM mtb_aart_equi, mtb_aart \n" + + " WHERE mtb_aart.id_art_equi = mtb_aart_equi.id_art_equi AND \n" + + " mtb_aart.cod_mart = @codMart;\n" + + " \n" + + " if @ls_idArtEqui is not null and Len(@ls_idArtEqui) > 0 and (@ls_flagUltCostoEqui = 'S' )\n" + + " begin\n" + + " if @codMdep is null\n" + + " begin\n" + + " SELECT TOP 1 @ls_codMartEqui = mtb_movi.cod_mart, \n" + + " @ldt_dataDocMax = Max(data_reg)\n" + + " FROM mtb_movi, mtb_aart, dtb_tipi\n" + + " WHERE mtb_aart.id_art_equi = @ls_idArtEqui and\n" + + " mtb_movi.cod_mart = mtb_aart.cod_mart and\n" + + " mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " qta_car > 0 AND val_car > 0 and\n" + + " data_reg <= @dataReg\n" + + " group by mtb_movi.cod_mart\n" + + " order by 2 desc;\n" + + " end \n" + + " else\n" + + " begin\n" + + " SELECT TOP 1 @ls_codMartEqui = mtb_movi.cod_mart, \n" + + " @ldt_dataDocMax = Max(data_reg) \n" + + " FROM mtb_movi, mtb_aart, dtb_tipi\n" + + " WHERE mtb_aart.id_art_equi = @ls_idArtEqui and\n" + + " mtb_movi.cod_mart = mtb_aart.cod_mart and\n" + + " mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " qta_car > 0 AND val_car > 0 and\n" + + " cod_mdep = @codMdep and\n" + + " data_reg <= @dataReg\n" + + " group by mtb_movi.cod_mart\n" + + " order by 2 desc;\n" + + " end\n" + + " select @codMart = @ls_codMartEqui; \n" + + " end\n" + + " else\n" + + " begin\n" + + " if @codMdep is null\n" + + " SELECT @ldt_dataDocMax = Max(data_reg)\n" + + " FROM mtb_movi, dtb_tipi\n" + + " WHERE mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " cod_mart = @codMart AND data_reg <= @dataReg AND\n" + + " qta_car > 0 AND val_car > 0 ;\n" + + " else\n" + + " SELECT @ldt_dataDocMax = Max(data_reg)\n" + + " FROM mtb_movi, dtb_tipi\n" + + " WHERE mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " cod_mart = @codMart AND data_reg <= @dataReg AND\n" + + " qta_car > 0 AND val_car > 0 AND\n" + + " cod_mdep = @codMdep;\n" + + " end\n" + + "\n" + + " if @ldt_dataDocMax is null\n" + + " begin\n" + + " SELECT @lc_costoUltUnt = val_ult_car / cambio_divi_car\n" + + " FROM mtb_aart\n" + + " WHERE cod_mart = @codMart;\n" + + " end \n" + + " else\n" + + " begin\n" + + " IF @codMdep is null\n" + + " SELECT @lc_qtaCarTot = sum(qta_car) , \n" + + " @lc_valCarTot = sum(val_car_costo / cambio_divi_cont) \n" + + " FROM mtb_movi, dtb_tipi\n" + + " WHERE mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " cod_mart = @codMart AND \n" + + " data_reg = @ldt_dataDocMax AND\n" + + " (qta_car > 0 or (qta_car = 0 and val_car > 0));\n" + + " ELSE\n" + + " SELECT @lc_qtaCarTot = sum(qta_car), \n" + + " @lc_valCarTot = sum(val_car_costo /cambio_divi_cont)\n" + + " FROM mtb_movi, \n" + + " dtb_tipi\n" + + " WHERE mtb_movi.cod_dtip = dtb_tipi.cod_dtip and\n" + + " dtb_tipi.gestione <> 'V' and\n" + + " dtb_tipi.flag_costo = 'S' and\n" + + " cod_mart = @codMart AND \n" + + " data_reg = @ldt_dataDocMax AND\n" + + " (qta_car > 0 or (qta_car = 0 and val_car > 0)) and\n" + + " cod_mdep = @codMdep;\n" + + " \n" + + " select @lc_costoUltUnt =0\n" + + " if @lc_qtaCarTot > 0 \n" + + " select @lc_costoUltUnt = round(@lc_valCarTot / @lc_qtaCarTot, 5)\n" + + " end\n" + + " end\n" + + " if @lc_costoUltUnt is null \n" + + " SELECT @lc_costoUltUnt = 0\n" + + " RETURN @lc_costoUltUnt\n" + + "END"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java index fd99ece770..6737e8a7e7 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/CommonRules.java @@ -902,8 +902,6 @@ public class CommonRules extends QueryRules { String codMdep = entity.getCodMdep(); BigDecimal rapConv = entity.getRapConv(); - if (entity instanceof DtbOrdr && entity.getGestione().equalsIgnoreCase("L")) - return BigDecimal.ZERO; Date dataValidita = null; if (entity instanceof DtbOrdr || entity instanceof WdtbOrdr) {