Finish Hotfix-61
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
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_20240528131317 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (isCustomerDb(IntegryCustomerDB.Carelli_Format))
|
||||
createOrUpdateFunction("[slim2k_exportOrdV]", "CREATE FUNCTION [dbo].[slim2k_exportOrdV](@codMdep varchar(5), @dataOrd datetime, @numOrd int, @listcode varchar(max),\n" +
|
||||
"@singoloOrdine bit, @raggruppaArticoli bit) RETURNS TABLE AS \n" +
|
||||
"return \n" +
|
||||
"with ord as (\n" +
|
||||
"select distinct dtb_ordt.data_ord,\n" +
|
||||
"case when @raggruppaArticoli = 1 THEN min(dtb_ordt.num_ord) over (partition by dtb_ordt.data_ord, dtb_ordt.serie, dtb_ordr.cod_mart) else dtb_ordt.num_ord end as num_ord,\n" +
|
||||
"dtb_ordt.cod_anag,\n" +
|
||||
"dtb_ordt.cod_vdes,\n" +
|
||||
"dtb_ordt.cod_mdep,\n" +
|
||||
"dtb_ordt.serie,\n" +
|
||||
"case when @raggruppaArticoli = 1 THEN min(dtb_ordr.riga_ord) over (partition by dtb_ordt.data_ord, dtb_ordt.serie, dtb_ordr.cod_mart) else dtb_ordr.riga_ord end as riga_ord,\n" +
|
||||
"dtb_ordr.cod_mart,\n" +
|
||||
"dtb_ordr.data_cons,\n" +
|
||||
"case when @raggruppaArticoli = 1 THEN sum(round(dtb_ordr.qta_ord - dtb_ordr.qta_evasa,3)) over (partition by dtb_ordt.data_ord, dtb_ordt.serie, dtb_ordr.cod_mart) else dtb_ordr.qta_ord - dtb_ordr.qta_evasa end as qta_ord,\n" +
|
||||
"case when @raggruppaArticoli = 1 THEN sum(num_cnf) over (partition by dtb_ordt.data_ord, dtb_ordt.serie, dtb_ordr.cod_mart) else dtb_ordr.num_cnf end as num_cnf,\n" +
|
||||
"case when @raggruppaArticoli = 1 THEN sum(Round((dtb_ordr.qta_ord - dtb_ordr.qta_evasa ) / dtb_ordr.qta_cnf, 0)) over (partition by dtb_ordt.data_ord, dtb_ordt.serie, dtb_ordr.cod_mart) else Round((dtb_ordr.qta_ord - dtb_ordr.qta_evasa ) / dtb_ordr.qta_cnf, 0) end as num_cnf_inevasa\n" +
|
||||
"FROM dtb_ordt \n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord \n" +
|
||||
" INNER JOIN gtb_anag ON dtb_ordt.cod_anag = gtb_anag.cod_anag \n" +
|
||||
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN mtb_unt_mis ON dtb_ordr.unt_ord = mtb_unt_mis.unt_mis\n" +
|
||||
" LEFT OUTER JOIN vtb_dest ON dtb_ordt.cod_anag = vtb_dest.cod_anag AND\n" +
|
||||
" dtb_ordt.cod_vdes = vtb_dest.cod_vdes \n" +
|
||||
" WHERE dtb_ordt.gestione = 'V' AND\n" +
|
||||
" dtb_ordt.flag_annulla = 'N' AND\n" +
|
||||
" dtb_ordr.data_cons in (\n" +
|
||||
" SELECT top 1 dtb_ordr.data_cons\n" +
|
||||
" FROM dtb_ordt inner join dtb_ordr on dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" where dtb_ordt.gestione = 'V' AND\n" +
|
||||
" dtb_ordt.flag_annulla = 'N' AND\n" +
|
||||
" dtb_ordr.flag_evaso = 'I' AND\n" +
|
||||
" dtb_ordt.data_ord = @dataOrd AND \n" +
|
||||
" dtb_ordt.num_ord = @numOrd AND\n" +
|
||||
" dtb_ordt.cod_mdep = @codMdep\n" +
|
||||
" order by dtb_ordr.data_cons) ANd\n" +
|
||||
" ( dtb_ordt.num_ord = @numOrd OR \n" +
|
||||
" dbo.slim2k_getListCode(dtb_ordt.data_ord, dtb_ordt.num_ord, dtb_ordt.cod_anag, dtb_ordt.cod_vdes, dtb_ordt.cod_mdep) = @listcode ) AND\n" +
|
||||
" dtb_ordt.cod_mdep = @codMdep AND\n" +
|
||||
" dtb_ordr.flag_evaso ='I' AND\n" +
|
||||
" dtb_ordr.gestione ='V' AND \n" +
|
||||
" dtb_ordt.cod_anag in (select cod_anag from format.dbo.vvw_clienti_slim2k) and\n" +
|
||||
" (IsNull(mtb_unt_mis.flag_unita_kg, 'N') = 'N' OR\n" +
|
||||
" (IsNull(mtb_unt_mis.flag_unita_kg, 'N') = 'S' AND Round((dtb_ordr.qta_ord - dtb_ordr.qta_evasa ) / dtb_ordr.qta_cnf, 0) > 0 ))\n" +
|
||||
" )\n" +
|
||||
"\n" +
|
||||
" \n" +
|
||||
" SELECT 'I' as rowstate,\n" +
|
||||
" 'FOD' as firm,\n" +
|
||||
" 'SHP' as listtype, \n" +
|
||||
" @listcode as listcode, \n" +
|
||||
" CASE \n" +
|
||||
" WHEN\n" +
|
||||
" @singoloOrdine = 0 \n" +
|
||||
" then \n" +
|
||||
" DENSE_RAnK() over (ORDER BY ord.data_ord, ord.num_ord ) *1000\n" +
|
||||
" ELSE 0\n" +
|
||||
" END + ord.riga_ord as cnt ,\n" +
|
||||
" Convert(integer, convert(varchar(8), ord.data_ord, 112)) as listdate,\n" +
|
||||
" Convert(varchar(40), CASE WHEN ord.cod_vdes is not null THEN vtb_dest.citta + ' - ' + vtb_dest.indirizzo ELSE gtb_anag.citta + ' - ' + gtb_anag.indirizzo END) as indirizzo,\n" +
|
||||
" 'CLI' as doctype,\n" +
|
||||
" Convert(varchar(15), ord.num_ord) as num_ord,\n" +
|
||||
" Convert(integer, convert(varchar(8),ord.data_ord, 112)) as data_ord,\n" +
|
||||
" ord.riga_ord,\n" +
|
||||
" 'C' as tipo_anag,\n" +
|
||||
" ord.cod_anag,\n" +
|
||||
" ord.cod_vdes,\n" +
|
||||
" ord.cod_mart,\n" +
|
||||
" Convert(numeric(10,3), ord.qta_ord) as qta_ord,\n" +
|
||||
" 'D' as rowtype,\n" +
|
||||
" Convert(integer, convert(varchar(8), ord.data_cons, 112)) as data_cons,\n" +
|
||||
" ord.cod_mdep,\n" +
|
||||
" ord.num_cnf,\n" +
|
||||
" ord.num_cnf_inevasa \n" +
|
||||
" FROM ord\n" +
|
||||
" \n" +
|
||||
" INNER JOIN gtb_anag ON ord.cod_anag = gtb_anag.cod_anag \n" +
|
||||
" LEFT OUTER JOIN vtb_dest ON ord.cod_anag = vtb_dest.cod_anag AND\n" +
|
||||
" ord.cod_vdes = vtb_dest.cod_vdes");
|
||||
}
|
||||
|
||||
@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_20240528131622 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'", false);
|
||||
createSetup("EXPORT_ORDINI VENDITA", "SLIM2K", "RAGGRUPPA_ARTICOLI", "S", "permette di ragguppare gli articoli uguali presenti su più ordini escludendo le suddivisioni", false, "SI_NO", true, false, false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,10 +13,7 @@ import it.integry.ems_model.entity.WtbUsersInfo;
|
||||
import it.integry.ems_model.resolver.SqlFieldHolder;
|
||||
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.UtilityString;
|
||||
import it.integry.ems_model.utility.UtilityZip;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@@ -71,7 +68,8 @@ public class OrdiniVenditaExportServices {
|
||||
}
|
||||
|
||||
try {
|
||||
String listaSingoloOrdine = setup.get("LISTA_SINGOLO_ORDINE");
|
||||
boolean listaSingoloOrdine = UtilityHashMap.getValueIfExists(setup, "LISTA_SINGOLO_ORDINE", "N"). equalsIgnoreCase("S");
|
||||
boolean ragguppaArticolo = UtilityHashMap.getValueIfExists(setup, "RAGGRUPPA_ARTICOLI", "N"). equalsIgnoreCase("S");
|
||||
|
||||
String sql =
|
||||
"SELECT data_ord, " +
|
||||
@@ -82,23 +80,15 @@ public class OrdiniVenditaExportServices {
|
||||
"WHERE gestione = 'V' ";
|
||||
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||
PreparedStatement ps = multiDBTransactionManager.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
Integer numOrd = null;
|
||||
String codMdep = null, listCode = null;
|
||||
Date dataOrd = null;
|
||||
if (rs.next()) {
|
||||
dataOrd = rs.getDate("data_ord");
|
||||
numOrd = rs.getInt("num_ord");
|
||||
codMdep = rs.getString("cod_mdep");
|
||||
listCode = rs.getString("listcode");
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
HashMap<String, Object> datiOrdine = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (listCode == null) {
|
||||
if (datiOrdine == null || datiOrdine.size() == 0 )
|
||||
throw new Exception("Nessun ordine trovato");
|
||||
}
|
||||
|
||||
Date dataOrd = UtilityHashMap.getValueIfExists(datiOrdine, "data_ord");
|
||||
Integer numOrd = UtilityHashMap.getValueIfExists(datiOrdine,"num_ord");
|
||||
String codMdep = UtilityHashMap.getValueIfExists(datiOrdine,"cod_mdep");
|
||||
String listCode = UtilityHashMap.getValueIfExists(datiOrdine,"listcode");
|
||||
|
||||
sql =
|
||||
"DELETE FROM slim2k.dbo.shippingplan_import " +
|
||||
@@ -108,6 +98,7 @@ public class OrdiniVenditaExportServices {
|
||||
cmd.executeUpdate(sql);
|
||||
multiDBTransactionManager.commitAll();
|
||||
sql =
|
||||
Query.format(
|
||||
"INSERT INTO slim2k.dbo.shippingplan_import( " +
|
||||
"rowstate, " +
|
||||
"firm, " +
|
||||
@@ -131,25 +122,21 @@ public class OrdiniVenditaExportServices {
|
||||
"qtyorderalt, " +
|
||||
"qtyreservedalt) " +
|
||||
"SELECT * " +
|
||||
" FROM dbo.slim2k_exportOrdV( " + UtilityDB.valueToString(codMdep) + ", "
|
||||
+ UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + ", "
|
||||
+ UtilityDB.valueToString(numOrd) + ", "
|
||||
+ UtilityDB.valueToString(listCode) + ") ";
|
||||
" FROM dbo.slim2k_exportOrdV( %s, %s, %s, %s, %s, %s)",
|
||||
codMdep, dataOrd, numOrd, listCode, listaSingoloOrdine, ragguppaArticolo);
|
||||
int row = cmd.executeUpdate(sql);
|
||||
multiDBTransactionManager.commitAll();
|
||||
|
||||
StringBuilder responseBody;
|
||||
|
||||
HashMap<String, String> queryParams = new HashMap<String, String>();
|
||||
queryParams.put("prj", "FOD");
|
||||
queryParams.put("listtype", "SHP");
|
||||
queryParams.put("listcode", String.valueOf(listCode));
|
||||
|
||||
responseBody = new StringBuilder();
|
||||
StringBuilder responseBody = new StringBuilder();
|
||||
int status = HttpRestWrapper.callGenericGet(url, null, null, responseBody, queryParams);
|
||||
|
||||
if (status != 200) {
|
||||
throw new Exception("Errore nell' esportazione della lista " + String.valueOf(listCode) + "<br />Body: " + responseBody);
|
||||
throw new Exception("Errore nell' esportazione della lista " + listCode + "<br />Body: " + responseBody);
|
||||
} else {
|
||||
logger.info(responseBody);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user