Calcolo disponbilità e ANSI NULL a Follies
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240417093718 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("delete from stb_gest_setup where gest_name = 'DATI_AZIENDA' and section = 'CALCOLO_DISPONIBILITA'and key_section = 'INCLUDI_QTA_COLLI'");
|
||||
executeStatement("INSERT INTO stb_gest_setup VALUES (\n" +
|
||||
"\t'DATI_AZIENDA',\n" +
|
||||
"\t'CALCOLO_DISPONIBILITA',\n" +
|
||||
"\t'ESCLUDI_QTA_COLLI',\n" +
|
||||
"\t'N',\n" +
|
||||
"\t'Se impostato a S esclude dal calcolo della disponibilità la quantità in colli per il deposito configurato',\n" +
|
||||
"\t'N',\n" +
|
||||
"\tNULL,\n" +
|
||||
"\t'N',\n" +
|
||||
"\t'2024-04-17 09:38:05.000',\n" +
|
||||
"\t'ADMINISTRATOR',\n" +
|
||||
"\t'S',\n" +
|
||||
"\t'N',\n" +
|
||||
"\t'N',\n" +
|
||||
"\t'N',\n" +
|
||||
"\tNULL,\n" +
|
||||
"\t0);\n");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240417101119 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (!isWingest()){
|
||||
createOrUpdateFunction("ftx_getDisponibilitaArticoli", "CREATE FUNCTION [dbo].[ftx_getDisponibilitaArticoli](@dataValidita datetime,\n" +
|
||||
" @codMdep varchar(8000),\n" +
|
||||
" @annoStag varchar(10),\n" +
|
||||
" @codMart varchar(15),\n" +
|
||||
" @codTagl varchar(15),\n" +
|
||||
" @codCol varchar(15),\n" +
|
||||
" @barcode varchar(15))\n" +
|
||||
" RETURNS TABLE AS \n" +
|
||||
" return \n" +
|
||||
" (WITH articoli AS (\n" +
|
||||
" SELECT ttb_style.anno_stag,\n" +
|
||||
" ttb_style.cod_style,\n" +
|
||||
" ttb_style_colori.cod_col,\n" +
|
||||
" ttb_style_taglie.cod_tagl,\n" +
|
||||
" mtb_part_dt.qta_ord_for,\n" +
|
||||
" mtb_part_dt.cod_mdep\n" +
|
||||
" FROM ttb_style,\n" +
|
||||
" ttb_style_colori,\n" +
|
||||
" ttb_style_taglie,\n" +
|
||||
" mtb_part_dt\n" +
|
||||
" WHERE (@codMdep is null or mtb_part_dt.cod_mdep IN ( SELECT value_string as cod_mdep FROM ParseStringIntoArray(@codMdep, ',')))\n" +
|
||||
" AND (@codMart is null or ttb_style.cod_style = @codMart)\n" +
|
||||
" AND (@codCol is null or ttb_style_colori.cod_col = @codCol)\n" +
|
||||
" AND (@codTagl is null or ttb_style_taglie.cod_tagl = @codTagl)\n" +
|
||||
" AND (@annoStag is null or ttb_style.anno_stag = @annoStag)\n" +
|
||||
" AND ttb_style.cod_style = mtb_part_dt.cod_mart\n" +
|
||||
" AND ttb_style_colori.cod_col = mtb_part_dt.cod_col\n" +
|
||||
" AND ttb_style_taglie.cod_tagl = mtb_part_dt.cod_tagl\n" +
|
||||
" AND ttb_style.cod_style = ttb_style_colori.cod_style\n" +
|
||||
" AND ttb_style.cod_style = ttb_style_taglie.cod_style\n" +
|
||||
" ),\n" +
|
||||
" colli AS (\n" +
|
||||
" SELECT mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" sum(mtb_colr.qta_col) AS qta,\n" +
|
||||
" mtb_colt.cod_mdep\n" +
|
||||
" FROM mtb_colt left outer join dtb_tipi on mtb_colt.cod_dtip = dtb_tipi.cod_dtip,\n" +
|
||||
" mtb_colr\n" +
|
||||
" WHERE mtb_colt.gestione = mtb_colr.gestione\n" +
|
||||
" AND mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||
" AND mtb_colt.ser_collo = mtb_colr.ser_collo\n" +
|
||||
" AND mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
" AND mtb_colt.gestione = 'V'\n" +
|
||||
" AND (@codMdep is null or mtb_colt.cod_mdep IN ( SELECT value_string as cod_mdep FROM ParseStringIntoArray(@codMdep, ','))) \n" +
|
||||
" AND (mtb_colt.cod_dtip IS NULL OR (dtb_tipi.segno_qta_car = 0 AND dtb_tipi.segno_qta_scar = 0 ))\n" +
|
||||
" AND (@codMart is null or mtb_colr.cod_mart = @codMart) \n" +
|
||||
" AND (@codCol is null or mtb_colr.cod_col = @codCol) \n" +
|
||||
" AND (@codTagl is null or mtb_colr.cod_tagl = @codTagl)\n" +
|
||||
" GROUP BY mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colt.cod_mdep\n" +
|
||||
" ),\n" +
|
||||
" prenotazione AS (\n" +
|
||||
" SELECT wdtb_ordr.cod_mart,\n" +
|
||||
" wdtb_ordr.cod_col,\n" +
|
||||
" wdtb_ordr.cod_tagl,\n" +
|
||||
" sum(wdtb_ordr.qta_ord) AS qta,\n" +
|
||||
" Wdtb_ordt.cod_mdep\n" +
|
||||
" FROM wdtb_ordt,\n" +
|
||||
" wdtb_ordr\n" +
|
||||
" WHERE wdtb_ordt.gestione = wdtb_ordr.gestione\n" +
|
||||
" AND wdtb_ordt.data_ord = wdtb_ordr.data_ord\n" +
|
||||
" AND wdtb_ordt.num_ord = wdtb_ordr.num_ord\n" +
|
||||
" AND wdtb_ordt.gestione = 'V'\n" +
|
||||
" AND (@codMdep is null or wdtb_ordt.cod_mdep IN ( SELECT value_string as cod_mdep FROM ParseStringIntoArray(@codMdep, ','))) \n" +
|
||||
" AND wdtb_ordt.flag_elaborato = 'N' AND\n" +
|
||||
" (@codMart is null or wdtb_ordr.cod_mart = @codMart) AND\n" +
|
||||
" (@codCol is null or wdtb_ordr.cod_col = @codCol) AND\n" +
|
||||
" (@codTagl is null or wdtb_ordr.cod_tagl = @codTagl)\n" +
|
||||
" GROUP BY wdtb_ordr.cod_mart,\n" +
|
||||
" wdtb_ordr.cod_col,\n" +
|
||||
" wdtb_ordr.cod_tagl,\n" +
|
||||
" Wdtb_ordt.cod_mdep\n" +
|
||||
" ),\n" +
|
||||
" ordine AS (\n" +
|
||||
" SELECT dtb_ordr.cod_mart,\n" +
|
||||
" dtb_ordr.cod_col,\n" +
|
||||
" dtb_ordr.cod_tagl,\n" +
|
||||
" CASE WHEN sum(CASE WHEN dtb_ordr.flag_evaso = 'I' OR ( dtb_ordr.flag_evaso = 'A' AND dtb_ordr.qta_acc > 0 ) THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col ELSE 0 END ) > 0 THEN \n" +
|
||||
" sum(CASE WHEN dtb_ordr.flag_evaso = 'I' OR ( dtb_ordr.flag_evaso= 'A' AND dtb_ordr.qta_acc > 0 ) THEN dtb_ordr.qta_ord - dtb_ordr.qta_evasa - dtb_ordr.qta_col ELSE 0 END ) ELSE 0 END as qta, \n" +
|
||||
" sum(dtb_ordr.qta_acc) as qta_acc,\n" +
|
||||
" /*sum(dtb_ordr.qta_acc - dtb_ordr.qta_col) as qta_acc,*/\n" +
|
||||
" dtb_ordt.cod_mdep\n" +
|
||||
" FROM dtb_ordt,\n" +
|
||||
" dtb_ordr\n" +
|
||||
" WHERE dtb_ordt.gestione = dtb_ordr.gestione\n" +
|
||||
" AND dtb_ordt.data_ord = dtb_ordr.data_ord\n" +
|
||||
" AND dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" AND dtb_ordt.gestione = 'V'\n" +
|
||||
" AND (@codMdep is null or dtb_ordt.cod_mdep IN ( SELECT value_string as cod_mdep FROM ParseStringIntoArray(@codMdep, ','))) \n" +
|
||||
" /* AND dtb_ordr.flag_evaso = 'I'*/\n" +
|
||||
" AND dtb_ordt.flag_annulla = 'N' AND\n" +
|
||||
" (@codMart is null or dtb_ordr.cod_mart = @codMart) AND\n" +
|
||||
" (@codCol is null or dtb_ordr.cod_col = @codCol) AND\n" +
|
||||
" (@codTagl is null or dtb_ordr.cod_tagl = @codTagl)\n" +
|
||||
" GROUP BY dtb_ordr.cod_mart,\n" +
|
||||
" dtb_ordr.cod_col,\n" +
|
||||
" dtb_ordr.cod_tagl,\n" +
|
||||
" dtb_ordt.cod_mdep\n" +
|
||||
" )\n" +
|
||||
"\n" +
|
||||
" /* INSERT\n" +
|
||||
" INTO @returnTable */\n" +
|
||||
" SELECT articoli.anno_stag,\n" +
|
||||
" articoli.cod_style,\n" +
|
||||
" articoli.cod_col,\n" +
|
||||
" articoli.cod_tagl,\n" +
|
||||
" ttb_bar_code.cod_barre,\n" +
|
||||
" articoli.cod_mdep,\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) as giacenza,\n" +
|
||||
" ISNULL(articoli.qta_ord_for, 0) as ord_forn,\n" +
|
||||
" IsNull(ordine.qta, 0) as ordini,\n" +
|
||||
" IsNull(prenotazione.qta, 0) as ordini_web,\n" +
|
||||
" IsNull(ordine.qta_acc, 0) as accant_su_ordine,\n" +
|
||||
" IsNull(colli.qta, 0) as colli,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN \n" +
|
||||
" (SELECT value AS flag FROM stb_gest_setup WHERE gest_name = 'DATI_AZIENDA' AND SECTION = 'CALCOLO_DISPONIBILITA' AND key_section = 'INCLUDI_QTA_ORD_FOR') = 'S'\n" +
|
||||
" THEN \n" +
|
||||
" CASE WHEN ISNULL((SELECT value AS flag FROM stb_gest_setup_depo WHERE gest_name = 'DATI_AZIENDA' AND SECTION = 'CALCOLO_DISPONIBILITA' AND key_section = 'ESCLUDI_QTA_COLLI' and cod_mdep = articoli.cod_mdep), 'N') = 'N' THEN\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) + ISNULL(articoli.qta_ord_for, 0) - IsNull(ordine.qta, 0) - IsNull(prenotazione.qta, 0) - IsNull(colli.qta, 0)\n" +
|
||||
" ELSE\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) + ISNULL(articoli.qta_ord_for, 0) - IsNull(ordine.qta, 0) - IsNull(prenotazione.qta, 0)\n" +
|
||||
" END \n" +
|
||||
" ELSE \n" +
|
||||
" CASE WHEN ISNULL((SELECT value AS flag FROM stb_gest_setup_depo WHERE gest_name = 'DATI_AZIENDA' AND SECTION = 'CALCOLO_DISPONIBILITA' AND key_section = 'ESCLUDI_QTA_COLLI' and cod_mdep = articoli.cod_mdep), 'N') = 'N' THEN\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) - IsNull(ordine.qta, 0) - IsNull(prenotazione.qta, 0) - IsNull(colli.qta, 0)\n" +
|
||||
" ELSE\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) - IsNull(ordine.qta, 0) - IsNull(prenotazione.qta, 0)\n" +
|
||||
" END \n" +
|
||||
" END AS qta_disp,\n" +
|
||||
" IsNull(giacenza.qta_fine, 0) - IsNull(ordine.qta_acc, 0) - IsNull(colli.qta, 0) as qta_distrib_su_ordini\n" +
|
||||
" FROM articoli\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN ttb_bar_code ON articoli.cod_style = ttb_bar_code.cod_style\n" +
|
||||
" AND articoli.cod_col = ttb_bar_code.cod_col\n" +
|
||||
" AND articoli.cod_tagl = ttb_bar_code.cod_tagl\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN getsitartadataDett(@dataValidita, @codMdep) giacenza ON articoli.cod_style = giacenza.cod_mart\n" +
|
||||
" AND articoli.cod_col = giacenza.cod_col\n" +
|
||||
" AND articoli.cod_tagl = giacenza.cod_tagl\n" +
|
||||
" AND articoli.cod_mdep = giacenza.cod_mdep\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN ordine ON articoli.cod_style = ordine.cod_mart\n" +
|
||||
" AND articoli.cod_col = ordine.cod_col\n" +
|
||||
" AND articoli.cod_tagl = ordine.cod_tagl\n" +
|
||||
" AND articoli.cod_mdep = ordine.cod_mdep\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN prenotazione ON articoli.cod_style = prenotazione.cod_mart\n" +
|
||||
" AND articoli.cod_col = prenotazione.cod_col\n" +
|
||||
" AND articoli.cod_tagl = prenotazione.cod_tagl\n" +
|
||||
" AND articoli.cod_mdep = prenotazione.cod_mdep\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN colli ON articoli.cod_style = colli.cod_mart\n" +
|
||||
" AND articoli.cod_col = colli.cod_col\n" +
|
||||
" AND articoli.cod_tagl = colli.cod_tagl\n" +
|
||||
" AND articoli.cod_mdep = colli.cod_mdep\n" +
|
||||
" WHERE (@barcode is null or ttb_bar_code.cod_barre = @barcode)\n" +
|
||||
" \n" +
|
||||
" )");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,16 +1,25 @@
|
||||
package it.integry.ems.migration.model;import it.integry.ems.migration._base.BaseMigration;
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240417102256 extends BaseMigration implements MigrationModelInterface{
|
||||
public class Migration_20240417102256 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up()throws Exception {
|
||||
if(isHistoryDB())
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (!isCustomerDb(
|
||||
IntegryCustomerDB.FolliesGroup_FolliesGroup))
|
||||
return;
|
||||
|
||||
executeStatement("INSERT INTO stb_gest_setup_depo VALUES ('28',\t'DATI_AZIENDA',\t'CALCOLO_DISPONIBILITA',\t'ESCLUDI_QTA_COLLI',\t'S',\t'N');");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down()throws Exception{
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240417181907 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("DATI_AZIENDA", "SETUP", "FLAG_CONCAT_NULL_YIELDS_NULL", "S", "Abilita il concat null yields null nella connessione del gestionale. Il valore suggerito è ON (prima era OFF).", false, "SI_NO", false, false, false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
|
||||
if (!isCustomerDb(
|
||||
IntegryCustomerDB.FolliesGroup_FolliesGroup))
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user