Merge branch 'develop' into feature/Syncronizations

This commit is contained in:
2024-02-19 15:10:21 +01:00
35 changed files with 1261 additions and 316 deletions

View File

@@ -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" />

View File

@@ -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);
}
}

View File

@@ -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 {
}
}

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_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 {
}
}

View File

@@ -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");
}
}
}

View 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;
}

View File

@@ -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);

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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" +

View File

@@ -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());

View File

@@ -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){

View File

@@ -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()) {

View File

@@ -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) {

View File

@@ -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<>();

View File

@@ -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 , " +

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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 =

View File

@@ -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<>();

View File

@@ -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" +

View File

@@ -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;
}
}
}

View File

@@ -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();
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -469,6 +469,7 @@ public class WMSLavorazioneService {
.setPosizione(UtilityString.isNull(createUDCRequestDTO.getPosizione(), defaultPosizioneColliAccettazione))
.setCodTcol(createUDCRequestDTO.getCodTcol())
.setAnnotazioni(createUDCRequestDTO.getAnnotazioni())
.setBarcodeUl(createUDCRequestDTO.getBarcodeUl())
.setSegno(1);

View File

@@ -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

View File

@@ -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);