Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2024-08-02 17:06:21 +02:00
21 changed files with 690 additions and 167 deletions

View File

@@ -0,0 +1,416 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240801144301 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("getMovMag", "CREATE FUNCTION [dbo].[getMovMag](@codAnag varchar(5), @codDtip varchar(5), @dataDoc datetime, @serDoc varchar(2), @numDoc int)\n" +
" RETURNS TABLE AS\n" +
" RETURN (\n" +
"with setup as (\n" +
" SELECT MAX(cASE WHEN key_section = 'GESTISCE_FLAG_DIG' AND value = 'S' THEN 1 ELSE 0 END) as useFlagDig,\n" +
" MAX(CASE WHEN key_section = 'VALORIZZAZIONE_SCARICHI' then VALUE ELSE 'C'end) AS VAL_SCARICHI,\n" +
" max(CASE WHEN key_section = 'PERC_SFRIDO' then VALUE ELSE null end) AS PERC_SFRIDO\n" +
" FROM stb_gest_setup\n" +
" WHERE gest_name = 'DATI_AZIENDA'\n" +
" and section = 'PROGRESSIVI_MAG'\n" +
" and key_section IN ('GESTISCE_FLAG_DIG', 'VALORIZZAZIONE_SCARICHI', 'PERC_SFRIDO')\n" +
")\n" +
", documenti as (\n" +
" SELECT dt.cod_anag,\n" +
" dt.cod_dtip,\n" +
" dt.data_doc,\n" +
" dt.ser_doc,\n" +
" dt.num_doc,\n" +
" dr.id_riga,\n" +
" dt.data_reg,\n" +
" dt.cod_mdep,\n" +
" dr.cod_mart as cod_mart,\n" +
" td.tipo_emissione,\n" +
" mtb_aart.unt_mis as unt_mis_mag,\n" +
" dr.qta_doc * dr.rap_conv as qta_doc,\n" +
" dr.num_cnf,\n" +
" dr.costo_unt,\n" +
" dr.costo_unt / (case when dr.rap_conv = 0 THEN 1 ELSE dr.rap_conv END) as costo_unt_um,\n" +
" dt.cambio,\n" +
" mtb_aart.perc_sfrido,\n" +
" dr.importo_riga,\n" +
" dr.cod_col,\n" +
" dr.cod_tagl,\n" +
" dr.partita_mag,\n" +
" IsNull(mag.cod_mdep, dt.cod_mdep) as cod_mdep_anag,\n" +
" dt.cod_prod,\n" +
" dt.partita_mag as partita_mag_prod,\n" +
" dr.cod_jcom,\n" +
" dt.cod_jfas,\n" +
" dt.gestione,\n" +
" dr.data_ord,\n" +
" dr.num_ord,\n" +
" td.segno_qta_car,\n" +
" td.segno_qta_scar,\n" +
" td.segno_val_car,\n" +
" td.segno_val_scar,\n" +
" td.flag_sfrido,\n" +
" CAST(0 as bit) as doc_trasf\n" +
" FROM dtb_doct dt\n" +
" inner join dtb_tipi td on dt.cod_dtip = td.cod_dtip\n" +
" inner join dtb_docr dr\n" +
" on dt.cod_anag = dr.cod_anag and dt.cod_dtip = dr.cod_dtip and dt.data_doc = dr.data_doc and\n" +
" dt.ser_doc = dr.ser_doc and dt.num_doc = dr.num_doc\n" +
" inner join mtb_aart on dr.cod_mart = mtb_aart.cod_mart\n" +
" left outer join mtb_depo mag\n" +
" on dt.cod_anag = mag.cod_anag and isNull(dt.cod_vdes, '') = ISNULL(mag.cod_vdes, '')\n" +
" left outer join dtb_tipi tdc on dr.cod_dtip_comp = tdc.cod_dtip\n" +
" WHERE td.tipo_emissione = 'DIRETTA'\n" +
" and dt.cod_anag = @codAnag\n" +
" and dt.cod_dtip = @codDtip\n" +
" and dt.data_doc = @dataDoc\n" +
" and dt.ser_doc = @serDoc\n" +
" and dt.num_doc = @numDoc\n" +
" AND (( dt.gestione <> 'L' AND td.segno_qta_car = 0 AND td.segno_val_car = 1 AND tdc.gestione <> 'V' ) OR\n" +
" NOT( dt.gestione <> 'L' AND td.segno_qta_car = 0 AND td.segno_val_car = 1 ))\n" +
" union all\n" +
" /*Movimento su eventuale secondo deposito legato all'intestatario del documento*/\n" +
" /*Vengono evitati i carichi fittizi su deposito del terzista di semilavorati che rientrano da c/lavoro*/\n" +
" SELECT dt.cod_anag,\n" +
" dt.cod_dtip,\n" +
" dt.data_doc,\n" +
" dt.ser_doc,\n" +
" dt.num_doc,\n" +
" dr.id_riga,\n" +
" dt.data_reg,\n" +
" isnull(dep1.cod_mdep, dep2.cod_mdep) as cod_mdep,\n" +
" dr.cod_mart as cod_mart,\n" +
" td.tipo_emissione,\n" +
" mtb_aart.unt_mis as unt_mis_mag,\n" +
" dr.qta_doc * dr.rap_conv as qta_doc,\n" +
" dr.num_cnf,\n" +
" dr.costo_unt,\n" +
" dr.costo_unt / (case when dr.rap_conv = 0 THEN 1 ELSE dr.rap_conv END) as costo_unt_um,\n" +
" dt.cambio,\n" +
" mtb_aart.perc_sfrido,\n" +
" dr.importo_riga,\n" +
" dr.cod_col,\n" +
" dr.cod_tagl,\n" +
" case when isnull(dep1.flag_gestisci_tracc, dep2.flag_gestisci_tracc) = 1 then dr.partita_mag else null end as partita_mag,\n" +
" IsNull(isnull(dep1.cod_mdep, dep2.cod_mdep), dt.cod_mdep) as cod_mdep_anag,\n" +
" dt.cod_prod,\n" +
" case when isnull(dep1.flag_gestisci_tracc, dep2.flag_gestisci_tracc) = 1 then dt.partita_mag else null end as partita_mag_prod,\n" +
" dr.cod_jcom,\n" +
" dt.cod_jfas,\n" +
" dt.gestione,\n" +
" dr.data_ord,\n" +
" dr.num_ord,\n" +
" td.segno_qta_scar as segno_qta_car,\n" +
" td.segno_qta_car as segno_qta_scar,\n" +
" td.segno_val_scar as segno_val_car,\n" +
" td.segno_val_car as segno_val_scar,\n" +
" td.flag_sfrido,\n" +
" CAST(1 as bit) as doc_trasf\n" +
" FROM dtb_doct dt\n" +
" inner join dtb_tipi td on dt.cod_dtip = td.cod_dtip\n" +
" inner join dtb_docr dr\n" +
" on dt.cod_anag = dr.cod_anag and dt.cod_dtip = dr.cod_dtip and dt.data_doc = dr.data_doc and\n" +
" dt.ser_doc = dr.ser_doc and dt.num_doc = dr.num_doc\n" +
" inner join mtb_aart on dr.cod_mart = mtb_aart.cod_mart\n" +
" left outer join mtb_depo dep1 on dt.cod_anag = dep1.cod_anag and\n" +
" dt.cod_vdes = dep1.cod_vdes \n" +
" left outer join mtb_depo dep2 on dt.cod_anag = dep2.cod_anag and\n" +
" dep2.cod_vdes is null\n" +
" \n" +
" WHERE td.tipo_emissione = 'DIRETTA'\n" +
" and dt.cod_anag = @codAnag\n" +
" and dt.cod_dtip = @codDtip\n" +
" and dt.data_doc = @dataDoc\n" +
" and dt.ser_doc = @serDoc\n" +
" and dt.num_doc = @numDoc\n" +
" and isnull(dep1.cod_mdep, dep2.cod_mdep) <> dt.cod_mdep\n" +
" and td.flag_trasf = 'S'\n" +
" and not (dt.gestione = 'L' and dr.data_ord is not null and dr.riga_ord = 0 and td.segno_qta_car = 1)\n" +
" union all\n" +
" /*In questa sezione vengono generati gli scarichi di materiali sui depositi dei terzisti,\n" +
" SOLO quando non ci sono scarichi espliciti e l'ordine di lavorazione e' inevaso (qta_Evasa = 0),\n" +
" basta che il deposito dell'impegno e' il magazzino aziendale e non quello del terzista */\n" +
" /*Questa logica andrebbe sostituita con un documento di scarico esplicito dei materiali dal deposito del terzista\n" +
" e un carico esplicito sul deposito azienda del semilavorato. Si dovrebbe evitare il giroconto del semilavorato\n" +
" (carico e scarico) sul deposito del terzista*/\n" +
" /* Non più utilizzato\n" +
" SELECT dt.cod_anag,\n" +
" dt.cod_dtip,\n" +
" dt.data_doc,\n" +
" dt.ser_doc,\n" +
" dt.num_doc,\n" +
" dr.id_riga,\n" +
" dt.data_reg,\n" +
" mag.cod_mdep,\n" +
" dr.cod_mart as cod_mart,\n" +
" td.tipo_emissione,\n" +
" mtb_aart.unt_mis as unt_mis_mag,\n" +
" ordr.qta_ord * ordr.rap_conv * dr.qta_doc*dr.rap_conv / ordt.qta_prod as qta_doc,\n" +
" dr.num_cnf,\n" +
" dr.costo_unt,\n" +
" dr.costo_unt / (case when dr.rap_conv = 0 THEN 1 ELSE dr.rap_conv END) as costo_unt_um,\n" +
" dt.cambio,\n" +
" mtb_aart.perc_sfrido,\n" +
" dr.importo_riga,\n" +
" dr.cod_col,\n" +
" dr.cod_tagl,\n" +
" dr.partita_mag,\n" +
" IsNull(mag.cod_mdep, dt.cod_mdep) as cod_mdep_anag,\n" +
" dt.cod_prod,\n" +
" dt.partita_mag as partita_mag_prod,\n" +
" dr.cod_jcom,\n" +
" dt.cod_jfas,\n" +
" dt.gestione,\n" +
" dr.data_ord,\n" +
" dr.num_ord,\n" +
" 0 as segno_qta_car,\n" +
" td.segno_qta_scar,\n" +
" 0 as segno_val_car,\n" +
" td.segno_val_scar,\n" +
" td.flag_sfrido\n" +
" FROM dtb_doct dt\n" +
" inner join dtb_tipi td on dt.cod_dtip = td.cod_dtip\n" +
" inner join dtb_docr dr\n" +
" on dt.cod_anag = dr.cod_anag and dt.cod_dtip = dr.cod_dtip and dt.data_doc = dr.data_doc and\n" +
" dt.ser_doc = dr.ser_doc and dt.num_doc = dr.num_doc\n" +
" inner join dtb_ordt ot on dt.gestione = ot.gestione and dt.data_ord = ot.data_ord and dt.num_ord = ot.num_ord\n" +
" inner join dtb_ordr ordr on dt.gestione = ordr.gestione and dr.data_ord = ordr.data_ord and dr.num_ord = ordr.num_ord\n" +
" inner join mtb_aart on dr.cod_mart = mtb_aart.cod_mart\n" +
" left outer join mtb_depo mag\n" +
" on dt.cod_anag = mag.cod_anag and isNull(dt.cod_vdes, '') = ISNULL(mag.cod_vdes, '')\n" +
" WHERE td.tipo_emissione = 'DIRETTA'\n" +
" and dt.cod_anag = @codAnag\n" +
" and dt.cod_dtip = @codDtip\n" +
" and dt.data_doc = @dataDoc\n" +
" and dt.ser_doc = @serDoc\n" +
" and dt.num_doc = @numDoc\n" +
" and dt.num_doc = @numDoc\n" +
" and dt.cod_mdep <> mag.cod_mdep\n" +
" and td.flag_trasf = 'S'\n" +
" and ( td.segno_qta_car > 0 OR td.segno_qta_scar < 0 )\n" +
" and ordr.qta_evasa = 0\n" +
" and dr.riga_ord = 0\n" +
" Union all */\n" +
" /*Movimento su eventuale deposito di conto vendita legato al deposito del documento*/\n" +
" SELECT dt.cod_anag,\n" +
" dt.cod_dtip,\n" +
" dt.data_doc,\n" +
" dt.ser_doc,\n" +
" dt.num_doc,\n" +
" dr.id_riga,\n" +
" dt.data_reg,\n" +
" dt.cod_mdep,\n" +
" dr.cod_mart as cod_mart,\n" +
" td.tipo_emissione,\n" +
" mtb_aart.unt_mis as unt_mis_mag,\n" +
" dr.qta_doc * dr.rap_conv as qta_doc,\n" +
" dr.num_cnf,\n" +
" dr.costo_unt,\n" +
" dr.costo_unt / (case when dr.rap_conv = 0 THEN 1 ELSE dr.rap_conv END) as costo_unt_um,\n" +
" dt.cambio,\n" +
" mtb_aart.perc_sfrido,\n" +
" dr.importo_riga,\n" +
" dr.cod_col,\n" +
" dr.cod_tagl,\n" +
" case when mtb_depo.flag_gestisci_tracc = 1 then dr.partita_mag else null end as partita_mag,\n" +
" IsNull(mag.cod_mdep, dt.cod_mdep) as cod_mdep_anag,\n" +
" dt.cod_prod,\n" +
" case when mtb_depo.flag_gestisci_tracc = 1 then dt.partita_mag else null end as partita_mag_prod,\n" +
" dr.cod_jcom,\n" +
" dt.cod_jfas,\n" +
" dt.gestione,\n" +
" dr.data_ord,\n" +
" dr.num_ord,\n" +
" -1 * td.segno_qta_car as segno_qta_car,\n" +
" -1 * td.segno_qta_scar as segno_qta_scar,\n" +
" -1 * td.segno_val_car as segno_val_car,\n" +
" -1 * td.segno_val_scar as segno_val_scar,\n" +
" td.flag_sfrido,\n" +
" CAST(1 as bit) as doc_trasf\n" +
" FROM dtb_doct dt\n" +
" inner join dtb_tipi td on dt.cod_dtip = td.cod_dtip\n" +
" inner join mtb_depo on dt.cod_mdep = mtb_depo.cod_mdep\n" +
" inner join dtb_docr dr\n" +
" on dt.cod_anag = dr.cod_anag and dt.cod_dtip = dr.cod_dtip and dt.data_doc = dr.data_doc and\n" +
" dt.ser_doc = dr.ser_doc and dt.num_doc = dr.num_doc\n" +
" inner join mtb_aart on dr.cod_mart = mtb_aart.cod_mart\n" +
" left outer join mtb_depo mag\n" +
" on dt.cod_anag = mag.cod_anag and isNull(dt.cod_vdes, '') = ISNULL(mag.cod_vdes, '')\n" +
" WHERE td.tipo_emissione = 'DIRETTA'\n" +
" and dt.cod_anag = @codAnag\n" +
" and dt.cod_dtip = @codDtip\n" +
" and dt.data_doc = @dataDoc\n" +
" and dt.ser_doc = @serDoc\n" +
" and dt.num_doc = @numDoc\n" +
" and td.flag_conto_vendita = 'S'\n" +
" and mtb_depo.cod_mdep_cv is not null\n" +
")\n" +
"\n" +
"\n" +
"select dr.cod_anag,\n" +
" dr.cod_Dtip,\n" +
" dr.data_doc,\n" +
" dr.ser_doc,\n" +
" dr.num_doc,\n" +
" dr.id_riga as Id_rigaDoc,\n" +
" row_number()\n" +
" over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mdep order by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mdep, dr.id_riga) as id_riga,\n" +
" dr.data_reg,\n" +
" gtb_periodo_fisc.anno as anno,\n" +
" dr.cod_mdep,\n" +
" isnull(mtb_comp.cod_comp, dr.cod_mart) as cod_mart,\n" +
" (case when setup.useFlagDig = 1 and mtb_unt_mis.flag_dig = 'S' THEN round(dr.qta_doc, 2) else dr.qta_doc end) *\n" +
" dr.segno_qta_car *\n" +
" (isnull(mtb_comp.qta_std, 1)) as qta_car,\n" +
" case\n" +
" when mtb_comp.cod_mart is not null THEN Round(\n" +
" dr.qta_doc * dr.segno_qta_car * mtb_comp.qta_std / mtb_comp.qta_cnf,\n" +
" (case when mtb_comp.flag_qta_cnf_fissa = 'S' THEN 5 ELSE 0 END))\n" +
" else dr.num_cnf * dr.segno_qta_car end as num_car, \n" +
" (dr.segno_val_car *\n" +
" case when \n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )= 0 THEN \n" +
" 0 ELSE \n" +
" SUM( case when doc_trasf = 1 AND setup.VAL_SCARICHI = 'V' THEN dr.importo_riga ELSE dr.qta_doc * dr.costo_unt_um END ) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) /\n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) * dr.qta_doc\n" +
" / dr.cambio * gtb_divi.cambio end) * Case\n" +
" WHEN mtb_comp.qta_std is null or dr.qta_doc = 0\n" +
" then 1\n" +
" else mtb_comp.perc_prezzo / 100 end as val_car,\n" +
" \n" +
" case when\n" +
" dr.gestione = 'V'\n" +
" AND dr.segno_qta_scar > 0\n" +
" AND dr.flag_sfrido = 'S'\n" +
" THEN \n" +
" case when setup.PERC_SFRIDO = 'A' THEN \n" +
" (case when setup.useFlagDig = 1 and mtb_unt_mis.flag_dig = 'S' THEN round(dr.qta_doc, 2) else dr.qta_doc end) *\n" +
" dr.segno_qta_scar * (isnull(mtb_comp.qta_std, 1)) / (1 - (dr.perc_sfrido / 100))\n" +
" else\n" +
" (case when setup.useFlagDig = 1 and mtb_unt_mis.flag_dig = 'S' THEN round(dr.qta_doc, 2) else dr.qta_doc end) *\n" +
" dr.segno_qta_scar * (isnull(mtb_comp.qta_std, 1)) * ( 1 + (dr.perc_sfrido / 100))\n" +
" end\n" +
" else\n" +
" (case when setup.useFlagDig = 1 and mtb_unt_mis.flag_dig = 'S' THEN round(dr.qta_doc, 2) else dr.qta_doc end) *\n" +
" dr.segno_qta_scar * (isnull(mtb_comp.qta_std, 1)) END as qta_scar,\n" +
" case\n" +
" when\n" +
" mtb_comp.cod_mart is not null\n" +
" THEN\n" +
" Round((dr.qta_doc * dr.segno_qta_scar * mtb_comp.qta_std / mtb_comp.qta_cnf),\n" +
" (case when mtb_comp.flag_qta_cnf_fissa = 'S' THEN 5 ELSE 0 END))\n" +
" else\n" +
" dr.num_cnf * dr.segno_qta_scar\n" +
" end\n" +
" as num_scar,\n" +
" dr.segno_val_scar \n" +
" *\n" +
" CASE WHEN \n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )= 0 THEN 0\n" +
" ELSE \n" +
" SUM(case when setup.VAL_SCARICHI = 'V' THEN dr.importo_riga ELSE dr.qta_doc * dr.costo_unt_um END) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) /\n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) END * dr.qta_doc / dr.cambio *\n" +
" gtb_divi.cambio *\n" +
" \n" +
" Case WHEN mtb_comp.qta_std is null or dr.qta_doc = 0 then 1 else mtb_comp.perc_prezzo / 100 end as val_scar,\n" +
" dr.cod_col,\n" +
" dr.cod_tagl,\n" +
" case\n" +
" when\n" +
" mtb_comp.cod_mart is not null\n" +
" then\n" +
" null\n" +
" else\n" +
" dr.partita_mag\n" +
" end\n" +
" as partita_mag,\n" +
" case\n" +
" when\n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) = 0 \n" +
" then\n" +
" 0 \n" +
" else SUM(costo_unt_um * dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) \n" +
" / SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) \n" +
" / dr.cambio * gtb_divi.cambio *\n" +
" Case\n" +
" WHEN mtb_comp.qta_std is null or dr.qta_doc = 0 then 1\n" +
" else mtb_comp.perc_prezzo / 100 / mtb_comp.qta_std END END as costo_unt,\n" +
" dr.cod_jcom,\n" +
" dr.cod_jfas,\n" +
" case when dr.cod_mdep = dr.cod_mdep_anag THEN dr.cod_prod else null end as cod_prod,\n" +
" case\n" +
" when dr.cod_mdep = dr.cod_mdep_anag THEN dr.partita_mag_prod\n" +
" else null end as partita_mag_prod,\n" +
" dr.gestione,\n" +
" dr.data_ord,\n" +
" dr.num_ord,\n" +
" gtb_anni_divi.cod_divi_cont_prima as cod_divi,\n" +
" gtb_divi.cambio,\n" +
" CASE\n" +
" WHEN (dr.segno_qta_car > 0 OR dr.segno_qta_scar < 0) AND \n" +
" SUM((dr.segno_qta_car - dr.segno_qta_scar ) * dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) > 0 THEN\n" +
" Abs((case\n" +
" when setup.useFlagDig = 1 and mtb_unt_mis.flag_dig = 'S' THEN round(dr.qta_doc, 2)\n" +
" else dr.qta_doc end) * (isnull(mtb_comp.qta_std, 1)))\n" +
" ELSE 0 END as qta_car_costo,\n" +
" CASE\n" +
" WHEN (dr.segno_qta_car > 0 OR dr.segno_qta_scar < 0 )AND \n" +
" SUM((dr.segno_qta_car - dr.segno_qta_scar ) * dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) > 0 THEN\n" +
" abs((case when \n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )= 0 THEN 0\n" +
" ELSE \n" +
" SUM(dr.costo_unt_um * dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )\n" +
" /SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) * dr.qta_doc\n" +
" / dr.cambio * gtb_divi.cambio end) *\n" +
" Case WHEN mtb_comp.qta_std is null or dr.qta_doc = 0 then 1 else mtb_comp.perc_prezzo / 100 end)\n" +
" WHEN ( dr.segno_qta_car = 0 AND dr.segno_val_car <> 0 ) OR ( dr.segno_qta_scar = 0 AND dr.segno_val_scar <> 0 ) AND \n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) > 0 THEN\n" +
" abs((case when \n" +
" SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )= 0 THEN 0\n" +
" ELSE \n" +
" SUM(dr.costo_unt_um * dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep )\n" +
" /SUM(dr.qta_doc) over (partition by dr.cod_anag, dr.cod_dtip, dr.data_doc, dr.ser_doc, dr.num_doc, dr.cod_mart, dr.partita_mag, dr.cod_col, dr.cod_tagl, dr.cod_mdep ) * dr.qta_doc\n" +
" / dr.cambio * gtb_divi.cambio end) *\n" +
" Case WHEN mtb_comp.qta_std is null or dr.qta_doc = 0 then 1 else mtb_comp.perc_prezzo / 100 end)\n" +
" \n" +
" ELSE 0 END as val_car_costo,\n" +
" null as Posizione,\n" +
" mtb_comp.cod_mart as cod_kit\n" +
"from documenti dr\n" +
" inner join gtb_anni_divi on year(dr.data_reg) = gtb_anni_divi.anno\n" +
" inner join gtb_periodo_fisc on dr.data_reg between gtb_periodo_fisc.data_iniz and gtb_periodo_fisc.data_fine\n" +
" inner join gtb_divi on gtb_anni_divi.cod_divi_cont_prima = gtb_divi.cod_divi\n" +
" left outer join\n" +
" (\n" +
" SELECT mtb_comp.*,\n" +
" comp.qta_cnf,\n" +
" mtb_aart.flag_qta_cnf_fissa\n" +
" FROM mtb_aart\n" +
" inner join mtb_comp ON mtb_aart.cod_mart = mtb_comp.cod_mart\n" +
" inner join mtb_aart comp on mtb_comp.cod_comp = comp.cod_mart\n" +
" WHERE mtb_aart.articolo_composto = 'S'\n" +
" ) mtb_comp\n" +
" on dr.cod_mart = mtb_comp.cod_mart\n" +
" left outer join\n" +
" mtb_unt_mis\n" +
" ON dr.unt_mis_mag = mtb_unt_mis.unt_mis,\n" +
" setup\n" +
"\n" +
"\n" +
" )");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240802150606 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("w_vdist_rc", "INVIO_EMAIL", "ABILITA_INVIO_EMAIL", "N",
"Abilita la possibilità di inviare l'email anche nel caso di distinte attive",
"SI_NO");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomer;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240802162927 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if(isCustomer(IntegryCustomer.Maggio)) {
updateSetupValue("w_vdist_rc", "INVIO_EMAIL", "ABILITA_INVIO_EMAIL", "S");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -454,7 +454,9 @@ public class AccountingRules extends QueryRules {
ctbScad.getIdRigaMov());
List<CrlScadParr> crlScadParrs = UtilityDB.executeSimpleQueryDTO(conn, sql, CrlScadParr.class);
crlScadParrs.stream().forEach(x->x.setOperation(OperationType.DELETE));
if (crlScadParrs != null) {
crlScadParrs.stream().forEach(x -> x.setOperation(OperationType.DELETE));
}
if (crlScadParrs != null && crlScadParrs.size() > 0 ){
sql =
@@ -509,79 +511,84 @@ public class AccountingRules extends QueryRules {
)
.findFirst();
CtbParr ctbParr;
if (ctbParrFirst.isPresent()) {
elencoPartite.remove(ctbParrFirst.get());
ctbParr = ctbParrFirst.get();
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) {
ctbParr.setImpDare(ctbParr.getImpDare().add(ctbScad.getImpDare().divide(ctbParr.getCambioDiviScad()).setScale(5, RoundingMode.HALF_UP)));
if (UtilityBigDecimal.equalsOrGreaterThan(scad.getImpAvere(), BigDecimal.ZERO) &&
UtilityBigDecimal.equalsOrGreaterThan(scad.getImpDare(), BigDecimal.ZERO)) {
CtbParr ctbParr;
if (ctbParrFirst.isPresent()) {
elencoPartite.remove(ctbParrFirst.get());
ctbParr = ctbParrFirst.get();
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) {
ctbParr.setImpDare(ctbParr.getImpDare().add(ctbScad.getImpDare().divide(ctbParr.getCambioDiviScad()).setScale(5, RoundingMode.HALF_UP)));
} else {
ctbParr.setImpAvere(ctbParr.getImpAvere().add(ctbScad.getImpAvere().divide(ctbParr.getCambioDiviScad()).setScale(5, RoundingMode.HALF_UP)));
}
} else {
ctbParr.setImpAvere(ctbParr.getImpAvere().add(ctbScad.getImpAvere().divide(ctbParr.getCambioDiviScad()).setScale(5, RoundingMode.HALF_UP)));
}
} else {
BigDecimal cambioScad = BigDecimal.ONE;
Integer tipoPartita = ctbMovr.getTipoPartita();
BigDecimal cambioScad = BigDecimal.ONE;
Integer tipoPartita = ctbMovr.getTipoPartita();
String sql =
"SELECT Cast(tipo_partita as integer) as tipo_partita, cambio " +
" FROM ctb_part " +
" WHERE cod_anag = " + UtilityDB.valueToString(ctbScad.getCodAnag()) + " AND " +
"tipo_anag = " + UtilityDB.valueToString(ctbScad.getTipoAnag()) + " AND " +
"anno_part = " + UtilityDB.valueToString(ctbScad.getAnnoPart()) + " AND " +
"ser_doc = " + UtilityDB.valueToString(ctbScad.getSerDoc()) + " AND " +
"num_doc = " + UtilityDB.valueToString(ctbScad.getNumDoc());
String sql =
"SELECT Cast(tipo_partita as integer) as tipo_partita, cambio " +
" FROM ctb_part " +
" WHERE cod_anag = " + UtilityDB.valueToString(ctbScad.getCodAnag()) + " AND " +
"tipo_anag = " + UtilityDB.valueToString(ctbScad.getTipoAnag()) + " AND " +
"anno_part = " + UtilityDB.valueToString(ctbScad.getAnnoPart()) + " AND " +
"ser_doc = " + UtilityDB.valueToString(ctbScad.getSerDoc()) + " AND " +
"num_doc = " + UtilityDB.valueToString(ctbScad.getNumDoc());
HashMap<String, Object> datiCtbPart = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
if ( UtilityHashMap.isPresent(datiCtbPart)) {
if ( tipoPartita == null ) tipoPartita = UtilityHashMap.getValueIfExists(datiCtbPart, "tipo_partita");
cambioScad = UtilityHashMap.getValueIfExists(datiCtbPart, "cambio", BigDecimal.ONE);
HashMap<String, Object> datiCtbPart = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
if (UtilityHashMap.isPresent(datiCtbPart)) {
if (tipoPartita == null)
tipoPartita = UtilityHashMap.getValueIfExists(datiCtbPart, "tipo_partita");
cambioScad = UtilityHashMap.getValueIfExists(datiCtbPart, "cambio", BigDecimal.ONE);
}
ctbScad.setTipoAnag(UtilityString.isNullOrEmpty(ctbScad.getTipoAnag()) ? ctbMovr.getTipoAnag() : ctbScad.getTipoAnag())
.setCodAnag(UtilityString.isNullOrEmpty(ctbScad.getCodAnag()) ? ctbMovr.getCodAnag() : ctbScad.getCodAnag())
.setAnnoPart(ctbScad.getAnnoPart() == null ? ctbMovr.getAnnoPart() : ctbScad.getAnnoPart())
.setSerDoc(UtilityString.isNullOrEmpty(ctbScad.getSerDoc()) ? ctbMovr.getSerDoc() : ctbScad.getSerDoc())
.setNumDoc(UtilityString.isNullOrEmpty(ctbScad.getNumDoc()) ? ctbMovr.getNumDoc() : ctbScad.getNumDoc());
BigDecimal impDare = BigDecimal.ZERO;
BigDecimal impAvere = BigDecimal.ZERO;
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) {
if (ctbScad.getImpDare() == null)
impDare = ctbMovr.getImpDare();
else
impDare = ctbScad.getImpDare().divide(cambioScad).setScale(5, RoundingMode.HALF_UP);
}
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpAvere(), BigDecimal.ZERO)) {
if (ctbScad.getImpAvere() == null)
impAvere = ctbMovr.getImpAvere();
else
impAvere = ctbScad.getImpAvere().divide(cambioScad).setScale(5, RoundingMode.HALF_UP);
}
ctbParr =
new CtbParr()
.setCodCcon(ctbMovr.getCodCcon())
.setTipoAnag(ctbScad.getTipoAnag())
.setCodAnag(ctbScad.getCodAnag())
.setAnnoPart(ctbScad.getAnnoPart())
.setSerDoc(ctbScad.getSerDoc())
.setNumDoc(ctbScad.getNumDoc())
.setDataCmov(ctbMovr.getDataCmov())
.setIdRiga(ctbMovr.getIdRiga())
.setImpDare(impDare)
.setImpAvere(impAvere)
.setCodCcau(ctbMovr.getCodCcau())
.setDesAgg(finalDesAgg)
.setTipoPartita(tipoPartita)
.setChiudiScad(ctbMovr.getChiudiScad())
.setCambioDiviScad(cambioScad);
ctbParr.setOperation(OperationType.INSERT_OR_UPDATE);
}
ctbScad.setTipoAnag(UtilityString.isNullOrEmpty(ctbScad.getTipoAnag()) ? ctbMovr.getTipoAnag() : ctbScad.getTipoAnag())
.setCodAnag(UtilityString.isNullOrEmpty(ctbScad.getCodAnag()) ? ctbMovr.getCodAnag() : ctbScad.getCodAnag())
.setAnnoPart(ctbScad.getAnnoPart() == null ? ctbMovr.getAnnoPart() : ctbScad.getAnnoPart())
.setSerDoc(UtilityString.isNullOrEmpty(ctbScad.getSerDoc()) ? ctbMovr.getSerDoc() : ctbScad.getSerDoc())
.setNumDoc(UtilityString.isNullOrEmpty(ctbScad.getNumDoc()) ? ctbMovr.getNumDoc() : ctbScad.getNumDoc());
BigDecimal impDare = BigDecimal.ZERO;
BigDecimal impAvere = BigDecimal.ZERO;
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) {
if (ctbScad.getImpDare() == null )
impDare = ctbMovr.getImpDare();
else
impDare = ctbScad.getImpDare().divide(cambioScad).setScale(5, RoundingMode.HALF_UP);
}
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpAvere(), BigDecimal.ZERO)) {
if (ctbScad.getImpAvere() == null )
impAvere = ctbMovr.getImpAvere();
else
impAvere = ctbScad.getImpAvere().divide(cambioScad).setScale(5, RoundingMode.HALF_UP);
}
ctbParr =
new CtbParr()
.setCodCcon(ctbMovr.getCodCcon())
.setTipoAnag(ctbScad.getTipoAnag())
.setCodAnag(ctbScad.getCodAnag())
.setAnnoPart(ctbScad.getAnnoPart())
.setSerDoc(ctbScad.getSerDoc())
.setNumDoc(ctbScad.getNumDoc())
.setDataCmov(ctbMovr.getDataCmov())
.setIdRiga(ctbMovr.getIdRiga())
.setImpDare(impDare)
.setImpAvere(impAvere)
.setCodCcau(ctbMovr.getCodCcau())
.setDesAgg(finalDesAgg)
.setTipoPartita(tipoPartita)
.setChiudiScad(ctbMovr.getChiudiScad())
.setCambioDiviScad(cambioScad);
ctbParr.setOperation(OperationType.INSERT_OR_UPDATE);
elencoPartite.add(ctbParr);
}
elencoPartite.add(ctbParr);
CrlScadParr crlScadParr =
new CrlScadParr()
.setTipoAnag(ctbScad.getTipoAnag())

