Importazione Rosso Gargano, importazione listini di Apulia

This commit is contained in:
2024-03-15 10:51:43 +01:00
parent b6b5b5eaae
commit 110c61e4aa
8 changed files with 580 additions and 371 deletions

View File

@@ -101,8 +101,7 @@
<element id="library" level="project" name="Maven: org.apache.ant:ant:1.7.1" /> <element id="library" level="project" name="Maven: org.apache.ant:ant:1.7.1" />
<element id="library" level="project" name="Maven: org.apache.ant:ant-launcher:1.7.1" /> <element id="library" level="project" name="Maven: org.apache.ant:ant-launcher:1.7.1" />
<element id="library" level="project" name="Maven: it.integry:utility-barcode:1.1" /> <element id="library" level="project" name="Maven: it.integry:utility-barcode:1.1" />
<element id="library" level="project" name="Maven: it.integry:utilityImage:1.0" /> <element id="library" level="project" name="Maven: it.integry:Utility:1.5" />
<element id="library" level="project" name="Maven: it.integry:Utility:1.4" />
<element id="library" level="project" name="Maven: org.apache.pdfbox:pdfbox:2.0.22" /> <element id="library" level="project" name="Maven: org.apache.pdfbox:pdfbox:2.0.22" />
<element id="library" level="project" name="Maven: org.apache.pdfbox:fontbox:2.0.22" /> <element id="library" level="project" name="Maven: org.apache.pdfbox:fontbox:2.0.22" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.4" /> <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.4" />
@@ -727,7 +726,7 @@
</component> </component>
<component name="ProjectRunConfigurationManager"> <component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat " type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="true" ALTERNATIVE_JRE_PATH="1.8" show_console_on_std_err="true" show_console_on_std_out="true"> <configuration default="false" name="Tomcat " type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="true" ALTERNATIVE_JRE_PATH="1.8" show_console_on_std_err="true" show_console_on_std_out="true">
<option name="COMMON_VM_ARGUMENTS" value="-Xms512m -Xmx2048m" /> <option name="COMMON_VM_ARGUMENTS" value="-Xms256m -Xmx1024m -XX:PermSize=1024m" />
<deployment> <deployment>
<artifact name="ems-engine:war exploded"> <artifact name="ems-engine:war exploded">
<settings> <settings>
@@ -873,7 +872,7 @@
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration default="false" name="Tomcat (FAST)" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="false" ALTERNATIVE_JRE_PATH="1.8" show_console_on_std_err="true" show_console_on_std_out="true"> <configuration default="false" name="Tomcat (FAST)" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="false" ALTERNATIVE_JRE_PATH="1.8" show_console_on_std_err="true" show_console_on_std_out="true">
<option name="COMMON_VM_ARGUMENTS" value="-DDISABLE_DROOLS_COMPILE=TRUE -Xms512m -Xmx2048m" /> <option name="COMMON_VM_ARGUMENTS" value="-DDISABLE_DROOLS_COMPILE=TRUE -Xms256m -Xmx1024m -XX:PermSize=1024m" />
<deployment> <deployment>
<artifact name="ems-engine:war exploded"> <artifact name="ems-engine:war exploded">
<settings> <settings>
@@ -943,7 +942,7 @@
<option name="PROGRAM_PARAMETERS" value="" /> <option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN> </SHUTDOWN>
</ConfigurationWrapper> </ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile"> <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="JProfiler">
<option name="USE_ENV_VARIABLES" value="true" /> <option name="USE_ENV_VARIABLES" value="true" />
<STARTUP> <STARTUP>
<option name="USE_DEFAULT" value="true" /> <option name="USE_DEFAULT" value="true" />
@@ -958,7 +957,7 @@
<option name="PROGRAM_PARAMETERS" value="" /> <option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN> </SHUTDOWN>
</ConfigurationWrapper> </ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile "> <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile">
<option name="USE_ENV_VARIABLES" value="true" /> <option name="USE_ENV_VARIABLES" value="true" />
<STARTUP> <STARTUP>
<option name="USE_DEFAULT" value="true" /> <option name="USE_DEFAULT" value="true" />
@@ -2407,16 +2406,16 @@
<root url="jar://$MAVEN_REPOSITORY$/it/integry/font/Tahoma/1.1/Tahoma-1.1-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/it/integry/font/Tahoma/1.1/Tahoma-1.1-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: it.integry:Utility:1.4" type="java-imported" external-system-id="Maven"> <library name="Maven: it.integry:Utility:1.5" type="java-imported" external-system-id="Maven">
<properties groupId="it.integry" artifactId="Utility" version="1.4" /> <properties groupId="it.integry" artifactId="Utility" version="1.5" />
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.4/Utility-1.4.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.5/Utility-1.5.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC> <JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.4/Utility-1.4-javadoc.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.5/Utility-1.5-javadoc.jar!/" />
</JAVADOC> </JAVADOC>
<SOURCES> <SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.4/Utility-1.4-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/it/integry/Utility/1.5/Utility-1.5-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: it.integry:utility-barcode:1.1" type="java-imported" external-system-id="Maven"> <library name="Maven: it.integry:utility-barcode:1.1" type="java-imported" external-system-id="Maven">
@@ -2431,18 +2430,6 @@
<root url="jar://$MAVEN_REPOSITORY$/it/integry/utility-barcode/1.1/utility-barcode-1.1-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/it/integry/utility-barcode/1.1/utility-barcode-1.1-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: it.integry:utilityImage:1.0" type="java-imported" external-system-id="Maven">
<properties groupId="it.integry" artifactId="utilityImage" version="1.0" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/utilityImage/1.0/utilityImage-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/utilityImage/1.0/utilityImage-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/it/integry/utilityImage/1.0/utilityImage-1.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: javax.activation:activation:1.1.1" type="java-imported" external-system-id="Maven"> <library name="Maven: javax.activation:activation:1.1.1" type="java-imported" external-system-id="Maven">
<properties groupId="javax.activation" artifactId="activation" version="1.1.1" /> <properties groupId="javax.activation" artifactId="activation" version="1.1.1" />
<CLASSES> <CLASSES>

View File

