Merge branch 'develop' into feature/Syncronizations
This commit is contained in:
@@ -549,7 +549,6 @@
|
||||
<option value="$PROJECT_DIR$/ems-retail/pom.xml" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="workspaceImportForciblyTurnedOn" value="true" />
|
||||
</component>
|
||||
<component name="PWA">
|
||||
<option name="wasEnabledAtLeastOnce" value="true" />
|
||||
@@ -952,6 +951,44 @@
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="false" name="Tomcat 7 #1 (ServerDev)" type="Remote">
|
||||
<module name="ems-engine" />
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" />
|
||||
<option name="HOST" value="serverdev" />
|
||||
<option name="PORT" value="8001" />
|
||||
<option name="AUTO_RESTART" value="false" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="8001" />
|
||||
<option name="LOCAL" value="false" />
|
||||
</RunnerSettings>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration default="false" name="Tomcat 9 #2 (ServerDev)" type="Remote">
|
||||
<module name="ems-engine" />
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" />
|
||||
<option name="HOST" value="serverdev" />
|
||||
<option name="PORT" value="8002" />
|
||||
<option name="AUTO_RESTART" value="false" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration default="false" name="Tomcat #1 (ServerTomcat)" type="Remote">
|
||||
<module name="ems-engine" />
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" />
|
||||
<option name="HOST" value="servertomcat" />
|
||||
<option name="PORT" value="8000" />
|
||||
<option name="AUTO_RESTART" value="false" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="8000" />
|
||||
<option name="LOCAL" value="false" />
|
||||
</RunnerSettings>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="settings.editor.selected.configurable" value="configurable.group.editor" />
|
||||
|
||||
@@ -5,7 +5,9 @@ import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems_model.entity.StbGestSetup;
|
||||
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@@ -67,6 +69,11 @@ public abstract class BaseMigration implements MigrationModelInterface {
|
||||
return val != null && val == 1;
|
||||
}
|
||||
|
||||
protected void renameColumn(Connection connection, String tableName, String oldColumnname, String newColumnName) throws SQLException {
|
||||
String sql = "exec sp_rename 'dbo." + tableName + "." + oldColumnname + "', " + newColumnName + ", 'COLUMN'";
|
||||
executeStatement(connection, sql);
|
||||
}
|
||||
|
||||
protected boolean existsTable(Connection connection, String tableName) throws SQLException {
|
||||
String sql = Query.format("SELECT CAST(COUNT(*) AS BIT) AS exist FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N%s", tableName);
|
||||
|
||||
@@ -102,4 +109,34 @@ public abstract class BaseMigration implements MigrationModelInterface {
|
||||
String dropSql = "DROP TABLE " + tableName;
|
||||
executeStatement(connection, dropSql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected void createSetup(Connection connection, String gestName, String section, String keySection, String value, String description, String codQuery) throws Exception {
|
||||
StbGestSetup stbGestSetup = new StbGestSetup()
|
||||
.setGestName(gestName)
|
||||
.setSection(section)
|
||||
.setKeySection(keySection)
|
||||
.setValue(value)
|
||||
.setDescription(description)
|
||||
.setQueryDefault(codQuery);
|
||||
|
||||
stbGestSetup.setOperation(OperationType.INSERT);
|
||||
|
||||
stbGestSetup.manageWithParentConnection(connection);
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void deleteSetup(Connection connection, String gestName, String section, String keySection) throws Exception {
|
||||
StbGestSetup stbGestSetup = new StbGestSetup()
|
||||
.setGestName(gestName)
|
||||
.setSection(section)
|
||||
.setKeySection(keySection);
|
||||
|
||||
stbGestSetup.setOperation(OperationType.DELETE);
|
||||
stbGestSetup.manageWithParentConnection(connection);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240219094933 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
String sql = "ALTER TABLE mtb_colt\n" +
|
||||
" ADD barcode_ul VARCHAR(20)";
|
||||
|
||||
executeStatement(advancedDataSource.getConnection(), sql);
|
||||
}
|
||||
|
||||
@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_20240219103840 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup(advancedDataSource.getConnection(),
|
||||
"PICKING", "ACCETTAZIONE", "FLAG_ALLOW_BARCODE_FORNITORE", "N",
|
||||
"Abilita la possibilità di effettuare l'accettazione merci utilizzando direttamente l'SSCC del fornitore (salvato poi nella colonna barcode_pedana)",
|
||||
"SI_NO");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.itextpdf.text.PageSize;
|
||||
import com.itextpdf.text.pdf.PdfPTable;
|
||||
import com.itextpdf.text.pdf.PdfWriter;
|
||||
import com.itextpdf.tool.xml.XMLWorkerHelper;
|
||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.enums.DigitalSignatureType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
@@ -12,6 +13,7 @@ import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.bouncycastle.cms.CMSSignedData;
|
||||
@@ -31,6 +33,7 @@ import java.nio.file.*;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.security.Security;
|
||||
import java.sql.Connection;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -413,4 +416,21 @@ public class UtilityFile {
|
||||
}
|
||||
return cleanName.toString();
|
||||
}
|
||||
|
||||
public static void moveFile(@NotNull String path, @NotNull String newPath, @NotNull String fileName, String newFileName) throws Exception {
|
||||
if (!path.endsWith("\\") || !path.endsWith("/"))
|
||||
path = path + File.separator;
|
||||
|
||||
if (!newPath.endsWith("\\") || !newPath.endsWith("/"))
|
||||
newPath = newPath + File.separator;
|
||||
|
||||
if (newFileName == null)
|
||||
newFileName = fileName;
|
||||
|
||||
try {
|
||||
FileUtils.moveFile(new File(path + fileName), new File(newPath + newFileName));
|
||||
} catch (Exception e) {
|
||||
throw new Exception("Impossibile spostare il file");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import it.integry.ems_model.types.OperationType;
|
||||
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.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -162,6 +161,9 @@ public class MtbColt extends EntityBase {
|
||||
@SqlField("id_lotto")
|
||||
private Integer idLotto;
|
||||
|
||||
@SqlField(value = "barcode_ul", nullable = true, maxLength = 20)
|
||||
private String barcodeUl;
|
||||
|
||||
private String insPartitaMag;
|
||||
|
||||
private transient String stpPrz;
|
||||
@@ -610,6 +612,15 @@ public class MtbColt extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBarcodeUl() {
|
||||
return barcodeUl;
|
||||
}
|
||||
|
||||
public MtbColt setBarcodeUl(String barcodeUl) {
|
||||
this.barcodeUl = barcodeUl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<MtbColr> getMtbColr() {
|
||||
return mtbColr;
|
||||
}
|
||||
|
||||
@@ -11,12 +11,10 @@ import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
import org.springframework.web.context.ContextLoader;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -304,7 +302,7 @@ public class VtbOfft extends EntityBase {
|
||||
UtilityDB.valueToString(getIdOfferta()));
|
||||
|
||||
if (!articoli.isEmpty()) {
|
||||
sql = UtilityDB.addwhereCond(sql, "vtb_offr.cod_mart in ('" + StringUtils.join(articoli, "','") + "'", true);
|
||||
sql = UtilityDB.addwhereCond(sql, "vtb_offr.cod_mart in ('" + StringUtils.join(articoli, "','") + "')", true);
|
||||
}
|
||||
|
||||
List<String> artNew = UtilityDB.executeSimpleQueryOnlyFirstColumn(connection, sql);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package it.integry.ems_model.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import it.integry.ems_model.annotation.Master;
|
||||
import it.integry.ems_model.annotation.PK;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.annotation.Table;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -50,6 +52,9 @@ public class VtbViaggi extends EntityBase {
|
||||
@SqlField(value = "num_prenotazione", maxLength = 20)
|
||||
private String numPrenotazione;
|
||||
|
||||
@SqlField(value = "mezzo", maxLength = 1, defaultObjectValue = "0")
|
||||
private Mezzo mezzo;
|
||||
|
||||
public VtbViaggi() {
|
||||
super();
|
||||
}
|
||||
@@ -128,4 +133,56 @@ public class VtbViaggi extends EntityBase {
|
||||
this.numPrenotazione = numPrenotazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Mezzo getMezzo() {
|
||||
return mezzo;
|
||||
}
|
||||
|
||||
public VtbViaggi setMezzo(Mezzo mezzo) {
|
||||
this.mezzo = mezzo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public enum Mezzo implements IBaseEnum<Mezzo> {
|
||||
VETTORE((short) 0),
|
||||
MITTENTE((short) 1),
|
||||
DESTINATARIO((short) 2);
|
||||
|
||||
private final short value;
|
||||
|
||||
Mezzo(final short value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static Mezzo from(Object value) {
|
||||
short castValue = (short) value;
|
||||
|
||||
for (Mezzo b : Mezzo.values()) {
|
||||
if (b.value == castValue)
|
||||
return b;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public short getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object get() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mezzo fromInternal(Object val) {
|
||||
return from(val);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.valueOf(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package it.integry.ems_model.utility;
|
||||
|
||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.poi.hssf.usermodel.*;
|
||||
import org.apache.poi.hssf.util.HSSFCellUtil;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
@@ -133,6 +134,9 @@ public class UtilityExcel {
|
||||
if (UtilityString.isNullOrEmpty(fileName))
|
||||
fileName = requestDTO.getFileName();
|
||||
|
||||
if (!FilenameUtils.getExtension(fileName).equalsIgnoreCase("xlsx"))
|
||||
throw new Exception("Formato file non supportato");
|
||||
|
||||
if (!path.endsWith("\\") || !path.endsWith("/"))
|
||||
path = path + File.separator;
|
||||
|
||||
|
||||
@@ -562,7 +562,7 @@ end
|
||||
rule "completeInsertVtbOfft"
|
||||
when
|
||||
eval(completeRulesEnabled)
|
||||
$vtbOfft : VtbOfft(dataIns == null && (operation == OperationType.INSERT || operation == OperationType.INSERT_OR_UPDATE))
|
||||
$vtbOfft : VtbOfft(dataIns == null && (operation == OperationType.INSERT || operation == OperationType.INSERT_OR_UPDATE || operation == OperationType.DELETE_THEN_INSERT))
|
||||
then
|
||||
String fullName = CommonRules.getFullName(conn, username);
|
||||
modify($vtbOfft) {
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
package it.integry.core.report_javabean.model.scheda_costi;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class StampaSchedaCostiDTO {
|
||||
|
||||
private String codMart;
|
||||
private String descrArt;
|
||||
private String untMis;
|
||||
private String codVlis;
|
||||
private String descrLisv;
|
||||
private Integer sort;
|
||||
private Integer gruppo;
|
||||
private String descrizioneGruppo;
|
||||
private Integer idCategoria;
|
||||
private String categoria;
|
||||
private String descrCosto;
|
||||
private BigDecimal qtaProd;
|
||||
private BigDecimal costoUnit;
|
||||
private BigDecimal valore;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrArt() {
|
||||
return descrArt;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setDescrArt(String descrArt) {
|
||||
this.descrArt = descrArt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getIdCategoria() {
|
||||
return idCategoria;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setIdCategoria(Integer idCategoria) {
|
||||
this.idCategoria = idCategoria;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaProd() {
|
||||
return qtaProd;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setQtaProd(BigDecimal qtaProd) {
|
||||
this.qtaProd = qtaProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getCostoUnit() {
|
||||
return costoUnit;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setCostoUnit(BigDecimal costoUnit) {
|
||||
this.costoUnit = costoUnit;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getValore() {
|
||||
return valore;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setValore(BigDecimal valore) {
|
||||
this.valore = valore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVlis() {
|
||||
return codVlis;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setCodVlis(String codVlis) {
|
||||
this.codVlis = codVlis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrLisv() {
|
||||
return descrLisv;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setDescrLisv(String descrLisv) {
|
||||
this.descrLisv = descrLisv;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getSort() {
|
||||
return sort;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setSort(Integer sort) {
|
||||
this.sort = sort;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getGruppo() {
|
||||
return gruppo;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setGruppo(Integer gruppo) {
|
||||
this.gruppo = gruppo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizioneGruppo() {
|
||||
return descrizioneGruppo;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setDescrizioneGruppo(String descrizioneGruppo) {
|
||||
this.descrizioneGruppo = descrizioneGruppo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCategoria() {
|
||||
return categoria;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setCategoria(String categoria) {
|
||||
this.categoria = categoria;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrCosto() {
|
||||
return descrCosto;
|
||||
}
|
||||
|
||||
public StampaSchedaCostiDTO setDescrCosto(String descrCosto) {
|
||||
this.descrCosto = descrCosto;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
package it.integry.core.report_javabean.model.scheda_costi;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import it.integry.core.report_javabean.UtilityReportJavabean;
|
||||
import it.integry.core.report_javabean.model.base.BaseReportJavabean;
|
||||
import it.integry.core.report_javabean.model.base.IReportJavabean;
|
||||
import it.integry.core.report_javabean.model.exception.NoPageProcessedException;
|
||||
import it.integry.ems.json.JSONObjectMapper;
|
||||
import it.integry.ems.product.dto.CategorieCostoProdottoDTO;
|
||||
import it.integry.ems.product.dto.CostoProdottoDTO;
|
||||
import it.integry.ems.report.dto.JasperDTO;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class StampaSchedaCostiJavabean extends BaseReportJavabean implements IReportJavabean {
|
||||
|
||||
@Autowired
|
||||
private JSONObjectMapper jsonObjectMapper;
|
||||
|
||||
public static void testRun(java.util.Vector collection) {
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yy");
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
StampaSchedaCostiDTO dto = new StampaSchedaCostiDTO();
|
||||
// dto.setCodMart("abc")
|
||||
// .setCodMdep("pc")
|
||||
// .setDescrDepo("dadsa")
|
||||
// .setDescrArt("aa");
|
||||
collection.add(dto);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void register() {
|
||||
UtilityReportJavabean.registerJavabean("StampaSchedaCosti", StampaSchedaCostiJavabean.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] process(JasperDTO jasperDTO) throws Exception {
|
||||
HashMap<String, Object> paramsMap = reportProcessor.createParamsFromList(jasperDTO.getParams());
|
||||
|
||||
List<Object> javaBeans = this.run(paramsMap);
|
||||
|
||||
if (javaBeans != null) {
|
||||
jasperDTO.setJavaBeans(javaBeans);
|
||||
return reportProcessor.processReport(jasperDTO);
|
||||
}
|
||||
|
||||
throw new NoPageProcessedException();
|
||||
}
|
||||
|
||||
|
||||
public List<Object> run(HashMap<String, Object> paramsMap) throws Exception {
|
||||
|
||||
List<Object> stampaSchedaCostiDTOS = new ArrayList<>();
|
||||
String sql;
|
||||
|
||||
if (paramsMap.containsKey("cod_vlis")) {
|
||||
sql = Query.format("SELECT mtb_lisv_data.cod_mart,\n" +
|
||||
" ISNULL(mtb_lisv_data.descrizione_html, ISNULL(mtb_aart.descrizione_estesa, mtb_aart.descrizione)) AS descr_art,\n" +
|
||||
" mtb_lisv_data.system_note,\n" +
|
||||
" mtb_lisv_data.unt_mis_ven,\n" +
|
||||
" mtb_lisv_data.cod_vlis,\n" +
|
||||
" vtb_list.descrizione AS descr_lisv\n" +
|
||||
"FROM mtb_lisv_data\n" +
|
||||
" INNER JOIN mtb_aart ON mtb_lisv_data.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" INNER JOIN vtb_list ON mtb_lisv_data.cod_vlis = vtb_list.cod_vlis\n" +
|
||||
" INNER JOIN vtb_list_data ON mtb_lisv_data.cod_vlis = vtb_list_data.cod_vlis AND mtb_lisv_data.versione = vtb_list_data.versione\n" +
|
||||
"WHERE system_note IS NOT NULL\n" +
|
||||
" AND mtb_lisv_data.cod_mart = %s\n" +
|
||||
" AND mtb_lisv_data.cod_vlis = %s\n" +
|
||||
" AND vtb_list_data.data_iniz = %s",
|
||||
paramsMap.get("cod_mart"),
|
||||
paramsMap.get("cod_vlis"),
|
||||
paramsMap.get("data_iniz")
|
||||
);
|
||||
} else {
|
||||
sql = Query.format("SELECT vtb_offr.cod_mart,\n" +
|
||||
" ISNULL(vtb_offr.descrizione_html, ISNULL(mtb_aart.descrizione_estesa, mtb_aart.descrizione)) AS descr_art,\n" +
|
||||
" vtb_offr.json_costi AS system_note,\n" +
|
||||
" vtb_offr.unt_mis_vend,\n" +
|
||||
" id_offerta\n" +
|
||||
"FROM vtb_offr\n" +
|
||||
" INNER JOIN mtb_aart ON vtb_offr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
"WHERE json_costi IS NOT NULL\n" +
|
||||
" AND vtb_offr.cod_mart = %s\n" +
|
||||
" AND vtb_offr.id_offerta = %s",
|
||||
paramsMap.get("cod_mart"),
|
||||
paramsMap.get("id_offerta")
|
||||
);
|
||||
}
|
||||
|
||||
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (dati.isEmpty()) return null;
|
||||
|
||||
String systemNote = UtilityHashMap.getValueIfExists(dati, "system_note");
|
||||
if (!UtilityString.isNullOrEmpty(systemNote)) {
|
||||
List<CategorieCostoProdottoDTO> categorieCostoProdotto = new ObjectMapper().readValue(systemNote, new TypeReference<List<CategorieCostoProdottoDTO>>() {
|
||||
});
|
||||
|
||||
int idGruppo = 0, idCategoria = 0, idSort = 0;
|
||||
|
||||
for (CategorieCostoProdottoDTO gruppo : categorieCostoProdotto) {
|
||||
String descrizioneGruppo = gruppo.getDescrizione();
|
||||
|
||||
if (gruppo.getCategRows() == null && gruppo.getCategRows().isEmpty())
|
||||
continue;
|
||||
|
||||
for (CategorieCostoProdottoDTO categoria : gruppo.getCategRows()) {
|
||||
String descrizioneCategoria = categoria.getDescrizione();
|
||||
|
||||
if (categoria.getRows() == null && categoria.getRows().isEmpty())
|
||||
continue;
|
||||
|
||||
for (CostoProdottoDTO row : categoria.getRows()) {
|
||||
StampaSchedaCostiDTO stampaSchedaCostiDTO = new StampaSchedaCostiDTO()
|
||||
.setCodMart(UtilityHashMap.getValueIfExists(dati, "cod_mart"))
|
||||
.setDescrArt(UtilityHashMap.getValueIfExists(dati, "descr_art"))
|
||||
.setCodVlis(UtilityHashMap.getValueIfExists(dati, "cod_vlis"))
|
||||
.setDescrLisv(UtilityHashMap.getValueIfExists(dati, "descr_lisv"))
|
||||
.setGruppo(idGruppo)
|
||||
.setDescrizioneGruppo(descrizioneGruppo)
|
||||
.setIdCategoria(idCategoria)
|
||||
.setCategoria(descrizioneCategoria)
|
||||
.setDescrCosto(row.getDescrizione())
|
||||
.setCostoUnit(row.getCostoUnt())
|
||||
.setQtaProd(row.getQtaProd())
|
||||
.setValore(row.getValore())
|
||||
.setUntMis(row.getUntMis())
|
||||
.setSort(idSort);
|
||||
|
||||
stampaSchedaCostiDTOS.add(stampaSchedaCostiDTO);
|
||||
|
||||
idSort++;
|
||||
}
|
||||
|
||||
idCategoria++;
|
||||
}
|
||||
|
||||
idCategoria = idCategoria + 100;
|
||||
idGruppo++;
|
||||
}
|
||||
}
|
||||
|
||||
return stampaSchedaCostiDTOS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -792,16 +792,7 @@ public class ActivityService {
|
||||
" LEFT OUTER JOIN jtb_rlavr ON stb_activity.activity_id = jtb_rlavr.activity_id\n" +
|
||||
(isTable?"":" AND stb_activity.user_name = '" + username + "'") +
|
||||
" GROUP BY stb_activity.parent_activity_id),\n" +
|
||||
"\n";
|
||||
|
||||
if (daInstallare){
|
||||
sql += "lastUpdt AS (SELECT cod_anag, MAX(effective_date) AS data\n" +
|
||||
" FROM stb_activity\n" +
|
||||
" WHERE activity_type_id = 'aggiornamenti software'\n" +
|
||||
" GROUP BY cod_anag), \n";
|
||||
}
|
||||
|
||||
sql += " processi AS (SELECT stb_activity.cod_jcom,\n" +
|
||||
" processi AS (SELECT stb_activity.cod_jcom,\n" +
|
||||
" stb_activity.user_name,\n" +
|
||||
" stb_activity.activity_id,\n" +
|
||||
" stb_activity.parent_activity_id,\n" +
|
||||
@@ -874,11 +865,10 @@ public class ActivityService {
|
||||
" LEFT OUTER JOIN integry_tag ON stb_activity.activity_id = integry_tag.activity_id\n";
|
||||
|
||||
if (daInstallare){
|
||||
sql += " LEFT OUTER JOIN lastUpdt ON stb_activity.cod_anag = lastUpdt.cod_anag\n";
|
||||
sql += " LEFT OUTER JOIN integry_last_upd_clie lastUpdt ON stb_activity.cod_anag = lastUpdt.cod_anag\n";
|
||||
}
|
||||
|
||||
sql += " WHERE stb_activity.flag_tipologia = 'P'\n" +
|
||||
" AND stb_activity.user_name <> 'F0000'\n" +
|
||||
" AND NOT EXISTS(SELECT *\n" +
|
||||
" FROM escludi_commesse\n" +
|
||||
" WHERE stb_activity.cod_jcom = escludi_commesse.cod_jcom)\n" +
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.math.RoundingMode;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
@@ -59,21 +60,20 @@ public class RossoGarganoSyncService {
|
||||
String sql =
|
||||
"SELECT CAST(FORMAT(DATEPART(YEAR, data_iniz), '0000') +\n" +
|
||||
" FORMAT(DATEPART(MONTH, data_iniz), '00') +\n" +
|
||||
" FORMAT(DATEPART(DAY, data_iniz), '00') AS NUMERIC) as data_iniz,\n" +
|
||||
" CAST(FORMAT(DATEPART(YEAR, data_fine), '0000') +\n" +
|
||||
" FORMAT(DATEPART(MONTH, data_fine), '00') +\n" +
|
||||
" FORMAT(DATEPART(DAY, data_fine), '00') AS NUMERIC) as data_fine\n" +
|
||||
" FORMAT(DATEPART(DAY, data_iniz), '00') AS NUMERIC) as data_iniz\n" +
|
||||
"FROM azienda\n" +
|
||||
" CROSS APPLY dbo.getperiodoannofisc(azienda.anno_contab)";
|
||||
|
||||
HashMap<String, Object> date = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
BigDecimal dataIniz = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (date == null)
|
||||
throw new Exception("Errore nel calcolo di data inizio e data fine");
|
||||
sql =
|
||||
"SELECT CAST(FORMAT(DATEPART(YEAR, data_fine), '0000') +\n" +
|
||||
" FORMAT(DATEPART(MONTH, data_fine), '00') +\n" +
|
||||
" FORMAT(DATEPART(DAY, data_fine), '00') AS NUMERIC) as data_fine\n" +
|
||||
"FROM azienda\n" +
|
||||
" CROSS APPLY dbo.getperiodoannofisc(azienda.anno_attuale)";
|
||||
|
||||
|
||||
BigDecimal dataIniz = UtilityHashMap.getValueIfExists(date, "data_iniz");
|
||||
BigDecimal dataFine = UtilityHashMap.getValueIfExists(date, "data_fine");
|
||||
BigDecimal dataFine = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
saveCtbMovt(rgExchange.getConnection(), "(PNOTA.PN_DATA_COMPETENZA = 20210701 AND PN_CAUSALE_MOVIMENTO = '998')", dataIniz, dataFine);
|
||||
logger.info("Importazione apertura conti: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
@@ -81,7 +81,7 @@ public class RossoGarganoSyncService {
|
||||
saveCtbMovt(rgExchange.getConnection(), "(PNOTA.PN_SEZIONALE_IVA <> '' AND PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine);
|
||||
logger.info("Importazione fatture attive e passive: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
saveCtbMovt(rgExchange.getConnection(), "", dataIniz, dataFine);
|
||||
// saveCtbMovt(rgExchange.getConnection(), "(PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine);
|
||||
logger.info("Importazione altri movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
}
|
||||
|
||||
@@ -308,7 +308,9 @@ public class RossoGarganoSyncService {
|
||||
|
||||
}
|
||||
if (pagaScadenze && !UtilityString.isNullOrEmpty(codAnag)) {
|
||||
List<CtbScad> scadenzeAperte = pagaScadenze(pnPartita, tipoAnag, codAnag, ctbMovt, pnImportoMov, pnSegnoMovimento, ctbMovr);
|
||||
List<CtbScad> scadenzeAperte = pagaScadenze(pnPartita, tipoAnag, codAnag, ctbMovt, pnImportoMov, pnSegnoMovimento,
|
||||
pnCausaleMovimento,
|
||||
ctbMovr);
|
||||
if (scadenzeAperte != null) {
|
||||
if (ctbMovt.getCtbScad() == null) ctbMovt.setCtbScad(new ArrayList<>());
|
||||
ctbMovt.getCtbScad().addAll(scadenzeAperte);
|
||||
@@ -1043,14 +1045,21 @@ public class RossoGarganoSyncService {
|
||||
ctbMovt.setCtbPart(ctbPart);
|
||||
}
|
||||
|
||||
private List<CtbScad> pagaScadenze(String pnPartita, String tipoAnag, String codAnag, CtbMovt ctbMovt, BigDecimal impIncasso, String pnSegnoMovimento, CtbMovr ctbMovr) throws Exception {
|
||||
private List<CtbScad> pagaScadenze(String pnPartita, String tipoAnag, String codAnag, CtbMovt ctbMovt, BigDecimal impIncasso,
|
||||
String pnSegnoMovimento,
|
||||
String pnCausaleMov,
|
||||
CtbMovr ctbMovr) throws Exception {
|
||||
String anno = null;
|
||||
if (UtilityString.isNumber(pnPartita.substring(0, 2)))
|
||||
anno = "20" + pnPartita.substring(0, 2);
|
||||
|
||||
String numero = pnPartita.substring(2);
|
||||
if (UtilityString.isNumber(numero))
|
||||
|
||||
try {
|
||||
numero = new Integer(numero).toString();
|
||||
} catch (NumberFormatException e ) {
|
||||
|
||||
}
|
||||
|
||||
List<CtbScad> elencoScadenze = new ArrayList<>();
|
||||
Integer annoPart = null, numDoc = null, tipoPartita = null;
|
||||
@@ -1083,13 +1092,13 @@ public class RossoGarganoSyncService {
|
||||
numDoc = UtilityHashMap.getValueIfExists(datiPartita, "num_doc");
|
||||
serDoc = UtilityHashMap.getValueIfExists(datiPartita, "ser_doc");
|
||||
tipoPartita = UtilityHashMap.getValueIfExists(datiPartita, "tipo_partita");
|
||||
} else {
|
||||
} else if ( anno != null && Integer.valueOf(anno).intValue() <= 2021){
|
||||
numDoc = 0;
|
||||
serDoc = "/";
|
||||
annoPart = 2021;
|
||||
}
|
||||
|
||||
if (ctbMovt.getCtbScad() != null) {
|
||||
if (ctbMovt.getCtbScad() != null && annoPart != null) {
|
||||
Integer finalAnnoPart = annoPart;
|
||||
String finalSerDoc = serDoc;
|
||||
Integer finalNumDoc = numDoc;
|
||||
@@ -1107,12 +1116,49 @@ public class RossoGarganoSyncService {
|
||||
ctbMovt.getCtbScad().removeAll(elencoScadenze);
|
||||
}
|
||||
|
||||
TipoPartita tipoPartitaEnum = null;
|
||||
|
||||
if (tipoPartita != null) {
|
||||
if ((pnSegnoMovimento.equalsIgnoreCase("A") && TipoPartita.fromValue(tipoPartita.intValue()) == TipoPartita.PASSIVA) ||
|
||||
(pnSegnoMovimento.equalsIgnoreCase("D") && TipoPartita.fromValue(tipoPartita.intValue()) == TipoPartita.ATTIVA)
|
||||
tipoPartitaEnum = TipoPartita.fromValue(tipoPartita.intValue());
|
||||
if ((pnSegnoMovimento.equalsIgnoreCase("A") && tipoPartitaEnum == TipoPartita.PASSIVA) ||
|
||||
(pnSegnoMovimento.equalsIgnoreCase("D") && tipoPartitaEnum == TipoPartita.ATTIVA)
|
||||
) {
|
||||
impIncasso = impIncasso.multiply(new BigDecimal(-1));
|
||||
}
|
||||
|
||||
if (impIncasso.doubleValue() < 0 && pnCausaleMov.equalsIgnoreCase("260")) {
|
||||
List<CtbScad> insoluto = new ArrayList<>();
|
||||
CtbScad ctbScadInsoluto = new CtbScad()
|
||||
.setDataScad(ctbMovt.getDataCmov())
|
||||
.setImpDare(impIncasso)
|
||||
.setImpAvere(impIncasso)
|
||||
.setDataPag(ctbMovt.getDataCmov());
|
||||
|
||||
insoluto.add(ctbScadInsoluto);
|
||||
|
||||
BigDecimal impDareIns = BigDecimal.ZERO;
|
||||
BigDecimal impAvereIns = BigDecimal.ZERO;
|
||||
switch (tipoPartitaEnum) {
|
||||
case ATTIVA:
|
||||
impDareIns = impIncasso.abs();
|
||||
break;
|
||||
case PASSIVA:
|
||||
impAvereIns = impIncasso.abs();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
ctbScadInsoluto = new CtbScad()
|
||||
.setDataScad(ctbMovt.getDataCmov())
|
||||
.setImpDare(impDareIns)
|
||||
.setImpAvere(impAvereIns)
|
||||
.setDataPag(ctbMovt.getDataCmov());
|
||||
|
||||
insoluto.add(ctbScadInsoluto);
|
||||
|
||||
return insoluto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
AccountingBusinessLogic.pagaScadenze(ctbMovt.getDataCmov(), impIncasso, elencoScadenze, ctbMovr.getIdRiga());
|
||||
|
||||
@@ -36,12 +36,10 @@ import org.springframework.stereotype.Service;
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@Service
|
||||
@@ -367,12 +365,14 @@ public class DocumentiAcquistoImportService {
|
||||
" dtb_doct.cod_dtip = %s AND " +
|
||||
" dtb_doct.data_doc = %s AND " +
|
||||
" dtb_doct.ser_doc = %s AND " +
|
||||
" dtb_doct.num_doc = %s ",
|
||||
" dtb_doct.num_doc = %s AND " +
|
||||
" dtb_doct.listino = %s ",
|
||||
dtbDoct.getCodAnag(),
|
||||
dtbDoct.getCodDtip(),
|
||||
dtbDoct.getDataDoc(),
|
||||
dtbDoct.getSerDoc(),
|
||||
dtbDoct.getNumDoc());
|
||||
dtbDoct.getNumDoc(),
|
||||
dtbDoct.getListino());
|
||||
|
||||
Boolean existDoc = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
sql =
|
||||
@@ -979,8 +979,14 @@ public class DocumentiAcquistoImportService {
|
||||
m.setPrimaryDs(ds.getProfileName());
|
||||
|
||||
for (EntityBase e : entityList){
|
||||
DtbDoct dtbDoct = (DtbDoct) e;
|
||||
|
||||
UpdProgOrdini(m, dtbDoct, -1);
|
||||
|
||||
entityProcessor.processEntity(e, true, false, requestData.getUsername(), m, false);
|
||||
entityReturn.add(e);
|
||||
|
||||
UpdProgOrdini(m, dtbDoct, 1);
|
||||
}
|
||||
}catch (Exception e){
|
||||
m.rollbackAll();
|
||||
@@ -991,6 +997,20 @@ public class DocumentiAcquistoImportService {
|
||||
return entityReturn;
|
||||
}
|
||||
|
||||
private static void UpdProgOrdini(MultiDBTransactionManager m, DtbDoct dtbDoct, Integer segno) throws SQLException, PrimaryDatabaseNotPresentException, IOException {
|
||||
CallableStatement storedProcedure;
|
||||
storedProcedure = m.getPrimaryConnection().prepareCall("{call UpdProgOrdini(?,?,?,?,?,?,?)}");
|
||||
storedProcedure.setString(1, dtbDoct.getCodAnag());
|
||||
storedProcedure.setString(2, dtbDoct.getCodDtip());
|
||||
storedProcedure.setTimestamp(3, new Timestamp(dtbDoct.getDataDoc().getTime()));
|
||||
storedProcedure.setString(4, dtbDoct.getSerDoc());
|
||||
storedProcedure.setInt(5, dtbDoct.getNumDoc());
|
||||
storedProcedure.setInt(6, segno);
|
||||
storedProcedure.setString(7, "U");
|
||||
storedProcedure.execute();
|
||||
storedProcedure.close();
|
||||
}
|
||||
|
||||
private List<EntityBase> processRifOrdApuliaList (List<RifOrdApuliaDTO> rifOrdApuliaList, List<AnomalieDTO> anomalie, String tipiDoc, Connection connection, String pIva) throws Exception {
|
||||
List<EntityBase> entityList = new ArrayList<>();
|
||||
for (RifOrdApuliaDTO rifOrdApulia : rifOrdApuliaList){
|
||||
|
||||
@@ -83,7 +83,7 @@ public class CambioTipoDocPlanService {
|
||||
return data1.compareTo(data2);
|
||||
}).toList();
|
||||
|
||||
List<HashMap<String, String>> utenti = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<Date, List<DtbDoctCambioTipoDoc>> dataCmov : listaDataCmov) {
|
||||
boolean error = false;
|
||||
|
||||
@@ -116,8 +116,6 @@ public class CambioTipoDocPlanService {
|
||||
boolean existDoc = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (existDoc) {
|
||||
String compilatoDa = CommonRules.getFullName(multiDBTransactionManager.getPrimaryConnection(), doc.getKey().getUserName());
|
||||
doc.getKey().setFullName(compilatoDa);
|
||||
List<CambioTipoDocDTO.Allegati> listaAllegati =
|
||||
Stream.of(doc.getValue())
|
||||
.filter(x -> x.getIdAllegato() != null)
|
||||
@@ -134,7 +132,7 @@ public class CambioTipoDocPlanService {
|
||||
}
|
||||
|
||||
|
||||
entityList = entityProcessor.processEntityList(cambioTipoDocService.getListaDoc(doc.getKey()), true);
|
||||
entityList = entityProcessor.processEntityList(cambioTipoDocService.getListaDoc(doc.getKey()), doc.getKey().getUserName(), true, true, true);
|
||||
|
||||
Optional<EntityBase> first = Stream.of(entityList).filter(x -> x.getException() != null).findFirst();
|
||||
if (first.isPresent()) {
|
||||
|
||||
@@ -111,12 +111,6 @@ public class CambioTipoDocService {
|
||||
.setCodDtip(doc.getCodDtipNew())
|
||||
.setPrevistaFat(null)
|
||||
.setNumDocForn(doc.getNumDocForn());
|
||||
if (!UtilityString.isNullOrEmpty(doc.getUserName())) {
|
||||
newDoc.setUserName(doc.getUserName());
|
||||
newDoc.setUsername(doc.getUserName());
|
||||
}
|
||||
if (!UtilityString.isNullOrEmpty(doc.getFullName()))
|
||||
newDoc.setCompilatoDa(doc.getFullName());
|
||||
|
||||
newDoc.setOperation(OperationType.INSERT);
|
||||
if (doc.getAllegati() != null && doc.getAllegati().size() > 0) {
|
||||
|
||||
@@ -81,14 +81,14 @@ public class DistribuzioneColliService {
|
||||
psRemoveOrdRifsFromMtbColrs.executeUpdate();
|
||||
psRemoveOrdRifsFromMtbColrs.close();
|
||||
|
||||
EntityBase[] result = entityProcessor.processEntity(sourceMtbColt, multiDBTransactionManager);
|
||||
List<EntityBase> result = entityProcessor.processEntity(sourceMtbColt, multiDBTransactionManager);
|
||||
|
||||
if (result == null || result.length == 0)
|
||||
if (result == null || result.isEmpty())
|
||||
throw new EntityNotFoundException(String.format("Il collo numero %d del %s non esiste",
|
||||
filtroDistribuzioneColloDTO.getNumCollo(),
|
||||
UtilityDate.formatDate(filtroDistribuzioneColloDTO.getDataCollo(), CommonConstants.DATE_FORMAT_DMY)));
|
||||
|
||||
sourceMtbColt = (MtbColt) result[0];
|
||||
sourceMtbColt = (MtbColt) result.get(0);
|
||||
|
||||
//Lettura delle righe del collo in ingresso
|
||||
final List<HashMap<String, Object>> mtbColtData = new ArrayList<>();
|
||||
|
||||
@@ -62,7 +62,7 @@ public class WoocommerceService {
|
||||
" CASE WHEN CONVERT(DATE, GETDATE()) BETWEEN ttb_anno_stag.data_iniz_ecomm AND ttb_anno_stag.data_fine_ecomm THEN 'NUOVA COLLEZIONE' ELSE 'OUTLET' END AS collezione , " +
|
||||
" ttb_stag.descrizione AS stagione , " +
|
||||
" ISNULL(ws.categoria_woocomm, mtb_aart.cod_msgr) AS categoria , " +
|
||||
" CONVERT( DECIMAL(15, 2), dbo.f_CalcPrzMaxTextiles(ttb_style.cod_style, " + UtilityDB.valueToString(listino) + " , 'S' )) AS prezzo " +
|
||||
" CONVERT( DECIMAL(15, 2), dbo.f_CalcPrzMaxTextiles(ttb_style.cod_style, " + UtilityDB.valueToString(listino) + " , 'N' )) AS prezzo " +
|
||||
" FROM ttb_style " +
|
||||
" INNER JOIN mtb_aart " +
|
||||
" ON ttb_style.cod_style = mtb_aart.cod_mart " +
|
||||
@@ -108,7 +108,7 @@ public class WoocommerceService {
|
||||
" ), " +
|
||||
" disponibile AS " +
|
||||
" ( " +
|
||||
" SELECT " +
|
||||
" SELECT DISTINCT " +
|
||||
" dettaglio.cod_style , " +
|
||||
" dettaglio.cod_barre AS ean , " +
|
||||
" dettaglio.pos , " +
|
||||
|
||||
@@ -7,15 +7,18 @@ import it.integry.ems.Import.dto.AnomalieDTO;
|
||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityFile;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity.AtbGriglie;
|
||||
import it.integry.ems_model.entity.AtbGriglieArt;
|
||||
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.UtilityExcel;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.bcel.generic.Select;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
@@ -27,6 +30,7 @@ import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@@ -130,6 +134,23 @@ public class ImportGrigliaAcquistoService {
|
||||
|
||||
entityList = entityProcessor.processEntityList(result, true);
|
||||
|
||||
//MoveFile
|
||||
if (entityList != null && !entityList.isEmpty()){
|
||||
String path = setup.get("PATH_FILE");
|
||||
String fileName = setup.get("FILE_FILTER");
|
||||
|
||||
if (UtilityString.isNullOrEmpty(path))
|
||||
path = requestDTO.getPathFile();
|
||||
|
||||
if (UtilityString.isNullOrEmpty(fileName))
|
||||
fileName = requestDTO.getFileName();
|
||||
|
||||
String pathToMoveTo = path + "imported" + File.separator;
|
||||
String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + fileName;
|
||||
|
||||
UtilityFile.moveFile(path, pathToMoveTo, fileName, newFileName);
|
||||
}
|
||||
|
||||
return entityList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1029,10 +1029,10 @@ public class ProductServices {
|
||||
searchArtLink.setOperation(OperationType.SELECT);
|
||||
searchArtLink.setNativeSql("select * from mtb_aart_link where cod_mart = " + UtilityDB.valueToString(codMart) + "and path_link = " + UtilityDB.valueToString(fileName));
|
||||
|
||||
EntityBase[] artLinkResult = entityProcessor.processEntity(searchArtLink, multiDBTransactionManager);
|
||||
List<EntityBase> artLinkResult = entityProcessor.processEntity(searchArtLink, multiDBTransactionManager);
|
||||
|
||||
|
||||
if (artLinkResult == null || artLinkResult.length == 0) {
|
||||
if (artLinkResult == null || artLinkResult.isEmpty()) {
|
||||
MtbAartLink mtbAartLink = new MtbAartLink();
|
||||
mtbAartLink.setCodMart(codMart);
|
||||
mtbAartLink.setPathLink(fileName);
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package it.integry.ems.retail.ReportVariazioni.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.offer.dto.DettCostoIn;
|
||||
import it.integry.ems.retail.ReportVariazioni.dto.Variazioni.*;
|
||||
import it.integry.ems.retail.dto.GrigliaAcquistoDTO;
|
||||
import it.integry.ems.retail.dto.ListiniOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.service.GrigliaAcquistoHandlerService;
|
||||
import it.integry.ems.retail.service.ListiniAcquistoHandlerService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDirs;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
@@ -18,19 +20,14 @@ import org.springframework.stereotype.Service;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.Marshaller;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
@@ -39,6 +36,11 @@ public class VariazioniPVService {
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
@Autowired
|
||||
private GrigliaAcquistoHandlerService grigliaAcquistoHandlerService;
|
||||
|
||||
private HashMap<String, String> listini = new HashMap<>();
|
||||
private List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||
|
||||
public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
||||
|
||||
@@ -74,9 +76,9 @@ public class VariazioniPVService {
|
||||
|
||||
String sql =
|
||||
"SELECT vtb_list.cod_vlis, vtb_list.descrizione, vtb_list.flag_list_iva_inclusa, mtb_depo.cod_mdep " +
|
||||
" FROM vtb_list INNER JOIN mtb_depo ON mtb_depo.cod_vlis = vtb_list.cod_vlis " +
|
||||
" WHERE vtb_list.flag_attivo = 'S' " +
|
||||
"ORDER BY vtb_list.cod_vlis ";
|
||||
" FROM vtb_list INNER JOIN mtb_depo ON mtb_depo.cod_vlis = vtb_list.cod_vlis " +
|
||||
" WHERE vtb_list.flag_attivo = 'S' " +
|
||||
"ORDER BY vtb_list.cod_vlis ";
|
||||
|
||||
sql = UtilityDB.addwhereCond(sql, variazioniPvDTO.getWhereCondLisv(), false);
|
||||
|
||||
@@ -93,7 +95,7 @@ public class VariazioniPVService {
|
||||
}
|
||||
|
||||
ReportType fileVariazioniDTO = new ReportType();
|
||||
for(HashMap<String, Object> datiLisv:listini) {
|
||||
for (HashMap<String, Object> datiLisv : listini) {
|
||||
String codVlis = UtilityHashMap.getValueIfExists(datiLisv, "cod_vlis");
|
||||
String descrLisv = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "descrizione"));
|
||||
String flagListIvaInclusa = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "flag_list_iva_inclusa"));
|
||||
@@ -120,6 +122,15 @@ public class VariazioniPVService {
|
||||
|
||||
String query = getQueryVariazioni(variazioniPvDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
|
||||
List<HashMap<String, Object>> elencoVar = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
if (getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
|
||||
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
|
||||
grigliaAcquisto = Stream.of(grigliaAcquisto)
|
||||
.filter(x -> x.getDataValidita().equals(variazioniPvDTO.getDataValidita()) &&
|
||||
x.getCodMdep().equalsIgnoreCase(codMdep))
|
||||
.toList();
|
||||
}
|
||||
|
||||
for (HashMap<String, Object> variazioni : elencoVar) {
|
||||
CodMartType codMart = fillArticoloData(objectFactory,
|
||||
variazioni, variazioniPvDTO, invioIngredienti, getSetupSectionDepo, codMdep, colNameDescrEstesa,
|
||||
@@ -148,11 +159,11 @@ public class VariazioniPVService {
|
||||
String valLibero2) throws Exception {
|
||||
CodMartType codMartType = objectFactory.createCodMartType();
|
||||
String codMart = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_mart"));
|
||||
String flagTipoPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_tipo_promo"));
|
||||
BigDecimal przPieno = UtilityHashMap.getValueIfExists(var,"prezzo_pieno");
|
||||
BigDecimal przPienoIva = UtilityHashMap.getValueIfExists(var,"prz_pieno_iva");
|
||||
BigDecimal przVend = UtilityHashMap.getValueIfExists(var,"prz_vend");
|
||||
BigDecimal przVendIva = UtilityHashMap.getValueIfExists(var,"prz_vend_iva");
|
||||
String flagTipoPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_tipo_promo"));
|
||||
BigDecimal przPieno = UtilityHashMap.getValueIfExists(var, "prezzo_pieno");
|
||||
BigDecimal przPienoIva = UtilityHashMap.getValueIfExists(var, "prz_pieno_iva");
|
||||
BigDecimal przVend = UtilityHashMap.getValueIfExists(var, "prz_vend");
|
||||
BigDecimal przVendIva = UtilityHashMap.getValueIfExists(var, "prz_vend_iva");
|
||||
if ("P".equals(flagTipoPromo)) {
|
||||
przPienoIva = przVendIva;
|
||||
przPieno = przVend;
|
||||
@@ -181,81 +192,81 @@ public class VariazioniPVService {
|
||||
dataAggPrzS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataAggPrz);
|
||||
}
|
||||
|
||||
String tipoVariazioneLisv = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"tipo_variazione_lisv"));
|
||||
String flagStato = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_stato"));
|
||||
String tipoVariazioneLisv = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "tipo_variazione_lisv"));
|
||||
String flagStato = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_stato"));
|
||||
if ("D".equalsIgnoreCase(tipoVariazioneLisv)) {
|
||||
flagStato = "I";
|
||||
}
|
||||
codMartType.getContent().add(codMart);
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_art"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis2(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"unt_mis2"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"unt_mis"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"rap_conv2"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis3(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"unt_mis3"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"rap_conv3"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_art"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis2(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis2"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv2"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis3(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis3"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv3"), "###0.00").replace(",", ".")));
|
||||
CodMgrpType codMgrpType = objectFactory.createCodMgrpType();
|
||||
codMgrpType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_mgrp")));
|
||||
codMgrpType.setDescrGrup(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_grup")));
|
||||
codMgrpType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_mgrp")));
|
||||
codMgrpType.setDescrGrup(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_grup")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodMgrp(codMgrpType));
|
||||
CodMsgrType codMsgrType = objectFactory.createCodMsgrType();
|
||||
codMsgrType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_msgr")));
|
||||
codMsgrType.setDescrSgrp(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_sgrp")));
|
||||
codMsgrType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_msgr")));
|
||||
codMsgrType.setDescrSgrp(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_sgrp")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodMsgr(codMsgrType));
|
||||
CodMsfaType codMsfaType = objectFactory.createCodMsfaType();
|
||||
codMsfaType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_msfa")));
|
||||
codMsfaType.setDescrSfam(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_msfa")));
|
||||
codMsfaType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_msfa")));
|
||||
codMsfaType.setDescrSfam(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_msfa")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodMsfa(codMsfaType));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRepartoCassa(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"reparto_cassa"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione( UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"tipo_variazione"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRepartoCassa(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "reparto_cassa"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "tipo_variazione"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneLisv(tipoVariazioneLisv));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePrzBase(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"prz_base"), "###0.00###").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePrzBase(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "prz_base"), "###0.00###").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePrzVend(UtilityString.bigDecimalToString(przVend, "###0.00###").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePrzVendIva(UtilityString.bigDecimalToString(przVendIva, "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePosizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"posizione"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen( UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"unt_mis_ven"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConvVen(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"rap_conv"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePesoKg(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"peso_kg"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagEsponiPrz(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_esponi_prz"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSfrido(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_sfrido"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarreImb(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_barre_imb"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz( UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_calc_prz"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneCompAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"esposizione_comp_acq"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp( UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"esposizione_comp"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrzAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_calc_prz_acq"))));
|
||||
BigDecimal colliPedane = UtilityHashMap.getValueIfExists(var,"colli_pedana");
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePosizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "posizione"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis_ven"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConvVen(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePesoKg(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "peso_kg"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagEsponiPrz(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_esponi_prz"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSfrido(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sfrido"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarreImb(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_barre_imb"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_calc_prz"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneCompAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "esposizione_comp_acq"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "esposizione_comp"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrzAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_calc_prz_acq"))));
|
||||
BigDecimal colliPedane = UtilityHashMap.getValueIfExists(var, "colli_pedana");
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeColliPedane(UtilityString.bigDecimalToString(colliPedane == null ? BigDecimal.ZERO : colliPedane, "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco1(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_sco1"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_sco2"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_sco3"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco4(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_sco4"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco1(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco1"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco2"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco3"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco4(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco4"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataUltVar(dataUltVarS));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataAggPrz(dataAggPrzS));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarre(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_barre"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePlu(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"plu"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarre(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_barre"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePlu(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "plu"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagStato(flagStato));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeQtaCnf(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"qta_cnf"), "###0.00").replace(",", ".")));
|
||||
BigDecimal tara = UtilityHashMap.getValueIfExists(var,"tara_kg");
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeQtaCnf(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "qta_cnf"), "###0.00").replace(",", ".")));
|
||||
BigDecimal tara = UtilityHashMap.getValueIfExists(var, "tara_kg");
|
||||
if (tara.compareTo(BigDecimal.ZERO) != 0) {
|
||||
tara = (tara.multiply(new BigDecimal("1000"))).setScale(0, RoundingMode.HALF_UP);
|
||||
}
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTara(UtilityString.bigDecimalToString(tara, "###0.00").replace(",", ".")));
|
||||
String descrizioneEstesa = UtilityHashMap.getValueIfExists(var,colNameDescrEstesa);
|
||||
if ( UtilityString.isNullOrEmpty(descrizioneEstesa))
|
||||
descrizioneEstesa = UtilityHashMap.getValueIfExists(var,"descrizione_estesa");
|
||||
String descrizioneEstesa = UtilityHashMap.getValueIfExists(var, colNameDescrEstesa);
|
||||
if (UtilityString.isNullOrEmpty(descrizioneEstesa))
|
||||
descrizioneEstesa = UtilityHashMap.getValueIfExists(var, "descrizione_estesa");
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizioneEstesa(UtilityString.streNull(descrizioneEstesa)));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeAnnotazioniArt(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"annotazioni_art"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodAliq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_aliq"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeArticoloComposto(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"articolo_composto"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoEan(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"tipo_codice"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTracciabilita(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"flag_tracciabilita"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeAnnotazioniArt(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "annotazioni_art"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodAliq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_aliq"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeArticoloComposto(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "articolo_composto"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoEan(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "tipo_codice"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTracciabilita(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_tracciabilita"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeGgScadPartita(String.valueOf(UtilityHashMap.<Integer>getValueIfExists(var, "gg_scad_partita"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercAliq(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var,"perc_aliq"), "###0.00").replace(",", ".")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePercAliq(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_aliq"), "###0.00").replace(",", ".")));
|
||||
|
||||
String idArtEqui = UtilityHashMap.getValueIfExists(var,"id_art_equi");
|
||||
String idArtEqui = UtilityHashMap.getValueIfExists(var, "id_art_equi");
|
||||
if (!UtilityString.isNullOrEmpty(idArtEqui)) {
|
||||
IdArtEquiType idArtEquiType = objectFactory.createIdArtEquiType();
|
||||
idArtEquiType.setValue(idArtEqui);
|
||||
idArtEquiType.setDescrizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_art_equi")));
|
||||
idArtEquiType.setDescrizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_art_equi")));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeIdArtEqui(idArtEquiType));
|
||||
}
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPieno(UtilityString.bigDecimalToString(przPieno, "###0.00###").replace(",", ".")));
|
||||
@@ -269,8 +280,8 @@ public class VariazioniPVService {
|
||||
HashMap<String, Object> datiPromo = new HashMap<>();
|
||||
FlagMxnType flagMxnType = getScontoMerce(objectFactory, codMart, variazioniPvDTO.getDataValidita(), datiPromo);
|
||||
|
||||
String finePromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"fine_promo"));
|
||||
String codPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"cod_promo"));
|
||||
String finePromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "fine_promo"));
|
||||
String codPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_promo"));
|
||||
if (flagMxnType.getValue().equalsIgnoreCase("S") && finePromo.equalsIgnoreCase("S")) {
|
||||
codPromo = (String) datiPromo.get("cod_promo");
|
||||
dataInizPromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(datiPromo.get("data_iniz"));
|
||||
@@ -278,12 +289,12 @@ public class VariazioniPVService {
|
||||
}
|
||||
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodPromo(codPromo));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizionePromo(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"descr_promo"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizionePromo(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_promo"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTipoPromo(flagTipoPromo));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataInizPromo(dataInizPromoS));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataFinePromo(dataFinePromoS));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFinePromo(finePromo));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeIdPromo(UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"id_promo"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeIdPromo(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "id_promo"))));
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagMxn(flagMxnType));
|
||||
|
||||
//INGREDIENTI
|
||||
@@ -294,7 +305,7 @@ public class VariazioniPVService {
|
||||
//GLI INGREDIENTI VENGONO COMUNQUE INVIATI
|
||||
inviaIngrOpz = invioIngredientiSetup;
|
||||
}
|
||||
String ingredienti = UtilityString.streNull(UtilityHashMap.getValueIfExists(var,"ingredienti"));
|
||||
String ingredienti = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "ingredienti"));
|
||||
IngredientiType ingredientiType = getIngredienti(objectFactory, codMart, variazioniPvDTO.getDataValidita(), variazioniPvDTO.getTipoReportEnum(), tipoVariazioneLisv, inviaIngrOpz, ingredienti);
|
||||
codMartType.getContent().add(objectFactory.createCodMartTypeIngredienti(ingredientiType));
|
||||
|
||||
@@ -330,12 +341,12 @@ public class VariazioniPVService {
|
||||
if (tipoValore.equalsIgnoreCase("M")) {
|
||||
String sql =
|
||||
Query.format("SELECT mtb_part.vend_mese_prec/4 as media_sett\n" +
|
||||
"FROM mtb_part\n" +
|
||||
"WHERE cod_mdep = %s\n" +
|
||||
" AND cod_mart = %s", codMdep, codMart);
|
||||
"FROM mtb_part\n" +
|
||||
"WHERE cod_mdep = %s\n" +
|
||||
" AND cod_mart = %s", codMdep, codMart);
|
||||
BigDecimal valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (UtilityBigDecimal.isNullOrZero(valMedio) && UtilityDB.existDatabaseObject(multiDBTransactionManager.getPrimaryConnection(), "mvw_media_vend", TypeDbObject.VIEW)){
|
||||
if (UtilityBigDecimal.isNullOrZero(valMedio) && UtilityDB.existDatabaseObject(multiDBTransactionManager.getPrimaryConnection(), "mvw_media_vend", TypeDbObject.VIEW)) {
|
||||
sql =
|
||||
Query.format("SELECT media_sett\n" +
|
||||
"FROM mvw_media_vend\n" +
|
||||
@@ -343,7 +354,7 @@ public class VariazioniPVService {
|
||||
" AND cod_mart = %s", codMdep, codMart);
|
||||
valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
return (valMedio==null?"":new DecimalFormat("#,##0.00").format(valMedio));
|
||||
return (valMedio == null ? "" : new DecimalFormat("#,##0.00").format(valMedio));
|
||||
} else if (tipoValore.equalsIgnoreCase("P")) {
|
||||
return UtilityHashMap.getValueIfExists(var, "posizione_art");
|
||||
}
|
||||
@@ -353,7 +364,7 @@ public class VariazioniPVService {
|
||||
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
|
||||
HashMap<String, String> setup,
|
||||
String codVlis,
|
||||
String selezionaGriglie) throws Exception{
|
||||
String selezionaGriglie) throws Exception {
|
||||
|
||||
String queryAssortimento = getQueryAssortimento(variazioniPvDTO, setup, codVlis, selezionaGriglie);
|
||||
String query =
|
||||
@@ -473,26 +484,26 @@ public class VariazioniPVService {
|
||||
" ON listino.cod_vlis = promozione.cod_vlis AND listino.cod_mart = promozione.cod_mart\n" +
|
||||
" LEFT OUTER JOIN vtb_promo ON promozione.cod_promo = vtb_promo.cod_promo\n" +
|
||||
"WHERE vtb_promo.cod_promo_intercode IS NULL\n" +
|
||||
((variazioniPvDTO.getTipoReportEnum()==VariazioniPvInputDTO.Type.LISTINO)?
|
||||
" AND ( (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'S') " +
|
||||
" OR (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'N' AND listino.tipo_variazione <> 'D')) ":"" ) +
|
||||
"ORDER BY listino.cod_mart ";
|
||||
((variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.LISTINO) ?
|
||||
" AND ( (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'S') " +
|
||||
" OR (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'N' AND listino.tipo_variazione <> 'D')) " : "") +
|
||||
"ORDER BY listino.cod_mart ";
|
||||
|
||||
query = query
|
||||
.replace("'[DATA_VARIAZIONE]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD))
|
||||
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis) )
|
||||
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
|
||||
.replace("'[CLASSIFICAZIONE_MERCEOLOGICA]'", UtilityDB.valueToString(setup.get("CLASSIFICAZIONE_MERCEOLOGICA")))
|
||||
.replace("'[INVIA_DESC_CASSA]'", UtilityDB.valueToString(setup.get("INVIA_DESC_CASSA")))
|
||||
.replace("'[INVIA_DISATTIVAZIONI]'", UtilityDB.valueToString( UtilityString.isNull(variazioniPvDTO.getInviaDisattivazioni(), "N")));
|
||||
.replace("'[INVIA_DISATTIVAZIONI]'", UtilityDB.valueToString(UtilityString.isNull(variazioniPvDTO.getInviaDisattivazioni(), "N")));
|
||||
return query;
|
||||
}
|
||||
|
||||
|
||||
private String getElencoCasse(String codMdep) throws Exception {
|
||||
String sql =
|
||||
"SELECT mtb_depo_casse.cod_cassa\n" +
|
||||
" FROM mtb_depo_casse\n" +
|
||||
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
|
||||
"SELECT mtb_depo_casse.cod_cassa\n" +
|
||||
" FROM mtb_depo_casse\n" +
|
||||
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
|
||||
|
||||
List<Object> casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
@@ -513,14 +524,14 @@ public class VariazioniPVService {
|
||||
case LISTINO:
|
||||
queryAssortimento =
|
||||
Query.format(
|
||||
"SELECT DISTINCT lisv.cod_vlis, " +
|
||||
" lisv.cod_mart, " +
|
||||
" 'A' as tipo_variazione, " +
|
||||
" Convert(varchar(15), null ) as 'cod_mart_view', " +
|
||||
" 'N' as 'fine_promo' " +
|
||||
" FROM mtb_lisv lisv " +
|
||||
" WHERE lisv.cod_vlis = %s ",
|
||||
codVlis);
|
||||
"SELECT DISTINCT lisv.cod_vlis, " +
|
||||
" lisv.cod_mart, " +
|
||||
" 'A' as tipo_variazione, " +
|
||||
" Convert(varchar(15), null ) as 'cod_mart_view', " +
|
||||
" 'N' as 'fine_promo' " +
|
||||
" FROM mtb_lisv lisv " +
|
||||
" WHERE lisv.cod_vlis = %s ",
|
||||
codVlis);
|
||||
|
||||
break;
|
||||
case VARIAZIONI:
|
||||
@@ -595,14 +606,14 @@ public class VariazioniPVService {
|
||||
" INNER JOIN mtb_lisv\n" +
|
||||
" ON ISNULL(vtb_list.cod_vlis_rif, vtb_list.cod_vlis) = mtb_lisv.cod_vlis) lisv\n" +
|
||||
" ON art.cod_mart = lisv.cod_mart\n" +
|
||||
"WHERE lisv.cod_vlis = '[COD_VLIS]'" ;
|
||||
"WHERE lisv.cod_vlis = '[COD_VLIS]'";
|
||||
queryAssortimento =
|
||||
queryAssortimento
|
||||
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
|
||||
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
|
||||
break;
|
||||
case PROMOZIONI:
|
||||
String filtroPromoOrto = setup.get("FILTRO_ART_ORTOFRUTTA");
|
||||
String filtroPromoOrto = setup.get("FILTRO_ART_ORTOFRUTTA");
|
||||
queryAssortimento =
|
||||
"SELECT vtb_list_data.cod_vlis, " +
|
||||
" mtb_lisv_data.cod_mart, " +
|
||||
@@ -638,20 +649,20 @@ public class VariazioniPVService {
|
||||
filtroMenu = "mtb_aart.cod_mart not in (" + filtroMenu + ")";
|
||||
}
|
||||
|
||||
String whereCond =variazioniPvDTO.getWhereCondArt();
|
||||
String whereCond = variazioniPvDTO.getWhereCondArt();
|
||||
String query =
|
||||
"SELECT Convert(varchar(5), assortimento.cod_vlis) as cod_vlis,\n " +
|
||||
"Convert(varchar(15), assortimento.cod_mart) as cod_mart,\n " +
|
||||
"Convert(varchar(1), max(assortimento.tipo_variazione)) as tipo_variazione,\n " +
|
||||
"Convert(varchar(15), assortimento.cod_mart_view) as cod_mart_view,\n " +
|
||||
"Convert(varchar(1), assortimento.fine_promo) as fine_promo\n " +
|
||||
" FROM (\n" + queryAssortimento + "\n) assortimento inner join mtb_aart on assortimento.cod_mart = mtb_aart.cod_mart\n " +
|
||||
" WHERE mtb_aart.flag_incl_listino = 'S' AND\n " +
|
||||
" FROM (\n" + queryAssortimento + "\n) assortimento inner join mtb_aart on assortimento.cod_mart = mtb_aart.cod_mart\n " +
|
||||
" WHERE mtb_aart.flag_incl_listino = 'S' AND\n " +
|
||||
"mtb_aart.flag_stato = 'A' AND\n " +
|
||||
" EXISTS ( SELECT cod_barre from mvw_barcode WHERE mvw_barcode.cod_mart = mtb_aart.cod_mart )\n " +
|
||||
(UtilityString.isNullOrEmpty(whereCond)?"":" AND " + whereCond)+
|
||||
(UtilityString.isNullOrEmpty(filtroMenu)?"":" AND " + filtroMenu)+
|
||||
" GROUP BY assortimento.cod_vlis, assortimento.cod_mart, assortimento.cod_mart_view, assortimento.fine_promo";
|
||||
(UtilityString.isNullOrEmpty(whereCond) ? "" : " AND " + whereCond) +
|
||||
(UtilityString.isNullOrEmpty(filtroMenu) ? "" : " AND " + filtroMenu) +
|
||||
" GROUP BY assortimento.cod_vlis, assortimento.cod_mart, assortimento.cod_mart_view, assortimento.fine_promo";
|
||||
return query;
|
||||
}
|
||||
|
||||
@@ -666,7 +677,7 @@ public class VariazioniPVService {
|
||||
" vtb_promo_articoli.cod_mart = '" + codMart + "' AND " +
|
||||
" vtb_promo.flag_tipo_promo = 'F'";
|
||||
BigDecimal punti = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
if ( punti == null ) punti = BigDecimal.ZERO;
|
||||
if (punti == null) punti = BigDecimal.ZERO;
|
||||
return punti;
|
||||
}
|
||||
|
||||
@@ -731,7 +742,7 @@ public class VariazioniPVService {
|
||||
|
||||
List<String> ingredienti = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
int contatore = 1;
|
||||
for(String i: ingredienti) {
|
||||
for (String i : ingredienti) {
|
||||
IngredientiArticoloType ingredientiArticoloType = objectFactory.createIngredientiArticoloType();
|
||||
String descrIngr = UtilityString.streNull(i);
|
||||
ingredientiArticoloType.setIdRiga(String.valueOf(contatore));
|
||||
@@ -845,35 +856,72 @@ public class VariazioniPVService {
|
||||
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType) throws Exception {
|
||||
CodAlisType codAlisType = objectFactory.createCodAlisType();
|
||||
|
||||
String query =
|
||||
/*"with arts as (\n" +
|
||||
"select cod_mart, cod_mart as cod_mart_griglia from mtb_aart\n" +
|
||||
"union all\n" +
|
||||
"select cod_mart, cod_comp as cod_mart_griglia from mtb_comp \n"+
|
||||
"union all\n" +
|
||||
"select cod_comp, cod_mart as cod_mart_griglia from mtb_comp )\n"+ */
|
||||
"SELECT TOP 1 griglia.data_validita, " +
|
||||
" griglia.cod_mdep, " +
|
||||
" griglia.cod_mart, " +
|
||||
" griglia.tipo_variazione, " +
|
||||
" ISNULL(griglia.tipo_assortimento, '') AS tipo_assortimento, " +
|
||||
" griglia.cod_alis, " +
|
||||
" atb_list.descrizione AS descr_list " +
|
||||
" FROM atb_list\n" +
|
||||
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, " +
|
||||
UtilityDB.valueToString(codMdep) + ", NULL, NULL) griglia ON atb_list.cod_alis = griglia.cod_alis\n" +
|
||||
//"INNER JOIN arts on griglia.cod_mart = arts.cod_mart_griglia \n" +
|
||||
" WHERE griglia.tipo_variazione <> 'D' AND " +
|
||||
" griglia.cod_mart = " + UtilityDB.valueToString(codMart) + "\n " +
|
||||
" ORDER BY griglia.data_validita DESC ";
|
||||
HashMap<String, Object> datiGriglia = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
List<GrigliaAcquistoDTO> grigliaArticolo = Stream.of(grigliaAcquisto)
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart) &&
|
||||
x.getCodMdep().equalsIgnoreCase(codMdep) &&
|
||||
x.getDataValidita().equals(dataValidita))
|
||||
.toList();
|
||||
|
||||
if (grigliaArticolo.isEmpty()) {
|
||||
|
||||
|
||||
String query = "select cod_mart from mtb_comp where cod_comp = " + UtilityDB.valueToString(codMart) + " \n" +
|
||||
"union all\n" +
|
||||
"select cod_comp from mtb_comp where cod_mart = " + UtilityDB.valueToString(codMart);
|
||||
|
||||
List<String> kits = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
for (String kit : kits) {
|
||||
grigliaArticolo = Stream.of(grigliaAcquisto)
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(kit) &&
|
||||
x.getCodMdep().equalsIgnoreCase(codMdep) &&
|
||||
x.getDataValidita().equals(dataValidita))
|
||||
.toList();
|
||||
|
||||
if (!grigliaArticolo.isEmpty()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (grigliaArticolo.isEmpty()) {
|
||||
kits.add(codMart);
|
||||
|
||||
query =
|
||||
"SELECT TOP 1 griglia.data_validita, " +
|
||||
" griglia.cod_mdep, " +
|
||||
" griglia.cod_mart, " +
|
||||
" griglia.tipo_variazione, " +
|
||||
" ISNULL(griglia.tipo_assortimento, '') AS tipo_assortimento, " +
|
||||
" griglia.cod_alis, " +
|
||||
" atb_list.descrizione AS descr_list " +
|
||||
" FROM atb_list\n" +
|
||||
"INNER JOIN dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, " +
|
||||
UtilityDB.valueToString(codMdep) + ", NULL, NULL) griglia ON atb_list.cod_alis = griglia.cod_alis\n" +
|
||||
" WHERE griglia.tipo_variazione <> 'D' AND " +
|
||||
" griglia.cod_mart IN (" + UtilityDB.listValueToString(kits) + ")\n " +
|
||||
" ORDER BY griglia.data_validita DESC ";
|
||||
|
||||
grigliaArticolo = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, GrigliaAcquistoDTO.class);
|
||||
}
|
||||
}
|
||||
|
||||
String tipoAssortimento, tipoVariazioneGriglia, codAlis, descrList = null;
|
||||
|
||||
if (grigliaArticolo != null && !grigliaArticolo.isEmpty()) {
|
||||
codAlis = grigliaArticolo.get(0).getCodAlis();
|
||||
tipoAssortimento = UtilityString.streNull(grigliaArticolo.get(0).getTipoAssortimento());
|
||||
tipoVariazioneGriglia = grigliaArticolo.get(0).getTipoVariazione();
|
||||
|
||||
descrList = listini.get(codAlis);
|
||||
if (descrList == null) {
|
||||
String sql = "SELECT descrizione\n" +
|
||||
"FROM atb_list\n" +
|
||||
"WHERE cod_alis = " + UtilityDB.valueToString(codAlis);
|
||||
|
||||
descrList = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
listini.put(codAlis, descrList);
|
||||
}
|
||||
|
||||
String tipoAssortimento = null, tipoVariazioneGriglia = null, codAlis, descrList;
|
||||
if (datiGriglia != null && datiGriglia.size() > 0) {
|
||||
codAlis = UtilityHashMap.getValueIfExists(datiGriglia, "cod_alis");
|
||||
descrList = UtilityHashMap.getValueIfExists(datiGriglia, "descr_list");
|
||||
tipoAssortimento = UtilityHashMap.getValueIfExists(datiGriglia, "tipo_assortimento");
|
||||
tipoVariazioneGriglia = UtilityHashMap.getValueIfExists(datiGriglia, "tipo_variazione");
|
||||
} else {
|
||||
codAlis = "NO GRIGLIA";
|
||||
descrList = codAlis;
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
package it.integry.ems.retail.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityInteger;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class GrigliaAcquistoDTO {
|
||||
|
||||
@SqlField("cod_alis")
|
||||
private String codAlis;
|
||||
@SqlField("cod_mdep")
|
||||
private String codMdep;
|
||||
@SqlField("data_validita")
|
||||
private Date dataValidita;
|
||||
@SqlField("note")
|
||||
private String Note;
|
||||
@SqlField("cod_art_forn")
|
||||
private String codArtForn;
|
||||
@SqlField("cod_mart")
|
||||
private String codMart;
|
||||
@SqlField("tipo_assortimento")
|
||||
private String tipoAssortimento;
|
||||
@SqlField("tipo_variazione")
|
||||
private String tipoVariazione;
|
||||
@SqlField("last_griglia")
|
||||
private Long lastGriglia;
|
||||
|
||||
public String getCodAlis() {
|
||||
return codAlis;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setCodAlis(String codAlis) {
|
||||
this.codAlis = codAlis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMdep() {
|
||||
return codMdep;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setCodMdep(String codMdep) {
|
||||
this.codMdep = codMdep;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataValidita() {
|
||||
return dataValidita;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setDataValidita(Date dataValidita) {
|
||||
this.dataValidita = dataValidita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNote() {
|
||||
return Note;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setNote(String note) {
|
||||
Note = note;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodArtForn() {
|
||||
return codArtForn;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setCodArtForn(String codArtForn) {
|
||||
this.codArtForn = codArtForn;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoAssortimento() {
|
||||
return tipoAssortimento;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setTipoAssortimento(String tipoAssortimento) {
|
||||
this.tipoAssortimento = tipoAssortimento;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoVariazione() {
|
||||
return tipoVariazione;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setTipoVariazione(String tipoVariazione) {
|
||||
this.tipoVariazione = tipoVariazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getLastGriglia() {
|
||||
return lastGriglia;
|
||||
}
|
||||
|
||||
public GrigliaAcquistoDTO setLastGriglia(Long lastGriglia) {
|
||||
this.lastGriglia = lastGriglia;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package it.integry.ems.retail.wms.ordini_acquisto.dto;
|
||||
package it.integry.ems.retail.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.product.dto.TipoCosto;
|
||||
import it.integry.ems.report.dto.ReportTypeDTO;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.FileItem;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
@@ -20,7 +19,6 @@ import it.integry.ems.user.UserSession;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.entity.NtbRapr;
|
||||
import it.integry.ems_model.entity._enum.GestioneEnum;
|
||||
@@ -493,9 +491,9 @@ public class PvmController {
|
||||
@RequestParam(value = "codProd", required = false) String codProd,
|
||||
@RequestParam(value = "dataValidita", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dataValidita,
|
||||
@RequestParam(value = "codVlis", required = false) String codVlis) throws Exception {
|
||||
if (dataValidita == null) {
|
||||
|
||||
if (dataValidita == null)
|
||||
dataValidita = new Date();
|
||||
}
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(pvmService.getCostoProdottoDatiCommerciali(codProd, dataValidita.toInstant(), codVlis));
|
||||
}
|
||||
@@ -507,19 +505,11 @@ public class PvmController {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam String codBarreCollo,
|
||||
@RequestParam(required = false, defaultValue = "false") boolean onlyResiduo,
|
||||
@RequestParam(required = false, defaultValue = "true") boolean throwExcIfNull) {
|
||||
ServiceRestResponse response;
|
||||
try {
|
||||
MtbColt collo = pvmService.getColloByBarcode(codBarreCollo, onlyResiduo);
|
||||
@RequestParam(required = false, defaultValue = "true") boolean throwExcIfNull) throws Exception {
|
||||
|
||||
if (collo == null && throwExcIfNull) throw new Exception("Nessun bancale trovato");
|
||||
|
||||
response = ServiceRestResponse.createPositiveResponse((Object) collo);
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
||||
}
|
||||
return response;
|
||||
MtbColt collo = pvmService.getColloByBarcode(codBarreCollo, onlyResiduo);
|
||||
if (collo == null && throwExcIfNull) throw new Exception("Nessun bancale trovato");
|
||||
return ServiceRestResponse.createPositiveResponse(collo);
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_GET_COLLO_IN_GIAC, method = RequestMethod.POST)
|
||||
@@ -529,20 +519,12 @@ public class PvmController {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam(required = false, defaultValue = "false") boolean onlyResiduo,
|
||||
@RequestParam(required = false, defaultValue = "true") boolean throwExcIfNull,
|
||||
@RequestBody MtbColt mtbColt) {
|
||||
@RequestBody MtbColt mtbColt) throws Exception {
|
||||
|
||||
ServiceRestResponse response;
|
||||
try {
|
||||
MtbColt collo = pvmService.getColloInGiac(mtbColt, onlyResiduo);
|
||||
MtbColt collo = pvmService.getColloInGiac(mtbColt, onlyResiduo);
|
||||
if (collo == null && throwExcIfNull) throw new Exception("Nessun bancale trovato");
|
||||
|
||||
if (collo == null && throwExcIfNull) throw new Exception("Nessun bancale trovato");
|
||||
|
||||
response = ServiceRestResponse.createPositiveResponse((Object) collo);
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
||||
}
|
||||
return response;
|
||||
return ServiceRestResponse.createPositiveResponse(collo);
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_GET_COLLI_IN_BASKET, method = RequestMethod.GET)
|
||||
@@ -550,15 +532,9 @@ public class PvmController {
|
||||
ServiceRestResponse getColliInBasket(
|
||||
HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam(required = false) String codMdep) {
|
||||
ServiceRestResponse response;
|
||||
try {
|
||||
response = ServiceRestResponse.createPositiveResponse(pvmService.getColliInBasket(codMdep));
|
||||
} catch (Exception e) {
|
||||
logger.error(request.getRequestURI(), e);
|
||||
response = new ServiceRestResponse(EsitoType.KO, configuration, e);
|
||||
}
|
||||
return response;
|
||||
@RequestParam(required = false) String codMdep) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(pvmService.getColliInBasket(codMdep));
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_CREA_RAPPORTINO_FG_PVM, method = RequestMethod.POST)
|
||||
@@ -566,12 +542,11 @@ public class PvmController {
|
||||
List<ServiceRestResponse> creaRapportinoFgPvm(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestParam("dataRapp") Date dataRapp,
|
||||
@RequestParam("codMdep") String codMdep
|
||||
) {
|
||||
@RequestParam("codMdep") String codMdep) {
|
||||
List<ServiceRestResponse> listResponse = new ArrayList<ServiceRestResponse>();
|
||||
try {
|
||||
List<EntityBase> entityList = pvmRapportiniFgService.creaRappParziali(dataRapp, codMdep);
|
||||
if (entityList != null && entityList.size() > 0) {
|
||||
if (entityList != null && !entityList.isEmpty()) {
|
||||
listResponse = UtilityEntity.toServiceRestResponse(entityList);
|
||||
} else {
|
||||
listResponse.add(new ServiceRestResponse(EsitoType.OK));
|
||||
@@ -776,7 +751,7 @@ public class PvmController {
|
||||
@RequestMapping(value = "popolaGiancezaDaInventario", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse popolaGiancezaDaInventario(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestParam (required = false) String codMdep) throws Exception {
|
||||
@RequestParam(required = false) String codMdep) throws Exception {
|
||||
|
||||
try {
|
||||
giacenzaService.popolaGiancezaDaInventario(codMdep);
|
||||
|
||||
@@ -81,6 +81,10 @@ public class GiacenzaService {
|
||||
|
||||
String codDtipRett = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "DATI_AZIENDA", "GIACENZA_DA_INV", "TIPO_DOC_RETT");
|
||||
|
||||
cancellazioneKit(codMdep);
|
||||
logger.debug(String.format(GiacenzaService.class.getSimpleName() + " - Deposito %s - Cancellazione kit: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs", codMdep));
|
||||
|
||||
|
||||
String sql;
|
||||
sql =
|
||||
Query.format(
|
||||
@@ -120,6 +124,22 @@ public class GiacenzaService {
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
|
||||
|
||||
private void cancellazioneKit(String codMdep ) throws Exception {
|
||||
String sql = Query.format(
|
||||
"SELECT g.cod_mdep, g.cod_mart\n" +
|
||||
"FROM carelli_giacenza_prog g INNER JOIN mtb_aart ON g.cod_mart =mtb_aart.cod_mart \n" +
|
||||
"WHERE articolo_composto = 'S' AND g.cod_mdep = %s\n",
|
||||
codMdep);
|
||||
|
||||
List<CarelliGiacenzaProg> carelliGiacenzaProgs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CarelliGiacenzaProg.class, OperationType.DELETE);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(carelliGiacenzaProgs, false, false, false);
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
|
||||
|
||||
private void popolaQtaMovimenti(String codMdep, String queryArt, List<String> articoliSalvati) throws Exception {
|
||||
String sql;
|
||||
sql =
|
||||
|
||||
@@ -2247,91 +2247,95 @@ public class PvmService {
|
||||
|
||||
|
||||
public MtbColt getColloByBarcode(String codBarreCollo, boolean onlyResiduo) throws Exception {
|
||||
HashMap<String, Object> datiCollo = new HashMap<>();
|
||||
|
||||
if (codBarreCollo.startsWith("U")) {
|
||||
datiCollo.put("gestione", null);
|
||||
datiCollo.put("anno", Integer.parseInt(codBarreCollo.substring(1, 3)));
|
||||
datiCollo.put("num", Integer.parseInt(codBarreCollo.substring(3, 10)));
|
||||
MtbColt mtbColt = getColloByExternalBarcode(codBarreCollo);
|
||||
|
||||
if (codBarreCollo.length() > 10) {
|
||||
datiCollo.put("serie", codBarreCollo.substring(10));
|
||||
} else {
|
||||
datiCollo.put("serie", "UL");
|
||||
}
|
||||
if(mtbColt == null) {
|
||||
|
||||
HashMap<String, Object> datiCollo = new HashMap<>();
|
||||
if (codBarreCollo.startsWith("U")) {
|
||||
datiCollo.put("gestione", null);
|
||||
datiCollo.put("anno", Integer.parseInt(codBarreCollo.substring(1, 3)));
|
||||
datiCollo.put("num", Integer.parseInt(codBarreCollo.substring(3, 10)));
|
||||
|
||||
} else {
|
||||
datiCollo = new HashMap<>();
|
||||
|
||||
codBarreCollo = codBarreCollo.substring(0, codBarreCollo.length() - 1); //Rimuovo il check digit finale
|
||||
|
||||
datiCollo.put("num", Integer.parseInt(codBarreCollo.substring(codBarreCollo.length() - 5, codBarreCollo.length())));
|
||||
datiCollo.put("anno", Integer.parseInt(codBarreCollo.substring(codBarreCollo.length() - 7, codBarreCollo.length() - 5)));
|
||||
int gestioneInt = Integer.parseInt("" + codBarreCollo.charAt(codBarreCollo.length() - 8));
|
||||
|
||||
int numMultiplier = 0;
|
||||
if (codBarreCollo.length() >= 9) {
|
||||
numMultiplier = Integer.parseInt("" + codBarreCollo.charAt(codBarreCollo.length() - 9)) * 100000;
|
||||
}
|
||||
|
||||
|
||||
datiCollo.put("num", ((Integer) datiCollo.get("num")) + numMultiplier);
|
||||
|
||||
String gestione;
|
||||
|
||||
try {
|
||||
switch (gestioneInt) {
|
||||
case 1:
|
||||
gestione = "A";
|
||||
break;
|
||||
case 2:
|
||||
gestione = "L";
|
||||
break;
|
||||
case 3:
|
||||
gestione = "V";
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Il collo letto ha un errore nella gestione");
|
||||
if (codBarreCollo.length() > 10) {
|
||||
datiCollo.put("serie", codBarreCollo.substring(10));
|
||||
} else {
|
||||
datiCollo.put("serie", "UL");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
throw new Exception("Il collo letto ha un errore nella gestione");
|
||||
|
||||
|
||||
} else {
|
||||
datiCollo = new HashMap<>();
|
||||
|
||||
codBarreCollo = codBarreCollo.substring(0, codBarreCollo.length() - 1); //Rimuovo il check digit finale
|
||||
|
||||
datiCollo.put("num", Integer.parseInt(codBarreCollo.substring(codBarreCollo.length() - 5, codBarreCollo.length())));
|
||||
datiCollo.put("anno", Integer.parseInt(codBarreCollo.substring(codBarreCollo.length() - 7, codBarreCollo.length() - 5)));
|
||||
int gestioneInt = Integer.parseInt("" + codBarreCollo.charAt(codBarreCollo.length() - 8));
|
||||
|
||||
int numMultiplier = 0;
|
||||
if (codBarreCollo.length() >= 9) {
|
||||
numMultiplier = Integer.parseInt("" + codBarreCollo.charAt(codBarreCollo.length() - 9)) * 100000;
|
||||
}
|
||||
|
||||
|
||||
datiCollo.put("num", ((Integer) datiCollo.get("num")) + numMultiplier);
|
||||
|
||||
String gestione;
|
||||
|
||||
try {
|
||||
switch (gestioneInt) {
|
||||
case 1:
|
||||
gestione = "A";
|
||||
break;
|
||||
case 2:
|
||||
gestione = "L";
|
||||
break;
|
||||
case 3:
|
||||
gestione = "V";
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Il collo letto ha un errore nella gestione");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
throw new Exception("Il collo letto ha un errore nella gestione");
|
||||
}
|
||||
|
||||
datiCollo.put("gestione", gestione);
|
||||
datiCollo.put("serie", "/");
|
||||
}
|
||||
|
||||
datiCollo.put("gestione", gestione);
|
||||
datiCollo.put("serie", "/");
|
||||
String query;
|
||||
|
||||
String whereCondGestione = "";
|
||||
|
||||
if (datiCollo.containsKey("gestione") && datiCollo.get("gestione") != null) {
|
||||
whereCondGestione = " gestione = " + UtilityDB.valueToString(datiCollo.get("gestione")) + " AND ";
|
||||
}
|
||||
|
||||
query = "SELECT * "
|
||||
+ "FROM mtb_colt "
|
||||
+ "WHERE "
|
||||
+ whereCondGestione
|
||||
+ " num_collo = " + UtilityDB.valueToString(datiCollo.get("num")) + " AND "
|
||||
+ " RIGHT(YEAR(data_collo), 2) = " + UtilityDB.valueToString(datiCollo.get("anno")) + " AND "
|
||||
+ " ser_collo = " + UtilityDB.valueToString(datiCollo.get("serie"));
|
||||
|
||||
|
||||
mtbColt = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
}
|
||||
|
||||
MtbColt mtbColt;
|
||||
String query;
|
||||
|
||||
String whereCondGestione = "";
|
||||
|
||||
if (datiCollo.containsKey("gestione") && datiCollo.get("gestione") != null) {
|
||||
whereCondGestione = " gestione = " + UtilityDB.valueToString(datiCollo.get("gestione")) + " AND ";
|
||||
}
|
||||
|
||||
query = "SELECT * "
|
||||
+ "FROM mtb_colt "
|
||||
+ "WHERE "
|
||||
+ whereCondGestione
|
||||
+ " num_collo = " + UtilityDB.valueToString(datiCollo.get("num")) + " AND "
|
||||
+ " RIGHT(YEAR(data_collo), 2) = " + UtilityDB.valueToString(datiCollo.get("anno")) + " AND "
|
||||
+ " ser_collo = " + UtilityDB.valueToString(datiCollo.get("serie"));
|
||||
|
||||
PreparedStatement ps = multiDBTransactionManager.getPrimaryDatasource().getConnection().prepareStatement(query);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
ResultSetMapper rsMapper = new ResultSetMapper();
|
||||
mtbColt = rsMapper.mapResultSetToObject(rs, MtbColt.class);
|
||||
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
if (mtbColt == null) return mtbColt;
|
||||
if (mtbColt == null) return null;
|
||||
else return getColloInGiac(mtbColt, onlyResiduo);
|
||||
}
|
||||
|
||||
private MtbColt getColloByExternalBarcode(String barcode) throws Exception {
|
||||
String sql = Query.format("SELECT * FROM " + MtbColt.ENTITY +
|
||||
" WHERE barcode_ul = %s", barcode);
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColt.class);
|
||||
}
|
||||
|
||||
public MtbColt getColloInGiac(MtbColt mtbColt, boolean onlyResiduo) throws Exception {
|
||||
|
||||
@@ -3574,7 +3578,7 @@ public class PvmService {
|
||||
" TempCount.*\n" +
|
||||
"FROM TempResult,\n" +
|
||||
" TempCount\n" +
|
||||
"ORDER BY 1\n" +
|
||||
"ORDER BY 2 DESC, 1 DESC\n" +
|
||||
"OFFSET (" + UtilityDB.valueToString(pageNum) + " - 1) * " + UtilityDB.valueToString(pageSize) + " ROWS FETCH NEXT " + UtilityDB.valueToString(pageSize) + " ROWS ONLY";
|
||||
|
||||
List<RowInventarioDTO> inventari = new ArrayList<>();
|
||||
|
||||
@@ -135,7 +135,7 @@ public class SmartEnterpriseService {
|
||||
" ISNULL(', ' + vtb_dest.citta, '') AS destinazione,\n" +
|
||||
" gtb_anag.cod_anag,\n" +
|
||||
" vtb_dest.cod_vdes,\n" +
|
||||
" case when gvw_part_iva_infragroup.part_iva is not null THEN 'L' ELSE gestione_anag END as gestione_anag\n" +
|
||||
" case when gvw_part_iva_infragroup.part_iva is not null and gestione_anag = 'A' THEN 'L' ELSE gestione_anag END as gestione_anag\n" +
|
||||
" FROM gtb_anag\n" +
|
||||
" INNER JOIN vtb_dest ON gtb_anag.cod_anag = vtb_dest.cod_anag\n" +
|
||||
" INNER JOIN (SELECT cod_anag, flag_stato, 'A' as gestione_anag\n" +
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
package it.integry.ems.retail.service;
|
||||
|
||||
import it.integry.annotations.PostWebServerConstruct;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.retail.dto.GrigliaAcquistoDTO;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.docx4j.wml.U;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.ContextLoader;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class GrigliaAcquistoHandlerService {
|
||||
|
||||
@Autowired
|
||||
private LooperService looperService;
|
||||
|
||||
@Autowired
|
||||
private SettingsModel settingsModel;
|
||||
|
||||
@Autowired
|
||||
private SettingsController settingsController;
|
||||
|
||||
@Autowired
|
||||
public SetupGest setupGest;
|
||||
|
||||
private static final int SIX_HOURS_DELAY = 21600000;
|
||||
private static final int DAYS = 3;
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
private final HashMap<String, List<GrigliaAcquistoDTO>> grigliaAcquistoCachedData = new HashMap<>();
|
||||
|
||||
@PostWebServerConstruct
|
||||
public void init() {
|
||||
if (saveCache()) {
|
||||
looperService.add(() -> this.internalCache(grigliaAcquistoCachedData), SIX_HOURS_DELAY, GrigliaAcquistoHandlerService.class.getName());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean saveCache() {
|
||||
return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
||||
}
|
||||
|
||||
private static boolean isGestioneAbilitata(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
String sql =
|
||||
"SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM stb_abil\n" +
|
||||
"WHERE cod_opz IN ('AG018', 'AG019') \n" +
|
||||
" AND flag_abil <> 'N'";
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
private HashMap<String, Object> checkDbDistributore(MultiDBTransactionManager multiDBTransactionManager) throws Exception{
|
||||
HashMap<String, Object> returnHashMap = new HashMap<>();
|
||||
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
||||
|
||||
String sql = "SELECT db_distributore FROM azienda";
|
||||
String dbDistributore = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
returnHashMap.put("dbDistributore", dbDistributore);
|
||||
|
||||
if (dbDistributore == null){
|
||||
returnHashMap.put("existSync", false);
|
||||
return returnHashMap;
|
||||
}
|
||||
|
||||
sql = "SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||
"FROM " + dbDistributore + ".dbo.stb_subscription\n" +
|
||||
"WHERE table_name = 'atb_griglie'\n" +
|
||||
" AND flag_attivo = 'S'\n" +
|
||||
" AND user_name = " + UtilityDB.valueToString(dbName);
|
||||
boolean existSync = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
returnHashMap.put("existSync", existSync);
|
||||
|
||||
return returnHashMap;
|
||||
}
|
||||
|
||||
public void internalCache(HashMap<String, List<GrigliaAcquistoDTO>> grigliaAcquistoCachedData) {
|
||||
try {
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
|
||||
Map<String, List<AvailableConnectionsModel>> databases = settingsModel.getAvailableConnections()
|
||||
.stream()
|
||||
.filter(AvailableConnectionsModel::getInternalDb)
|
||||
.filter(x -> !historyProfileDb.equalsIgnoreCase(x.getProfileName()))
|
||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
||||
|
||||
for (String dbName : databases.keySet()) {
|
||||
String profileName = databases.get(dbName).get(0).getProfileName();
|
||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||
|
||||
if (isGestioneAbilitata(multiDBTransactionManager)){
|
||||
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||
|
||||
if (!existSync){
|
||||
Date startDate = new Date();
|
||||
|
||||
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
||||
|
||||
if(!grigliaAcquistoDTO.isEmpty())
|
||||
grigliaAcquistoCachedData.put(dbName.toUpperCase(), grigliaAcquistoDTO);
|
||||
|
||||
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
}
|
||||
}
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private List<GrigliaAcquistoDTO> getGrigliaAcquisto(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < DAYS; i++) {
|
||||
Date dataValidita = UtilityDate.getTodayWithoutTime();
|
||||
dataValidita = UtilityDate.dateAdd(dataValidita, i);
|
||||
|
||||
String sql = "SELECT cod_alis,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " AS data_validita,\n" +
|
||||
" note,\n" +
|
||||
" cod_art_for,\n" +
|
||||
" cod_mart,\n" +
|
||||
" tipo_assortimento,\n" +
|
||||
" tipo_variazione,\n" +
|
||||
" last_griglia\n" +
|
||||
"FROM dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, NULL, NULL, NULL)\n" +
|
||||
"WHERE tipo_variazione <> 'D'";
|
||||
|
||||
List<GrigliaAcquistoDTO> tempGrigliaAcquisto = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GrigliaAcquistoDTO.class);
|
||||
if (tempGrigliaAcquisto != null && !tempGrigliaAcquisto.isEmpty())
|
||||
grigliaAcquisto.addAll(tempGrigliaAcquisto);
|
||||
}
|
||||
|
||||
return grigliaAcquisto;
|
||||
}
|
||||
|
||||
public List<GrigliaAcquistoDTO> getGrigliaAcquisto() throws Exception {
|
||||
MultiDBTransactionManager multiDBTransactionManager = ContextLoader.getCurrentWebApplicationContext().getBean(MultiDBTransactionManager.class);
|
||||
|
||||
if (!saveCache()) {
|
||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||
} else {
|
||||
List<GrigliaAcquistoDTO> setupList;
|
||||
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
||||
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||
String dbDistributore = (String) checkDbDistributore.get("dbDistributore");
|
||||
|
||||
if (existSync){
|
||||
setupList = grigliaAcquistoCachedData.get(dbDistributore.toUpperCase());
|
||||
}else{
|
||||
setupList = grigliaAcquistoCachedData.get(dbName.toUpperCase());
|
||||
}
|
||||
|
||||
if (setupList == null)
|
||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||
return setupList;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package it.integry.ems.retail.wms.ordini_acquisto.service;
|
||||
package it.integry.ems.retail.service;
|
||||
|
||||
import it.integry.annotations.PostWebServerConstruct;
|
||||
import it.integry.ems.looper.service.LooperService;
|
||||
import it.integry.ems.retail.wms.ordini_acquisto.dto.ListiniOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.dto.ListiniOrdiniAcquistoDTO;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.settings.SettingsController;
|
||||
@@ -23,7 +23,7 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class WMSListiniOrdiniAcquistoHandlerService {
|
||||
public class ListiniAcquistoHandlerService {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
@@ -46,7 +46,7 @@ public class WMSListiniOrdiniAcquistoHandlerService {
|
||||
@PostWebServerConstruct
|
||||
public void init() {
|
||||
if ( saveCache() ) {
|
||||
looperService.add(() -> this.internalCache(ListiniCachedData), SIX_HOURS_DELAY, WMSListiniOrdiniAcquistoHandlerService.class.getName());
|
||||
looperService.add(() -> this.internalCache(ListiniCachedData), SIX_HOURS_DELAY, ListiniAcquistoHandlerService.class.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ public class WMSListiniOrdiniAcquistoHandlerService {
|
||||
List<ListiniOrdiniAcquistoDTO> Listini = getListini(multiDBTransactionManager);
|
||||
listiniCachedData.put(dbName, Listini);
|
||||
}
|
||||
logger.trace(WMSListiniOrdiniAcquistoHandlerService.class.getSimpleName() + " - Listini: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
logger.trace(ListiniAcquistoHandlerService.class.getSimpleName() + " - Listini: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
}
|
||||
@@ -94,6 +94,7 @@ public class WMSAccettazioneService {
|
||||
.setPosizione(UtilityString.isNullOrEmpty(createUDCRequestDTO.getPosizione()) ? defaultPosizioneColliAccettazione : createUDCRequestDTO.getPosizione())
|
||||
.setCodTcol(createUDCRequestDTO.getCodTcol())
|
||||
.setAnnotazioni(createUDCRequestDTO.getAnnotazioni())
|
||||
.setBarcodeUl(createUDCRequestDTO.getBarcodeUl())
|
||||
.setSegno(1);
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ public class CreateUDCRequestDTO {
|
||||
|
||||
private String annotazioni;
|
||||
|
||||
private String barcodeUl;
|
||||
|
||||
private List<CreateUDCRequestOrderDTO> orders;
|
||||
|
||||
|
||||
@@ -71,6 +73,15 @@ public class CreateUDCRequestDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBarcodeUl() {
|
||||
return barcodeUl;
|
||||
}
|
||||
|
||||
public CreateUDCRequestDTO setBarcodeUl(String barcodeUl) {
|
||||
this.barcodeUl = barcodeUl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<CreateUDCRequestOrderDTO> getOrders() {
|
||||
return orders;
|
||||
}
|
||||
|
||||
@@ -469,6 +469,7 @@ public class WMSLavorazioneService {
|
||||
.setPosizione(UtilityString.isNull(createUDCRequestDTO.getPosizione(), defaultPosizioneColliAccettazione))
|
||||
.setCodTcol(createUDCRequestDTO.getCodTcol())
|
||||
.setAnnotazioni(createUDCRequestDTO.getAnnotazioni())
|
||||
.setBarcodeUl(createUDCRequestDTO.getBarcodeUl())
|
||||
.setSegno(1);
|
||||
|
||||
|
||||
|
||||
@@ -4,8 +4,9 @@ import com.annimon.stream.Stream;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import it.integry.ems.retail.pvmRetail.dto.save.ArtDTO;
|
||||
import it.integry.ems.retail.pvmRetail.dto.save.SaveDTO;
|
||||
import it.integry.ems.retail.service.ListiniAcquistoHandlerService;
|
||||
import it.integry.ems.retail.wms.ordini_acquisto.dto.BarcodeOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.wms.ordini_acquisto.dto.ListiniOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.dto.ListiniOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.wms.ordini_acquisto.dto.MerceOrdiniAcquistoDTO;
|
||||
import it.integry.ems.retail.wms.ordini_acquisto.dto.OrdiniAcquistoGrigliaDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
@@ -52,7 +53,7 @@ public class WMSOrdiniAcquistoService {
|
||||
private SetupGest setupGest;
|
||||
|
||||
@Autowired
|
||||
private WMSListiniOrdiniAcquistoHandlerService listiniOrdiniAcquistoHandlerService;
|
||||
private ListiniAcquistoHandlerService listiniOrdiniAcquistoHandlerService;
|
||||
@Autowired
|
||||
private WMSBarcodeOrdiniAcquistoHandlerService barcodeOrdiniAcquistoHandlerService;
|
||||
@Autowired
|
||||
|
||||
@@ -266,7 +266,10 @@ public class SystemController {
|
||||
.setTipoAnag("C")
|
||||
.setFlagTipologia("A")
|
||||
.setEstimatedTime(startDate)
|
||||
.setEstimatedEndtime(endDate);
|
||||
.setEstimatedEndtime(endDate)
|
||||
.setEffectiveTime(startDate)
|
||||
.setEffectiveEndtime(endDate)
|
||||
.setOreRapportino(new BigDecimal(0.25));
|
||||
|
||||
activityInstallazione.setOperation(OperationType.INSERT);
|
||||
stbActivitiesToUpdate.add(activityInstallazione);
|
||||
|
||||
Reference in New Issue
Block a user