View File

@@ -270,6 +270,11 @@ public class MailService {
return MailService.readParameter(multiDBTransactionManager, fromEmail);
}
public Message sendMail(String from, String fromName, String to, String cc, String subject, String msg) throws Exception {
return sendMailPrimary(from, fromName, to, cc, null, subject, msg, false, false, null, null, null);
}
public Message sendMail(String to, String cc, String subject, String msg) throws Exception {
return sendMailPrimary(null, null, to, cc, null, subject, msg, false, false, null, null, null);
}
@@ -662,7 +667,7 @@ public class MailService {
testoEmailCustom = changeVariableParts(testoEmailCustom, dati.get(0), nomeUtente);
try {
sendMail(customData.getEmailMittente(), dati.get(0).getEmailDestinatario(), oggettoEmailCustom, testoEmailCustom);
sendMail(customData.getEmailMittente(), nomeUtente, dati.get(0).getEmailDestinatario(), "", oggettoEmailCustom, testoEmailCustom);
} catch (Exception e) {
erroreMessage.append(dati.get(0).getRagSoc() + " " + e.getMessage() + CommonConstants.A_CAPO);
}
@@ -693,13 +698,15 @@ public class MailService {
private String changeRepeatedText(String text, List<CustomEmailDTO.CustomEmailRowDTO> dati, String
nomeUtente) {
StringBuilder stringBuilder = new StringBuilder();
String patternText = text.substring(text.indexOf("{") + 1, text.indexOf("}"));
for (CustomEmailDTO.CustomEmailRowDTO var : dati) {
stringBuilder.append(changeVariableParts(patternText, var, nomeUtente) + CommonConstants.A_CAPO);
if (text.indexOf("{") > 0){
String patternText = text.substring(text.indexOf("{") + 1, text.indexOf("}"));
for (CustomEmailDTO.CustomEmailRowDTO var : dati) {
stringBuilder.append(changeVariableParts(patternText, var, nomeUtente) + CommonConstants.A_CAPO);
}
text = text.replaceAll(patternText, stringBuilder.toString());
text = text.replaceAll("\\{", "");
text = text.replaceAll("}", "");
}
text = text.replaceAll(patternText, stringBuilder.toString());
text = text.replaceAll("\\{", "");
text = text.replaceAll("}", "");
return text;
}

View File

@@ -1428,6 +1428,8 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
fieldsWithoutIdentityAndNotNull.stream().map(Triple::getFirst).collect(Collectors.toList()), ","))
.append(") VALUES (");
StringBuilder insertSqlTrace = new StringBuilder(insertSQL.toString());
for (int i = 0; i < fieldsWithoutIdentityAndNotNull.size(); i++) {
insertSQL.append(" ?");
@@ -1437,7 +1439,6 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
insertSQL.append(")");
String traceSql = insertSQL.toString();
try (SQLServerPreparedStatement insertBulkPs =
(SQLServerPreparedStatement) sqlServerConnection.prepareStatement(
@@ -1448,10 +1449,14 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
final Object value = fieldsWithoutIdentityAndNotNull.get(i - 1).getSecond();
insertBulkPs.setObject(i, value);
traceSql = traceSql.replace("?", UtilityDB.valueToString(value));
}
insertSqlTrace.append(UtilityDB.valueToString(value));
if (i <= fieldsWithoutIdentityAndNotNull.size() - 1)
insertSqlTrace.append(",");
logger.trace("Query tracing: {}", traceSql);
}
insertSqlTrace.append(")");
logger.trace("Query tracing: {}", insertSqlTrace);
long insertedRowCount = insertBulkPs.executeLargeUpdate();
if (insertedRowCount > 0 && containsIdentity) {

View File

@@ -483,7 +483,7 @@ public class UtilityDB {
public static <T> List<T> executeSimpleQueryOnlyFirstColumn(Connection conn, String querySql) throws SQLException {
List<T> object = new ArrayList<>();
List<HashMap<String, Object>> queryResults = executeSimpleQuery(conn, querySql);
if (queryResults != null && queryResults.size() > 0) {
if (queryResults != null && !queryResults.isEmpty()) {
object = new ArrayList<T>();
for (HashMap<String, Object> result : queryResults) {
T value = (T) result.get(result.keySet().toArray()[0]);

View File

@@ -399,7 +399,10 @@ when
$entity: CtbScad(riaperta != null && riaperta && numCmov !=null)
then
List<CrlScadParr> crlScadParrs = AccountingRules.completeCrlParrScadScad(conn, $entity);
modify ( $entity ) { setCrlScadParr(crlScadParrs) }
Date dataNull = new Date(-2208992400000L);
modify ( $entity ) {
setCrlScadParr(crlScadParrs),
setDataPag(dataNull) }
end
@@ -433,6 +436,16 @@ then
modify ( $entity ) { setDescrizPag(descrizione) }
end
rule "completeDataPagScad"
no-loop
when
eval(completeRulesEnabled)
$entity: CtbScad( (impAvere != null && impAvere == 0 ) || (impDare != null && impDare == 0 ))
then
Date dataNull = new Date(-2208992400000L);
modify ( $entity ) { setDataPag(dataNull ) }//impostiamo la data a null
end
rule "completeInseritoDaCtbMovt"
no-loop
when

View File

@@ -1,6 +1,7 @@
package it.integry.ems.production.agribook;
import it.integry.common.var.CommonConstants;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.production.agribook.model.AgribookNewFieldRequestDTO;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
@@ -22,6 +23,8 @@ public class AgribookFieldController {
@Autowired
private AgribookFieldService agribookFieldService;
@Autowired
private RequestDataDTO requestDataDTO;
@RequestMapping(value = "", method = RequestMethod.GET)
@@ -43,7 +46,7 @@ public class AgribookFieldController {
) throws Exception {
try (MultiDBTransactionManager internalDb = new MultiDBTransactionManager(profileDb);) {
return ServiceRestResponse.createPositiveResponse(agribookFieldService.createField(internalDb, dto));
return ServiceRestResponse.createPositiveResponse(agribookFieldService.createField(internalDb, dto, requestDataDTO.getUsername(), requestDataDTO));
}
}
}

View File

@@ -1,24 +1,20 @@
package it.integry.ems.production.agribook;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.production.agribook.model.AgribookFieldDTO;
import it.integry.ems.production.agribook.model.AgribookNewFieldRequestDTO;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityBigDecimal;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityLocalDate;
import it.integry.ems_model.utility.UtilityString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import org.xlsx4j.sml.Col;
import javax.rmi.CORBA.Util;
import java.math.BigDecimal;
import java.sql.Connection;
import java.time.DayOfWeek;
import java.util.ArrayList;
import java.util.Collections;
@@ -29,7 +25,7 @@ public class AgribookFieldService {
@Autowired
private EntityProcessor entityProcessor;
public List<AgribookFieldDTO> retrieveFields(MultiDBTransactionManager multiDBTransactionManager,String codMdep) throws Exception {
public List<AgribookFieldDTO> retrieveFields(MultiDBTransactionManager multiDBTransactionManager, String codMdep) throws Exception {
String sql = "SELECT * FROM " + MtbDepoPosizioni.ENTITY;
@@ -40,10 +36,10 @@ public class AgribookFieldService {
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, AgribookFieldDTO.class);
}
public List<EntityBase> createField(MultiDBTransactionManager connection, AgribookNewFieldRequestDTO dto) throws Exception {
public List<EntityBase> createField(MultiDBTransactionManager connection, AgribookNewFieldRequestDTO dto, String username, RequestDataDTO requestDataDTO) throws Exception {
List<EntityBase> entityList = new ArrayList<>();
String codVdes = UtilityString.isNull(dto.getCodVdes(), this.suggestCodVdes(connection,dto.getCodAnag()));
String codVdes = UtilityString.isNull(dto.getCodVdes(), dto.isNewDes()?this.suggestCodVdes(connection, dto.getCodAnag()):null);
if (dto.isNewDes()) {
if (UtilityString.isNullOrEmpty(codVdes)) {
throw new Exception("Impossibile calcolare il codice destinatario!");
@@ -68,8 +64,10 @@ public class AgribookFieldService {
.setOperation(OperationType.INSERT_OR_UPDATE);
GtbAnag gtbanag = new GtbAnag();
List<VtbDest> destList = new ArrayList<>();
destList.add(vtbDest);
gtbanag.setCodAnag(dto.getCodAnag())
.setVtbDest(Collections.singletonList(vtbDest))
.setVtbDest(destList)
.setOperation(OperationType.UPDATE);
entityList.add(gtbanag);
@@ -78,7 +76,7 @@ public class AgribookFieldService {
String codMdepDest = this.getCodMdepDest(connection, dto.getCodAnag(), codVdes);
if (UtilityString.isNullOrEmpty(codMdepDest)) {
codMdepDest = this.suggestCodMdep(connection,dto.getCodAnag(), codVdes);
codMdepDest = this.suggestCodMdep(connection, dto.getCodAnag(), codVdes);
if (UtilityString.isNullOrEmpty(codMdepDest)) {
throw new Exception("Codice nuovo deposito calcolato non valido");
}
@@ -105,22 +103,24 @@ public class AgribookFieldService {
.setOperation(OperationType.INSERT_OR_UPDATE);
if (!UtilityString.isNullOrEmpty(dto.getVarieta())) {
MtbPartitaMagCarat carat = this.getVarieta(connection,dto.getCodMart(),dto.getPartitaMag());
MtbPartitaMagCarat carat = this.getVarieta(connection, dto.getCodMart(), dto.getPartitaMag());
if (carat == null) {
carat = new MtbPartitaMagCarat();
carat.setCarat("VARIETA");
carat.setCarat("VARIETA");
}
carat
.setValCarat(dto.getVarieta())
.setOperation(OperationType.INSERT_OR_UPDATE);
partitaMag.setMtbPartitaMagCarat(Collections.singletonList(carat));
List<MtbPartitaMagCarat> caratList = new ArrayList<>();
caratList.add(carat);
partitaMag.setMtbPartitaMagCarat(caratList);
}
entityList.add(partitaMag);
DtbOrdr ordr = new DtbOrdr();
ordr.setCodMart(dto.getCodMart())
.setUntOrd(dto.getUntMis())
@@ -130,6 +130,8 @@ public class AgribookFieldService {
.setCodMdep(codMdepDest)
.setDataCons(UtilityLocalDate.localDateToDate(dto.getDataInizProd().with(DayOfWeek.MONDAY)))
.setOperation(OperationType.INSERT);
List<DtbOrdr> ordrList = new ArrayList<>();
ordrList.add(ordr);
DtbOrdt ordt = new DtbOrdt();
ordt
.setGestione("A")
@@ -139,34 +141,36 @@ public class AgribookFieldService {
.setCodMdep(codMdepDest)
.setCodVdes(codVdes)
.setDataInizProd(UtilityLocalDate.localDateToDate(dto.getDataInizProd()))
.setDtbOrdr(Collections.singletonList(ordr))
.setDtbOrdr(ordrList)
.setOperation(OperationType.INSERT);
entityList.add(ordt);
return entityProcessor.processEntityList(entityList, connection, true);
List<EntityBase> results = entityProcessor.processEntityList(entityList,username,true,true,false, connection, true,false,requestDataDTO);
UtilityEntity.throwEntitiesException(results);
return results;
}
private MtbPartitaMagCarat getVarieta(MultiDBTransactionManager connection,String codMart, String partitaMag) throws Exception {
String sql = "SELECT * FROM " + MtbPartitaMagCarat.ENTITY+" Where cod_mart = "+UtilityDB.valueToString(codMart)+" and partita_mag = "+UtilityDB.valueToString(partitaMag)+" AND carat = 'VARIETA'";
private MtbPartitaMagCarat getVarieta(MultiDBTransactionManager connection, String codMart, String partitaMag) throws Exception {
String sql = "SELECT * FROM " + MtbPartitaMagCarat.ENTITY + " Where cod_mart = " + UtilityDB.valueToString(codMart) + " and partita_mag = " + UtilityDB.valueToString(partitaMag) + " AND carat = 'VARIETA'";
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection.getPrimaryConnection(),sql,MtbPartitaMagCarat.class);
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection.getPrimaryConnection(), sql, MtbPartitaMagCarat.class);
}
private String suggestCodMdep(MultiDBTransactionManager multiDBTransactionManager,String codAnag, String codVdes) throws Exception {
String sql = "SELECT dbo.f_suggestCodeCodMdep("+UtilityDB.valueToString(codAnag)+","+UtilityDB.valueToString(codVdes)+") AS cod_mdep";
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),sql);
private String suggestCodMdep(MultiDBTransactionManager multiDBTransactionManager, String codAnag, String codVdes) throws Exception {
String sql = "SELECT dbo.f_suggestCodeCodMdep(" + UtilityDB.valueToString(codAnag) + "," + UtilityDB.valueToString(codVdes) + ") AS cod_mdep";
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
private String getCodMdepDest(MultiDBTransactionManager multiDBTransactionManager, String codAnag, String codVdes) throws Exception {
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),
"SELECT cod_mdep from mtb_depo where " +
" cod_anag = " + UtilityDB.valueToString(codAnag) + " " +
" and cod_vdes = " + UtilityDB.valueToString(codVdes));
" and ISNULL(cod_vdes,'') = ISNULL(" + UtilityDB.valueToString(codVdes)+",'')");
}
private String suggestCodVdes(MultiDBTransactionManager multiDBTransactionManager,String codAnag) throws Exception {
String sql = "SELECT dbo.f_suggestCodeCodVdes("+UtilityDB.valueToString(codAnag)+", 0) AS cod_vdes";
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),sql);
private String suggestCodVdes(MultiDBTransactionManager multiDBTransactionManager, String codAnag) throws Exception {
String sql = "SELECT dbo.f_suggestCodeCodVdes(" + UtilityDB.valueToString(codAnag) + ", 0) AS cod_vdes";
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
}

View File

@@ -641,7 +641,7 @@ public class GiacenzaService {
" MAX(cod_mdep)\n" +
" FROM mtb_aart\n" +
" INNER JOIN mtb_comp ON mtb_aart.cod_mart = mtb_comp.cod_mart\n" +
" LEFT OUTER JOIN tmpGiac inv ON mtb_comp.cod_comp = inv.cod_mart\n" +
" LEFT OUTER JOIN inv ON mtb_comp.cod_comp = inv.cod_mart\n" +
" WHERE mtb_aart.articolo_composto = 'S'\n" +
" AND mtb_aart.flag_stato = 'A'\n" +
" GROUP BY mtb_comp.cod_mart)\n" +

View File

@@ -11,6 +11,7 @@ public class MagazzinoBufferVersamentoMaterialeRequestDTO {
private String serCollo;
private Integer numCollo;
private LocalDate dataCollo;
private String codJfas;
public MtbColt getInputMtbColt() {
@@ -49,4 +50,13 @@ public class MagazzinoBufferVersamentoMaterialeRequestDTO {
this.dataCollo = dataCollo;
return this;
}
public String getCodJfas() {
return codJfas;
}
public MagazzinoBufferVersamentoMaterialeRequestDTO setCodJfas(String codJfas) {
this.codJfas = codJfas;
return this;
}
}

View File

@@ -99,6 +99,7 @@ public class WMSMagazzinoBufferService {
.setNumCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCollo())
.setCodMdep(mtbColtRef.getCodMdep())
.setPosizione(posizione)
.setCodJfas(magazzinoBufferVersamentoMaterialeRequestDTO.getCodJfas())
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO));
wmsLavorazioneService.insertUDSRow(new InsertUDSRowRequestDTO()

View File

@@ -102,6 +102,8 @@ public class SystemController {
@Autowired
private SecretKeyCacheComponent secretKeyCacheComponent;
@Autowired
private RequestDataDTO requestDataDTO;

View File

@@ -8,6 +8,8 @@ import it.integry.ems_model.base.EquatableEntityInterface;
import it.integry.ems_model.exception.EntityException;
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityBigDecimal;
import it.integry.ems_model.utility.UtilityString;
import java.io.IOException;
import java.math.BigDecimal;
@@ -300,7 +302,7 @@ public class ExchangeCampiRaccoltaDTO implements EquatableEntityInterface<Exchan
public boolean equalsKey(ExchangeCampiRaccoltaDTO other) {
return codAnag.equalsIgnoreCase(other.getCodAnag()) &&
codVdes.equalsIgnoreCase(other.getCodVdes()) &&
(UtilityString.isNull(codVdes,"").equalsIgnoreCase(UtilityString.isNull(other.getCodVdes(),""))) &&
codMartMp.equalsIgnoreCase(other.getCodMartMp()) &&
lottoFornitore.equalsIgnoreCase(other.getLottoFornitore());
}
@@ -309,29 +311,29 @@ public class ExchangeCampiRaccoltaDTO implements EquatableEntityInterface<Exchan
public boolean equalsContent(ExchangeCampiRaccoltaDTO other) {
return
codAnag.equalsIgnoreCase(other.getCodAnag()) &&
ragSoc.equalsIgnoreCase(other.getRagSoc()) &&
codVdes.equalsIgnoreCase(other.getCodVdes()) &&
produttore.equalsIgnoreCase(other.getProduttore()) &&
cooperativa.equalsIgnoreCase(other.getCooperativa()) &&
indirizzoCoop.equalsIgnoreCase(other.getIndirizzoCoop()) &&
cittaCoop.equalsIgnoreCase(other.getCittaCoop()) &&
capCoop.equalsIgnoreCase(other.getCapCoop()) &&
provCoop.equalsIgnoreCase(other.getProvCoop()) &&
partIvaCoop.equalsIgnoreCase(other.getPartIvaCoop()) &&
op.equalsIgnoreCase(other.getOp()) &&
codAnagProd.equalsIgnoreCase(other.getCodAnagProd()) &&
ragSocProd.equalsIgnoreCase(other.getRagSocProd()) &&
indirizzoProd.equalsIgnoreCase(other.getIndirizzoProd()) &&
cittaProd.equalsIgnoreCase(other.getCittaProd()) &&
capProd.equalsIgnoreCase(other.getCapProd()) &&
provProd.equalsIgnoreCase(other.getProvProd()) &&
partIvaProd.equalsIgnoreCase(other.getPartIvaProd()) &&
codMartMp.equalsIgnoreCase(other.getCodMartMp()) &&
codMartMg.equalsIgnoreCase(other.getCodMartMg()) &&
varieta.equalsIgnoreCase(other.getVarieta()) &&
lottoFornitore.equalsIgnoreCase(other.getLottoFornitore()) &&
valUnt.equals(other.getValUnt()) &&
qtaAttesa.equals(other.getQtaAttesa())
(UtilityString.isNull(ragSoc,"").equalsIgnoreCase(UtilityString.isNull(other.getRagSoc(),""))) &&
(UtilityString.isNull(codVdes,"").equalsIgnoreCase(UtilityString.isNull(other.getCodVdes(),""))) &&
UtilityString.isNull(produttore,"").equalsIgnoreCase(UtilityString.isNull(other.getProduttore(),"")) &&
UtilityString.isNull(cooperativa,"").equalsIgnoreCase(UtilityString.isNull(other.getCooperativa(),"")) &&
UtilityString.isNull(indirizzoCoop,"").equalsIgnoreCase(UtilityString.isNull(other.getIndirizzoCoop(),"")) &&
UtilityString.isNull(cittaCoop,"").equalsIgnoreCase(UtilityString.isNull(other.getCittaCoop(),"")) &&
UtilityString.isNull(capCoop,"").equalsIgnoreCase(UtilityString.isNull(other.getCapCoop(),"")) &&
UtilityString.isNull(provCoop,"").equalsIgnoreCase(UtilityString.isNull(other.getProvCoop(),"")) &&
UtilityString.isNull(partIvaCoop,"").equalsIgnoreCase(UtilityString.isNull(other.getPartIvaCoop(),"")) &&
UtilityString.isNull(op,"").equalsIgnoreCase(UtilityString.isNull(other.getOp(),"")) &&
UtilityString.isNull(codAnagProd,"").equalsIgnoreCase(UtilityString.isNull(other.getCodAnagProd(),"")) &&
UtilityString.isNull(ragSocProd,"").equalsIgnoreCase(UtilityString.isNull(other.getRagSocProd(),"")) &&
UtilityString.isNull(indirizzoProd,"").equalsIgnoreCase(UtilityString.isNull(other.getIndirizzoProd(),"")) &&
UtilityString.isNull(cittaProd,"").equalsIgnoreCase(UtilityString.isNull(other.getCittaProd(),"")) &&
UtilityString.isNull(capProd,"").equalsIgnoreCase(UtilityString.isNull(other.getCapProd(),"")) &&
UtilityString.isNull(provProd,"").equalsIgnoreCase(UtilityString.isNull(other.getProvProd(),"")) &&
UtilityString.isNull(partIvaProd,"").equalsIgnoreCase(UtilityString.isNull(other.getPartIvaProd(),"")) &&
UtilityString.isNull(codMartMp,"").equalsIgnoreCase(UtilityString.isNull(other.getCodMartMp(),"")) &&
UtilityString.isNull(codMartMg,"").equalsIgnoreCase(UtilityString.isNull(other.getCodMartMg(),"")) &&
UtilityString.isNull(varieta,"").equalsIgnoreCase(UtilityString.isNull(other.getVarieta(),"")) &&
UtilityString.isNull(lottoFornitore,"").equalsIgnoreCase(UtilityString.isNull(other.getLottoFornitore(),"")) &&
UtilityBigDecimal.isNull(valUnt,BigDecimal.ZERO).equals(UtilityBigDecimal.isNull(other.getValUnt(),BigDecimal.ZERO)) &&
UtilityBigDecimal.isNull(qtaAttesa,BigDecimal.ZERO).equals(UtilityBigDecimal.isNull(other.getQtaAttesa(),BigDecimal.ZERO))
;
}

View File

@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
public class ExchangeArticoliImportService {
//TODO: To be remove, only for fast development
private final String ROSSOGARGANO_EXCHANGE_USER = "DBA";
private final String ROSSOGARGANO_EXCHANGE_USER = "EXCHANGE";
@Autowired
private EntityProcessor entityProcessor;

View File

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
public class ExchangeColliImportService {
//TODO: To be remove, only for fast development
private final String ROSSOGARGANO_EXCHANGE_USER = "DBA";
private final String ROSSOGARGANO_EXCHANGE_USER = "EXCHANGE";
private final Logger logger = LogManager.getLogger();
@@ -46,9 +46,6 @@ public class ExchangeColliImportService {
@Autowired
private ExchangeImportDataManagerService exchangeImportDataManagerService;
@Autowired
private ExchangePartiteMagazzinoImportService exchangePartiteMagazzinoImportService;
@Autowired
private SetupGest setupGest;
@@ -76,7 +73,6 @@ public class ExchangeColliImportService {
try {
exchangeImportSchemaManagerService.syncSchema(exchangeMultiDb.getPrimaryConnection(), colliSchemaType, useTempTable);
exchangePartiteMagazzinoImportService.importPartiteMagazzinoLavorazione(internalMultiDb, exchangeMultiDb, requestDataDTO);
String testataTableName = null;
String righeTableName = null;
@@ -169,10 +165,10 @@ public class ExchangeColliImportService {
final List<MtbColt> mtbColtLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, MtbColt.class,
mtbColtLavTableName, Query.format("data_collo BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
mtbColtLavTableName, null, retrieveAlreadyImported);
final List<MtbColr> mtbColrLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, MtbColr.class,
mtbColrLavTableName, Query.format("data_collo BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
mtbColrLavTableName, null, retrieveAlreadyImported);
mtbColtLav

View File

@@ -8,7 +8,6 @@ import it.integry.ems_model.base.EquatableEntityInterface;
import it.integry.ems_model.entity.DtbDocr;
import it.integry.ems_model.entity.DtbDoct;
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 org.apache.logging.log4j.LogManager;
@@ -30,7 +29,7 @@ import java.util.stream.Collectors;
public class ExchangeDocumentImportService {
//TODO: To be remove, only for fast development
private final String ROSSOGARGANO_EXCHANGE_USER = "DBA";
private final String ROSSOGARGANO_EXCHANGE_USER = "EXCHANGE";
@Autowired
private EntityProcessor entityProcessor;
@@ -41,9 +40,6 @@ public class ExchangeDocumentImportService {
@Autowired
private ExchangeImportDataManagerService exchangeImportDataManagerService;
@Autowired
private ExchangePartiteMagazzinoImportService exchangePartiteMagazzinoImportService;
private final Logger logger = LogManager.getLogger();
public void importTestateDocumentiLavorazione(MultiDBTransactionManager internalMultiDb, MultiDBTransactionManager exchangeMultiDb, RequestDataDTO requestDataDTO) throws Exception {
@@ -53,8 +49,6 @@ public class ExchangeDocumentImportService {
try {
exchangeImportSchemaManagerService.syncSchema(exchangeMultiDb.getPrimaryConnection(), ExchangeImportSchemaManagerService.SchemaType.DocumentiLavorazione, useTempTable);
exchangePartiteMagazzinoImportService.importPartiteMagazzinoLavorazione(internalMultiDb, exchangeMultiDb, requestDataDTO);
final List<DtbDoct> exchangeImportedTestateData = importTestateDocumentiLavorazione(
exchangeMultiDb.getPrimaryConnection(),
@@ -68,8 +62,6 @@ public class ExchangeDocumentImportService {
UtilityLocalDate.getNow(),
false, useTempTable);
exchangeUpdatedTestateData.forEach(x -> x.setUpdProgMaga(false));
final List<DtbDocr> exchangeImportedRigheData = importRigheDocumentiLavorazione(
exchangeMultiDb.getPrimaryConnection(),
@@ -89,6 +81,7 @@ public class ExchangeDocumentImportService {
List<EquatableEntityInterface> allRigheData = exchangeImportDataManagerService
.runSync(DtbDocr.class, exchangeImportedRigheData, exchangeUpdatedRigheData);
allTestateData.forEach(x -> ((DtbDoct) x).setUpdProgMaga(false));
allTestateData.stream()
.map(x -> (DtbDoct) x)
@@ -133,20 +126,28 @@ public class ExchangeDocumentImportService {
for (EquatableEntityInterface dataToSave : allData) {
DtbDoct document = (DtbDoct) dataToSave;
// calls.add(() -> {
logger.debug("Importati {} documenti di {}", importedCounter.incrementAndGet(), allData.size());
try {
entityProcessor.processEntity(dataToSave, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDb, requestDataDTO);
//Inserisco prima la testata perché se inserisco testata+righe e la testata ha INSERT,
// le righe vengono salvate con ID riga calcolato e non con ID riga passato
DtbDoct cloneDocument = (DtbDoct) document.clone();
cloneDocument.setDtbDocr(new ArrayList<>());
entityProcessor.processEntity(cloneDocument, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDb, requestDataDTO);
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), (DtbDoct) dataToSave, useTempTable);
//multiDBTransactionManager.commitAll();
if(!document.getDtbDocr().isEmpty()) {
document.setOperation(OperationType.NO_OP);
entityProcessor.processEntity(document, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDb, requestDataDTO);
singleUpdateImported(exchangeMultiDb.getPrimaryConnection(), document.getDtbDocr(), useTempTable);
}
internalMultiDb.commitAll();
exchangeMultiDb.commitAll();
} catch (Exception ex) {
if (firstExceptionToThrow[0] == null) firstExceptionToThrow[0] = ex;
DtbDoct document = (DtbDoct) dataToSave;
logger.error("Errore durante l'importazione del documento [" +
"num: " + document.getNumDoc() + ", " +
"serie: " + document.getSerDoc() + ", " +
@@ -184,7 +185,7 @@ public class ExchangeDocumentImportService {
}
final List<DtbDoct> dtbDoctLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbDoct.class,
dtbDoctLavTableName, Query.format("data_doc BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
dtbDoctLavTableName, null, retrieveAlreadyImported);
dtbDoctLav
@@ -213,7 +214,7 @@ public class ExchangeDocumentImportService {
return exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbDocr.class,
dtbDocrLavTableName, Query.format("data_doc BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
dtbDocrLavTableName, null, retrieveAlreadyImported);
}
@@ -227,8 +228,19 @@ public class ExchangeDocumentImportService {
}};
exchangeImportDataManagerService.updateImportedStatus(connection, "dtb_doct_lav", importedKey, useTempTable);
exchangeImportDataManagerService.updateImportedStatus(connection, "dtb_docr_lav", importedKey, useTempTable);
// connection.commit();
}
private void singleUpdateImported(Connection connection, List<DtbDocr> importedDtbDocr, boolean useTempTable) throws Exception {
final List<HashMap<String, Object>> importedRowKeys = importedDtbDocr.stream()
.map(x -> new HashMap<String, Object>() {{
put("data_doc", x.getDataDoc());
put("ser_doc", x.getSerDoc());
put("num_doc", x.getNumDoc());
put("cod_anag", x.getCodAnag());
put("cod_dtip", x.getCodDtip());
put("id_riga", x.getIdRiga());
}}).collect(Collectors.toList());
exchangeImportDataManagerService.updateImportedStatus(connection, "dtb_docr_lav", importedRowKeys, useTempTable);
}
}

View File

@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
public class ExchangeOrdiniImportService {
//TODO: To be remove, only for fast development
private final String ROSSOGARGANO_EXCHANGE_USER = "DBA";
private final String ROSSOGARGANO_EXCHANGE_USER = "EXCHANGE";
private final Logger logger = LogManager.getLogger();
@@ -48,9 +48,6 @@ public class ExchangeOrdiniImportService {
@Autowired
private ExchangeImportDataManagerService exchangeImportDataManagerService;
@Autowired
private ExchangePartiteMagazzinoImportService exchangePartiteMagazzinoImportService;
@Autowired
private AgribookFieldService agribookFieldService;
@@ -61,7 +58,6 @@ public class ExchangeOrdiniImportService {
try {
exchangeImportSchemaManagerService.syncSchema(exchangeMultiDb.getPrimaryConnection(), ExchangeImportSchemaManagerService.SchemaType.OrdiniLavorazione, useTempTable);
exchangePartiteMagazzinoImportService.importPartiteMagazzinoLavorazione(internalMultiDb, exchangeMultiDb, requestDataDTO);
final List<DtbOrdt> exchangeImportedMtbColts = importOrdiniLavorazione(
exchangeMultiDb.getPrimaryConnection(),
@@ -162,10 +158,10 @@ public class ExchangeOrdiniImportService {
}
List<DtbOrdt> dtbOrdtLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbOrdt.class,
dtbOrdtTableName, Query.format("data_ord BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
dtbOrdtTableName, null, retrieveAlreadyImported);
List<DtbOrdr> dtbOrdrLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbOrdr.class,
dtbOrdrTableName, Query.format("data_ord BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
dtbOrdrTableName, null, retrieveAlreadyImported);
dtbOrdtLav = dtbOrdtLav.stream()
// .filter(x -> x.getGestione().equalsIgnoreCase("A"))
@@ -303,7 +299,7 @@ public class ExchangeOrdiniImportService {
.setVarieta(field.getVarieta())
.setDataInizProd(field.getDataInizProd())
.setDataOrd(field.getDataInizProd());
agribookFieldService.createField(multiDb,dto);
agribookFieldService.createField(multiDb,dto, ROSSOGARGANO_EXCHANGE_USER,new RequestDataDTO());
}
}

View File

@@ -27,8 +27,7 @@ import java.util.stream.Collectors;
public class ExchangePartiteMagazzinoImportService {
//TODO: To be remove, only for fast development
private final String ROSSOGARGANO_EXCHANGE_PROFILEDB = "ROSSO_GARGANO_EXCHANGE";
private final String ROSSOGARGANO_EXCHANGE_USER = "DBA";
private final String ROSSOGARGANO_EXCHANGE_USER = "EXCHANGE";
@Autowired

View File

@@ -130,6 +130,10 @@ public class ExchangeSystemManagerService {
final ExchangePartiteMagazzinoImportService beanPartiteMagazzino = ContextLoader.getCurrentWebApplicationContext().getBean(ExchangePartiteMagazzinoImportService.class);
beanPartiteMagazzino.importPartiteMagazzinoLavorazione(internalDb, exchangeDb, requestDataDTO);
break;
case CampiRaccolta:
final ExchangeOrdiniImportService beanCampiRaccolta = ContextLoader.getCurrentWebApplicationContext().getBean(ExchangeOrdiniImportService.class);
beanCampiRaccolta.importCampiDiRaccolta(internalDb, exchangeDb, requestDataDTO);
break;
}
}