Merge branch 'develop' into feature/Feature-ORDL
# Conflicts: # ems-core/src/main/java/it/integry/ems_model/rulescompleting/AgendaList.java
This commit is contained in:
@@ -0,0 +1,585 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240708155342 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("MES_GetWorkOrders", "CREATE FUNCTION [dbo].[MES_GetWorkOrders](@codJfas VARCHAR(50), @dateStart DATE, @dateEnd DATE, @flagEvaso VARCHAR(1),\n" +
|
||||
" @codAnag VARCHAR(5))\n" +
|
||||
" RETURNS @val TABLE\n" +
|
||||
" (\n" +
|
||||
" [sort] [int] NULL,\n" +
|
||||
" [cod_jcom] [varchar](10) NULL,\n" +
|
||||
" [data_ord_prod] [datetime] NULL,\n" +
|
||||
" [num_ord_prod] [int] NULL,\n" +
|
||||
" [riga_ord_prod] [int] NULL,\n" +
|
||||
" [flag_avviabile] [varchar](1) NULL,\n" +
|
||||
" [flag_tracciabilita] [varchar](1) NULL,\n" +
|
||||
" [unt_ord] [varchar](3) NULL,\n" +
|
||||
" [rap_conv] [numeric](20, 10) NULL,\n" +
|
||||
" [unt_ord2] [varchar](3) NULL,\n" +
|
||||
" [rap_conv2] [numeric](20, 5) NULL,\n" +
|
||||
" [unt_ord3] [varchar](3) NULL,\n" +
|
||||
" [rap_conv3] [numeric](20, 5) NULL,\n" +
|
||||
" [descrizione_prod] [varchar](255) NULL,\n" +
|
||||
" [num_pezzi] [numeric](38, 6) NULL,\n" +
|
||||
" [num_cnf] [numeric](20, 5) NULL,\n" +
|
||||
" [gg_scad_partita] [int] NULL,\n" +
|
||||
" [qta_cnf] [numeric](15, 5) NULL,\n" +
|
||||
" [colli_pedana] [numeric](20, 5) NULL,\n" +
|
||||
" [num_pedane] [numeric](38, 18) NULL,\n" +
|
||||
" [pos_riga] [int] NULL,\n" +
|
||||
" [flag_evaso_prod] [varchar](1) NULL,\n" +
|
||||
" [flag_evaso_forzato] [varchar](1) NOT NULL,\n" +
|
||||
" [flag_ordine_evaso] [varchar](1) NULL,\n" +
|
||||
" [gestione] [varchar](1) NOT NULL,\n" +
|
||||
" [data_ord] [datetime] NOT NULL,\n" +
|
||||
" [cod_tcol_UL] [varchar](5) NULL,\n" +
|
||||
" [descrizione_tcol] [varchar](40) NULL,\n" +
|
||||
" [cod_anag] [varchar](5) NOT NULL,\n" +
|
||||
" [rag_soc_anag] [varchar](40) NULL,\n" +
|
||||
" [rif_ord] [varchar](40) NULL,\n" +
|
||||
" [cod_vdes] [varchar](5) NULL,\n" +
|
||||
" [cod_mdep] [varchar](5) NOT NULL,\n" +
|
||||
" [num_ord] [int] NOT NULL,\n" +
|
||||
" [cod_jfas] [varchar](5) NOT NULL,\n" +
|
||||
" [cod_jfas_lav] [varchar](5) NOT NULL,\n" +
|
||||
" [partita_mag] [varchar](20) NULL,\n" +
|
||||
" [note_lav] [varchar](255) NULL,\n" +
|
||||
" [data_scad] [datetime] NULL,\n" +
|
||||
" [cod_prod] [varchar](15) NULL,\n" +
|
||||
" [descrizione_commessa] [varchar](40) NULL,\n" +
|
||||
" [data_iniz_prod] [datetime] NULL,\n" +
|
||||
" [max_step] [int] NULL,\n" +
|
||||
" [unt_mis_prod] [varchar](5) NULL,\n" +
|
||||
" [qta_batch_prod] [numeric](15, 5) NULL,\n" +
|
||||
" [rap_conv_prod] [numeric](20, 10) NULL,\n" +
|
||||
" [data_iniz] [datetime] NULL,\n" +
|
||||
" [data_fine] [datetime] NULL,\n" +
|
||||
" [qta_prod] [decimal](20, 5) NULL,\n" +
|
||||
" [qta_lav] [decimal](20, 5) NULL,\n" +
|
||||
" [max_fase] [int] NULL,\n" +
|
||||
" [num_fase] [int] NULL,\n" +
|
||||
" [hr_num] [int] NOT NULL,\n" +
|
||||
" [descrizione_attivita] [varchar](1024) NULL,\n" +
|
||||
" [prod_std] [numeric](38, 21) NULL,\n" +
|
||||
" [elapsed_time] [int] NULL,\n" +
|
||||
" [qta_trasferite] [numeric](38, 5) NULL,\n" +
|
||||
" [udc_trasferiti] [int] NULL,\n" +
|
||||
" [stato] [varchar](11) NOT NULL,\n" +
|
||||
" [pz_trasferiti] [int] NULL,\n" +
|
||||
" [run_time_sec] [numeric](38, 6) NULL,\n" +
|
||||
" [cumulative_run_time_sec] [numeric](38, 6) NULL,\n" +
|
||||
" [run_time_hour] [int] NULL,\n" +
|
||||
" [run_time_min] [numeric](38, 6) NULL,\n" +
|
||||
" [run_time_end] [datetime] NULL,\n" +
|
||||
" [id_lotto] [int] NULL,\n" +
|
||||
" [data_lotto] [datetime] NULL,\n" +
|
||||
" [peso_kg] [numeric](20, 5) NULL\n" +
|
||||
" ) AS\n" +
|
||||
"BEGIN\n" +
|
||||
"\n" +
|
||||
" -- DECLARE @codJfas VARCHAR(5) = 'L1'\n" +
|
||||
"-- DECLARE @dateStart DATE = DATEADD(MONTH, -1, GETDATE())\n" +
|
||||
"-- DECLARE @dateEnd DATE = DATEADD(MONTH, 1, GETDATE())\n" +
|
||||
"-- DECLARE @flagEvaso VARCHAR(1) = 'I'\n" +
|
||||
"-- DECLARE @codAnag VARCHAR(5) = null;\n" +
|
||||
"\n" +
|
||||
" SET @dateStart = ISNULL(@dateStart, DATEADD(DAY, -14, GETDATE()));\n" +
|
||||
" SET @dateEND = ISNULL(@dateEnd, GETDATE());\n" +
|
||||
" SET @flagEvaso = ISNULL(@flagEvaso, 'I');\n" +
|
||||
"\n" +
|
||||
"--Funzione per calcolare la sequenza di ordini su una linea e il RunTimeEND\n" +
|
||||
" WITH setup AS (SELECT @dateStart AS date_start,\n" +
|
||||
" @dateEnd AS date_end,\n" +
|
||||
" @flagEvaso AS flag_evaso,\n" +
|
||||
" @codJfas AS cod_jfas,\n" +
|
||||
" @codAnag AS cod_anag),\n" +
|
||||
" setup_jfas AS (SELECT value_string AS cod_jfas\n" +
|
||||
" FROM dbo.ParseStringIntoArray(@codJfas, '|')),\n" +
|
||||
" setup_depo AS (SELECT cod_mdep, value AS flag_carico_scarico_immediato\n" +
|
||||
" FROM stb_gest_setup_depo\n" +
|
||||
" WHERE gest_name = 'CARICO_SCARICO_PF'\n" +
|
||||
" AND section = 'SETUP'\n" +
|
||||
" AND key_section = 'GENERA_CARICO_SCARICO_IMMEDIATO'),\n" +
|
||||
" mtb_colr_sum AS (SELECT mtb_colr.gestione,\n" +
|
||||
" mtb_colr.data_collo,\n" +
|
||||
" mtb_colr.num_collo,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.data_ord,\n" +
|
||||
" mtb_colr.num_ord,\n" +
|
||||
" SUM(mtb_colr.qta_col) AS qta_col,\n" +
|
||||
" SUM(mtb_colr.num_cnf) AS num_cnf\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" WHERE mtb_colr.gestione_rif IS NULL\n" +
|
||||
" AND mtb_colr.data_collo_rif IS NULL\n" +
|
||||
" AND mtb_colr.ser_collo_rif IS NULL\n" +
|
||||
" AND mtb_colr.num_collo_rif IS NULL\n" +
|
||||
" AND EXISTS(SELECT *\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" WHERE mtb_colr.gestione = mtb_colt.gestione\n" +
|
||||
" AND mtb_colr.data_collo = mtb_colt.data_collo\n" +
|
||||
" AND mtb_colr.ser_collo = mtb_colt.ser_collo\n" +
|
||||
" AND mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||
" AND mtb_colt.segno = 1)\n" +
|
||||
" GROUP BY mtb_colr.gestione,\n" +
|
||||
" mtb_colr.data_collo,\n" +
|
||||
" mtb_colr.num_collo,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.data_ord,\n" +
|
||||
" mtb_colr.num_ord),\n" +
|
||||
" in_production_machines AS (SELECT DISTINCT dtb_ord_macc.gestione,\n" +
|
||||
" dtb_ord_macc.data_ord,\n" +
|
||||
" dtb_ord_macc.num_ord,\n" +
|
||||
" MAX(dtb_ord_macc.data_mov) AS max_data_mov\n" +
|
||||
" FROM dtb_ord_macc\n" +
|
||||
" INNER JOIN (SELECT gestione, data_ord, num_ord, cod_cmac, MAX(data_mov) AS data_mov\n" +
|
||||
" FROM dtb_ord_macc\n" +
|
||||
" GROUP BY gestione, data_ord, num_ord, cod_cmac) last_event\n" +
|
||||
" ON dtb_ord_macc.data_ord = last_event.data_ord AND\n" +
|
||||
" dtb_ord_macc.num_ord = last_event.num_ord AND\n" +
|
||||
" dtb_ord_macc.gestione = last_event.gestione AND\n" +
|
||||
" dtb_ord_macc.cod_cmac = last_event.cod_cmac AND\n" +
|
||||
" dtb_ord_macc.data_mov = last_event.data_mov\n" +
|
||||
" INNER JOIN (SELECT evento, IIF(tipologia = 'ENTRATA', 1, -1) AS value\n" +
|
||||
" FROM dtb_ord_macc_eventi) dtb_ord_macc_eventi\n" +
|
||||
" ON dtb_ord_macc.evento = dtb_ord_macc_eventi.evento\n" +
|
||||
" WHERE value = 1\n" +
|
||||
" GROUP BY dtb_ord_macc.num_ord, dtb_ord_macc.data_ord, dtb_ord_macc.gestione),\n" +
|
||||
" dtb_ord_max_step AS (SELECT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" MAX(id_step) AS max_step,\n" +
|
||||
" num_fase,\n" +
|
||||
" MAX(num_fase) OVER (PARTITION BY gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord) AS max_fase,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" SUM(DATEDIFF(S, data_iniz, ISNULL(data_fine, GETDATE()))) AS elapsed_time\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE data_ord BETWEEN setup.date_start AND setup.date_end\n" +
|
||||
" GROUP BY gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" num_fase,\n" +
|
||||
" dtb_ord_steps.cod_jfas),\n" +
|
||||
" dtb_ordr_prod_with_art AS (SELECT dtb_ordr.data_ord AS data_ord_prod,\n" +
|
||||
" dtb_ordr.num_ord AS num_ord_prod,\n" +
|
||||
" dtb_ordr.riga_ord AS riga_ord_prod,\n" +
|
||||
" dtb_ordr.gestione AS gestione_ord_prod,\n" +
|
||||
" IIF(CONVERT(DATE, dtb_ordr.data_ord) >= CONVERT(DATE, GETDATE()), 'S',\n" +
|
||||
" 'N') AS flag_avviabile,\n" +
|
||||
" mtb_aart_prod.flag_tracciabilita,\n" +
|
||||
" dtb_ordr.unt_ord,\n" +
|
||||
" dtb_ordr.rap_conv,\n" +
|
||||
" dtb_ordr.unt_ord2,\n" +
|
||||
" CAST(ROUND(dtb_ordr.qta_ord2 / ISNULL(NULLIF(dtb_ordr.qta_ord, 0), 1),\n" +
|
||||
" 5) AS NUMERIC(20, 5)) AS rap_conv2,\n" +
|
||||
" dtb_ordr.unt_ord3,\n" +
|
||||
" CAST(ROUND(dtb_ordr.qta_ord3 / ISNULL(NULLIF(dtb_ordr.qta_ord, 0), 1),\n" +
|
||||
" 5) AS NUMERIC(20, 5)) AS rap_conv3,\n" +
|
||||
" dtb_ordr.qta_ord,\n" +
|
||||
" dtb_ordr.qta_ord2,\n" +
|
||||
" dtb_ordr.qta_ord3,\n" +
|
||||
" dtb_ordr.num_cnf,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis IN ('PZ', 'NR'), mtb_aart_prod.qta_cnf,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis2 IN ('PZ', 'NR'), mtb_aart_prod.qta_cnf /\n" +
|
||||
" ISNULL(NULLIF(mtb_aart_prod.rap_conv2, 0), 1),\n" +
|
||||
" mtb_aart_prod.qta_cnf)) AS cal_qta_cnf,\n" +
|
||||
"\n" +
|
||||
" IIF(dtb_ordr.colli_pedana = 0 OR dtb_ordr.colli_pedana = 1,\n" +
|
||||
" IIF(mtb_aart_prod.colli_pedana = 0, 1, mtb_aart_prod.colli_pedana),\n" +
|
||||
" dtb_ordr.colli_pedana)\n" +
|
||||
" AS colli_pedana,\n" +
|
||||
" dtb_ordr.pos_riga,\n" +
|
||||
"\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis IN ('PZ', 'NR'), 1,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis2 IN ('PZ', 'NR') AND\n" +
|
||||
" NULLIF(mtb_aart_prod.rap_conv2, 0) IS NOT NULL,\n" +
|
||||
" mtb_aart_prod.rap_conv2,\n" +
|
||||
" 1)) AS calc_rap_conv,\n" +
|
||||
" mtb_aart_prod.gg_scad_partita,\n" +
|
||||
" mtb_aart_prod.qta_cnf\n" +
|
||||
" FROM dtb_ordr\n" +
|
||||
" INNER JOIN mtb_aart mtb_aart_prod ON mtb_aart_prod.cod_mart = dtb_ordr.cod_mart),\n" +
|
||||
" ord_lav AS (SELECT dtb_ordt.cod_jcom,\n" +
|
||||
" dtb_ordr_prod_with_art.data_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.num_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.riga_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.flag_avviabile,\n" +
|
||||
" dtb_ordr_prod_with_art.flag_tracciabilita,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord = mtb_aart.unt_mis THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord2,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord2 = mtb_aart.unt_mis THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord2 = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord2 = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv2,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord3,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord3 = mtb_aart.unt_mis THEN\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord3 = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN dtb_ordr_prod_with_art.unt_ord3 = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv3,\n" +
|
||||
" ISNULL(dtb_ordt.descr_estesa_prod, dtb_ordt.descrizione_prod) AS descrizione_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.num_cnf * dtb_ordr_prod_with_art.cal_qta_cnf AS num_pezzi,\n" +
|
||||
" dtb_ordr_prod_with_art.num_cnf,\n" +
|
||||
" dtb_ordr_prod_with_art.gg_scad_partita,\n" +
|
||||
" dtb_ordr_prod_with_art.qta_cnf,\n" +
|
||||
" dtb_ordr_prod_with_art.colli_pedana,\n" +
|
||||
" dtb_ordr_prod_with_art.num_cnf / dtb_ordr_prod_with_art.colli_pedana AS num_pedane,\n" +
|
||||
" dtb_ordr_prod_with_art.pos_riga,\n" +
|
||||
" dtb_ordt.flag_evaso_prod,\n" +
|
||||
" dtb_ordt.flag_evaso_forzato,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (dtb_ordt.flag_evaso_prod = 'I' OR\n" +
|
||||
" (setupCaricoImmediato.flag_carico_scarico_immediato = 'S' AND\n" +
|
||||
" flag_evaso_prod = 'E'))\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
|
||||
" THEN 'I'\n" +
|
||||
" WHEN flag_evaso_prod <> 'I' AND dtb_ordt.flag_evaso_forzato = 'S'\n" +
|
||||
" THEN flag_evaso_prod\n" +
|
||||
" END AS flag_ordine_evaso,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.cod_tcol_UL,\n" +
|
||||
" mtb_tcol.descrizione AS descrizione_tcol,\n" +
|
||||
" dtb_ordt.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc AS rag_soc_anag,\n" +
|
||||
" dtb_ordt.rif_ord,\n" +
|
||||
" dtb_ordt.cod_vdes,\n" +
|
||||
" dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jfas AS cod_jfas_lav,\n" +
|
||||
" mtb_partita_mag.partita_mag,\n" +
|
||||
" dtb_ordt.note AS note_lav,\n" +
|
||||
" mtb_partita_mag.data_scad,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" jtb_comt.descrizione AS descrizione_commessa,\n" +
|
||||
" dtb_ordt.data_iniz_prod,\n" +
|
||||
" q.max_step,\n" +
|
||||
" q.max_fase,\n" +
|
||||
" q.num_fase,\n" +
|
||||
" IIF(mtb_aart.flag_qta_cnf_fissa = 'S' AND\n" +
|
||||
" (mtb_aart.qta_cnf > 1 OR dtb_ordr_prod_with_art.colli_pedana > 1), 'Colli',\n" +
|
||||
" jtb_cicl.unt_mis_prod)\n" +
|
||||
" AS unt_mis_prod,\n" +
|
||||
" IIF(mtb_aart.flag_qta_cnf_fissa = 'S' AND\n" +
|
||||
" (mtb_aart.qta_cnf > 1 OR dtb_ordr_prod_with_art.colli_pedana > 1),\n" +
|
||||
" dtb_ordr_prod_with_art.colli_pedana, jtb_cicl.qta_prod)\n" +
|
||||
" AS qta_batch_prod,\n" +
|
||||
" IIF(mtb_aart.qta_cnf > 1 OR dtb_ordr_prod_with_art.colli_pedana > 1, mtb_aart.qta_cnf,\n" +
|
||||
" jtb_cicl.rap_conv_prod) AS rap_conv_prod,\n" +
|
||||
" dtb_ord_steps.data_iniz,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" dtb_ord_steps.qta_lav AS qta_lav,\n" +
|
||||
" IIF(dtb_ord_steps.qta_prod <> 0, dtb_ord_steps.qta_prod,\n" +
|
||||
" dtb_ordt.qta_prod) AS qta_prod,\n" +
|
||||
" dtb_ord_steps.hr_num,\n" +
|
||||
" dtb_ord_steps.descrizione_attivita,\n" +
|
||||
" 3600 / (ISNULL(NULLIF(jtb_dist_clav_dir.duration, 0), 1) /\n" +
|
||||
" ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) AS prod_std,\n" +
|
||||
" q.elapsed_time,\n" +
|
||||
" SUM(ISNULL(mtb_colr.qta_col, 0)) AS qta_trasferite,\n" +
|
||||
" COUNT(mtb_colr.num_collo) AS udc_trasferiti,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (in_production_machines.max_data_mov IS NOT NULL AND (q.max_step = 0 OR\n" +
|
||||
" (q.max_step > 0 AND\n" +
|
||||
" dtb_ord_steps.data_fine IS NOT NULL AND\n" +
|
||||
" DATEDIFF(MINUTE,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" in_production_machines.max_data_mov) >\n" +
|
||||
" 5)))\n" +
|
||||
" THEN 'IN AVVIO'\n" +
|
||||
" WHEN q.max_step = 0\n" +
|
||||
" THEN 'PROGRAMMATO'\n" +
|
||||
" WHEN data_fine IS NULL\n" +
|
||||
" THEN 'IN CORSO'\n" +
|
||||
" ELSE 'IN PAUSA'\n" +
|
||||
" END\n" +
|
||||
" AS stato,\n" +
|
||||
" CONVERT(INT, SUM(ISNULL(mtb_colr.qta_col / dtb_ordr_prod_with_art.calc_rap_conv, 0))) AS pz_trasferiti,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (jtb_dist_clav_dir.duration / ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) *\n" +
|
||||
" (dtb_ordt.qta_prod * dtb_ordt.rap_conv_prod -\n" +
|
||||
" SUM(ISNULL(mtb_colr.qta_col, 0))) > 0\n" +
|
||||
" THEN\n" +
|
||||
" (jtb_dist_clav_dir.duration /\n" +
|
||||
" ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) *\n" +
|
||||
" (dtb_ordt.qta_prod * dtb_ordt.rap_conv_prod -\n" +
|
||||
" SUM(ISNULL(mtb_colr.qta_col, 0)))\n" +
|
||||
" ELSE 0 END AS run_time_sec,\n" +
|
||||
" jl.id_lotto,\n" +
|
||||
" jlt.data_lotto,\n" +
|
||||
" mtb_aart.peso_kg\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" INNER JOIN dtb_ordt ON dtb_ord_steps.data_ord = dtb_ordt.data_ord\n" +
|
||||
" AND dtb_ord_steps.num_ord = dtb_ordt.num_ord\n" +
|
||||
" AND dtb_ord_steps.gestione = dtb_ordt.gestione\n" +
|
||||
" LEFT OUTER JOIN setup_depo setupCaricoImmediato\n" +
|
||||
" ON dtb_ordt.cod_mdep = setupCaricoImmediato.cod_mdep\n" +
|
||||
" LEFT OUTER JOIN jtb_dist_clav_dir\n" +
|
||||
" ON dtb_ordt.cod_prod = jtb_dist_clav_dir.cod_prod AND\n" +
|
||||
" dtb_ordt.cod_jfas = jtb_dist_clav_dir.cod_jfas\n" +
|
||||
" LEFT OUTER JOIN mtb_partita_mag\n" +
|
||||
" ON dtb_ordt.partita_mag = mtb_partita_mag.partita_mag AND\n" +
|
||||
" dtb_ordt.cod_prod = mtb_partita_mag.cod_mart AND\n" +
|
||||
" mtb_partita_mag.flag_stato = 'A'\n" +
|
||||
" LEFT OUTER JOIN mtb_colr_sum mtb_colr ON dtb_ordt.data_ord = mtb_colr.data_ord AND\n" +
|
||||
" dtb_ordt.gestione = mtb_colr.gestione AND\n" +
|
||||
" dtb_ordt.num_ord = mtb_colr.num_ord AND\n" +
|
||||
" dtb_ordt.cod_prod = mtb_colr.cod_mart\n" +
|
||||
" LEFT OUTER JOIN jtb_comt ON dtb_ordt.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||
" INNER JOIN dtb_ord_max_step q ON dtb_ord_steps.gestione = q.gestione AND\n" +
|
||||
" dtb_ord_steps.data_ord = q.data_ord AND\n" +
|
||||
" dtb_ord_steps.num_ord = q.num_ord AND\n" +
|
||||
" dtb_ord_steps.id_step = q.max_step AND\n" +
|
||||
" dtb_ord_steps.cod_jfas = q.cod_jfas\n" +
|
||||
" LEFT OUTER JOIN dtb_ordr_prod_with_art\n" +
|
||||
" ON dtb_ordr_prod_with_art.gestione_ord_prod =\n" +
|
||||
" dtb_ordt.gestione_rif AND\n" +
|
||||
" dtb_ordr_prod_with_art.data_ord_prod = dtb_ordt.data_ord_rif AND\n" +
|
||||
" dtb_ordr_prod_with_art.num_ord_prod = dtb_ordt.num_ord_rif AND\n" +
|
||||
" dtb_ordr_prod_with_art.riga_ord_prod = dtb_ordt.riga_ord_rif\n" +
|
||||
" LEFT OUTER JOIN jtb_cicl ON jtb_cicl.cod_prod = dtb_ordt.cod_prod\n" +
|
||||
" LEFT OUTER JOIN mtb_aart ON mtb_aart.cod_mart = dtb_ordt.cod_prod\n" +
|
||||
" LEFT OUTER JOIN gtb_anag ON dtb_ordt.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" LEFT OUTER JOIN mtb_tcol ON dtb_ordt.cod_tcol_UL = mtb_tcol.cod_tcol\n" +
|
||||
" LEFT OUTER JOIN in_production_machines\n" +
|
||||
" ON dtb_ord_steps.data_ord = in_production_machines.data_ord\n" +
|
||||
" AND dtb_ord_steps.num_ord = in_production_machines.num_ord\n" +
|
||||
" AND dtb_ord_steps.gestione = in_production_machines.gestione\n" +
|
||||
" LEFT OUTER JOIN jtb_lotr jl\n" +
|
||||
" ON dtb_ord_steps.cod_jfas = jl.cod_jfas AND\n" +
|
||||
" dtb_ordt.gestione = jl.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = jl.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = jl.num_ord\n" +
|
||||
" LEFT OUTER JOIN jtb_lott jlt\n" +
|
||||
" ON jl.cod_jfas = jlt.cod_jfas AND jl.id_lotto = jlt.id_lotto\n" +
|
||||
"\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND (setup.flag_evaso IS NULL\n" +
|
||||
" OR (\n" +
|
||||
" (setup.flag_evaso = 'I'\n" +
|
||||
" AND\n" +
|
||||
" dtb_ord_steps.flag_step_attivo = 'S'\n" +
|
||||
" AND (flag_evaso_prod = 'I'\n" +
|
||||
" OR\n" +
|
||||
" (setupCaricoImmediato.flag_carico_scarico_immediato = 'S'\n" +
|
||||
" AND\n" +
|
||||
" flag_evaso_prod = 'E'))\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
|
||||
" )\n" +
|
||||
" OR (setup.flag_evaso = 'E '\n" +
|
||||
" AND flag_evaso_prod = 'E')\n" +
|
||||
" )\n" +
|
||||
" )\n" +
|
||||
" AND (setup.cod_jfas IS NULL\n" +
|
||||
" OR dtb_ord_steps.cod_jfas IN (SELECT cod_jfas FROM setup_jfas))\n" +
|
||||
" AND (setup.cod_anag IS NULL\n" +
|
||||
" OR dtb_ordt.cod_anag = setup.cod_anag)\n" +
|
||||
" GROUP BY dtb_ordr_prod_with_art.data_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.num_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.riga_ord_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.flag_avviabile,\n" +
|
||||
" dtb_ordr_prod_with_art.flag_tracciabilita,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord,\n" +
|
||||
" mtb_partita_mag.rap_conv2,\n" +
|
||||
" mtb_partita_mag.rap_conv3,\n" +
|
||||
" dtb_ordt.note,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv,\n" +
|
||||
" dtb_ordt.descrizione_prod,\n" +
|
||||
" dtb_ordt.descr_estesa_prod,\n" +
|
||||
" dtb_ordr_prod_with_art.num_cnf,\n" +
|
||||
" mtb_aart.qta_cnf,\n" +
|
||||
" mtb_aart.gg_scad_partita,\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" dtb_ordr_prod_with_art.pos_riga,\n" +
|
||||
" dtb_ordt.flag_evaso_prod,\n" +
|
||||
" dtb_ordt.flag_evaso_forzato,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jcom,\n" +
|
||||
" mtb_partita_mag.partita_mag,\n" +
|
||||
" mtb_partita_mag.data_scad,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" dtb_ordt.data_iniz_prod,\n" +
|
||||
" q.max_step,\n" +
|
||||
" dtb_ord_steps.data_iniz,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" dtb_ordt.cod_tcol_UL,\n" +
|
||||
" dtb_ordt.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc,\n" +
|
||||
" dtb_ordt.rif_ord,\n" +
|
||||
" dtb_ordt.cod_vdes,\n" +
|
||||
" dtb_ordt.cod_mdep,\n" +
|
||||
" mtb_aart.colli_pedana,\n" +
|
||||
" dtb_ord_steps.qta_prod,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" jtb_dist_clav_dir.duration,\n" +
|
||||
" jtb_comt.descrizione,\n" +
|
||||
" q.elapsed_time,\n" +
|
||||
" dtb_ordr_prod_with_art.colli_pedana,\n" +
|
||||
" dtb_ord_steps.hr_num,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.unt_mis2,\n" +
|
||||
" mtb_aart.rap_conv2,\n" +
|
||||
" mtb_aart.unt_mis3,\n" +
|
||||
" mtb_aart.rap_conv3,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord2,\n" +
|
||||
" dtb_ordr_prod_with_art.unt_ord3,\n" +
|
||||
" dtb_ordr_prod_with_art.qta_ord,\n" +
|
||||
" dtb_ordr_prod_with_art.qta_ord2,\n" +
|
||||
" dtb_ordr_prod_with_art.qta_ord3,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv2,\n" +
|
||||
" dtb_ordr_prod_with_art.rap_conv3,\n" +
|
||||
" dtb_ordr_prod_with_art.qta_cnf,\n" +
|
||||
" dtb_ordr_prod_with_art.cal_qta_cnf,\n" +
|
||||
" dtb_ordr_prod_with_art.gg_scad_partita,\n" +
|
||||
" jtb_cicl.qta_prod,\n" +
|
||||
" jtb_cicl.rap_conv_prod,\n" +
|
||||
" dtb_ord_steps.descrizione_attivita,\n" +
|
||||
" jtb_cicl.unt_mis_prod,\n" +
|
||||
" mtb_tcol.descrizione,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" dtb_ordt.rap_conv_prod,\n" +
|
||||
" setupCaricoImmediato.flag_carico_scarico_immediato,\n" +
|
||||
" in_production_machines.max_data_mov, q.num_fase, dtb_ord_steps.qta_lav, q.max_fase,\n" +
|
||||
" jl.id_lotto, jlt.data_lotto, mtb_aart.peso_kg)\n" +
|
||||
" INSERT\n" +
|
||||
" INTO @val\n" +
|
||||
" SELECT ROW_NUMBER() OVER (ORDER BY data_ord, num_ord_prod, pos_riga, num_ord) AS sort,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" data_ord_prod,\n" +
|
||||
" num_ord_prod,\n" +
|
||||
" riga_ord_prod,\n" +
|
||||
" flag_avviabile,\n" +
|
||||
" flag_tracciabilita,\n" +
|
||||
" unt_ord,\n" +
|
||||
" rap_conv,\n" +
|
||||
" unt_ord2,\n" +
|
||||
" rap_conv2,\n" +
|
||||
" unt_ord3,\n" +
|
||||
" rap_conv3,\n" +
|
||||
" descrizione_prod,\n" +
|
||||
" num_pezzi,\n" +
|
||||
" num_cnf,\n" +
|
||||
" gg_scad_partita,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" colli_pedana,\n" +
|
||||
" num_pedane,\n" +
|
||||
" pos_riga,\n" +
|
||||
" flag_evaso_prod,\n" +
|
||||
" flag_evaso_forzato,\n" +
|
||||
" flag_ordine_evaso,\n" +
|
||||
" gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" cod_tcol_UL,\n" +
|
||||
" descrizione_tcol,\n" +
|
||||
" cod_anag,\n" +
|
||||
" rag_soc_anag,\n" +
|
||||
" rif_ord,\n" +
|
||||
" cod_vdes,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" num_ord,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" cod_jfas_lav,\n" +
|
||||
" partita_mag,\n" +
|
||||
" note_lav,\n" +
|
||||
" data_scad,\n" +
|
||||
" cod_prod,\n" +
|
||||
" descrizione_commessa,\n" +
|
||||
" data_iniz_prod,\n" +
|
||||
" max_step,\n" +
|
||||
" unt_mis_prod,\n" +
|
||||
" qta_batch_prod,\n" +
|
||||
" rap_conv_prod,\n" +
|
||||
" data_iniz,\n" +
|
||||
" data_fine,\n" +
|
||||
" qta_prod,\n" +
|
||||
" qta_lav,\n" +
|
||||
" max_fase,\n" +
|
||||
" num_fase,\n" +
|
||||
" hr_num,\n" +
|
||||
" descrizione_attivita,\n" +
|
||||
" prod_std,\n" +
|
||||
" elapsed_time,\n" +
|
||||
" qta_trasferite,\n" +
|
||||
" udc_trasferiti,\n" +
|
||||
" stato,\n" +
|
||||
" pz_trasferiti,\n" +
|
||||
" run_time_sec,\n" +
|
||||
" SUM(run_time_sec) OVER (PARTITION BY cod_jfas, data_ord_prod) AS cumulative_run_time_sec,\n" +
|
||||
" CONVERT(INT, run_time_sec / 3600) AS run_time_hour,\n" +
|
||||
" ROUND((run_time_sec / 3600 - CONVERT(INT, run_time_sec / 3600)) * 60, 0) AS run_time_min,\n" +
|
||||
" DATEADD(SECOND, SUM(run_time_sec)\n" +
|
||||
" OVER (PARTITION BY cod_jfas, data_ord_prod ORDER BY stato, cod_jfas, data_ord_prod, pos_riga ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),\n" +
|
||||
" CASE\n" +
|
||||
" WHEN data_ord_prod > GETDATE() THEN DATEADD(HH, 7, data_ord_prod)\n" +
|
||||
" ELSE GETDATE() END) AS run_time_end,\n" +
|
||||
" id_lotto,\n" +
|
||||
" data_lotto,\n" +
|
||||
" peso_kg\n" +
|
||||
" FROM ord_lav\n" +
|
||||
" ORDER BY ord_lav.data_ord,\n" +
|
||||
" ord_lav.num_ord_prod,\n" +
|
||||
" ord_lav.pos_riga,\n" +
|
||||
" ord_lav.num_ord\n" +
|
||||
" RETURN\n" +
|
||||
"END");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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_20240715105345 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
executeStatement("ALTER TABLE ntb_docr\n" +
|
||||
" ADD causale_reso VARCHAR(5);");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240716090151 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateView("vvw_banc_riba", "CREATE VIEW [dbo].[vvw_banc_riba] AS SELECT \n" +
|
||||
" DISTINCT vtb_riba.tipo_anag, \n" +
|
||||
" vtb_riba.cod_anag, \n" +
|
||||
" vtb_riba.data_doc, \n" +
|
||||
" vtb_riba.ser_doc, \n" +
|
||||
" vtb_riba.num_doc, \n" +
|
||||
" CASE WHEN ctb_part.tipo_anag IS NULL THEN CASE vtb_riba.tipo_anag WHEN 'C' THEN vtb_clie.cod_banc WHEN 'F' THEN atb_forn.cod_banc END ELSE ctb_part.cod_banc END AS cod_banc, \n" +
|
||||
" CASE WHEN ctb_part.tipo_anag IS NULL THEN CASE vtb_riba.tipo_anag WHEN 'C' THEN vtb_clie.cod_abi WHEN 'F' THEN atb_forn.cod_abi END ELSE ctb_part.cod_abi END AS cod_abi, \n" +
|
||||
" CASE WHEN ctb_part.tipo_anag IS NULL THEN CASE vtb_riba.tipo_anag WHEN 'C' THEN vtb_clie.cod_cab WHEN 'F' THEN atb_forn.cod_cab END ELSE ctb_part.cod_cab END AS cod_cab,\n" +
|
||||
" CASE WHEN ctb_part.tipo_anag IS NULL THEN CASE vtb_riba.tipo_anag WHEN 'C' THEN vtb_clie.iban WHEN 'F' THEN atb_forn.iban END ELSE ctb_part.iban END AS iban,\n" +
|
||||
" ctb_part.flag_verificata \n" +
|
||||
" /*, ctb_scad.note as note*/\n" +
|
||||
"FROM \n" +
|
||||
" vtb_riba \n" +
|
||||
" LEFT OUTER JOIN ctb_part ON vtb_riba.tipo_anag = ctb_part.tipo_anag \n" +
|
||||
" AND vtb_riba.cod_anag = ctb_part.cod_anag \n" +
|
||||
" AND vtb_riba.data_doc = ctb_part.data_doc \n" +
|
||||
" AND vtb_riba.ser_doc = ctb_part.ser_doc \n" +
|
||||
" AND vtb_riba.num_doc = ctb_part.num_doc \n" +
|
||||
" /*LEFT OUTER JOIN ctb_scad ON ctb_scad.tipo_anag = vtb_riba.tipo_anag AND ctb_scad.cod_anag = vtb_riba.cod_anag AND ctb_scad.data_doc = vtb_riba.data_doc AND ctb_scad.ser_doc = vtb_riba.ser_doc AND ctb_scad.num_doc = vtb_riba.num_doc AND ctb_scad.id_riga = vtb_riba.num_scad */\n" +
|
||||
" LEFT OUTER JOIN vtb_clie ON vtb_riba.cod_anag = vtb_clie.cod_anag \n" +
|
||||
" LEFT OUTER JOIN atb_forn ON vtb_riba.cod_anag = atb_forn.cod_anag");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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_20240716091543 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
executeStatement("update stb_gest_setup set key_section ='D_CDISTEFF_REP' where gest_name = 'W_CDISTEFF_DISP';");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
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_20240716093600 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if(isCustomer(IntegryCustomer.Carelli)) {
|
||||
updateSetupValue("W_CDISTEFF_DISP", "DATAWINDOW", "D_CDISTEFF_REP", "D_CDISTEFF_CARELLI_REP");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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_20240717122430 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
executeStatement("ALTER TABLE mtb_grup\n" +
|
||||
" ADD flag_attivo bit default 1",
|
||||
"UPDATE mtb_grup SET flag_attivo = 1",
|
||||
"ALTER TABLE mtb_grup ALTER COLUMN flag_attivo bit NOT NULL;");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
import it.integry.ems_model.entity.StbActivityNotification;
|
||||
|
||||
public class Migration_20240717124607 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (existsColumn(StbActivityNotification.ENTITY, "user_name"))
|
||||
return;
|
||||
|
||||
executeStatement(
|
||||
"ALTER TABLE stb_activity_notification\n" +
|
||||
" ADD user_name VARCHAR(40);",
|
||||
"ALTER TABLE stb_activity_notification\n" +
|
||||
" ADD CONSTRAINT stb_activity_notification_stb_user_user_name_fk\n" +
|
||||
" FOREIGN KEY (user_name) REFERENCES stb_user;"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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_20240718093241 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("ALTER TABLE [dbo].[mtb_aart] WITH NOCHECK ADD CONSTRAINT [CHK_mtb_aart_rap_conv2] CHECK (([unt_mis2] is not null and [rap_conv2]<>(0))or [unt_mis2] is null )" ,
|
||||
"ALTER TABLE [dbo].[mtb_aart] CHECK CONSTRAINT [CHK_mtb_aart_rap_conv2]",
|
||||
"ALTER TABLE [dbo].[mtb_aart] WITH NOCHECK ADD CONSTRAINT [CHK_mtb_aart_rap_conv3] CHECK (([unt_mis3] is not null and [rap_conv3]<>(0)or [unt_mis3] is null))",
|
||||
"ALTER TABLE [dbo].[mtb_aart] CHECK CONSTRAINT [CHK_mtb_aart_rap_conv3]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -260,6 +260,9 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
private static HashMap<String, BigDecimal> calcQtaAlternative(MtbAart mtbAart, MtbPartitaMag mtbPartitaMag, MtbUntMis mtbUntMis, BigDecimal numCnf, BigDecimal qtaUM1, BigDecimal rapConvUM1, BigDecimal rapConvOld, BigDecimal pesoNetto) throws Exception {
|
||||
BigDecimal rapConvArt = getRapConvUM(mtbUntMis.getUntMis(), mtbAart, mtbPartitaMag);
|
||||
|
||||
if (UtilityBigDecimal.isNullOrZero(rapConvArt))
|
||||
throw new Exception(String.format("Rapporto di conversione 0 sull'articolo %s unità di misura %s ", mtbAart.getCodMart(), mtbUntMis.getUntMis()));
|
||||
|
||||
BigDecimal qtaCnfArt = mtbAart.getQtaCnf();
|
||||
String flagDig = mtbUntMis.getFlagDig();
|
||||
Integer cifreDec = mtbUntMis.getCifreDec().intValue();
|
||||
@@ -280,14 +283,12 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
//VALUTARE COME GESTIRE LA VARIAZIONE DELLA QUANTITA SU UNA RIGA
|
||||
qta = (qtaUM1.multiply(rapConvUM1)).divide(
|
||||
UtilityBigDecimal.isNull(rapConvOld, rapConvArt), 5, RoundingMode.HALF_UP);
|
||||
|
||||
}
|
||||
|
||||
if (qta != null) {
|
||||
qta = qta.setScale(cifreDec, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
|
||||
HashMap<String, BigDecimal> datiQta = calcQta(mtbUntMis, numCnf, pesoNetto, qta);
|
||||
|
||||
return datiQta;
|
||||
|
||||
@@ -78,8 +78,11 @@ public class ImportDirectoryOperationRunner extends BaseDirectoryOperationRunner
|
||||
errorMessage = Stream.of(serviceRestResponse.getMessages())
|
||||
.filter(x->x.getLevel() != null && x.getLevel()== MessageDTO.Level.ERROR).map(x->x.getText()).findFirst().orElse(null);
|
||||
}
|
||||
logger.error(String.format("Operazione [ID:%s, Name:%s] - Eccezione", this.getDtoInstance().getId(), this.getDtoInstance().getName()),
|
||||
new Exception(errorMessage));
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(errorMessage)){
|
||||
logger.error(String.format("Operazione [ID:%s, Name:%s] - Eccezione", this.getDtoInstance().getId(), this.getDtoInstance().getName()),
|
||||
new Exception(errorMessage));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -96,6 +96,14 @@ public class UserService {
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
public String retrieveFullName(String username) throws Exception {
|
||||
String sql = Query.format("SELECT full_name\n" +
|
||||
"FROM stb_user\n" +
|
||||
"WHERE user_name = {}", username);
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
public List<String> retrieveAvailableProfiles(String username) {
|
||||
|
||||
List<String> profiles;
|
||||
|
||||
@@ -38,6 +38,9 @@ public class MtbGrup extends EntityBase implements EquatableEntityInterface<MtbG
|
||||
@SqlField(value = "tipo_mgrp", maxLength = 3, nullable = true)
|
||||
private String tipoMgrp;
|
||||
|
||||
@SqlField(value = "flag_attivo", nullable = false, defaultObjectValue = "1")
|
||||
private Boolean flagAttivo;
|
||||
|
||||
@EntityChild
|
||||
private List<MtbSgrp> mtbSgrp;
|
||||
|
||||
@@ -112,6 +115,14 @@ public class MtbGrup extends EntityBase implements EquatableEntityInterface<MtbG
|
||||
this.mtbSfam = mtbSfam;
|
||||
}
|
||||
|
||||
public Boolean getFlagAttivo() {
|
||||
return flagAttivo;
|
||||
}
|
||||
|
||||
public void setFlagAttivo(Boolean flagAttivo) {
|
||||
this.flagAttivo = flagAttivo;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void deleteChilds() throws Exception {
|
||||
MtbSfam mtbSfam = new MtbSfam();
|
||||
|
||||
@@ -90,6 +90,9 @@ public class NtbDocr extends EntityBase {
|
||||
@SqlField(value = "data_ord", nullable = true)
|
||||
private Date dataOrd;
|
||||
|
||||
@SqlField(value = "causale_reso", maxLength = 5, nullable = true)
|
||||
private String causaleReso;
|
||||
|
||||
@ImportFromParent
|
||||
private String causale;
|
||||
|
||||
@@ -337,6 +340,14 @@ public class NtbDocr extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCausaleReso() {
|
||||
return causaleReso;
|
||||
}
|
||||
|
||||
public void setCausaleReso(String causaleReso) {
|
||||
this.causaleReso = causaleReso;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void insertChilds() throws Exception {
|
||||
}
|
||||
|
||||
@@ -32,9 +32,8 @@ public class StbActivityNotification extends EntityBase {
|
||||
@SqlField(value = "notification_note", maxLength = 255, nullable = true)
|
||||
private String notificationNote;
|
||||
|
||||
public StbActivityNotification() {
|
||||
super();
|
||||
}
|
||||
@SqlField(value = "user_name", maxLength = 40)
|
||||
private String userName;
|
||||
|
||||
public String getActivityId() {
|
||||
return activityId;
|
||||
@@ -68,15 +67,12 @@ public class StbActivityNotification extends EntityBase {
|
||||
this.notificationNote = notificationNote;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void insertChilds() throws Exception {
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateChilds() throws Exception {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void deleteChilds() throws Exception {
|
||||
public StbActivityNotification setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package it.integry.ems_model.rulescompleting;
|
||||
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.event.rule.*;
|
||||
@@ -29,7 +30,7 @@ public class AgendaList extends DefaultAgendaEventListener {
|
||||
if (mapTotalTimeGroupRule.get(event.getMatch().getRule().getName()) == null)
|
||||
mapTotalTimeGroupRule.put(event.getMatch().getRule().getName(), System.nanoTime());
|
||||
String message = new Date() + " RULE " + event.getMatch().getRule().getName() + " before apply...";
|
||||
// if (UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer())
|
||||
if (UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer())
|
||||
System.out.println(message);
|
||||
logger.trace(message);
|
||||
}
|
||||
@@ -40,7 +41,7 @@ public class AgendaList extends DefaultAgendaEventListener {
|
||||
mapTotalTimeGroupRule.put(event.getMatch().getRule().getName(), System.nanoTime() - lastVal);
|
||||
|
||||
String errorText = new Date() + " RULE " + event.getMatch().getRule().getName() + " applyed";
|
||||
// if (UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer())
|
||||
if (UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer())
|
||||
System.out.println(errorText);
|
||||
logger.trace(errorText);
|
||||
}
|
||||
|
||||
@@ -8,4 +8,10 @@ public class UtilityInteger {
|
||||
public static boolean isNullOrZero(Integer numCollo) {
|
||||
return numCollo == null || numCollo == 0;
|
||||
}
|
||||
|
||||
public static Integer stringToInteger(String str) {
|
||||
if (!UtilityString.isNullOrEmpty(str)) { return Integer.parseInt(str); }
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,11 +179,18 @@ end
|
||||
rule "completeInseritoDaAttivita"
|
||||
when
|
||||
eval(completeRulesEnabled)
|
||||
$entity : StbActivity(userCreator == null)
|
||||
$entity : StbActivity(userCreator == null && operation != OperationType.DELETE)
|
||||
then
|
||||
modify ( $entity ) { setUserCreator(username) }
|
||||
end
|
||||
|
||||
rule "completeUserNameActivityNotification"
|
||||
when
|
||||
eval(completeRulesEnabled)
|
||||
$entity : StbActivityNotification(userName == null && operation != OperationType.DELETE)
|
||||
then
|
||||
modify ( $entity ) { setUserName(username) }
|
||||
end
|
||||
|
||||
rule "completeActivityIdRapp"
|
||||
when
|
||||
|
||||
@@ -97,6 +97,9 @@ public class ActivityDTO {
|
||||
@SqlField(value = "parent_activity_id")
|
||||
private String parentActivityId;
|
||||
|
||||
@SqlField(value = "parent_activity_type")
|
||||
private String parentActivityType;
|
||||
|
||||
@SqlField(value = "richiedente")
|
||||
private String richiedente;
|
||||
|
||||
@@ -499,6 +502,15 @@ public class ActivityDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getParentActivityType() {
|
||||
return parentActivityType;
|
||||
}
|
||||
|
||||
public ActivityDTO setParentActivityType(String parentActivityType) {
|
||||
this.parentActivityType = parentActivityType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRichiedente() {
|
||||
return richiedente;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package it.integry.ems.activity.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class TreeViewDTO {
|
||||
|
||||
@SqlField("cod_jcom")
|
||||
@@ -31,6 +33,9 @@ public class TreeViewDTO {
|
||||
@SqlField("esito")
|
||||
private String esito;
|
||||
|
||||
@SqlField("data_ins_act")
|
||||
private Date dataInsAct;
|
||||
|
||||
public String getCodJcom() {
|
||||
return codJcom;
|
||||
}
|
||||
@@ -111,4 +116,13 @@ public class TreeViewDTO {
|
||||
this.esito = esito;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataInsAct() {
|
||||
return dataInsAct;
|
||||
}
|
||||
|
||||
public TreeViewDTO setDataInsAct(Date dataInsAct) {
|
||||
this.dataInsAct = dataInsAct;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,20 @@ import java.time.LocalDate;
|
||||
|
||||
public class UserAbsenceRequestDTO {
|
||||
|
||||
private String username;
|
||||
private LocalDate dataInizio;
|
||||
private LocalDate dataFine;
|
||||
private String giustificativo;
|
||||
private String note;
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public UserAbsenceRequestDTO setUsername(String username) {
|
||||
this.username = username;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LocalDate getDataInizio() {
|
||||
return dataInizio;
|
||||
|
||||
@@ -923,6 +923,7 @@ public class ActivityService {
|
||||
" ISNULL(parent.project_description, '') AS 'project_description',\n" +
|
||||
" ISNULL(parent.activity_description, 'Altre Attività') AS 'parent_activity_description',\n" +
|
||||
" creator.full_name AS 'user_creator_name',\n" +
|
||||
" parent.activity_type_id AS 'parent_activity_type',\n" +
|
||||
" CASE\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita IS NULL THEN 0 --backlog\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 0 THEN 1 --programmato\n" +
|
||||
@@ -964,6 +965,7 @@ public class ActivityService {
|
||||
" stb_activity.activity_description AS 'activity_description',\n" +
|
||||
" stb_activity.activity_id,\n" +
|
||||
" stb_activity.user_name,\n" +
|
||||
" stb_activity.activity_type_id,\n" +
|
||||
" stb_activity.persona_rif AS 'responabile_progetto'\n" +
|
||||
" FROM stb_activity\n" +
|
||||
" LEFT OUTER JOIN stb_activity parent\n" +
|
||||
@@ -1010,6 +1012,7 @@ public class ActivityService {
|
||||
" processi.descr_prodotto,\n" +
|
||||
" processi.project_description,\n" +
|
||||
" processi.parent_activity_description,\n" +
|
||||
" processi.parent_activity_type,\n" +
|
||||
" processi.tipo_attivita,\n" +
|
||||
" processi.data_inserimento,\n" +
|
||||
" processi.ultima_modifica,\n" +
|
||||
@@ -1370,7 +1373,8 @@ public class ActivityService {
|
||||
" stb_activity.activity_type_id,\n" +
|
||||
" count_activity.row,\n" +
|
||||
" CAST(IIF(stb_activity.effective_enddate IS NULL, 1, 0) AS BIT) AS isFinished,\n" +
|
||||
" stb_activity.activity_result_id AS esito\n" +
|
||||
" stb_activity.activity_result_id AS esito,\n" +
|
||||
" stb_activity.data_ins_act\n" +
|
||||
"FROM commesse\n" +
|
||||
" CROSS APPLY [dbo].[getTreeViewActivity](commesse.cod_jcom) t\n" +
|
||||
" INNER JOIN stb_activity ON t.activity_id = stb_activity.activity_id\n" +
|
||||
|
||||
@@ -115,17 +115,77 @@ public class UserAbsenceService {
|
||||
}
|
||||
|
||||
public void modifyAbsence(UserAbsenceRequestDTO assenza, String username) throws Exception {
|
||||
String codJflav = userService.retrieveCodJflav(username);
|
||||
String fullname = requestDataDTO.getUser().getFullname();
|
||||
String codJflav;
|
||||
String fullname;
|
||||
|
||||
if (UtilityString.isNullOrEmpty(assenza.getUsername())) {
|
||||
codJflav = userService.retrieveCodJflav(username);
|
||||
fullname = requestDataDTO.getUser().getFullname();
|
||||
} else {
|
||||
codJflav = userService.retrieveCodJflav(assenza.getUsername());
|
||||
fullname = userService.retrieveFullName(assenza.getUsername());
|
||||
}
|
||||
|
||||
if (assenza.getDataInizio() == null) throw new Exception("Errore nella data inizio");
|
||||
|
||||
JtbRLavt jtbRLavt = new JtbRLavt();
|
||||
|
||||
jtbRLavt.setGiustificativo(assenza.getGiustificativo())
|
||||
.setDataLav(UtilityLocalDate.localDateToDate(assenza.getDataInizio()))
|
||||
.setCodJflav(codJflav)
|
||||
.setNote(assenza.getNote())
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
String giustificativo = WordUtils.capitalize(assenza.getGiustificativo().toLowerCase());
|
||||
String note = assenza.getNote();
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityProcessor.processEntity(jtbRLavt, multiDBTransactionManager));
|
||||
|
||||
String subject = String.format("Modifica %s di %s", giustificativo, fullname);
|
||||
String message = String.format("%s di %s per il giorno: %s.", giustificativo, fullname, assenza.getDataInizio());
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(note)) {
|
||||
message = message.concat(String.format("\nNote: %s", note));
|
||||
}
|
||||
|
||||
mailService.sendMail("amministrazione@integry.it", null, subject, message);
|
||||
}
|
||||
|
||||
public void deleteAbsence(UserAbsenceRequestDTO assenza, String username) throws Exception {
|
||||
String codJflav = userService.retrieveCodJflav(username);
|
||||
String fullname = requestDataDTO.getUser().getFullname();
|
||||
String codJflav;
|
||||
String fullname;
|
||||
|
||||
if (UtilityString.isNullOrEmpty(assenza.getUsername())) {
|
||||
codJflav = userService.retrieveCodJflav(username);
|
||||
fullname = requestDataDTO.getUser().getFullname();
|
||||
} else {
|
||||
codJflav = userService.retrieveCodJflav(assenza.getUsername());
|
||||
fullname = userService.retrieveFullName(assenza.getUsername());
|
||||
}
|
||||
|
||||
if (assenza.getDataInizio() == null) throw new Exception("Errore nella data inizio");
|
||||
|
||||
JtbRLavt jtbRLavt = new JtbRLavt();
|
||||
|
||||
jtbRLavt.setGiustificativo(assenza.getGiustificativo())
|
||||
.setDataLav(UtilityLocalDate.localDateToDate(assenza.getDataInizio()))
|
||||
.setCodJflav(codJflav)
|
||||
.setNote(assenza.getNote())
|
||||
.setOperation(OperationType.DELETE);
|
||||
|
||||
String giustificativo = WordUtils.capitalize(assenza.getGiustificativo().toLowerCase());
|
||||
String note = assenza.getNote();
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityProcessor.processEntity(jtbRLavt, multiDBTransactionManager));
|
||||
|
||||
String subject = String.format("Eliminazione %s di %s", giustificativo, fullname);
|
||||
String message = String.format("%s di %s per il giorno: %s.", giustificativo, fullname, assenza.getDataInizio());
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(note)) {
|
||||
message = message.concat(String.format("\nNote: %s", note));
|
||||
}
|
||||
|
||||
mailService.sendMail("amministrazione@integry.it", null, subject, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
" mtb_lisa_apulia_succ.qta_cnf,\n" +
|
||||
" mtb_lisa_apulia_succ.colli_x_pedane,\n" +
|
||||
" mtb_lisa_apulia_succ.linea,\n" +
|
||||
" CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%[0-9]%' THEN 'RIF' ELSE 'DIR' END tipo_listino,\n" +
|
||||
" CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%' and IsNumeric(RIGHT(cod_alis,3)) = 1 THEN 'RIF' ELSE 'DIR' END tipo_listino,\n" +
|
||||
" mtb_lisa_apulia_succ.anno_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.rag_soc_forn,\n" +
|
||||
|
||||
@@ -17,6 +17,7 @@ public class CreaOrdineProdDTO {
|
||||
private BigDecimal colliPedana;
|
||||
private String untOrd;
|
||||
private List<ModificheDistintaDTO> modificheDistinta = new ArrayList<>();
|
||||
private String descrizionePartita;
|
||||
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
@@ -116,4 +117,13 @@ public class CreaOrdineProdDTO {
|
||||
this.modificheDistinta = modificheDistinta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizionePartita() {
|
||||
return descrizionePartita;
|
||||
}
|
||||
|
||||
public CreaOrdineProdDTO setDescrizionePartita(String descrizionePartita) {
|
||||
this.descrizionePartita = descrizionePartita;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -366,6 +366,11 @@ public class OrdineLavorazioneDTO {
|
||||
@JsonSerialize
|
||||
private LocalDate dataLotto;
|
||||
|
||||
@SqlField(value = "peso_kg")
|
||||
@JsonProperty("pesoKg")
|
||||
@JsonSerialize
|
||||
private BigDecimal pesoKg;
|
||||
|
||||
private List<AvailableClassMercDTO> availableClassMerc;
|
||||
|
||||
public Date getDataOrdProd() {
|
||||
@@ -927,6 +932,10 @@ public class OrdineLavorazioneDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPesoKg() {
|
||||
return pesoKg;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaLav() {
|
||||
return qtaLav;
|
||||
}
|
||||
|
||||
@@ -358,7 +358,8 @@ public class ProductionOrderDataHandlerService {
|
||||
" END AS stato," +
|
||||
" convert(int, SUM(ISNULL(mtb_colr.qta_col / (case when mtb_aart.unt_mis in ('PZ','NR') then 1 else " +
|
||||
" case when mtb_aart.unt_mis2 in ('PZ','NR') then mtb_aart.rap_conv2 " +
|
||||
" else 1 end end), 0))) AS pz_trasferiti" +
|
||||
" else 1 end end), 0))) AS pz_trasferiti," +
|
||||
" mtb_aart.peso_kg" +
|
||||
" FROM (SELECT MAX(id_step) " +
|
||||
" OVER ( PARTITION BY gestione, data_ord, num_ord, num_fase, cod_jfas) AS max_step_by_num_fase, " +
|
||||
" * " +
|
||||
@@ -490,7 +491,7 @@ public class ProductionOrderDataHandlerService {
|
||||
" ORDER BY dtb_ordr.data_ord, dtb_ordr.num_ord, dtb_ordr.pos_riga, dtb_ordt.num_ord";
|
||||
}
|
||||
|
||||
List<OrdineLavorazioneDTO> ordiniLavorazioneList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, OrdineLavorazioneDTO.class);
|
||||
List<OrdineLavorazioneDTO> ordiniLavorazioneList = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, OrdineLavorazioneDTO.class);
|
||||
|
||||
if (ordiniLavorazioneList != null && !ordiniLavorazioneList.isEmpty()) {
|
||||
for (OrdineLavorazioneDTO ordineDTO : ordiniLavorazioneList) {
|
||||
|
||||
@@ -979,19 +979,9 @@ public class ProductionService {
|
||||
|
||||
Date dataOrd = Date.from(creaOrdineProdDTO.getDataOrd().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
|
||||
|
||||
String partitaMag = PartitaMagRules.suggestCodePartitaMag(
|
||||
multiDBTransactionManager.getPrimaryConnection(),
|
||||
new DatiPartitaMagDTO()
|
||||
.setCodMart(creaOrdineProdDTO.getCodMart())
|
||||
.setPartitaMag(creaOrdineProdDTO.getPartitaMag())
|
||||
.setCodAnag(creaOrdineProdDTO.getCodAnag())
|
||||
.setDataOrd(dataOrd)
|
||||
);
|
||||
|
||||
DtbOrdr rigaOrdProd = new DtbOrdr()
|
||||
.setCodMart(creaOrdineProdDTO.getCodMart())
|
||||
.setPartitaMag(partitaMag)
|
||||
.setPartitaMag(creaOrdineProdDTO.getPartitaMag())
|
||||
.setValUnt(creaOrdineProdDTO.getValUnt())
|
||||
.setNumCnf(creaOrdineProdDTO.getNumCnf())
|
||||
.setColliPedana(creaOrdineProdDTO.getColliPedana())
|
||||
|
||||
@@ -1304,30 +1304,21 @@ public class VariazioniPvService {
|
||||
formatFile,
|
||||
Entity.json(variazioniPvInputDTO));
|
||||
|
||||
boolean testError = false;
|
||||
String emailForLog = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), exportType, formatFile, "EMAIL_FOR_LOG");
|
||||
int numVariazioni = variazioniPvInputDTO.getVariazioni().size();
|
||||
if (!UtilityString.isNullOrEmpty(emailForLog) && numVariazioni > 0) {
|
||||
String oggetto =
|
||||
"Esportazione " +
|
||||
variazioniPvInputDTO.getTipoReportEnum().toString() +
|
||||
" punto vendita " +
|
||||
userName;
|
||||
|
||||
if (testError)
|
||||
throw new Exception("TEST ERROR");
|
||||
String messaggio = oggetto +
|
||||
" avvenuta con successo." + CommonConstants.A_CAPO +
|
||||
" Sono stati esportati n. " + numVariazioni + " articoli";
|
||||
|
||||
|
||||
|
||||
//
|
||||
// String emailForLog = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), exportType, formatFile, "EMAIL_FOR_LOG");
|
||||
// int numVariazioni = variazioniPvInputDTO.getVariazioni().size();
|
||||
// if (!UtilityString.isNullOrEmpty(emailForLog) && numVariazioni > 0) {
|
||||
// String oggetto =
|
||||
// "Esportazione " +
|
||||
// variazioniPvInputDTO.getTipoReportEnum().toString() +
|
||||
// " punto vendita " +
|
||||
// userName;
|
||||
//
|
||||
// String messaggio = oggetto +
|
||||
// " avvenuta con successo." + CommonConstants.A_CAPO +
|
||||
// " Sono stati esportati n. " + numVariazioni + " articoli";
|
||||
//
|
||||
//
|
||||
// mailService.sendMailPrimary(multiDBTransactionManager, null, null, emailForLog, null, null, oggetto, messaggio, false, false, null, null, null, false, null);
|
||||
// }
|
||||
mailService.sendMailPrimary(multiDBTransactionManager, null, null, emailForLog, null, null, oggetto, messaggio, false, false, null, null, null, false, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,7 @@ import it.integry.ems_model.entity.NtbDocr;
|
||||
import it.integry.ems_model.entity.NtbDoct;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -115,7 +112,7 @@ public class ReceiptsParser implements IReceiptsParser {
|
||||
if (head.length >= 35) {
|
||||
receipts.setDataDocRif(UtilityDate.StringToDate(head[32], CommonConstants.DATETIME_FORMAT_DMY_SLASHED));
|
||||
receipts.setCodCassaRif(head[33]);
|
||||
receipts.setNumDocRif(Integer.parseInt(head[34]));
|
||||
receipts.setNumDocRif(UtilityInteger.stringToInteger(head[34]));
|
||||
}
|
||||
|
||||
if (("EP").equals(flagTrans) || ("UP").equals(flagTrans)) {
|
||||
@@ -214,6 +211,10 @@ public class ReceiptsParser implements IReceiptsParser {
|
||||
receipts.setNtbDocr(new ArrayList<NtbDocr>());
|
||||
NtbDocr row = new NtbDocr();
|
||||
|
||||
if (head.length >= 36){
|
||||
row.setCausaleReso(head[35]);
|
||||
}
|
||||
|
||||
String[] rawString = head;
|
||||
|
||||
if (startLine == 0) {
|
||||
|
||||
@@ -68,21 +68,23 @@ public class ScontriniImportService {
|
||||
UtilityFile.fileDelete(filePath);
|
||||
}
|
||||
|
||||
for (EntityBase entity : receipts) {
|
||||
try {
|
||||
if (entity instanceof NtbDoct) {
|
||||
NtbDoct receipt = (NtbDoct) entity;
|
||||
//salta gli scontrini vuoti generati da casi non previsti
|
||||
if (UtilityString.isNullOrEmpty(receipt.getCodMdep()) && UtilityString.isNullOrEmpty(receipt.getCodCassa()) &&
|
||||
receipt.getDataDoc() == null)
|
||||
continue;
|
||||
}
|
||||
entityProcessor.processEntity(entity, multiDBTransactionManager);
|
||||
if (receipts != null){
|
||||
for (EntityBase entity : receipts) {
|
||||
try {
|
||||
if (entity instanceof NtbDoct) {
|
||||
NtbDoct receipt = (NtbDoct) entity;
|
||||
//salta gli scontrini vuoti generati da casi non previsti
|
||||
if (UtilityString.isNullOrEmpty(receipt.getCodMdep()) && UtilityString.isNullOrEmpty(receipt.getCodCassa()) &&
|
||||
receipt.getDataDoc() == null)
|
||||
continue;
|
||||
}
|
||||
entityProcessor.processEntity(entity, multiDBTransactionManager);
|
||||
|
||||
} catch (Exception e) {
|
||||
anomalie.add(setAnomalia(e));
|
||||
} catch (Exception e) {
|
||||
anomalie.add(setAnomalia(e));
|
||||
}
|
||||
entitiesReturn.add(entity);
|
||||
}
|
||||
entitiesReturn.add(entity);
|
||||
}
|
||||
|
||||
return entitiesReturn;
|
||||
|
||||
@@ -81,7 +81,7 @@ public class VariazioniPvExportServices {
|
||||
}
|
||||
|
||||
if (variazioniPvDTO != null && UtilityString.isNullOrEmpty(variazioniPvDTO.getFileXml())) {
|
||||
boolean existJson = (variazioniPvDTO.getVariazioni() != null || variazioniPvDTO.getVariazioni().size() > 0);
|
||||
boolean existJson = (variazioniPvDTO.getVariazioni() != null && variazioniPvDTO.getVariazioni().size() > 0);
|
||||
if (variazioniPvDTO.getDataValidita() == null) {
|
||||
variazioniPvDTO.setDataValidita( UtilityDate.RelativeDateTime(new Date(), 1));
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ public class GiacenzaService {
|
||||
" INNER JOIN art ON movimenti.cod_mart = art.cod_mart\n" +
|
||||
" LEFT OUTER JOIN carelli_giacenza_prog giac ON giac.cod_mdep = movimenti.cod_mdep AND giac.cod_mart = art.cod_mart_mov\n" +
|
||||
"WHERE movimenti.data_reg >= CAST(ISNULL(giac.data_reg, GETDATE()) AS DATE) AND \n" +
|
||||
" (giac.tipo_car is null OR giac.tipo_car <> 'C' OR (giac.tipo_car = 'C' AND movimenti.data_ins >= giac.data_reg)) \n" +
|
||||
" (giac.tipo_car is null OR giac.tipo_car <> 'R' OR (giac.tipo_car = 'R' AND movimenti.data_ins >= giac.data_reg)) \n" +
|
||||
"GROUP BY movimenti.cod_mdep,\n " +
|
||||
" art.cod_mart_mov,\n"+
|
||||
" giac.qta_iniz\n").replace("[COD_MDEP]", codMdep);
|
||||
|
||||
@@ -39,8 +39,8 @@ public class ExchangeColliImportController {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam() String codAnag,
|
||||
@RequestParam() String dataCert,
|
||||
@RequestParam() String codMart,
|
||||
@RequestParam() String codVdes
|
||||
@RequestParam(required = false) String codMart,
|
||||
@RequestParam(required = false) String codVdes
|
||||
) throws Exception {
|
||||
LocalDate dataCertificato = LocalDate.parse(dataCert);
|
||||
return ServiceRestResponse.createPositiveResponse(exchangeColliImportService.getCertificati(codAnag,
|
||||
|
||||
@@ -51,6 +51,10 @@ public class CertificatiSinfoOneDTO {
|
||||
private BigDecimal sconto8;
|
||||
@SqlField("scartoCq")
|
||||
private BigDecimal scartoCq;
|
||||
@SqlField("cod_vvet")
|
||||
private String codVvet;
|
||||
@SqlField("vettore")
|
||||
private String vettore;
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
@@ -249,4 +253,22 @@ public class CertificatiSinfoOneDTO {
|
||||
this.scartoCq = scartoCq;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVvet() {
|
||||
return codVvet;
|
||||
}
|
||||
|
||||
public CertificatiSinfoOneDTO setCodVvet(String codVvet) {
|
||||
this.codVvet = codVvet;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getVettore() {
|
||||
return vettore;
|
||||
}
|
||||
|
||||
public CertificatiSinfoOneDTO setVettore(String vettore) {
|
||||
this.vettore = vettore;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,6 +220,8 @@ public class ExchangeColliImportService {
|
||||
" TRIM(tagliando_pesa) AS tagliandoPesa,\n" +
|
||||
" data_ora_lordo AS dataOraLordo,\n" +
|
||||
" CONVERT(NUMERIC(15, 3), sconto8) AS sconto8,\n" +
|
||||
" cod_vettore AS cod_vvet,\n" +
|
||||
" vettore AS vettore,\n" +
|
||||
" CONVERT(NUMERIC(15, 3), PMB_SCARTO_CQ) AS scartoCq\n " +
|
||||
"FROM s1_Certificati\n" +
|
||||
"WHERE cod_anag = {}\n" +
|
||||
|
||||
@@ -12,10 +12,7 @@ import it.integry.ems_model.entity.StbGestSetup;
|
||||
import it.integry.ems_model.entity.StbGestSetupQuery;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -116,9 +113,21 @@ public class SystemMigrationService {
|
||||
if (setup.getOperation() == OperationType.DELETE) {
|
||||
operation = formatSetup("deleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), setup.getKeySection());
|
||||
|
||||
classBuilder.append("\t\t" + operation)
|
||||
.append("\r\n");
|
||||
} if (setup.getOperation() == OperationType.UPDATE) {
|
||||
operation = formatSetup("updateSetupValue(%s, %s, %s, %s);", setup.getGestName(), setup.getSection(), setup.getKeySection(), setup.getValue());
|
||||
|
||||
classBuilder.append("\t\t" + operation)
|
||||
.append("\r\n");
|
||||
} else {
|
||||
if (setup.getOperation() == OperationType.DELETE_THEN_INSERT) {
|
||||
String keySection = UtilityHashMap.getValueIfExists(setup.getOldPk(), "key_section");
|
||||
operation = formatSetup("deleteSetup(%s, %s, %s);", setup.getGestName(), setup.getSection(), keySection);
|
||||
|
||||
classBuilder.append("\t\t" + operation)
|
||||
.append("\r\n");
|
||||
}
|
||||
if (!UtilityString.isNullOrEmpty(setup.getQueryDefault())){
|
||||
operation =
|
||||
formatSetup(
|
||||
|
||||
Reference in New Issue
Block a user