@@ -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.MigrationModelInterface;
public class Migration_20240314141529 extends BaseMigration implements MigrationModelInterface{ import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
import it.integry.ems_model.utility.UtilityDB;
public class Migration_20240314141529 extends BaseMigration implements MigrationModelInterface {
@Override @Override
public void up()throws Exception { public void up() throws Exception {
if(isHistoryDB()) if (isHistoryDB())
return; return;
if (existsTable("dbo.mtb_lisa_apulia_succ")) {
executeStatement("ALTER TABLE mtb_lisa_apulia_succ ADD perc_premio numeric(5,2)",
"ALTER TABLE mtb_lisa_apulia_succ ADD val_premio numeric(20,5)");
}
} }
@Override @Override
public void down()throws Exception{ public void down() throws Exception {
} }

View File

@@ -1,17 +0,0 @@
package it.integry.ems.migration.model;import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240314143129 extends BaseMigration implements MigrationModelInterface{
@Override
public void up()throws Exception {
if(isHistoryDB())
return;
}
@Override
public void down()throws Exception{
}
}

View File

@@ -400,16 +400,20 @@ public class UtilityDB {
} }
public static void dropTmpView(Connection conn, List<String> tmpView) throws Exception { public static void dropTmpView(Connection conn, List<String> tmpView) throws Exception {
String query;
for (String view : tmpView) { for (String view : tmpView) {
query = "DROP VIEW " + view; dropTmpView(conn, view);
Statement cmd = conn.createStatement();
cmd.execute(query);
cmd.close();
} }
conn.commit(); conn.commit();
} }
public static void dropTmpView(Connection conn, String view) throws Exception {
if (!UtilityDB.existDatabaseObject(conn, view, TypeDbObject.VIEW)) return;
String query = "DROP VIEW " + view;
Statement cmd = conn.createStatement();
cmd.execute(query);
cmd.close();
}
public static String query2XML(String query, Connection conn, String root, String row) throws Exception { public static String query2XML(String query, Connection conn, String root, String row) throws Exception {
query = query + " FOR XML PATH('" + row + "'), ROOT ('" + root + "')"; // sono state rimosse le parentesi che racchiudono 'query'. ci sono problemi con eventuali order by query = query + " FOR XML PATH('" + row + "'), ROOT ('" + root + "')"; // sono state rimosse le parentesi che racchiudono 'query'. ci sono problemi con eventuali order by
//query = "("+query+") FOR XML PATH('"+row+"'), ROOT ('"+root+"')"; //query = "("+query+") FOR XML PATH('"+row+"'), ROOT ('"+root+"')";

View File

@@ -92,7 +92,7 @@ public class RossoGarganoSyncService {
saveCtbMovt(rgExchange.getConnection(), "(PNOTA.PN_SEZIONALE_IVA <> '' AND PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine, dataUltUpd); saveCtbMovt(rgExchange.getConnection(), "(PNOTA.PN_SEZIONALE_IVA <> '' AND PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine, dataUltUpd);
logger.info("Importazione fatture attive e passive: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs"); logger.info("Importazione fatture attive e passive: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
/*
sql = sql =
"SELECT CAST(FORMAT(DATEPART(YEAR, data_fine), '0000') +\n" + "SELECT CAST(FORMAT(DATEPART(YEAR, data_fine), '0000') +\n" +
" FORMAT(DATEPART(MONTH, data_fine), '00') +\n" + " FORMAT(DATEPART(MONTH, data_fine), '00') +\n" +
@@ -101,7 +101,7 @@ public class RossoGarganoSyncService {
" CROSS APPLY dbo.getperiodoannofisc(azienda.anno_contab)"; " CROSS APPLY dbo.getperiodoannofisc(azienda.anno_contab)";
dataFine = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql); dataFine = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
*/
saveCtbMovt(rgExchange.getConnection(), "(PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine, dataUltUpd); saveCtbMovt(rgExchange.getConnection(), "(PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine, dataUltUpd);
logger.info("Importazione altri movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs"); logger.info("Importazione altri movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
} }

View File

@@ -27,7 +27,7 @@ public class ListiniAcquistoImporter extends BaseEntityImporter<List<EntityBase>
break; break;
case APULIA_CARREFOUR: case APULIA_CARREFOUR:
ImportListiniAcquistoApuliaCarrefourService apuliaCarrefourService = ContextLoader.getCurrentWebApplicationContext().getBean(ImportListiniAcquistoApuliaCarrefourService.class); ImportListiniAcquistoApuliaCarrefourService apuliaCarrefourService = ContextLoader.getCurrentWebApplicationContext().getBean(ImportListiniAcquistoApuliaCarrefourService.class);
result = apuliaCarrefourService.importListino(requestDto, type, format); result = apuliaCarrefourService.importListino(requestDto, type, format, anomalie);
break; break;
case METALSISTEM: case METALSISTEM:
ImportListiniAcquistoFornitoriSmetarService listiniSmetarService = ContextLoader.getCurrentWebApplicationContext().getBean(ImportListiniAcquistoFornitoriSmetarService.class); ImportListiniAcquistoFornitoriSmetarService listiniSmetarService = ContextLoader.getCurrentWebApplicationContext().getBean(ImportListiniAcquistoFornitoriSmetarService.class);

View File

@@ -1,2 +1,224 @@
package it.integry.ems.product.importaz.dto;public class ListinoApuliaCarrefourDTO { package it.integry.ems.product.importaz.dto;
import it.integry.ems_model.annotation.SqlField;
import java.math.BigDecimal;
import java.util.Date;
public class ListinoApuliaCarrefourDTO {
@SqlField(value = "barcode")
private String barcode;
@SqlField(value = "cod_aliq")
private String codAliq;
@SqlField(value = "cod_alis")
private String codAlis;
@SqlField(value = "cod_art_for")
private String codArtFor;
@SqlField(value = "colli_x_pedane")
private BigDecimal colliXPedane;
@SqlField(value = "count_art_for")
private Integer countArtFor;
@SqlField(value = "data_iniz")
private Date dataIniz;
@SqlField(value = "data_iniz_lisa")
private Date dataInizLisa;
@SqlField(value = "descrizione")
private String descrizione;
@SqlField(value = "perc_oneri")
private BigDecimal percOneri;
@SqlField(value = "prec_promo")
private BigDecimal precPromo;
@SqlField(value = "prz_acq")
private BigDecimal przAcq;
@SqlField(value = "prz_base_prop")
private BigDecimal przBaseProp;
@SqlField(value = "prz_ven_sug")
private BigDecimal przVenSug;
@SqlField(value = "qta_cnf")
private BigDecimal qtaCnf;
@SqlField(value = "tipo_variazione")
private String tipoVariazione;
@SqlField(value = "unt_mis_acq")
private String untMisAcq;
@SqlField(value = "val_promo")
private BigDecimal valPromo;
public String getBarcode() {
return barcode;
}
public ListinoApuliaCarrefourDTO setBarcode(String barcode) {
this.barcode = barcode;
return this;
}
public String getCodAliq() {
return codAliq;
}
public ListinoApuliaCarrefourDTO setCodAliq(String codAliq) {
this.codAliq = codAliq;
return this;
}
public String getCodAlis() {
return codAlis;
}
public ListinoApuliaCarrefourDTO setCodAlis(String codAlis) {
this.codAlis = codAlis;
return this;
}
public String getCodArtFor() {
return codArtFor;
}
public ListinoApuliaCarrefourDTO setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
return this;
}
public BigDecimal getColliXPedane() {
return colliXPedane;
}
public ListinoApuliaCarrefourDTO setColliXPedane(BigDecimal colliXPedane) {
this.colliXPedane = colliXPedane;
return this;
}
public Integer getCountArtFor() {
return countArtFor;
}
public ListinoApuliaCarrefourDTO setCountArtFor(Integer countArtFor) {
this.countArtFor = countArtFor;
return this;
}
public Date getDataIniz() {
return dataIniz;
}
public ListinoApuliaCarrefourDTO setDataIniz(Date dataIniz) {
this.dataIniz = dataIniz;
return this;
}
public Date getDataInizLisa() {
return dataInizLisa;
}
public ListinoApuliaCarrefourDTO setDataInizLisa(Date dataInizLisa) {
this.dataInizLisa = dataInizLisa;
return this;
}
public String getDescrizione() {
return descrizione;
}
public ListinoApuliaCarrefourDTO setDescrizione(String descrizione) {
this.descrizione = descrizione;
return this;
}
public BigDecimal getPercOneri() {
return percOneri;
}
public ListinoApuliaCarrefourDTO setPercOneri(BigDecimal percOneri) {
this.percOneri = percOneri;
return this;
}
public BigDecimal getPrecPromo() {
return precPromo;
}
public ListinoApuliaCarrefourDTO setPrecPromo(BigDecimal precPromo) {
this.precPromo = precPromo;
return this;
}
public BigDecimal getPrzAcq() {
return przAcq;
}
public ListinoApuliaCarrefourDTO setPrzAcq(BigDecimal przAcq) {
this.przAcq = przAcq;
return this;
}
public BigDecimal getPrzBaseProp() {
return przBaseProp;
}
public ListinoApuliaCarrefourDTO setPrzBaseProp(BigDecimal przBaseProp) {
this.przBaseProp = przBaseProp;
return this;
}
public BigDecimal getPrzVenSug() {
return przVenSug;
}
public ListinoApuliaCarrefourDTO setPrzVenSug(BigDecimal przVenSug) {
this.przVenSug = przVenSug;
return this;
}
public BigDecimal getQtaCnf() {
return qtaCnf;
}
public ListinoApuliaCarrefourDTO setQtaCnf(BigDecimal qtaCnf) {
this.qtaCnf = qtaCnf;
return this;
}
public String getTipoVariazione() {
return tipoVariazione;
}
public ListinoApuliaCarrefourDTO setTipoVariazione(String tipoVariazione) {
this.tipoVariazione = tipoVariazione;
return this;
}
public String getUntMisAcq() {
return untMisAcq;
}
public ListinoApuliaCarrefourDTO setUntMisAcq(String untMisAcq) {
this.untMisAcq = untMisAcq;
return this;
}
public BigDecimal getValPromo() {
return valPromo;
}
public ListinoApuliaCarrefourDTO setValPromo(BigDecimal valPromo) {
this.valPromo = valPromo;
return this;
}
} }

View File

@@ -1,10 +1,10 @@
package it.integry.ems.product.importaz.service; package it.integry.ems.product.importaz.service;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import it.integry.WooCommerce.dto.product.TextTilesBatchUpdateRequest;
import it.integry.common.var.CommonConstants; import it.integry.common.var.CommonConstants;
import it.integry.ems.Import.dto.AnomalieDTO;
import it.integry.ems.Import.dto.ImportRequestDTO; import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.rules.completing.PurchasesRules; import it.integry.ems.product.importaz.dto.ListinoApuliaCarrefourDTO;
import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDebug; import it.integry.ems.utility.UtilityDebug;
@@ -12,14 +12,13 @@ import it.integry.ems.utility.UtilityEntity;
import it.integry.ems.utility.UtilityFile; import it.integry.ems.utility.UtilityFile;
import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.db.ResultSetMapper; import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*; import it.integry.ems_model.entity.AtbList;
import it.integry.ems_model.entity.AtbListData;
import it.integry.ems_model.entity.MtbLisaData;
import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.types.TypeDbObject; import it.integry.ems_model.types.TypeDbObject;
import it.integry.ems_model.utility.UtilityBigDecimal; import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@@ -33,7 +32,6 @@ import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@Service @Service
@Scope("request") @Scope("request")
@@ -42,9 +40,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
@Autowired @Autowired
private SetupGest setupGest; private SetupGest setupGest;
@Autowired
private ImportAnagListiniService importAnagListiniService;
@Autowired @Autowired
private MultiDBTransactionManager multiDBTransactionManager; private MultiDBTransactionManager multiDBTransactionManager;
@@ -52,7 +47,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
private EntityProcessor entityProcessor; private EntityProcessor entityProcessor;
private final Logger logger = LogManager.getLogger(); private final Logger logger = LogManager.getLogger();
public List<EntityBase> importListino(ImportRequestDTO param, String type, String format) throws Exception { public List<EntityBase> importListino(ImportRequestDTO param, String type, String format, List<AnomalieDTO> anomalie) throws Exception {
Connection conn = multiDBTransactionManager.getPrimaryConnection(); Connection conn = multiDBTransactionManager.getPrimaryConnection();
List<EntityBase> entityRet = new ArrayList<>(); List<EntityBase> entityRet = new ArrayList<>();
Date dataImport; Date dataImport;
@@ -105,8 +100,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
BigDecimal percOneri = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:DIR", "0")); BigDecimal percOneri = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:DIR", "0"));
BigDecimal percOneriRif = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:RIF", "0")); BigDecimal percOneriRif = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:RIF", "0"));
String viewName = UtilityDB.defTmpTabName("v1_");
boolean setDataOdierna = UtilityHashMap.getValueIfExists(setup, "DATA_VAR_ODIERNA", "N").equalsIgnoreCase("S"); boolean setDataOdierna = UtilityHashMap.getValueIfExists(setup, "DATA_VAR_ODIERNA", "N").equalsIgnoreCase("S");
String calcDataIniz; String calcDataIniz;
@@ -124,119 +117,121 @@ public class ImportListiniAcquistoApuliaCarrefourService {
} }
sql = sql =
"CREATE VIEW " + viewName + " AS " + "SELECT IsNull(apulia.cod_alis, lisa.cod_alis) as cod_alis, "
"SELECT IsNull(apulia.cod_alis, lisa.cod_alis) as cod_alis, " + calcDataIniz + " AS data_iniz, "
+ calcDataIniz + " AS data_iniz, " + " IsNull(apulia.cod_art_for, lisa.cod_art_for) as cod_art_for,"
+ " IsNull(apulia.cod_art_for, lisa.cod_art_for) as cod_art_for," + " CASE WHEN apulia.cod_alis is not null THEN apulia.prz_acq else null end as prz_acq,"
+ " CASE WHEN apulia.cod_alis is not null THEN apulia.prz_acq else null end as prz_acq," + " apulia.descrizione AS descrizione, "
+ " 0 as val_promo, " + " apulia.barcode AS barcode,"
+ " apulia.descrizione AS descrizione, " + " apulia.unt_mis_acq AS unt_mis_acq,"
+ " apulia.barcode AS barcode," + " apulia.qta_cnf AS qta_cnf,"
+ " apulia.unt_mis_acq AS unt_mis_acq," + " apulia.colli_x_pedane AS colli_x_pedane,"
+ " apulia.qta_cnf AS qta_cnf," + " CASE WHEN lisa.cod_art_for IS NULL THEN apulia.prz_ven_sugg ELSE NULL END AS prz_ven_sug,"
+ " apulia.colli_x_pedane AS colli_x_pedane," + " CASE WHEN lisa.cod_art_for IS NULL AND apulia.cod_art_for is not null THEN 'I' "
+ " CASE WHEN lisa.cod_art_for IS NULL THEN apulia.prz_ven_sugg ELSE NULL END AS prz_ven_sug," + "WHEN lisa.cod_art_for IS NOT NULL AND apulia.cod_art_for is null THEN 'D' "
+ " CASE WHEN lisa.cod_art_for IS NULL AND apulia.cod_art_for is not null THEN 'I' " + "ELSE 'U' END AS tipo_variazione, "
+ "WHEN lisa.cod_art_for IS NOT NULL AND apulia.cod_art_for is null THEN 'D' " + " lisa.data_iniz as data_iniz_lisa, "
+ "ELSE 'U' END AS tipo_variazione, " + " IsNull(oneri.perc_oneri, CASE WHEN apulia.tipo_listino = 'RIF' THEN " + UtilityDB.valueToString(percOneriRif) + " ELSE " + UtilityDB.valueToString(percOneri) + " END ) as perc_oneri, "
+ " lisa.data_iniz as data_iniz_lisa, " + " count(*) over (partition by IsNull(apulia.cod_alis, lisa.cod_alis), "
+ " IsNull(oneri.perc_oneri, CASE WHEN apulia.tipo_listino = 'RIF' THEN " + UtilityDB.valueToString(percOneriRif) + " ELSE " + UtilityDB.valueToString(percOneri) + " END ) as perc_oneri, " + calcDataIniz + ", "
+ " count(*) over (partition by IsNull(apulia.cod_alis, lisa.cod_alis), " + " IsNull(apulia.cod_art_for, lisa.cod_art_for)) as count_art_for, "
+ calcDataIniz + ", " + " apulia.cod_aliq, "
+ " IsNull(apulia.cod_art_for, lisa.cod_art_for)) as count_art_for, " + " apulia.prz_base_prop, "
+ " apulia.cod_aliq, " + " apulia.perc_premio as prec_promo,"
+ " apulia.prz_base_prop " + " apulia.val_premio as val_promo "
+ "FROM (SELECT DISTINCT mtb_lisa_apulia_succ.cod_alis, " + "FROM (SELECT DISTINCT mtb_lisa_apulia_succ.cod_alis, "
+ " mtb_lisa_apulia_succ.data_prz_acq," + " mtb_lisa_apulia_succ.data_prz_acq,"
+ " mtb_lisa_apulia_succ.cod_art_for AS cod_art_for," + " mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,"
+ " mtb_lisa_apulia_succ.prz_acq AS prz_acq, " + " mtb_lisa_apulia_succ.prz_acq AS prz_acq, "
+ " CONVERT(numeric(20,5), ISNULL(mtb_lisa_apulia_succ.prz_acq, 0) ) AS val_promo," + " CONVERT(numeric(20,5), ISNULL(mtb_lisa_apulia_succ.prz_acq, 0) ) AS val_promo,"
+ " mtb_lisa_apulia_succ.descrizione," + " mtb_lisa_apulia_succ.descrizione,"
+ " mtb_lisa_apulia_succ.barcode," + " mtb_lisa_apulia_succ.barcode,"
+ " mtb_lisa_apulia_succ.descrizione_divisione_forn," + " mtb_lisa_apulia_succ.descrizione_divisione_forn,"
+ " mtb_lisa_apulia_succ.partita_iva_forn," + " mtb_lisa_apulia_succ.partita_iva_forn,"
+ " mtb_lisa_apulia_succ.unt_mis_acq," + " mtb_lisa_apulia_succ.unt_mis_acq,"
+ " mtb_lisa_apulia_succ.qta_cnf," + " mtb_lisa_apulia_succ.qta_cnf,"
+ " mtb_lisa_apulia_succ.colli_x_pedane," + " mtb_lisa_apulia_succ.colli_x_pedane,"
+ " mtb_lisa_apulia_succ.linea," + " mtb_lisa_apulia_succ.linea,"
+ " CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%[0-9]%' THEN 'RIF' ELSE 'DIR' END tipo_listino ," + " CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%[0-9]%' THEN 'RIF' ELSE 'DIR' END tipo_listino ,"
+ " mtb_lisa_apulia_succ.anno_contratto," + " mtb_lisa_apulia_succ.anno_contratto,"
+ " mtb_lisa_apulia_succ.perc_contratto," + " mtb_lisa_apulia_succ.perc_contratto,"
+ " mtb_lisa_apulia_succ.rag_soc_forn," + " mtb_lisa_apulia_succ.rag_soc_forn,"
+ " mtb_lisa_apulia_succ.prz_ven_sugg," + " mtb_lisa_apulia_succ.prz_ven_sugg,"
+ " mtb_lisa_apulia_succ.cod_forn," + " mtb_lisa_apulia_succ.cod_forn,"
+ " mtb_lisa_apulia_succ.cod_aliq, " + " mtb_lisa_apulia_succ.cod_aliq, "
+ " mtb_lisa_apulia_succ.prz_base_prop " + " mtb_lisa_apulia_succ.prz_base_prop, "
+ " FROM mtb_lisa_apulia_succ " + " mtb_lisa_apulia_succ.perc_premio, "
+ " WHERE mtb_lisa_apulia_succ.data_prz_acq <= " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + " AND " + " mtb_lisa_apulia_succ.val_premio "
+ " mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis " + " FROM mtb_lisa_apulia_succ "
+ " FROM dbo.ParseStringIntoArray((SELECT dbo.getGestSetup('IMPORT_" + type + "', " + UtilityDB.valueToString(format) + ", 'LISTINI_DA_ESCLUDERE')), '|'))) apulia " + " WHERE mtb_lisa_apulia_succ.data_prz_acq <= " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + " AND "
+ "FULL OUTER JOIN (SELECT lisa.cod_alis," + " mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis "
+ " cod_art_for, " + " FROM dbo.ParseStringIntoArray((SELECT dbo.getGestSetup('IMPORT_" + type + "', " + UtilityDB.valueToString(format) + ", 'LISTINI_DA_ESCLUDERE')), '|'))) apulia "
+ " prz_acq, " + "FULL OUTER JOIN (SELECT lisa.cod_alis,"
+ " val_promo, " + " cod_art_for, "
+ " perc_oneri, " + " prz_acq, "
+ " prz_ven_sug, " + " val_promo, "
+ " CASE WHEN data_iniz < '2020/01/01' THEN '2020/01/01' ELSE data_iniz END as data_iniz, " + " perc_oneri, "
+ " tipo_variazione " + " prz_ven_sug, "
+ " FROM dbo.getListinoAcquisto(" + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + ", NULL, NULL, NULL, 'N', NULL) lisa LEFT OUTER JOIN " + " CASE WHEN data_iniz < '2020/01/01' THEN '2020/01/01' ELSE data_iniz END as data_iniz, "
+ " (SELECT value_string AS cod_alis FROM dbo.ParseStringIntoArray((SELECT dbo.getGestSetup('IMPORT_" + type + "', " + UtilityDB.valueToString(format) + ", 'LISTINI_DA_ESCLUDERE')), '|')) listini_esclusi " + " tipo_variazione "
+ " ON lisa.cod_alis = listini_esclusi.cod_alis " + " FROM dbo.getListinoAcquisto(" + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + ", NULL, NULL, NULL, 'N', NULL) lisa LEFT OUTER JOIN "
+ "WHERE lisa.cod_alis LIKE 'AP%' AND " + " (SELECT value_string AS cod_alis FROM dbo.ParseStringIntoArray((SELECT dbo.getGestSetup('IMPORT_" + type + "', " + UtilityDB.valueToString(format) + ", 'LISTINI_DA_ESCLUDERE')), '|')) listini_esclusi "
+ " lisa.tipo_variazione <> 'D' AND lisa.tipo_variazione is not null and " + " ON lisa.cod_alis = listini_esclusi.cod_alis "
+ " listini_esclusi.cod_alis IS NULL ) lisa ON apulia.cod_alis = lisa.cod_alis AND apulia.cod_art_for = lisa.cod_art_for " + "WHERE lisa.cod_alis LIKE 'AP%' AND "
+ "LEFT OUTER JOIN mtb_lisa ON apulia.cod_alis = mtb_lisa.cod_alis AND " + " lisa.tipo_variazione <> 'D' AND lisa.tipo_variazione is not null and "
+ "apulia.cod_art_for = mtb_lisa.cod_art_for " + " listini_esclusi.cod_alis IS NULL ) lisa ON apulia.cod_alis = lisa.cod_alis AND apulia.cod_art_for = lisa.cod_art_for "
+ "LEFT OUTER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart " + "LEFT OUTER JOIN mtb_lisa ON apulia.cod_alis = mtb_lisa.cod_alis AND "
+ "LEFT OUTER JOIN (SELECT mtb_grup.cod_mgrp," + "apulia.cod_art_for = mtb_lisa.cod_art_for "
+ " REPLACE(key_section, 'PERC_ONERI:', '') AS tipo_listino, " + "LEFT OUTER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart "
+ " IsNull(Convert(numeric(20,5), stb_gest_setup_det.value ), 0) AS perc_oneri " + "LEFT OUTER JOIN (SELECT mtb_grup.cod_mgrp,"
+ " FROM mtb_grup LEFT OUTER JOIN stb_gest_setup_det ON gest_name = 'IMPORT_" + type + "' AND " + " REPLACE(key_section, 'PERC_ONERI:', '') AS tipo_listino, "
+ " section = " + UtilityDB.valueToString(format) + " AND KEY_SECTION LIKE 'PERC_ONERI%' and" + " IsNull(Convert(numeric(20,5), stb_gest_setup_det.value ), 0) AS perc_oneri "
+ " mtb_grup.cod_mgrp = stb_gest_setup_det.val_col_rif ) oneri on apulia.tipo_listino= oneri.tipo_listino And mtb_aart.cod_mgrp = oneri.cod_mgrp " + " FROM mtb_grup LEFT OUTER JOIN stb_gest_setup_det ON gest_name = 'IMPORT_" + type + "' AND "
+ " WHERE ((apulia.data_prz_acq >= " + UtilityDB.valueDateToString(dataInizVarizioni, CommonConstants.DATE_FORMAT_YMD) + " AND " + " section = " + UtilityDB.valueToString(format) + " AND KEY_SECTION LIKE 'PERC_ONERI%' and"
+ "(ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR " + " mtb_grup.cod_mgrp = stb_gest_setup_det.val_col_rif ) oneri on apulia.tipo_listino= oneri.tipo_listino And mtb_aart.cod_mgrp = oneri.cod_mgrp "
+ "ISNULL(lisa.perc_oneri, 0) <> IsNull(oneri.perc_oneri, CASE WHEN apulia.tipo_listino = 'RIF' THEN " + UtilityDB.valueToString(percOneriRif) + " ELSE " + UtilityDB.valueToString(percOneri) + " END ) OR " + " WHERE ((apulia.data_prz_acq >= " + UtilityDB.valueDateToString(dataInizVarizioni, CommonConstants.DATE_FORMAT_YMD) + " AND "
+ "ISNULL(lisa.prz_ven_sug, 0) <> ISNULL(apulia.prz_base_prop, 0))) OR " + "(ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR "
+ "IsNull(lisa.cod_art_for, '') <> IsNull(apulia.cod_art_for, '')) "; + "ISNULL(lisa.perc_oneri, 0) <> IsNull(oneri.perc_oneri, CASE WHEN apulia.tipo_listino = 'RIF' THEN " + UtilityDB.valueToString(percOneriRif) + " ELSE " + UtilityDB.valueToString(percOneri) + " END ) OR "
+ "ISNULL(lisa.prz_ven_sug, 0) <> ISNULL(apulia.prz_base_prop, 0)) OR "
+ "ISNULL(lisa.val_promo, 0) <> ISNULL(apulia.val_premio, 0)) OR "
+ "IsNull(lisa.cod_art_for, '') <> IsNull(apulia.cod_art_for, '')) ";
PreparedStatement ps = conn.prepareStatement(sql); List<ListinoApuliaCarrefourDTO> variazioniListini = UtilityDB.executeSimpleQueryDTO(conn, sql, ListinoApuliaCarrefourDTO.class);
ps.executeUpdate();
ps.close();
conn.commit();
Date dataOraImport = new Date(); Date dataOraImport = new Date();
String whereCondLisa = "( data_iniz >= data_iniz_lisa or data_iniz_lisa is null ) AND count_art_for = 1 "; List<MtbLisaData> righeListino =
sql = Stream.of(variazioniListini)
"SELECT viewLisa.cod_alis, " .filter(x->x.getCountArtFor().intValue() == 1 &&
+ "viewLisa.data_iniz AS data_iniz, " ( x.getDataInizLisa() == null || UtilityDate.DaysAfter(x.getDataInizLisa(), x.getDataIniz()) >= 0))
+ "viewLisa.cod_art_for, " .map(
+ "viewLisa.prz_acq, " x->{
+ "viewLisa.val_promo, " MtbLisaData mtbLisaData = new MtbLisaData()
+ "viewLisa.descrizione as descr_art_forn, " .setCodAlis(x.getCodAlis())
+ "viewLisa.barcode as cod_barre, " .setDataIniz(x.getDataIniz())
+ "viewLisa.unt_mis_acq, " .setCodArtFor(x.getCodArtFor())
+ "viewLisa.qta_cnf, " .setPrzAcq(x.getPrzAcq())
+ "viewLisa.colli_x_pedane, " .setValPromo(UtilityBigDecimal.isNull(x.getValPromo(), BigDecimal.ZERO))
+ "viewLisa.tipo_variazione, " .setPercPromo(UtilityBigDecimal.isNull(x.getPrecPromo(), BigDecimal.ZERO))
+ "Convert(datetime, " + UtilityDB.valueDateToString(dataOraImport, CommonConstants.DATETIME_FORMAT_YMD) + ") as data_agg_prz, " .setDescrArtForn(x.getDescrizione())
+ "viewLisa.perc_oneri, " .setUntMisAcq(x.getUntMisAcq())
+ "'EMS' as inserito_da, " .setQtaCnf(x.getQtaCnf())
+ "'EMS' as modificato_da, " .setColliPedana(x.getColliXPedane())
+ "viewLisa.cod_aliq, " .setTipoVariazione(x.getTipoVariazione())
+ "viewLisa.prz_base_prop as prz_ven_sug " .setDataAggPrz(dataOraImport)
+ "FROM " + viewName + " viewLisa LEFT OUTER JOIN mtb_lisa ON viewLisa.cod_alis = mtb_lisa.cod_alis AND " .setInseritoDa("EMS")
+ "viewLisa.cod_art_for = mtb_lisa.cod_art_for " .setModificatoDa("EMS")
+ " WHERE " + whereCondLisa .setCodAliq(x.getCodAliq())
+ " ORDER BY viewLisa.cod_alis, viewLisa.data_iniz "; .setPrzVenSug(UtilityBigDecimal.isNull(x.getPrzVenSug(), BigDecimal.ZERO))
.setPerc1(BigDecimal.ZERO)
.setPerc2(BigDecimal.ZERO)
List<MtbLisaData> righeListino = new ArrayList<>(); .setPerc3(BigDecimal.ZERO)
List<MtbLisaData> mtbLisaData = new ResultSetMapper() .setPerc4(BigDecimal.ZERO)
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT); .setPercOneri(UtilityBigDecimal.isNull(x.getPercOneri(), BigDecimal.ZERO))
if (mtbLisaData != null) { .setValOneri(BigDecimal.ZERO);
righeListino.addAll(mtbLisaData); mtbLisaData.setOperation(OperationType.INSERT);
} return mtbLisaData;
}
).toList();
if (setup.get("IMPORT_VAR_FUTURE").equalsIgnoreCase("S")) { if (setup.get("IMPORT_VAR_FUTURE").equalsIgnoreCase("S")) {
sql = "SELECT mtb_lisa_apulia_succ.cod_alis,\n" + sql = "SELECT mtb_lisa_apulia_succ.cod_alis,\n" +
@@ -252,7 +247,9 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" mtb_lisa_apulia_succ.linea,\n" + " mtb_lisa_apulia_succ.linea,\n" +
" mtb_lisa_apulia_succ.prz_ven_sugg,\n" + " mtb_lisa_apulia_succ.prz_ven_sugg,\n" +
" mtb_lisa_apulia_succ.cod_aliq,\n" + " mtb_lisa_apulia_succ.cod_aliq,\n" +
" mtb_lisa_apulia_succ.prz_base_prop\n" + " mtb_lisa_apulia_succ.prz_base_prop as prz_vend_sug,\n" +
" mtb_lisa_apulia_succ.perc_premio as perc_promo,\n" +
" mtb_lisa_apulia_succ.val_premio as val_promo\n" +
"FROM mtb_lisa_apulia_succ\n" + "FROM mtb_lisa_apulia_succ\n" +
"WHERE mtb_lisa_apulia_succ.data_prz_acq > " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + "\n" + "WHERE mtb_lisa_apulia_succ.data_prz_acq > " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + "\n" +
" AND mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" + " AND mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" +
@@ -262,85 +259,60 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" 'LISTINI_DA_ESCLUDERE')),\n" + " 'LISTINI_DA_ESCLUDERE')),\n" +
" '|'))"; " '|'))";
mtbLisaData = new ResultSetMapper() List<MtbLisaData> mtbLisaData = new ResultSetMapper()
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT); .mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT);
if (mtbLisaData != null) { if (mtbLisaData != null) {
Stream.of(mtbLisaData)
.forEach(
x -> x
.setPrzVenSug(UtilityBigDecimal.isNull(x.getPrzVenSug(), BigDecimal.ZERO))
.setPerc1(BigDecimal.ZERO)
.setPerc2(BigDecimal.ZERO)
.setPerc3(BigDecimal.ZERO)
.setPerc4(BigDecimal.ZERO)
.setPercOneri(UtilityBigDecimal.isNull(x.getPercOneri(), BigDecimal.ZERO))
.setValOneri(UtilityBigDecimal.isNull(x.getValOneri(), BigDecimal.ZERO))
.setPercPromo(UtilityBigDecimal.isNull(x.getPercPromo(), BigDecimal.ZERO))
.setValPromo(UtilityBigDecimal.isNull(x.getValPromo(), BigDecimal.ZERO))
);
righeListino.addAll(mtbLisaData); righeListino.addAll(mtbLisaData);
} }
}
List<String> listCond = List<String> listCond =
Stream.of(righeListino) Stream.of(righeListino)
.filter(x->x.getQtaCnf() != null ) .filter(x->x.getQtaCnf() != null )
.map(lisa -> { .map(lisa -> {
String whereCond = String whereCond =
"mtb_lisa.cod_art_for = " + UtilityDB.valueToString(((MtbLisaData) lisa).getCodArtFor()) + " AND " + "mtb_lisa.cod_art_for = " + UtilityDB.valueToString(lisa.getCodArtFor()) + " AND " +
"mtb_lisa.cod_alis = " + UtilityDB.valueToString(((MtbLisaData) lisa).getCodAlis()); "mtb_lisa.cod_alis = " + UtilityDB.valueToString(lisa.getCodAlis());
return whereCond; return whereCond;
}).toList(); }).toList();
if (listCond != null && !listCond.isEmpty()) { if (listCond != null && !listCond.isEmpty()) {
sql = sql =
"SELECT mtb_lisa.cod_art_for, mtb_lisa.rap_conv\n" + "SELECT mtb_lisa.cod_art_for, mtb_lisa.rap_conv\n" +
"FROM mtb_lisa\n" + "FROM mtb_lisa\n" +
" INNER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart AND mtb_lisa.rap_conv <> 1 "; " INNER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart AND mtb_lisa.rap_conv <> 1 ";
String whereCond = StringUtils.join(listCond, ") OR ("); String whereCond = StringUtils.join(listCond, ") OR (");
sql = UtilityDB.addwhereCond(sql, "("+whereCond+")", false); sql = UtilityDB.addwhereCond(sql, "("+whereCond+")", false);
List<HashMap<String, Object>> datiLisa = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql); List<HashMap<String, Object>> datiLisa = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
for(HashMap<String, Object> l: datiLisa) { for(HashMap<String, Object> l: datiLisa) {
String codArtForDb = UtilityHashMap.getValueIfExists(l, "cod_art_for"); String codArtForDb = UtilityHashMap.getValueIfExists(l, "cod_art_for");
BigDecimal rapConvDb = UtilityHashMap.getValueIfExists(l, "rap_conv"); BigDecimal rapConvDb = UtilityHashMap.getValueIfExists(l, "rap_conv");
List<MtbLisaData> list = Stream.of(righeListino) List<MtbLisaData> list = Stream.of(righeListino)
.filter(x -> x.getCodArtFor().equalsIgnoreCase(codArtForDb) && .filter(x -> x.getCodArtFor().equalsIgnoreCase(codArtForDb) &&
x.getQtaCnf() != null x.getQtaCnf() != null
).toList(); ).toList();
for (MtbLisaData e:list) { for (MtbLisaData e:list) {
righeListino.remove(e); righeListino.remove(e);
BigDecimal qtaCnf = e.getQtaCnf().multiply(rapConvDb); BigDecimal qtaCnf = e.getQtaCnf().multiply(rapConvDb);
e.setQtaCnf(qtaCnf); e.setQtaCnf(qtaCnf);
righeListino.add(e); righeListino.add(e);
}
} }
} }
} }
//INSERIMENTO IN TABELLA DI APPOGGIO
sql =
"SELECT Convert(datetime, " + UtilityDB.valueDateToString(dataOraImport, CommonConstants.DATETIME_FORMAT_YMD) + ") as data_import, "
+ UtilityDB.valueToString(type) + " as tipo_import, "
+ UtilityDB.valueToString(format) + " as formato_import, "
+ "Convert(datetime, " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + ") as data_file, "
+ "Convert(int, row_number() over (order by cod_alis, data_iniz)) as id, "
+ "cod_alis, "
+ "data_iniz, "
+ "cod_art_for, "
+ "prz_acq, "
+ "val_promo, "
+ "descrizione as descr_art_forn, "
+ "barcode as cod_barre, "
+ "unt_mis_acq, "
+ "qta_cnf, "
+ "colli_x_pedane as colli_pedana, "
+ "prz_ven_sug, "
+ "tipo_variazione, "
+ "count_art_for, "
+ "data_iniz_lisa, "
+ "cod_aliq, "
+ "prz_base_prop as prz_vend_sug "
+ "FROM " + viewName + " viewLisa "
+ " WHERE NOT ( " + whereCondLisa + ") "
+ " ORDER BY cod_alis, data_iniz ";
List<AtbListLogImport> atbListLogImport = new ResultSetMapper().mapQuerySetToList(conn, sql, AtbListLogImport.class, OperationType.INSERT_OR_UPDATE);
//cancellazione tabella temporanea
Boolean existView = UtilityDB.existDatabaseObject(conn, viewName, TypeDbObject.VIEW);
if (existView) {
sql = "DROP VIEW " + viewName;
PreparedStatement psDelete = conn.prepareStatement(sql);
psDelete.executeUpdate();
psDelete.close();
}
//salvataggio testate listini //salvataggio testate listini
if ( atbList != null ) if ( atbList != null )
@@ -348,21 +320,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
if (righeListino != null && righeListino.size() > 0) { if (righeListino != null && righeListino.size() > 0) {
//Salvataggio righe //Salvataggio righe
Stream.of(righeListino)
.forEach(
x -> x
.setPrzVenSug(UtilityBigDecimal.isNull(x.getPrzVenSug(), BigDecimal.ZERO))
.setPerc1(BigDecimal.ZERO)
.setPerc2(BigDecimal.ZERO)
.setPerc3(BigDecimal.ZERO)
.setPerc4(BigDecimal.ZERO)
.setPercOneri(UtilityBigDecimal.isNull(x.getPercOneri(), BigDecimal.ZERO))
.setValOneri(UtilityBigDecimal.isNull(x.getValOneri(), BigDecimal.ZERO))
.setPercPromo(UtilityBigDecimal.isNull(x.getPercPromo(), BigDecimal.ZERO))
.setValPromo(UtilityBigDecimal.isNull(x.getValPromo(), BigDecimal.ZERO))
);
List<Map.Entry<AtbListData, List<MtbLisaData>>> listini = List<Map.Entry<AtbListData, List<MtbLisaData>>> listini =
Stream.of(righeListino) Stream.of(righeListino)
.groupBy( .groupBy(
@@ -381,14 +338,20 @@ public class ImportListiniAcquistoApuliaCarrefourService {
for (Map.Entry<AtbListData, List<MtbLisaData>> listino : listini) { for (Map.Entry<AtbListData, List<MtbLisaData>> listino : listini) {
AtbListData atbListData = listino.getKey(); AtbListData atbListData = listino.getKey();
atbListData.setMtbLisaData(listino.getValue()); atbListData.setMtbLisaData(listino.getValue());
UtilityEntity.throwEntityException(entityProcessor.processEntity(atbListData, multiDBTransactionManager)); entityProcessor.processEntity(atbListData, multiDBTransactionManager);
try{
UtilityEntity.throwEntityException(atbListData);
entityRet.add(atbListData);
} catch (Exception e ){
AnomalieDTO.error(e);
}
} }
} else { } else {
throw new Exception("Non ci sono listini da aggiornare"); throw new Exception("Non ci sono listini da aggiornare");
} }
if (atbListLogImport != null) // if (atbListLogImport != null)
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(atbListLogImport, multiDBTransactionManager, false)); // UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(atbListLogImport, multiDBTransactionManager, false));
logger.info("Importazione " + type + " - " + format + " terminata"); logger.info("Importazione " + type + " - " + format + " terminata");
@@ -400,8 +363,10 @@ public class ImportListiniAcquistoApuliaCarrefourService {
final String tableListRif = "apuliac_listino_rif_csv"; final String tableListRif = "apuliac_listino_rif_csv";
final String tableArtRif = "apuliac_art_rif_csv"; final String tableArtRif = "apuliac_art_rif_csv";
final String tableAggPrz = "apuliac_agg_prz_csv"; final String tableAggPrz = "apuliac_agg_prz_csv";
final String tableAggPrzNetto = "apuliac_agg_prz_netto_csv";
String existHeader = setup.get("EXIST_HEADER"); String existHeader = setup.get("EXIST_HEADER");
boolean importPrezzoNetto = UtilityHashMap.getValueIfExists(setup, "PREZZO_NETTO", "S").equalsIgnoreCase("S");
BigDecimal percMaggPrzBase = BigDecimal.ZERO; BigDecimal percMaggPrzBase = BigDecimal.ZERO;
if (!UtilityString.isNullOrEmpty(setup.get("PERC_MAGG_PRZ_BASE"))) { if (!UtilityString.isNullOrEmpty(setup.get("PERC_MAGG_PRZ_BASE"))) {
percMaggPrzBase = new BigDecimal(setup.get("PERC_MAGG_PRZ_BASE")); percMaggPrzBase = new BigDecimal(setup.get("PERC_MAGG_PRZ_BASE"));
@@ -425,22 +390,31 @@ public class ImportListiniAcquistoApuliaCarrefourService {
for (int i = 0; i < elencoFile.length; i++) { for (int i = 0; i < elencoFile.length; i++) {
String fileName = elencoFile[i]; String fileName = elencoFile[i];
if ("LIS".equals(UtilityString.left(elencoFile[i], 3).toUpperCase())) { String fileNamePart = UtilityString.left(elencoFile[i], 3).toUpperCase();
tableName = tableListRif;
} else if ("AGG".equals(UtilityString.left(elencoFile[i], 3).toUpperCase())) { switch (fileNamePart) {
tableName = tableAggPrz; case "LIS":
} else if ("ARF".equals(UtilityString.left(elencoFile[i], 3).toUpperCase())) { tableName = tableListRif;
tableName = tableArtRif; break;
case "ARF":
tableName = tableArtRif;
break;
case "AGG":
tableName = tableAggPrz;
if (!importPrezzoNetto && fileName.equalsIgnoreCase("AGGLN"))
tableName = tableAggPrzNetto;
break;
} }
if (!UtilityDB.existDatabaseObject(conn, tableName, TypeDbObject.TABLE)) { if (!UtilityDB.existDatabaseObject(conn, tableName, TypeDbObject.TABLE)) {
if (tableName.compareTo(tableArtRif) == 0) { if (tableName.equalsIgnoreCase(tableArtRif)) {
sql = sql =
"CREATE TABLE " + tableName "CREATE TABLE " + tableName
+ "(cod_art_for varchar(80)," + "(cod_art_for varchar(80),"
+ " cod_art_prod varchar(80)," + " cod_art_prod varchar(80),"
+ " cod_forn varchar(80))"; + " cod_forn varchar(80))";
} else if (tableName.compareTo(tableAggPrz) == 0 || tableName.compareTo(tableListRif) == 0) { } else {
sql = sql =
"CREATE TABLE " + tableName "CREATE TABLE " + tableName
+ "(cod_art_for varchar(80)," + "(cod_art_for varchar(80),"
@@ -575,103 +549,133 @@ public class ImportListiniAcquistoApuliaCarrefourService {
ps.executeUpdate(); ps.executeUpdate();
ps.close(); ps.close();
String queryPremi =
"LEFT OUTER JOIN (SELECT DISTINCT cod_art_for,\n" +
" cod_forn,\n" +
" data_prz_acq,\n" +
" CAST(REPLACE(prz_acq, ',', '.') AS NUMERIC(20, 5)) AS prz_acq_netto\n" +
" FROM apuliac_agg_prz_netto_csv) premi ON\n" +
" tabp.cod_art_for = premi.cod_art_for AND\n" +
" tabp.cod_forn = premi.cod_forn AND\n" +
" tabp.data_prz_acq = premi.data_prz_acq ";
String columnPrzAcq = "CAST(REPLACE(tabp.prz_acq, ',', '.') AS NUMERIC(20, 5)) ";
String columnValPremio = "CAST(0 AS NUMERIC)";
if (!importPrezzoNetto)
columnValPremio = "case when premi.cod_art_for IS not null then premi.prz_acq_netto - [COLUMN_PRZ_ACQ]";
sql = sql =
"INSERT INTO mtb_lisa_apulia_succ " "INSERT INTO mtb_lisa_apulia_succ\n" +
+ "SELECT " "SELECT cod_art_for,\n" +
+ "cod_art_for, " " descrizione,\n" +
+ "DESCRIZIONE, " " barcode,\n" +
+ "barcode, " " settore,\n" +
+ "settore, " " famiglia,\n" +
+ "famiglia, " " cod_forn,\n" +
+ "cod_forn, " " NULL AS cod_divisione_forn,\n" +
+ "null as cod_divisione_forn, " " NULL AS descrizione_divisione_forn,\n" +
+ "null as descrizione_divisione_forn, " " rag_soc_forn,\n" +
+ "rag_soc_forn, " " partita_iva_forn,\n" +
+ "partita_iva_forn, " " (SELECT ISNULL(mtb_lisa_unt_mis.unt_mis_acq, unt_mis_acq)\n" +
+ "(SELECT ISNULL(mtb_lisa_unt_mis.unt_mis_acq, unt_mis_acq) " " FROM mtb_lisa_unt_mis\n" +
+ "FROM mtb_lisa_unt_mis " " WHERE mtb_lisa_unt_mis.cod_alis = tmp.cod_alis\n" +
+ "WHERE mtb_lisa_unt_mis.cod_alis = tmp.cod_alis AND " " AND mtb_lisa_unt_mis.unt_mis_forn = tmp.unt_mis_acq) AS unt_mis_acq,\n" +
+ " mtb_lisa_unt_mis.unt_mis_forn = tmp.unt_mis_acq) as unt_mis_acq, " " (SELECT ISNULL(mtb_lisa_unt_mis.unt_mis_acq, unt_mis_acq2)\n" +
+ "(SELECT ISNULL(mtb_lisa_unt_mis.unt_mis_acq, unt_mis_acq2) " " FROM mtb_lisa_unt_mis\n" +
+ " FROM mtb_lisa_unt_mis " " WHERE mtb_lisa_unt_mis.cod_alis = tmp.cod_alis\n" +
+ " WHERE mtb_lisa_unt_mis.cod_alis = tmp.cod_alis AND " " AND mtb_lisa_unt_mis.unt_mis_forn = tmp.unt_mis_acq2) AS unt_mis_acq2,\n" +
+ "mtb_lisa_unt_mis.unt_mis_forn = tmp.unt_mis_acq2) as unt_mis_acq2, " " qta_cnf,\n" +
+ "QTA_CNF, " " colli_x_pedana,\n" +
+ "COLLI_X_PEDANA, " " linea,\n" +
+ "linea," " NULL AS qta_disp,\n" +
+ "null as QTA_DISP, " " NULL AS anno_contratto,\n" +
+ "null as anno_contratto, " " NULL AS perc_contratto,\n" +
+ "null as perc_contratto, " " prz_acq,\n" +
+ "prz_acq, " " ISNULL(data_prz_acq, CAST(GETDATE() AS DATE)) AS data_prz_acq,\n" +
+ "IsNull(data_prz_acq, cast(getDAte() as date)) as data_prz_acq, " " NULL,\n" +
+ "null, " " NULL,\n" +
+ "null, " " val_unt_listino_l6,\n" +
+ "val_unt_listino_l6, " " data_listino_l6,\n" +
+ "data_listino_l6, " " val_unt_listino_r5,\n" +
+ "val_unt_listino_r5, " " data_listino_r5,\n" +
+ "data_listino_r5, " " cod_alis,\n" +
+ "cod_alis, " " cod_art_apulia,\n" +
+ "cod_art_apulia, " " flag_list_rif,\n" +
+ "flag_list_rif, " " cod_aliq,\n" +
+ "cod_aliq, " " prz_base_prop,\n" +
+ "prz_base_prop " " perc_premio,\n" +
+ "FROM (SELECT " " val_premio\n" +
+ "CASE WHEN tabP.linea = 'RIF' THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod " "FROM (SELECT CASE\n" +
+ " ELSE tabP.COD_ART_FOR END AS cod_art_for, " " WHEN tabp.linea = 'RIF' THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod\n" +
+ "LEFT(tabP.descrizione, 80) AS DESCRIZIONE, " " ELSE tabp.cod_art_for END AS cod_art_for,\n" +
+ "CASE WHEN LEN(barcode) = 0 THEN NULL ELSE barcode END AS barcode, " " LEFT(tabp.descrizione, 80) AS descrizione,\n" +
+ "tabP.settore, " " CASE WHEN LEN(barcode) = 0 THEN NULL ELSE barcode END AS barcode,\n" +
+ "tabP.famiglia, " " tabp.settore,\n" +
+ "tabP.cod_forn, " " tabp.famiglia,\n" +
+ "LEFT(tabP.rag_soc_forn, 40) AS rag_soc_forn, " " tabp.cod_forn,\n" +
+ "tabP.partita_iva_forn, " " LEFT(tabp.rag_soc_forn, 40) AS rag_soc_forn,\n" +
+ "tabP.unt_mis_acq, " " tabp.partita_iva_forn,\n" +
+ "tabP.unt_mis_acq2, " " tabp.unt_mis_acq,\n" +
+ "CONVERT(numeric(20,5), REPLACE(tabP.qta_cnf, ',', '.') ) AS QTA_CNF, " " tabp.unt_mis_acq2,\n" +
+ "CONVERT(numeric(20,5), REPLACE(tabP.colli_x_pedane, ',', '.') ) AS COLLI_X_PEDANA, " " CONVERT(NUMERIC(20, 5), REPLACE(tabp.qta_cnf, ',', '.')) AS qta_cnf,\n" +
+ "TabP.linea, " " CONVERT(NUMERIC(20, 5), REPLACE(tabp.colli_x_pedane, ',', '.')) AS colli_x_pedana,\n" +
+ "CONVERT(numeric(20,5), REPLACE(tabP.prz_acq, ',', '.') ) AS prz_acq, " " tabp.linea,\n" +
+ "CASE " " [COLUMN_PRZ_ACQ] AS prz_acq,\n" +
+ " WHEN ISDATE(data_prz_acq) = 1 THEN CAST(LEFT(data_prz_acq, 4) + '-' + SUBSTRING(data_prz_acq, 5, 2) + '-' + RIGHT(data_prz_acq, 2) AS datetime) " " CASE\n" +
+ " ELSE NULL " " WHEN ISDATE(data_prz_acq) = 1 THEN CAST(LEFT(data_prz_acq, 4) + '-' + SUBSTRING(data_prz_acq, 5, 2) +\n" +
+ "END AS data_prz_acq, " " '-' + RIGHT(data_prz_acq, 2) AS DATETIME)\n" +
+ "CAST(REPLACE(tabP.val_unt_listino_l6, ',', '.') AS numeric) AS val_unt_listino_l6, " " ELSE NULL END AS data_prz_acq,\n" +
+ "CASE " " CAST(REPLACE(tabp.val_unt_listino_l6, ',', '.') AS NUMERIC) AS val_unt_listino_l6,\n" +
+ " WHEN ISDATE(data_listino_l6) = 1 THEN CAST(LEFT(data_listino_l6, 4) + '-' + SUBSTRING(data_listino_l6, 5, 2) + '-' + RIGHT(data_listino_l6, 2) AS datetime) " " CASE\n" +
+ " ELSE NULL " " WHEN ISDATE(data_listino_l6) = 1 THEN CAST(LEFT(data_listino_l6, 4) + '-' +\n" +
+ "END AS data_listino_l6, " " SUBSTRING(data_listino_l6, 5, 2) + '-' +\n" +
+ "CAST(REPLACE(tabP.val_unt_listino_r5, ',', '.') AS numeric) AS val_unt_listino_r5, " " RIGHT(data_listino_l6, 2) AS DATETIME)\n" +
+ "CASE " " ELSE NULL END AS data_listino_l6,\n" +
+ " WHEN ISDATE(data_listino_r5) = 1 THEN CAST(LEFT(data_listino_r5, 4) + '-' + SUBSTRING(data_listino_r5, 5, 2) + '-' + RIGHT(data_listino_r5, 2) AS datetime) " " CAST(REPLACE(tabp.val_unt_listino_r5, ',', '.') AS NUMERIC) AS val_unt_listino_r5,\n" +
+ " ELSE NULL " " CASE\n" +
+ "END AS data_listino_r5, " " WHEN ISDATE(data_listino_r5) = 1 THEN CAST(LEFT(data_listino_r5, 4) + '-' +\n" +
+ "atb_list_apulia.cod_alis AS cod_alis, " " SUBSTRING(data_listino_r5, 5, 2) + '-' +\n" +
+ "tabP.COD_ART_FOR AS cod_art_apulia, " " RIGHT(data_listino_r5, 2) AS DATETIME)\n" +
+ "atb_list_apulia.flag_list_rif AS flag_list_rif, " " ELSE NULL END AS data_listino_r5,\n" +
+ "tabP.cod_iva AS cod_aliq, " " atb_list_apulia.cod_alis AS cod_alis,\n" +
+ "ROW_NUMBER() OVER (PARTITION BY CASE " + " tabp.cod_art_for AS cod_art_apulia,\n" +
" WHEN tabP.linea = 'RIF' THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod " + " atb_list_apulia.flag_list_rif AS flag_list_rif,\n" +
" ELSE tabP.COD_ART_FOR " + " tabp.cod_iva AS cod_aliq,\n" +
" END, atb_list_apulia.cod_alis, tabP.data_prz_acq " + " ROW_NUMBER() OVER (PARTITION BY CASE\n" +
" ORDER BY CASE " + " WHEN tabp.linea = 'RIF' THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod\n" +
" WHEN tabP.linea = 'RIF' THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod " + " ELSE tabp.cod_art_for END, atb_list_apulia.cod_alis, tabp.data_prz_acq ORDER BY CASE\n" +
" ELSE tabP.COD_ART_FOR " + " WHEN tabp.linea = 'RIF'\n" +
" END, atb_list_apulia.cod_alis, barcode, data_prz_acq ) as conta_art, " " THEN mtb_lisa_apulia_codici_rifatt.cod_art_prod\n" +
+ " case when Cast(" + UtilityDB.valueToString(percMaggPrzBase) + " as numeric) = 0 THEN 0 ELSE Convert(numeric(20,5), REPLACE(tabP.prz_acq, ',', '.') )* ( 1 + Cast(" + UtilityDB.valueToString(percMaggPrzBase) + " as numeric)/100) END AS prz_base_prop " " ELSE tabp.cod_art_for END, atb_list_apulia.cod_alis, barcode, data_prz_acq ) AS conta_art,\n" +
+ "FROM " + tableAggPrz + " tabP INNER JOIN atb_list_apulia ON " " CASE\n" +
+ "atb_list_apulia.linea = tabP.linea AND " " WHEN [MAGG_PRZ] = 0 THEN 0\n" +
+ "atb_list_apulia.part_iva_forn = tabP.partita_iva_forn AND " " ELSE [COLUMN_PRZ_ACQ] * (1 + [MAGG_PRZ] / 100) END AS prz_base_prop,\n" +
+ "atb_list_apulia.settore = tabP.settore " " CAST(0 AS NUMERIC) AS perc_premio,\n" +
+ "LEFT OUTER JOIN mtb_lisa_apulia_codici_rifatt ON " " [COLUMN_VAL_PREMIO] AS val_premio\n" +
+ "tabP.cod_art_for = mtb_lisa_apulia_codici_rifatt.cod_art_for AND " " FROM [TABLE_NAME] tabp\n" +
+ "tabP.cod_forn = mtb_lisa_apulia_codici_rifatt.cod_forn " " INNER JOIN atb_list_apulia ON atb_list_apulia.linea = tabp.linea AND\n" +
+ " OUTER APPLY (SELECT prz_acq " + " atb_list_apulia.part_iva_forn = tabp.partita_iva_forn AND\n" +
" FROM apuliac_listino_rif_csv " + " atb_list_apulia.settore = tabp.settore\n" +
" WHERE apuliac_listino_rif_csv.flag_validita_prezzo = 0 AND " + " LEFT OUTER JOIN mtb_lisa_apulia_codici_rifatt\n" +
" tabP.cod_art_for = apuliac_listino_rif_csv.cod_art_for AND " + " ON tabp.cod_art_for = mtb_lisa_apulia_codici_rifatt.cod_art_for AND\n" +
" tabP.barcode = apuliac_listino_rif_csv.barcode AND " + " tabp.cod_forn = mtb_lisa_apulia_codici_rifatt.cod_forn\n" +
" tabP.linea = apuliac_listino_rif_csv.linea ) przAcq2 ) TMP " (importPrezzoNetto?"":queryPremi) +
+ "WHERE cod_art_for IS NOT NULL AND conta_art = 1"; " OUTER APPLY (SELECT prz_acq\n" +
" FROM apuliac_listino_rif_csv\n" +
" WHERE apuliac_listino_rif_csv.flag_validita_prezzo = 0\n" +
" AND tabp.cod_art_for = apuliac_listino_rif_csv.cod_art_for\n" +
" AND tabp.barcode = apuliac_listino_rif_csv.barcode\n" +
" AND tabp.linea = apuliac_listino_rif_csv.linea) przacq2) tmp\n" +
"WHERE cod_art_for IS NOT NULL\n" +
" AND conta_art = 1";
sql =
sql
.replace("[MAGG_PRZ]", UtilityString.bigDecimalToString(percMaggPrzBase, "##0.00####").replace(",","."))
.replace("[TABLE_NAME]", tableAggPrz)
.replace("[COLUMN_VAL_PREMIO]", columnValPremio)
.replace("[COLUMN_PRZ_ACQ]", columnPrzAcq);
ps = conn.prepareStatement(sql); ps = conn.prepareStatement(sql);
ps.executeUpdate(); ps.executeUpdate();