Sistemato invio variazioni
This commit is contained in:
@@ -124,4 +124,30 @@ public class VariazioniPvInputDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public enum Type {
|
||||||
|
VARIAZIONI("V"),
|
||||||
|
PROMOZIONI("P"),
|
||||||
|
GRIGLIA("G"),
|
||||||
|
LISTINO("L");
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
|
||||||
|
Type(String text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Type fromString(String text) {
|
||||||
|
for (Type b : Type.values()) {
|
||||||
|
if (b.text.equalsIgnoreCase(text)) return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getText() {
|
||||||
|
return this.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,20 +2,31 @@ package it.integry.ems.retail.ReportVariazioni.service;
|
|||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import it.integry.common.var.CommonConstants;
|
import it.integry.common.var.CommonConstants;
|
||||||
|
import it.integry.ems.dto.Result;
|
||||||
|
import it.integry.ems.expansion.RunnableArgsThrowable;
|
||||||
|
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniDTO;
|
||||||
|
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniDettaglioDTO;
|
||||||
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
|
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
|
||||||
|
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportType;
|
||||||
import it.integry.ems.retail.ReportVariazioni.xml.*;
|
import it.integry.ems.retail.ReportVariazioni.xml.*;
|
||||||
import it.integry.ems.retail.dto.GrigliaAcquistoDTO;
|
import it.integry.ems.retail.dto.GrigliaAcquistoDTO;
|
||||||
import it.integry.ems.retail.service.GrigliaAcquistoHandlerService;
|
import it.integry.ems.retail.service.GrigliaAcquistoHandlerService;
|
||||||
|
import it.integry.ems.service.HttpRestWrapper;
|
||||||
|
import it.integry.ems.service.MailService;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems.utility.UtilityDirs;
|
import it.integry.ems.utility.UtilityDirs;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.types.TypeDbObject;
|
import it.integry.ems_model.types.TypeDbObject;
|
||||||
import it.integry.ems_model.utility.*;
|
import it.integry.ems_model.utility.*;
|
||||||
|
import kotlin.Triple;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.ws.rs.client.Entity;
|
||||||
import javax.xml.bind.JAXBContext;
|
import javax.xml.bind.JAXBContext;
|
||||||
import javax.xml.bind.Marshaller;
|
import javax.xml.bind.Marshaller;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -26,83 +37,149 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Scope("request")
|
@Scope("request")
|
||||||
public class VariazioniPvService {
|
public class VariazioniPvService {
|
||||||
|
|
||||||
|
private final Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
|
private final String gestName = "w_vvariaz_prezzi_disp";
|
||||||
|
private final String section = "VARIAZIONI";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MultiDBTransactionManager multiDBTransactionManager;
|
private MultiDBTransactionManager multiDBTransactionManager;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SetupGest setupGest;
|
private SetupGest setupGest;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private GrigliaAcquistoHandlerService grigliaAcquistoHandlerService;
|
private GrigliaAcquistoHandlerService grigliaAcquistoHandlerService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpRestWrapper httpRestWrapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MailService mailService;
|
||||||
|
|
||||||
private HashMap<String, String> listini = new HashMap<>();
|
private HashMap<String, String> listini = new HashMap<>();
|
||||||
private List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
private List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
||||||
|
|
||||||
String xmlVariazioni = null;
|
|
||||||
|
|
||||||
ReportType fileVariazioniDTO = variazionePrezzoPV(variazioniPvDTO);
|
ReportType fileVariazioniDTO = variazionePrezzoPV(variazioniPvDTO);
|
||||||
|
|
||||||
if (fileVariazioniDTO.getCodVlis() != null && fileVariazioniDTO.getCodVlis().size() > 0) {
|
if (fileVariazioniDTO.getCodVlis() == null || fileVariazioniDTO.getCodVlis().size() == 0)
|
||||||
|
|
||||||
JAXBContext jaxbContext = JAXBContext.newInstance(ReportType.class);
|
|
||||||
Marshaller marshaller = jaxbContext.createMarshaller();
|
|
||||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
|
||||||
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
|
|
||||||
|
|
||||||
String pathFile = UtilityDirs.getDirectoryExport(multiDBTransactionManager.getPrimaryDatasource().getDbName(), "VARIAZIONI_PV", "XML_DIALOGO").getAbsolutePath();
|
|
||||||
if (!UtilityString.isNullOrEmpty(pathFile)) {
|
|
||||||
File tempFile = new File(pathFile + "//" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + ".xml");
|
|
||||||
marshaller.marshal(fileVariazioniDTO, tempFile);
|
|
||||||
}
|
|
||||||
StringWriter fileXml = new StringWriter();
|
|
||||||
marshaller.marshal(fileVariazioniDTO, fileXml);
|
|
||||||
xmlVariazioni = fileXml.toString();
|
|
||||||
} else {
|
|
||||||
throw new Exception("Non ci sono variazione nel periodo selezionato.");
|
throw new Exception("Non ci sono variazione nel periodo selezionato.");
|
||||||
}
|
|
||||||
|
|
||||||
return xmlVariazioni;
|
JAXBContext jaxbContext = JAXBContext.newInstance(ReportType.class);
|
||||||
|
Marshaller marshaller = jaxbContext.createMarshaller();
|
||||||
|
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
||||||
|
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
|
||||||
|
|
||||||
|
String pathFile = UtilityDirs.getDirectoryExport(multiDBTransactionManager.getPrimaryDatasource().getDbName(), "VARIAZIONI_PV", "XML_DIALOGO").getAbsolutePath();
|
||||||
|
if (!UtilityString.isNullOrEmpty(pathFile)) {
|
||||||
|
File tempFile = new File(pathFile + "//" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + ".xml");
|
||||||
|
marshaller.marshal(fileVariazioniDTO, tempFile);
|
||||||
|
}
|
||||||
|
StringWriter fileXml = new StringWriter();
|
||||||
|
marshaller.marshal(fileVariazioniDTO, fileXml);
|
||||||
|
return fileXml.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReportType variazionePrezzoPV(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
public List<VariazioniDettaglioDTO> calcVariazionePrezzoPV(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
||||||
final String gestName = "w_vvariaz_prezzi_disp", section = "VARIAZIONI";
|
return calcVariazionePrezzoPV(multiDBTransactionManager, variazioniPvDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<VariazioniDettaglioDTO> calcVariazionePrezzoPV(MultiDBTransactionManager mdb, VariazioniPvInputDTO variazioniPvDTO) throws Exception {
|
||||||
|
LocalDateTime startTracingTime = UtilityLocalDate.getNowTime();
|
||||||
|
// logger.trace("Calcolo variazioni: Start");
|
||||||
|
|
||||||
|
HashMap<String, String> setup = setupGest.getSetupSection(mdb.getPrimaryConnection(), gestName, section);
|
||||||
|
|
||||||
|
boolean existVariazioni = (variazioniPvDTO.getVariazioni() != null && !variazioniPvDTO.getVariazioni().isEmpty());
|
||||||
|
List<VariazioniDTO> listini = getListini(mdb, variazioniPvDTO, existVariazioni);
|
||||||
|
logger.trace("Calcolo variazioni: GetListini []");
|
||||||
|
|
||||||
|
List<VariazioniDettaglioDTO> variazioni = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
for (VariazioniDTO datiLisv : listini) {
|
||||||
|
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
|
||||||
|
HashMap<String, String> getSetupSectionDepo =
|
||||||
|
setupGest.getSetupSectionDepo(mdb.getPrimaryConnection(), gestName, section, codMdep);
|
||||||
|
|
||||||
|
|
||||||
|
String codVlisVariazioni = UtilityHashMap.getValueIfExists(getSetupSectionDepo, "COD_VLIS_VARIAZIONI");
|
||||||
|
datiLisv.setCodVlis(UtilityString.isNull(codVlisVariazioni, datiLisv.getCodVlis()));
|
||||||
|
|
||||||
|
datiLisv.setDataVariazione(variazioniPvDTO.getDataValidita());
|
||||||
|
datiLisv.setElencoCasse(getElencoCasse(mdb, codMdep));
|
||||||
|
|
||||||
|
|
||||||
|
List<VariazioniDettaglioDTO> variazioniLisv = null;
|
||||||
|
if (existVariazioni) {
|
||||||
|
variazioniLisv =
|
||||||
|
variazioniPvDTO.getVariazioni().stream()
|
||||||
|
.filter(x -> x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
} else {
|
||||||
|
String query = getQueryVariazioni(variazioniPvDTO, setup, datiLisv.getCodVlis(), UtilityHashMap.getValueIfExists(getSetupSectionDepo, "SELEZIONA_GRIGLIE"));
|
||||||
|
variazioniLisv = UtilityDB.executeSimpleQueryDTO(mdb.getPrimaryConnection(), query, VariazioniDettaglioDTO.class);
|
||||||
|
|
||||||
|
if (variazioniLisv != null) {
|
||||||
|
variazioniLisv
|
||||||
|
.forEach(
|
||||||
|
variazioniDettaglioDTO ->
|
||||||
|
variazioniDettaglioDTO.setCodVlis(datiLisv.getCodVlis())
|
||||||
|
.setCodMdep(datiLisv.getCodMdep())
|
||||||
|
.setDataVariazione(variazioniPvDTO.getDataValidita())
|
||||||
|
.setElencoCasse(datiLisv.getElencoCasse())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (variazioniLisv != null && !variazioniLisv.isEmpty())
|
||||||
|
variazioni.addAll(variazioniLisv);
|
||||||
|
|
||||||
|
logger.debug(VariazioniPvService.class.getSimpleName() +
|
||||||
|
" - getElencoArticoli Listino " + datiLisv.getCodVlis() +
|
||||||
|
": Timing " + ChronoUnit.SECONDS.between(startTracingTime, UtilityLocalDate.getNowTime()) + " secs");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.debug(VariazioniPvService.class.getSimpleName() +
|
||||||
|
" - Fine: Timing " + ChronoUnit.SECONDS.between(startTracingTime, UtilityLocalDate.getNowTime()) + " secs");
|
||||||
|
|
||||||
|
return variazioni;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportType variazionePrezzoPV(VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||||
HashMap<String, String> setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
|
HashMap<String, String> setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
|
||||||
|
|
||||||
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 ";
|
|
||||||
|
|
||||||
sql = UtilityDB.addwhereCond(sql, variazioniPvDTO.getWhereCondLisv(), false);
|
|
||||||
|
|
||||||
List<HashMap<String, Object>> listini = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
|
|
||||||
|
|
||||||
String invioIngredienti = setup.get("INVIA_INGREDIENTI_OPZ");
|
String invioIngredienti = setup.get("INVIA_INGREDIENTI_OPZ");
|
||||||
String colNameDescrEstesa = "descrizione_estesa";
|
String colNameDescrEstesa = "descrizione_estesa";
|
||||||
String setupDescr = setup.get("DESCRIZIONE_ESTESA");
|
String setupDescr = setup.get("DESCRIZIONE_ESTESA");
|
||||||
if (!UtilityString.isNullOrEmpty(setupDescr)) {
|
|
||||||
if (setupDescr.equalsIgnoreCase("D"))
|
|
||||||
colNameDescrEstesa = "descr_art";
|
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||||
else if (setupDescr.equalsIgnoreCase("B"))
|
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
|
||||||
colNameDescrEstesa = "descr_cassa";
|
|
||||||
}
|
|
||||||
|
|
||||||
ReportType fileVariazioniDTO = new ReportType();
|
ReportType fileVariazioniDTO = new ReportType();
|
||||||
for (HashMap<String, Object> datiLisv : listini) {
|
Date startDate = new Date();
|
||||||
String codVlis = UtilityHashMap.getValueIfExists(datiLisv, "cod_vlis");
|
logger.debug(VariazioniPvService.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||||
String descrLisv = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "descrizione"));
|
for (VariazioniDTO datiLisv : listini) {
|
||||||
String flagListIvaInclusa = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "flag_list_iva_inclusa"));
|
String codVlis = datiLisv.getCodVlis();
|
||||||
String codMdep = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "cod_mdep"));
|
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
|
||||||
String elencoCasse = getElencoCasse(codMdep);
|
String elencoCasse = getElencoCasse(multiDBTransactionManager, codMdep);
|
||||||
|
|
||||||
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
|
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
|
||||||
|
|
||||||
|
|
||||||
ObjectFactory objectFactory = new ObjectFactory();
|
ObjectFactory objectFactory = new ObjectFactory();
|
||||||
|
|
||||||
CodVlisType listinoDTO = new CodVlisType();
|
CodVlisType listinoDTO = new CodVlisType();
|
||||||
@@ -112,39 +189,52 @@ public class VariazioniPvService {
|
|||||||
} else {
|
} else {
|
||||||
listinoDTO.getContent().add(codVlisVariazioni);
|
listinoDTO.getContent().add(codVlisVariazioni);
|
||||||
}
|
}
|
||||||
listinoDTO.setDescrizione(descrLisv);
|
listinoDTO.setDescrizione(datiLisv.getDescrizione());
|
||||||
listinoDTO.setFlagListIvaInclusa(flagListIvaInclusa);
|
listinoDTO.setFlagListIvaInclusa(datiLisv.getFlagListIvaInclusa());
|
||||||
listinoDTO.setDataVariazione(new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(variazioniPvDTO.getDataValidita()));
|
listinoDTO.setDataVariazione(new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(variazioniPvInputDTO.getDataValidita()));
|
||||||
listinoDTO.setCodMdep(codMdep);
|
listinoDTO.setCodMdep(codMdep);
|
||||||
listinoDTO.getContent().add(objectFactory.createCodVlisTypeElencoCasse(elencoCasse));
|
listinoDTO.getContent().add(objectFactory.createCodVlisTypeElencoCasse(elencoCasse));
|
||||||
fileVariazioniDTO.getCodVlis().add(listinoDTO);
|
fileVariazioniDTO.getCodVlis().add(listinoDTO);
|
||||||
|
|
||||||
String query = getQueryVariazioni(variazioniPvDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
|
List<VariazioniDettaglioDTO> elencoVar = null;
|
||||||
List<HashMap<String, Object>> elencoVar = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
if (existVariazioni) {
|
||||||
|
elencoVar =
|
||||||
boolean getVariazioneGriglia = false;
|
Stream.of(variazioniPvInputDTO.getVariazioni())
|
||||||
|
.filter(x -> x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
|
||||||
if ((variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.GRIGLIA ||
|
.toList();
|
||||||
variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.LISTINO) &&
|
} else {
|
||||||
getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null &&
|
String query = getQueryVariazioni(variazioniPvInputDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
|
||||||
getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
|
elencoVar = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, VariazioniDettaglioDTO.class);
|
||||||
|
|
||||||
getVariazioneGriglia = true;
|
|
||||||
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
|
|
||||||
grigliaAcquisto = Stream.of(grigliaAcquisto)
|
|
||||||
.filter(x -> x.getDataValidita().equals(variazioniPvDTO.getDataValidita()) &&
|
|
||||||
x.getCodMdep().equalsIgnoreCase(codMdep))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
logger.trace(VariazioniPvService.class.getSimpleName() + " - getElencoArticoli Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||||
|
if (elencoVar != null) {
|
||||||
|
boolean getVariazioneGriglia = false;
|
||||||
|
|
||||||
for (HashMap<String, Object> variazioni : elencoVar) {
|
if ((variazioniPvInputDTO.getTipoReportEnum() == VariazioniReportType.GRIGLIA ||
|
||||||
CodMartType codMart = fillArticoloData(objectFactory,
|
variazioniPvInputDTO.getTipoReportEnum() == VariazioniReportType.LISTINO) &&
|
||||||
variazioni, variazioniPvDTO, invioIngredienti, getSetupSectionDepo, codMdep, colNameDescrEstesa,
|
getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null &&
|
||||||
setup.get("LIBERO1"),
|
getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
|
||||||
setup.get("LIBERO2"), getVariazioneGriglia);
|
|
||||||
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
|
getVariazioneGriglia = true;
|
||||||
|
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
|
||||||
|
grigliaAcquisto = Stream.of(grigliaAcquisto)
|
||||||
|
.filter(x -> x.getDataValidita().equals(variazioniPvInputDTO.getDataValidita()) &&
|
||||||
|
x.getCodMdep().equalsIgnoreCase(codMdep))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
int i = 1;
|
||||||
|
for (VariazioniDettaglioDTO variazioni : elencoVar) {
|
||||||
|
CodMartType codMart = fillArticoloData(objectFactory, variazioni, variazioniPvInputDTO, invioIngredienti, getSetupSectionDepo, codMdep, setupDescr,
|
||||||
|
setup.get("LIBERO1"),
|
||||||
|
setup.get("LIBERO2"), getVariazioneGriglia);
|
||||||
|
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
logger.trace(VariazioniPvService.class.getSimpleName() + " - creazione xml Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||||
}
|
}
|
||||||
|
logger.trace(VariazioniPvService.class.getSimpleName() + " - fine : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||||
|
|
||||||
if (fileVariazioniDTO.getCodVlis() != null && fileVariazioniDTO.getCodVlis().size() > 0) {
|
if (fileVariazioniDTO.getCodVlis() != null && fileVariazioniDTO.getCodVlis().size() > 0) {
|
||||||
|
|
||||||
@@ -155,140 +245,155 @@ public class VariazioniPvService {
|
|||||||
return fileVariazioniDTO;
|
return fileVariazioniDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CodMartType fillArticoloData(ObjectFactory objectFactory, HashMap<String, Object> var,
|
private List<VariazioniDTO> getListini(VariazioniPvInputDTO variazioniPvDTO, boolean existVariazioni) throws Exception {
|
||||||
VariazioniPvInputDTO variazioniPvDTO,
|
return getListini(multiDBTransactionManager, variazioniPvDTO, existVariazioni);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<VariazioniDTO> getListini(MultiDBTransactionManager mdb, VariazioniPvInputDTO variazioniPvDTO, boolean existVariazioni) throws Exception {
|
||||||
|
List<VariazioniDTO> listini;
|
||||||
|
if (existVariazioni) {
|
||||||
|
listini = variazioniPvDTO.getVariazioni().stream()
|
||||||
|
.map(x -> new VariazioniDTO()
|
||||||
|
.setCodVlis(x.getCodVlis())
|
||||||
|
.setCodMdep(x.getCodMdep())
|
||||||
|
.setDescrizione(x.getDescrizione())
|
||||||
|
.setFlagListIvaInclusa(x.getFlagListIvaInclusa()))
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
} else {
|
||||||
|
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 ";
|
||||||
|
|
||||||
|
if (variazioniPvDTO != null) {
|
||||||
|
if (!UtilityString.isNullOrEmpty(variazioniPvDTO.getCodVlis()))
|
||||||
|
sql = UtilityDB.addwhereCond(sql, String.format("vtb_list.cod_vlis = '%s'", variazioniPvDTO.getCodVlis()), false);
|
||||||
|
sql = UtilityDB.addwhereCond(sql, variazioniPvDTO.getWhereCondLisv(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
listini = UtilityDB.executeSimpleQueryDTO(mdb.getPrimaryConnection(), sql, VariazioniDTO.class);
|
||||||
|
}
|
||||||
|
return listini;
|
||||||
|
}
|
||||||
|
|
||||||
|
private CodMartType fillArticoloData(ObjectFactory objectFactory,
|
||||||
|
VariazioniDettaglioDTO var,
|
||||||
|
VariazioniPvInputDTO variazioniPvInputDTO,
|
||||||
String invioIngredientiSetup,
|
String invioIngredientiSetup,
|
||||||
Map<String, String> setupDepo,
|
Map<String, String> setupDepo,
|
||||||
String codMdep,
|
String codMdep,
|
||||||
String colNameDescrEstesa,
|
String setupDescr,
|
||||||
String valLibero1,
|
String valLibero1,
|
||||||
String valLibero2,
|
String valLibero2,
|
||||||
boolean getVariazioneGriglia) throws Exception {
|
boolean getVariazioneGriglia) throws Exception {
|
||||||
|
|
||||||
CodMartType codMartType = objectFactory.createCodMartType();
|
CodMartType codMartType = objectFactory.createCodMartType();
|
||||||
String codMart = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_mart"));
|
String codMart = var.getCodMart();
|
||||||
String flagTipoPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_tipo_promo"));
|
String flagTipoPromo = var.getFlagTipoPromo();
|
||||||
BigDecimal przPieno = UtilityHashMap.getValueIfExists(var, "prezzo_pieno");
|
BigDecimal przPieno = var.getPrezzoPieno();
|
||||||
BigDecimal przPienoIva = UtilityHashMap.getValueIfExists(var, "prz_pieno_iva");
|
BigDecimal przPienoIva = var.getPrzPienoIva();
|
||||||
BigDecimal przVend = UtilityHashMap.getValueIfExists(var, "prz_vend");
|
BigDecimal przVend = var.getPrzVend();
|
||||||
BigDecimal przVendIva = UtilityHashMap.getValueIfExists(var, "prz_vend_iva");
|
BigDecimal przVendIva = var.getPrzVendIva();
|
||||||
|
|
||||||
if ("P".equals(flagTipoPromo)) {
|
if ("P".equals(flagTipoPromo)) {
|
||||||
przPienoIva = przVendIva;
|
przPienoIva = przVendIva;
|
||||||
przPieno = przVend;
|
przPieno = przVend;
|
||||||
}
|
}
|
||||||
|
|
||||||
String dataFinePromoS = "";
|
String dataFinePromoS = convertDateToString(var.getDataFine());
|
||||||
Date dataFinePromo = UtilityHashMap.getValueIfExists(var, "data_fine");
|
String dataInizPromoS = convertDateToString(var.getDataInizPromo());
|
||||||
if (dataFinePromo != null) {
|
String dataUltVarS = convertDateToString(var.getDataUltVar());
|
||||||
dataFinePromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataFinePromo);
|
String dataAggPrzS = convertDateToString(var.getDataIniz());
|
||||||
}
|
|
||||||
String dataInizPromoS = "";
|
|
||||||
Date dataInizPromo = UtilityHashMap.getValueIfExists(var, "data_iniz_promo");
|
|
||||||
if (dataInizPromo != null) {
|
|
||||||
dataInizPromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataInizPromo);
|
|
||||||
}
|
|
||||||
|
|
||||||
String dataUltVarS = "";
|
String tipoVariazioneLisv = var.getTipoVariazioneLisv();
|
||||||
Date dataUltVar = UtilityHashMap.getValueIfExists(var, "data_ult_var");
|
String flagStato = var.getFlagStato();
|
||||||
if (dataUltVar != null) {
|
|
||||||
dataUltVarS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataUltVar);
|
|
||||||
}
|
|
||||||
|
|
||||||
String dataAggPrzS = "";
|
|
||||||
Date dataAggPrz = UtilityHashMap.getValueIfExists(var, "data_iniz");
|
|
||||||
if (dataAggPrz != null) {
|
|
||||||
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"));
|
|
||||||
if ("D".equalsIgnoreCase(tipoVariazioneLisv)) {
|
if ("D".equalsIgnoreCase(tipoVariazioneLisv)) {
|
||||||
flagStato = "I";
|
flagStato = "I";
|
||||||
}
|
}
|
||||||
codMartType.getContent().add(codMart);
|
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.createCodMartTypeDescrizione(UtilityString.streNull(var.getDescrArt())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis2(UtilityString.streNull(var.getUntMis2())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv2"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis(UtilityString.streNull(var.getUntMis())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis3(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis3"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv2(UtilityString.bigDecimalToString(var.getRapConv2(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv3"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis3(UtilityString.streNull(var.getUntMis3())));
|
||||||
CodMgrpType codMgrpType = objectFactory.createCodMgrpType();
|
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv3(UtilityString.bigDecimalToString(var.getRapConv3(), "###0.00").replace(",", ".")));
|
||||||
codMgrpType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_mgrp")));
|
CodMgrpType codMgrpType = getCodMgrpType(objectFactory, var);
|
||||||
codMgrpType.setDescrGrup(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_grup")));
|
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodMgrp(codMgrpType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodMgrp(codMgrpType));
|
||||||
CodMsgrType codMsgrType = objectFactory.createCodMsgrType();
|
CodMsgrType codMsgrType = getCodMsgrType(objectFactory, var);
|
||||||
codMsgrType.setValue(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_msgr")));
|
|
||||||
codMsgrType.setDescrSgrp(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_sgrp")));
|
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodMsgr(codMsgrType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodMsgr(codMsgrType));
|
||||||
CodMsfaType codMsfaType = objectFactory.createCodMsfaType();
|
CodMsfaType codMsfaType = getCodMsfaType(objectFactory, var);
|
||||||
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.createCodMartTypeCodMsfa(codMsfaType));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeRepartoCassa(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "reparto_cassa"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeRepartoCassa(UtilityString.streNull(var.getRepartoCassa())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "tipo_variazione"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazione(UtilityString.streNull(var.getTipoVariazione())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneLisv(tipoVariazioneLisv));
|
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(var.getPrzBase(), "###0.00###").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePrzVend(UtilityString.bigDecimalToString(przVend, "###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.createCodMartTypePrzVendIva(UtilityString.bigDecimalToString(przVendIva, "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePosizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "posizione"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypePosizione(UtilityString.streNull(var.getPosizione())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "unt_mis_ven"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeUntMisVen(UtilityString.streNull(var.getUntMisVen())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeRapConvVen(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "rap_conv"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeRapConvVen(UtilityString.bigDecimalToString(var.getRapConv(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePesoKg(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "peso_kg"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePesoKg(UtilityString.bigDecimalToString(var.getPesoKg(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagEsponiPrz(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_esponi_prz"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagEsponiPrz(UtilityString.streNull(var.getFlagEsponiPrz())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSfrido(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sfrido"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePercSfrido(UtilityString.bigDecimalToString(var.getPercSfrido(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarreImb(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_barre_imb"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarreImb(UtilityString.streNull(var.getCodBarreImb())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_calc_prz"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrz(UtilityString.streNull(var.getFlagCalcPrz())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneCompAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "esposizione_comp_acq"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneCompAcq(UtilityString.streNull(var.getEsposizioneCompAcq())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "esposizione_comp"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeEsposizioneComp(UtilityString.streNull(var.getEsposizioneComp())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrzAcq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_calc_prz_acq"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagCalcPrzAcq(UtilityString.streNull(var.getFlagCalcPrzAcq())));
|
||||||
BigDecimal colliPedane = UtilityHashMap.getValueIfExists(var, "colli_pedana");
|
BigDecimal colliPedane = var.getColliPedana();
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeColliPedane(UtilityString.bigDecimalToString(colliPedane == null ? BigDecimal.ZERO : colliPedane, "###0.00").replace(",", ".")));
|
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.createCodMartTypePercSco1(UtilityString.bigDecimalToString(var.getPercSco1(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco2(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco2"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePercSco2(UtilityString.bigDecimalToString(var.getPercSco2(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco3(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco3"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePercSco3(UtilityString.bigDecimalToString(var.getPercSco3(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePercSco4(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_sco4"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePercSco4(UtilityString.bigDecimalToString(var.getPercSco4(), "###0.00").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataUltVar(dataUltVarS));
|
codMartType.getContent().add(objectFactory.createCodMartTypeDataUltVar(dataUltVarS));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataAggPrz(dataAggPrzS));
|
codMartType.getContent().add(objectFactory.createCodMartTypeDataAggPrz(dataAggPrzS));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarre(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_barre"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodBarre(UtilityString.streNull(var.getCodBarre())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePlu(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "plu"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypePlu(UtilityString.streNull(var.getPlu())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagStato(flagStato));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagStato(flagStato));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeQtaCnf(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "qta_cnf"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeQtaCnf(UtilityString.bigDecimalToString(var.getQtaCnf(), "###0.00").replace(",", ".")));
|
||||||
BigDecimal tara = UtilityHashMap.getValueIfExists(var, "tara_kg");
|
BigDecimal tara = var.getTaraKg();
|
||||||
if (tara.compareTo(BigDecimal.ZERO) != 0) {
|
if (tara.compareTo(BigDecimal.ZERO) != 0) {
|
||||||
tara = (tara.multiply(new BigDecimal("1000"))).setScale(0, RoundingMode.HALF_UP);
|
tara = (tara.multiply(new BigDecimal("1000"))).setScale(0, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeTara(UtilityString.bigDecimalToString(tara, "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeTara(UtilityString.bigDecimalToString(tara, "###0.00").replace(",", ".")));
|
||||||
String descrizioneEstesa = UtilityHashMap.getValueIfExists(var, colNameDescrEstesa);
|
String descrizioneEstesa = var.getDescrizioneEstesa();
|
||||||
if (UtilityString.isNullOrEmpty(descrizioneEstesa))
|
if (!UtilityString.isNullOrEmpty(setupDescr)) {
|
||||||
descrizioneEstesa = UtilityHashMap.getValueIfExists(var, "descrizione_estesa");
|
if (setupDescr.equalsIgnoreCase("D"))
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizioneEstesa(UtilityString.streNull(descrizioneEstesa)));
|
descrizioneEstesa = var.getDescrArt();
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeAnnotazioniArt(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "annotazioni_art"))));
|
else if (setupDescr.equalsIgnoreCase("B"))
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodAliq(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_aliq"))));
|
descrizioneEstesa = var.getDescrCassa();
|
||||||
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.createCodMartTypeDescrizioneEstesa(descrizioneEstesa));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTracciabilita(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "flag_tracciabilita"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeAnnotazioniArt(UtilityString.streNull(var.getAnnotazioniArt())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeGgScadPartita(String.valueOf(UtilityHashMap.<Integer>getValueIfExists(var, "gg_scad_partita"))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodAliq(UtilityString.streNull(var.getCodAliq())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePercAliq(UtilityString.bigDecimalToString(UtilityHashMap.getValueIfExists(var, "perc_aliq"), "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypeArticoloComposto(UtilityString.streNull(var.getArticoloComposto())));
|
||||||
|
codMartType.getContent().add(objectFactory.createCodMartTypeTipoEan(UtilityString.streNull(var.getTipoCodice())));
|
||||||
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTracciabilita(UtilityString.streNull(var.getFlagTracciabilita())));
|
||||||
|
codMartType.getContent().add(objectFactory.createCodMartTypeGgScadPartita(String.valueOf(var.getGgScadPartita())));
|
||||||
|
codMartType.getContent().add(objectFactory.createCodMartTypePercAliq(UtilityString.bigDecimalToString(var.getPercAliq(), "###0.00").replace(",", ".")));
|
||||||
|
|
||||||
String idArtEqui = UtilityHashMap.getValueIfExists(var, "id_art_equi");
|
String idArtEqui = var.getIdArtEqui();
|
||||||
if (!UtilityString.isNullOrEmpty(idArtEqui)) {
|
if (!UtilityString.isNullOrEmpty(idArtEqui)) {
|
||||||
IdArtEquiType idArtEquiType = objectFactory.createIdArtEquiType();
|
IdArtEquiType idArtEquiType = getIdArtEquiType(objectFactory, var, idArtEqui);
|
||||||
idArtEquiType.setValue(idArtEqui);
|
|
||||||
idArtEquiType.setDescrizione(UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "descr_art_equi")));
|
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeIdArtEqui(idArtEquiType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeIdArtEqui(idArtEquiType));
|
||||||
}
|
}
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPieno(UtilityString.bigDecimalToString(przPieno, "###0.00###").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPieno(UtilityString.bigDecimalToString(przPieno, "###0.00###").replace(",", ".")));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPienoIva(UtilityString.bigDecimalToString(przPienoIva, "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPienoIva(UtilityString.bigDecimalToString(przPienoIva, "###0.00").replace(",", ".")));
|
||||||
|
|
||||||
//PUNTI ARTICOLO
|
//PUNTI ARTICOLO
|
||||||
BigDecimal puntiArticolo = getPuntiArt(codMart, variazioniPvDTO.getDataValidita());
|
BigDecimal puntiArticolo = getPuntiArt(codMart, variazioniPvInputDTO.getDataValidita());
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePuntiArticolo(UtilityString.bigDecimalToString(puntiArticolo, "###0.00").replace(",", ".")));
|
codMartType.getContent().add(objectFactory.createCodMartTypePuntiArticolo(UtilityString.bigDecimalToString(puntiArticolo, "###0.00").replace(",", ".")));
|
||||||
|
|
||||||
//PROMOZIONE MxN
|
//PROMOZIONE MxN
|
||||||
HashMap<String, Object> datiPromo = new HashMap<>();
|
HashMap<String, Object> datiPromo = new HashMap<>();
|
||||||
FlagMxnType flagMxnType = getScontoMerce(objectFactory, codMart, variazioniPvDTO.getDataValidita(), datiPromo);
|
FlagMxnType flagMxnType = getScontoMerce(objectFactory, codMart, variazioniPvInputDTO.getDataValidita(), datiPromo);
|
||||||
|
|
||||||
String finePromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "fine_promo"));
|
String finePromo = UtilityString.streNull(var.getFinePromo());
|
||||||
String codPromo = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "cod_promo"));
|
String codPromo = UtilityString.streNull(var.getCodPromo());
|
||||||
if (flagMxnType.getValue().equalsIgnoreCase("S") && finePromo.equalsIgnoreCase("S")) {
|
if (flagMxnType.getValue().equalsIgnoreCase("S") && finePromo.equalsIgnoreCase("S")) {
|
||||||
codPromo = (String) datiPromo.get("cod_promo");
|
codPromo = (String) datiPromo.get("cod_promo");
|
||||||
dataInizPromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(datiPromo.get("data_iniz"));
|
dataInizPromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(datiPromo.get("data_iniz"));
|
||||||
@@ -296,24 +401,23 @@ public class VariazioniPvService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodPromo(codPromo));
|
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(var.getDescrPromo())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTipoPromo(flagTipoPromo));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagTipoPromo(UtilityString.streNull(flagTipoPromo)));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataInizPromo(dataInizPromoS));
|
codMartType.getContent().add(objectFactory.createCodMartTypeDataInizPromo(dataInizPromoS));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeDataFinePromo(dataFinePromoS));
|
codMartType.getContent().add(objectFactory.createCodMartTypeDataFinePromo(dataFinePromoS));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFinePromo(finePromo));
|
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(var.getIdPromo())));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeFlagMxn(flagMxnType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeFlagMxn(flagMxnType));
|
||||||
|
|
||||||
//INGREDIENTI
|
//INGREDIENTI
|
||||||
String inviaIngrOpz = null;
|
String inviaIngrOpz = variazioniPvInputDTO.getInviaIngredienti();
|
||||||
inviaIngrOpz = variazioniPvDTO.getInviaIngredienti();
|
|
||||||
if (UtilityString.isNullOrEmpty(inviaIngrOpz)) {
|
if (UtilityString.isNullOrEmpty(inviaIngrOpz)) {
|
||||||
//PER CARELLI ABBIAMO RESO OPZIONALE L'INVIO DEGLI INGREDIENTI (SOLO SE VARIATI IN DISTINTA BASE) PER TUTTI GLI ALTRI
|
//PER CARELLI ABBIAMO RESO OPZIONALE L'INVIO DEGLI INGREDIENTI (SOLO SE VARIATI IN DISTINTA BASE) PER TUTTI GLI ALTRI
|
||||||
//GLI INGREDIENTI VENGONO COMUNQUE INVIATI
|
//GLI INGREDIENTI VENGONO COMUNQUE INVIATI
|
||||||
inviaIngrOpz = invioIngredientiSetup;
|
inviaIngrOpz = invioIngredientiSetup;
|
||||||
}
|
}
|
||||||
String ingredienti = UtilityString.streNull(UtilityHashMap.getValueIfExists(var, "ingredienti"));
|
String ingredienti = UtilityString.streNull(var.getIngredienti());
|
||||||
IngredientiType ingredientiType = getIngredienti(objectFactory, codMart, variazioniPvDTO.getDataValidita(), variazioniPvDTO.getTipoReportEnum(), tipoVariazioneLisv, inviaIngrOpz, ingredienti);
|
IngredientiType ingredientiType = getIngredienti(objectFactory, codMart, variazioniPvInputDTO.getDataValidita(), variazioniPvInputDTO.getTipoReportEnum(), tipoVariazioneLisv, inviaIngrOpz, ingredienti);
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeIngredienti(ingredientiType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeIngredienti(ingredientiType));
|
||||||
|
|
||||||
//COMPONENTI
|
//COMPONENTI
|
||||||
@@ -321,7 +425,7 @@ public class VariazioniPvService {
|
|||||||
codMartType.getContent().add(objectFactory.createCodMartTypeComponenti(componentiType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeComponenti(componentiType));
|
||||||
|
|
||||||
//PREMI
|
//PREMI
|
||||||
PremioType premioType = getPuntiPremi(objectFactory, codMart, variazioniPvDTO.getDataValidita());
|
PremioType premioType = getPuntiPremi(objectFactory, codMart, variazioniPvInputDTO.getDataValidita());
|
||||||
if (premioType != null) {
|
if (premioType != null) {
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypePremio(premioType));
|
codMartType.getContent().add(objectFactory.createCodMartTypePremio(premioType));
|
||||||
}
|
}
|
||||||
@@ -332,7 +436,7 @@ public class VariazioniPvService {
|
|||||||
|
|
||||||
//DATI GRIGLIA DI ACQUISTO
|
//DATI GRIGLIA DI ACQUISTO
|
||||||
if ("S".equalsIgnoreCase(setupDepo.get("SELEZIONA_GRIGLIE"))) {
|
if ("S".equalsIgnoreCase(setupDepo.get("SELEZIONA_GRIGLIE"))) {
|
||||||
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvDTO.getDataValidita(), codMartType, getVariazioneGriglia);
|
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvInputDTO.getDataValidita(), codMartType, getVariazioneGriglia);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("S".equalsIgnoreCase(setupDepo.get("ABILITA_CAMPI_LIBERI"))) {
|
if ("S".equalsIgnoreCase(setupDepo.get("ABILITA_CAMPI_LIBERI"))) {
|
||||||
@@ -340,10 +444,11 @@ public class VariazioniPvService {
|
|||||||
codMartType.getContent().add(objectFactory.createCodMartTypeLibero2(UtilityString.streNull(getValueCampoLibero(valLibero2, var, codMdep, codMart))));
|
codMartType.getContent().add(objectFactory.createCodMartTypeLibero2(UtilityString.streNull(getValueCampoLibero(valLibero2, var, codMdep, codMart))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return codMartType;
|
return codMartType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getValueCampoLibero(String tipoValore, HashMap<String, Object> var, String codMdep, String codMart) throws Exception {
|
private String getValueCampoLibero(String tipoValore, VariazioniDettaglioDTO var, String codMdep, String codMart) throws Exception {
|
||||||
if (UtilityString.isNullOrEmpty(tipoValore)) return "";
|
if (UtilityString.isNullOrEmpty(tipoValore)) return "";
|
||||||
if (tipoValore.equalsIgnoreCase("M")) {
|
if (tipoValore.equalsIgnoreCase("M")) {
|
||||||
String sql =
|
String sql =
|
||||||
@@ -363,13 +468,49 @@ public class VariazioniPvService {
|
|||||||
}
|
}
|
||||||
return (valMedio == null ? "" : new DecimalFormat("#,##0.00").format(valMedio));
|
return (valMedio == null ? "" : new DecimalFormat("#,##0.00").format(valMedio));
|
||||||
} else if (tipoValore.equalsIgnoreCase("P")) {
|
} else if (tipoValore.equalsIgnoreCase("P")) {
|
||||||
return UtilityHashMap.getValueIfExists(var, "posizione_art");
|
return var.getPosizioneArticolo();
|
||||||
} else if (tipoValore.equalsIgnoreCase("T")) {
|
} else if (tipoValore.equalsIgnoreCase("T")) {
|
||||||
return UtilityHashMap.getValueIfExists(var, "intercode_xml_variazioni");
|
return var.getIntercodeXmlVariazioni();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String convertDateToString(Date data) {
|
||||||
|
String dataString = "";
|
||||||
|
if (data != null) {
|
||||||
|
dataString = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(data);
|
||||||
|
}
|
||||||
|
return dataString;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IdArtEquiType getIdArtEquiType(ObjectFactory objectFactory, VariazioniDettaglioDTO var, String idArtEqui) {
|
||||||
|
IdArtEquiType idArtEquiType = objectFactory.createIdArtEquiType();
|
||||||
|
idArtEquiType.setValue(idArtEqui);
|
||||||
|
idArtEquiType.setDescrizione(UtilityString.streNull(var.getDescrArtEqui()));
|
||||||
|
return idArtEquiType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CodMsfaType getCodMsfaType(ObjectFactory objectFactory, VariazioniDettaglioDTO var) {
|
||||||
|
CodMsfaType codMsfaType = objectFactory.createCodMsfaType();
|
||||||
|
codMsfaType.setValue(UtilityString.streNull(var.getCodMsfa()));
|
||||||
|
codMsfaType.setDescrSfam(UtilityString.streNull(var.getDescrMsfa()));
|
||||||
|
return codMsfaType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CodMsgrType getCodMsgrType(ObjectFactory objectFactory, VariazioniDettaglioDTO var) {
|
||||||
|
CodMsgrType codMsgrType = objectFactory.createCodMsgrType();
|
||||||
|
codMsgrType.setValue(UtilityString.streNull(var.getCodMsgr()));
|
||||||
|
codMsgrType.setDescrSgrp(UtilityString.streNull(var.getDescrSgrp()));
|
||||||
|
return codMsgrType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CodMgrpType getCodMgrpType(ObjectFactory objectFactory, VariazioniDettaglioDTO var) {
|
||||||
|
CodMgrpType codMgrpType = objectFactory.createCodMgrpType();
|
||||||
|
codMgrpType.setValue(UtilityString.streNull(var.getCodMgrp()));
|
||||||
|
codMgrpType.setDescrGrup(UtilityString.streNull(var.getDescrGrup()));
|
||||||
|
return codMgrpType;
|
||||||
|
}
|
||||||
|
|
||||||
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
|
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
|
||||||
HashMap<String, String> setup,
|
HashMap<String, String> setup,
|
||||||
String codVlis,
|
String codVlis,
|
||||||
@@ -494,7 +635,7 @@ public class VariazioniPvService {
|
|||||||
" ON listino.cod_vlis = promozione.cod_vlis AND listino.cod_mart = promozione.cod_mart\n" +
|
" 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" +
|
" LEFT OUTER JOIN vtb_promo ON promozione.cod_promo = vtb_promo.cod_promo\n" +
|
||||||
"WHERE vtb_promo.cod_promo_intercode IS NULL\n" +
|
"WHERE vtb_promo.cod_promo_intercode IS NULL\n" +
|
||||||
((variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.LISTINO) ?
|
((variazioniPvDTO.getTipoReportEnum() == VariazioniReportType.LISTINO) ?
|
||||||
" AND ( (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'S') " +
|
" AND ( (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'S') " +
|
||||||
" OR (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'N' AND listino.tipo_variazione <> 'D')) " : "") +
|
" OR (IsNull('[INVIA_DISATTIVAZIONI]', 'N') = 'N' AND listino.tipo_variazione <> 'D')) " : "") +
|
||||||
"ORDER BY listino.cod_mart ";
|
"ORDER BY listino.cod_mart ";
|
||||||
@@ -509,14 +650,13 @@ public class VariazioniPvService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getElencoCasse(String codMdep) throws Exception {
|
private String getElencoCasse(MultiDBTransactionManager mdb, String codMdep) throws Exception {
|
||||||
String sql =
|
String sql =
|
||||||
"SELECT mtb_depo_casse.cod_cassa\n" +
|
"SELECT mtb_depo_casse.cod_cassa\n" +
|
||||||
" FROM mtb_depo_casse\n" +
|
" FROM mtb_depo_casse\n" +
|
||||||
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
|
" WHERE mtb_depo_casse.cod_mdep = " + UtilityDB.valueToString(codMdep);
|
||||||
|
|
||||||
List<Object> casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
List<String> casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
return StringUtils.join(casse, "|");
|
return StringUtils.join(casse, "|");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -577,17 +717,6 @@ public class VariazioniPvService {
|
|||||||
"WHERE '[DATA_VALIDITA]' BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine\n" +
|
"WHERE '[DATA_VALIDITA]' BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine\n" +
|
||||||
" AND vtb_list_data.cod_vlis = '[COD_VLIS]'\n" +
|
" AND vtb_list_data.cod_vlis = '[COD_VLIS]'\n" +
|
||||||
"UNION\n" +
|
"UNION\n" +
|
||||||
"SELECT mtb_depo.cod_vlis,\n" +
|
|
||||||
" atb_griglie_art.cod_mart,\n" +
|
|
||||||
" 'G' AS tipo_variazione,\n" +
|
|
||||||
" CONVERT(VARCHAR(15), NULL) AS cod_mart_new,\n" +
|
|
||||||
" 'N' AS 'fine_promo'\n" +
|
|
||||||
"FROM atb_griglie_art\n" +
|
|
||||||
" INNER JOIN mtb_depo ON atb_griglie_art.cod_mdep = mtb_depo.cod_mdep\n" +
|
|
||||||
"WHERE atb_griglie_art.data_validita BETWEEN DateAdd(day, -1, '[DATA_VALIDITA]') AND '[DATA_VALIDITA]'\n" +
|
|
||||||
" AND mtb_depo.cod_vlis = '[COD_VLIS]'\n" +
|
|
||||||
" AND " + UtilityDB.valueToString(selezionaGriglia) + " = 'S'\n" +
|
|
||||||
"UNION\n" +
|
|
||||||
"SELECT lisv.cod_vlis\n" +
|
"SELECT lisv.cod_vlis\n" +
|
||||||
" , lisv.cod_mart\n" +
|
" , lisv.cod_mart\n" +
|
||||||
" , tipo_variazione\n" +
|
" , tipo_variazione\n" +
|
||||||
@@ -746,7 +875,7 @@ public class VariazioniPvService {
|
|||||||
return flagMxnType;
|
return flagMxnType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IngredientiType getIngredienti(ObjectFactory objectFactory, String codMart, Date dataVariazioni, VariazioniPvInputDTO.Type tipoReport, String tipoVariazioneLisv, String invioIngOpz, String ingredientiArt) throws Exception {
|
private IngredientiType getIngredienti(ObjectFactory objectFactory, String codMart, Date dataVariazioni, VariazioniReportType tipoReport, String tipoVariazioneLisv, String invioIngOpz, String ingredientiArt) throws Exception {
|
||||||
IngredientiType ingredientiType = objectFactory.createIngredientiType();
|
IngredientiType ingredientiType = objectFactory.createIngredientiType();
|
||||||
if (UtilityString.isNullOrEmpty(ingredientiArt)) {
|
if (UtilityString.isNullOrEmpty(ingredientiArt)) {
|
||||||
String whereCond = "";
|
String whereCond = "";
|
||||||
@@ -759,7 +888,7 @@ public class VariazioniPvService {
|
|||||||
" ORDER BY jtb_dist_mate.id_riga";
|
" ORDER BY jtb_dist_mate.id_riga";
|
||||||
|
|
||||||
if ("S".equalsIgnoreCase(invioIngOpz)) {
|
if ("S".equalsIgnoreCase(invioIngOpz)) {
|
||||||
if (tipoReport.compareTo(VariazioniPvInputDTO.Type.LISTINO) != 0 &&
|
if (tipoReport.compareTo(VariazioniReportType.LISTINO) != 0 &&
|
||||||
!"I".equalsIgnoreCase(tipoVariazioneLisv)) {
|
!"I".equalsIgnoreCase(tipoVariazioneLisv)) {
|
||||||
whereCond = "jtb_cicl.data_ult_var = " + UtilityDB.valueDateToString(dataVariazioni, CommonConstants.DATE_FORMAT_YMD);
|
whereCond = "jtb_cicl.data_ult_var = " + UtilityDB.valueDateToString(dataVariazioni, CommonConstants.DATE_FORMAT_YMD);
|
||||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||||
@@ -966,4 +1095,221 @@ public class VariazioniPvService {
|
|||||||
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneGriglia(tipoVariazioneGriglia));
|
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneGriglia(tipoVariazioneGriglia));
|
||||||
codMartType.getContent().add(objectFactory.createCodMartTypeCodAlis(codAlisType));
|
codMartType.getContent().add(objectFactory.createCodMartTypeCodAlis(codAlisType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void exportByTipoReport(String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||||
|
List<String> tipiReport = new ArrayList<>();
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(tipoReport))
|
||||||
|
tipiReport.add(tipoReport);
|
||||||
|
else {
|
||||||
|
tipiReport.add("V"); //Variazioni
|
||||||
|
tipiReport.add("P"); //Promozioni
|
||||||
|
tipiReport.add("G"); //Griglie
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean existVariazioni = false;
|
||||||
|
if (variazioniPvInputDTO != null)
|
||||||
|
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||||
|
|
||||||
|
Date dataValidita = variazioniPvInputDTO.getDataValidita();
|
||||||
|
|
||||||
|
if (dataValidita == null)
|
||||||
|
dataValidita = UtilityDate.RelativeDateTime(new Date(), 1);
|
||||||
|
|
||||||
|
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
|
||||||
|
|
||||||
|
List<RunnableArgsThrowable<Triple<String, String, List<VariazioniDettaglioDTO>>>> calls = new ArrayList<>();
|
||||||
|
|
||||||
|
for (VariazioniDTO pv : listini) {
|
||||||
|
for (String report : tipiReport) {
|
||||||
|
final Date finalDataValidita = dataValidita;
|
||||||
|
final String finalProfileDb = multiDBTransactionManager.getPrimaryDatasource().getProfile();
|
||||||
|
|
||||||
|
calls.add(() -> {
|
||||||
|
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(finalProfileDb)) {
|
||||||
|
String codVlis = pv.getCodVlis();
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
String.format("Variazioni: Export [CodListino: %s, TipoReport: %s, Validità: %s]",
|
||||||
|
codVlis,
|
||||||
|
report,
|
||||||
|
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(finalDataValidita)));
|
||||||
|
|
||||||
|
return new Triple<>(codVlis, report, exportVariazioni(mdb, codVlis, finalDataValidita, report, variazioniPvInputDTO));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final ArrayList<Result<Triple<String, String, List<VariazioniDettaglioDTO>>>> results = UtilityThread.executeParallel(calls, 6);
|
||||||
|
|
||||||
|
final List<Triple<String, String, List<VariazioniDettaglioDTO>>> completedExports = results.stream()
|
||||||
|
.filter(x -> x instanceof Result.Success)
|
||||||
|
.map(x -> ((Result.Success<Triple<String, String, List<VariazioniDettaglioDTO>>>) x).getData())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
final List<Exception> generatedErrors = results.stream()
|
||||||
|
.filter(x -> x instanceof Result.Error)
|
||||||
|
.map(x -> ((Result.Error<?>) x).getError())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
String emailForLog = setupGest.getExportSetup(multiDBTransactionManager.getPrimaryConnection(), "VARIAZIONE PV", "XML_DIALOGO", "EMAIL_FOR_LOG");
|
||||||
|
|
||||||
|
emailForLog = "g.scorrano@integry.it";
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(emailForLog)) {
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (Triple<String, String, List<VariazioniDettaglioDTO>> completedExport : completedExports) {
|
||||||
|
if(completedExport.getThird().isEmpty())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
sb.append("Esportazione ")
|
||||||
|
.append(completedExport.getSecond())
|
||||||
|
.append(" punto vendita ")
|
||||||
|
.append(completedExport.getFirst())
|
||||||
|
.append(" (").append(completedExport.getThird().size()).append(" variazioni)")
|
||||||
|
.append(" avvenuta con successo\n\r");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!generatedErrors.isEmpty())
|
||||||
|
sb.append("\n\r\n\rErrori\n\r");
|
||||||
|
|
||||||
|
|
||||||
|
for (Exception generatedError : generatedErrors) {
|
||||||
|
sb.append("Messaggio errore: ")
|
||||||
|
.append(generatedError.getMessage())
|
||||||
|
.append("\n\r");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mailService.sendMailPrimary(multiDBTransactionManager,
|
||||||
|
null, null,
|
||||||
|
emailForLog, null, null,
|
||||||
|
"Esportazione variazioni", sb.toString(), false, false,
|
||||||
|
null, null, null,
|
||||||
|
false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<VariazioniDettaglioDTO> exportVariazioni(MultiDBTransactionManager multiDBTransactionManager, String codVlis, Date dataValidita, String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||||
|
VariazioniPvInputDTO v =
|
||||||
|
new VariazioniPvInputDTO()
|
||||||
|
.setCodVlis(codVlis)
|
||||||
|
.setTipoReport(tipoReport)
|
||||||
|
.setDataValidita(dataValidita)
|
||||||
|
.setWhereCondArt(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondArt() : null)
|
||||||
|
.setWhereCondLisv(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondLisv() : null)
|
||||||
|
.setWhereCondDoc(variazioniPvInputDTO != null ? variazioniPvInputDTO.getWhereCondDoc() : null)
|
||||||
|
.setInviaIngredienti(variazioniPvInputDTO != null ? variazioniPvInputDTO.getInviaIngredienti() : "S")
|
||||||
|
.setFileXml(variazioniPvInputDTO != null ? variazioniPvInputDTO.getFileXml() : null)
|
||||||
|
.setInviaDisattivazioni(variazioniPvInputDTO != null ? variazioniPvInputDTO.getInviaDisattivazioni() : "N")
|
||||||
|
.setUserName(variazioniPvInputDTO != null ? variazioniPvInputDTO.getUserName() : null)
|
||||||
|
.setVariazioni(variazioniPvInputDTO != null ? variazioniPvInputDTO.getVariazioni() : new ArrayList<>());
|
||||||
|
|
||||||
|
|
||||||
|
return exportVariazioni(multiDBTransactionManager, codVlis, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void exportByCodVlis(String codVlis, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||||
|
exportVariazioni(multiDBTransactionManager, codVlis, variazioniPvInputDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<VariazioniDettaglioDTO> exportVariazioni(MultiDBTransactionManager multiDBTransactionManager, String codVlis, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
|
||||||
|
|
||||||
|
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||||
|
|
||||||
|
if (!existVariazioni) {
|
||||||
|
variazioniPvInputDTO.setCodVlis(codVlis);
|
||||||
|
|
||||||
|
List<VariazioniDettaglioDTO> variazioniDettaglioList = calcVariazionePrezzoPV(multiDBTransactionManager, variazioniPvInputDTO);
|
||||||
|
variazioniPvInputDTO.setVariazioni(variazioniDettaglioList);
|
||||||
|
|
||||||
|
existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && !variazioniPvInputDTO.getVariazioni().isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (existVariazioni) {
|
||||||
|
final String exportType = "VARIAZIONE PV";
|
||||||
|
String sql =
|
||||||
|
Query.format(
|
||||||
|
"SELECT value\n" +
|
||||||
|
"FROM mtb_depo\n" +
|
||||||
|
" LEFT OUTER JOIN stb_gest_setup_depo ON mtb_depo.cod_mdep = stb_gest_setup_depo.cod_mdep\n" +
|
||||||
|
" AND stb_gest_setup_depo.gest_name = 'DATI_AZIENDA' AND\n" +
|
||||||
|
" stb_gest_setup_depo.section = 'DATI_DEPOSITO' AND\n" +
|
||||||
|
" stb_gest_setup_depo.key_section = 'PROFILE_DB'\n" +
|
||||||
|
"WHERE mtb_depo.cod_vlis = %s", codVlis);
|
||||||
|
|
||||||
|
String profileDb = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(profileDb)) {
|
||||||
|
profileDb = multiDBTransactionManager.getPrimaryDatasource().getProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try (MultiDBTransactionManager multiDBPv = new MultiDBTransactionManager(profileDb)) {
|
||||||
|
runExportOnRemote(multiDBPv, variazioniPvInputDTO, codVlis, exportType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return variazioniPvInputDTO.getVariazioni();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void runExportOnRemote(MultiDBTransactionManager multiDBPv, VariazioniPvInputDTO variazioniPvInputDTO, String codVlis, String exportType) throws Exception {
|
||||||
|
String sql = Query.format("SELECT cod_mdep, descrizione FROM mtb_depo WHERE cod_vlis = %s and flag_movimentabile = 'S' ", codVlis);
|
||||||
|
HashMap<String, Object> datiDepo = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBPv.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
|
if (!UtilityHashMap.isPresent(datiDepo))
|
||||||
|
throw new Exception(String.format("Nessun deposito agganciato al listino %s", codVlis));
|
||||||
|
|
||||||
|
String codMdep = UtilityHashMap.getValueIfExists(datiDepo, "cod_mdep");
|
||||||
|
String descrizione = UtilityHashMap.getValueIfExists(datiDepo, "descrizione");
|
||||||
|
sql =
|
||||||
|
Query.format(
|
||||||
|
"SELECT wtb_depo.cod_mdep,\n" +
|
||||||
|
" wui.format_file,\n" +
|
||||||
|
" stb_user.user_name,\n" +
|
||||||
|
" stb_user.password,\n" +
|
||||||
|
" wui.priority\n" +
|
||||||
|
"FROM wtb_depo\n" +
|
||||||
|
" INNER JOIN stb_user ON wtb_depo.user_name = stb_user.user_name AND stb_user.key_group = '10'\n" +
|
||||||
|
" INNER JOIN wtb_users_info wui ON stb_user.user_name = wui.user_name AND\n" +
|
||||||
|
" wui.export_type = %s AND\n" +
|
||||||
|
" wui.flag_state = 'S' AND\n" +
|
||||||
|
" IsNull(wui.priority, '0') <> '0'\n" +
|
||||||
|
"WHERE wtb_depo.cod_mdep = %s",
|
||||||
|
exportType, codMdep);
|
||||||
|
|
||||||
|
List<HashMap<String, Object>> listExport = UtilityDB.executeSimpleQuery(multiDBPv.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
|
boolean existFormatFile = listExport.stream()
|
||||||
|
.anyMatch(x -> !UtilityString.isNullOrEmpty(UtilityHashMap.getValueIfExists(x, "format_file")));
|
||||||
|
|
||||||
|
if (!existFormatFile)
|
||||||
|
throw new Exception(String.format("Nessuna tipologia di esportazione configurata per il punto vendita %s - %s", codMdep, descrizione));
|
||||||
|
|
||||||
|
for (HashMap<String, Object> export : listExport) {
|
||||||
|
String userName = UtilityHashMap.getValueIfExists(export, "user_name");
|
||||||
|
String formatFile = UtilityHashMap.getValueIfExists(export, "format_file");
|
||||||
|
|
||||||
|
httpRestWrapper.callInternalExport(multiDBPv.getDistributoreDatasource().getProfile(),
|
||||||
|
userName,
|
||||||
|
exportType,
|
||||||
|
formatFile,
|
||||||
|
Entity.json(variazioniPvInputDTO));
|
||||||
|
|
||||||
|
boolean testError = false;
|
||||||
|
|
||||||
|
if (testError)
|
||||||
|
throw new Exception("TEST ERROR");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user