nuovo invio variazioni pianificabile

This commit is contained in:
2024-04-23 17:29:24 +02:00
parent 26b19bb545
commit e242956c61
13 changed files with 441 additions and 1964 deletions

View File

@@ -0,0 +1,108 @@
package it.integry.ems_model.entity;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.types.OperationType;
import org.kie.api.definition.type.PropertyReactive;
import com.fasterxml.jackson.annotation.JsonTypeName;
import java.util.Date;
@Master
@PropertyReactive
@Table(NtbVariazioniExportLog.ENTITY)
@JsonTypeName(NtbVariazioniExportLog.ENTITY)
public class NtbVariazioniExportLog extends EntityBase {
public NtbVariazioniExportLog() {
super();
}
private static final long serialVersionUID = 1L;
public static final String ENTITY = "ntb_variazioni_export_log";
@PK
@Identity
@SqlField(value = "id")
private Long id;
@SqlField(value = "cod_vlis")
private String codVlis;
@SqlField(value = "data_export")
private Date dataExport;
@SqlField(value = "json_string")
private String jsonString;
@SqlField(value = "user_name")
private String userName;
@SqlField(value = "format_file")
private String formatFile;
@SqlField(value = "xml_file_name")
private String xmlFileName;
@Override
public void checkPreSave() throws Exception {}
public Long getId() {
return id;
}
public NtbVariazioniExportLog setId(Long id) {
this.id = id;
return this;
}
public String getCodVlis() {
return codVlis;
}
public NtbVariazioniExportLog setCodVlis(String codVlis) {
this.codVlis = codVlis;
return this;
}
public Date getDataExport() {
return dataExport;
}
public NtbVariazioniExportLog setDataExport(Date dataExport) {
this.dataExport = dataExport;
return this;
}
public String getJsonString() {
return jsonString;
}
public NtbVariazioniExportLog setJsonString(String jsonString) {
this.jsonString = jsonString;
return this;
}
public String getUserName() {
return userName;
}
public NtbVariazioniExportLog setUserName(String userName) {
this.userName = userName;
return this;
}
public String getFormatFile() {
return formatFile;
}
public NtbVariazioniExportLog setFormatFile(String formatFile) {
this.formatFile = formatFile;
return this;
}
public String getXmlFileName() {
return xmlFileName;
}
public NtbVariazioniExportLog setXmlFileName(String xmlFileName) {
this.xmlFileName = xmlFileName;
return this;
}
}

View File

@@ -6,7 +6,7 @@ import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.response.StatusResponse;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvServiceNew;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService;
import it.integry.ems.status.ServiceChecker;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -31,7 +31,7 @@ public class VariazioniPvController {
private ServiceChecker serviceChecker;
@Autowired
private VariazioniPvServiceNew variazioniPvService;
private VariazioniPvService variazioniPvService;
@ExceptionHandler({Exception.class})
public @ResponseBody

View File

@@ -1,737 +0,0 @@
package it.integry.ems.retail.ReportVariazioni.dto.Variazioni;
import it.integry.ems_model.annotation.MapToTable;
import java.math.BigDecimal;
import java.util.Date;
public class VariazioniDTO {
@MapToTable (value = "annotazioni_art")
private String annotazioniArt;
@MapToTable (value = "articolo_composto")
private String articoloComposto;
@MapToTable (value = "cod_aliq")
private String codAliq;
@MapToTable (value = "cod_barre")
private String codBarre;
@MapToTable (value = "cod_barre_imb")
private String codBarreImb;
@MapToTable (value = "cod_mart")
private String codMart;
@MapToTable (value = "cod_mdep")
private String codMdep;
@MapToTable (value = "cod_mgrp")
private String codMgrp;
@MapToTable (value = "cod_msfa")
private String codMsfa;
@MapToTable (value = "cod_msgr")
private String codMsgr;
@MapToTable (value = "cod_promo")
private String codPromo;
@MapToTable (value = "cod_vlis")
private String codVlis;
@MapToTable (value = "colli_pedana")
private String colliPedana;
@MapToTable (value = "data_fine")
private Date dataFine;
@MapToTable (value = "data_iniz")
private Date dataIniz;
@MapToTable (value = "data_iniz_promo")
private Date dataInizPromo;
@MapToTable (value = "data_ult_var")
private Date dataUltVar;
@MapToTable (value = "descr_art")
private String descrArt;
@MapToTable (value = "descr_art_equi")
private String descrArtEqui;
@MapToTable (value = "descr_grup")
private String descrGrup;
@MapToTable (value = "descr_lisv")
private String descrLisv;
@MapToTable (value = "descr_msfa")
private String descrMsfa;
@MapToTable (value = "descr_promo")
private String descrPromo;
@MapToTable (value = "descr_sgrp")
private String descrSgrp;
@MapToTable (value = "descrizione_estesa")
private String descrizioneEstesa;
@MapToTable (value = "esposizione_comp")
private String esposizioneComp;
@MapToTable (value = "esposizione_comp_acq")
private String esposizioneCompAcq;
@MapToTable (value = "fine_promo")
private String finePromo;
@MapToTable (value = "flag_calc_prz")
private String flagCalcPrz;
@MapToTable (value = "flag_calc_prz_acq")
private String flagCalcPrzAcq;
@MapToTable (value = "flag_esponi_prz")
private String flagEsponiPrz;
@MapToTable (value = "flag_list_iva_inclusa")
private String flagListIvaInclusa;
@MapToTable (value = "flag_stato")
private String flagStato;
@MapToTable (value = "flag_tipo_promo")
private String flagTipoPromo;
@MapToTable (value = "flag_tracciabilita")
private String flagTracciabilita;
@MapToTable (value = "gg_scad_partita")
private Integer ggScadPartita;
@MapToTable (value = "id_art_equi")
private String idArtEqui;
@MapToTable (value = "id_promo")
private String idPromo;
@MapToTable (value = "ingredienti")
private String ingredienti;
@MapToTable (value = "perc_aliq")
private BigDecimal percAliq;
@MapToTable (value = "perc_sco1")
private BigDecimal percSco1;
@MapToTable (value = "perc_sco2")
private BigDecimal percSco2;
@MapToTable (value = "perc_sco3")
private BigDecimal percSco3;
@MapToTable (value = "perc_sco4")
private BigDecimal percSco4;
@MapToTable (value = "perc_sfrido")
private BigDecimal percSfrido;
@MapToTable (value = "peso_kg")
private BigDecimal pesoKg;
@MapToTable (value = "plu")
private String plu;
@MapToTable (value = "posizione")
private String posizione;
@MapToTable (value = "prezzo_pieno")
private BigDecimal prezzoPieno;
@MapToTable (value = "prz_base")
private BigDecimal przBase;
@MapToTable (value = "prz_pieno_iva")
private BigDecimal przPienoIva;
@MapToTable (value = "prz_vend")
private BigDecimal przVend;
@MapToTable (value = "prz_vend_iva")
private BigDecimal przVendIva;
@MapToTable (value = "qta_cnf")
private BigDecimal qtaCnf;
@MapToTable (value = "rap_conv")
private BigDecimal rapConv;
@MapToTable (value = "rap_conv2")
private BigDecimal rapConv2;
@MapToTable (value = "rap_conv3")
private BigDecimal rapConv3;
@MapToTable (value = "reparto_cassa")
private String repartoCassa;
@MapToTable (value = "tara_kg")
private BigDecimal taraKg;
@MapToTable (value = "tipo_codice")
private String tipoCodice;
@MapToTable (value = "tipo_variazione")
private String tipoVariazione;
@MapToTable (value = "tipo_variazione_lisv")
private String tipoVariazioneLisv;
@MapToTable (value = "unt_mis")
private String untMis;
@MapToTable(value = "unt_mis_ven")
private String untMisVen;
@MapToTable (value = "unt_mis2")
private String untMis2;
@MapToTable (value = "unt_mis3")
private String untMis3;
public String getAnnotazioniArt() {
return annotazioniArt;
}
public VariazioniDTO setAnnotazioniArt(String annotazioniArt) {
this.annotazioniArt = annotazioniArt;
return this;
}
public String getArticoloComposto() {
return articoloComposto;
}
public VariazioniDTO setArticoloComposto(String articoloComposto) {
this.articoloComposto = articoloComposto;
return this;
}
public String getCodAliq() {
return codAliq;
}
public VariazioniDTO setCodAliq(String codAliq) {
this.codAliq = codAliq;
return this;
}
public String getCodBarre() {
return codBarre;
}
public VariazioniDTO setCodBarre(String codBarre) {
this.codBarre = codBarre;
return this;
}
public String getCodBarreImb() {
return codBarreImb;
}
public VariazioniDTO setCodBarreImb(String codBarreImb) {
this.codBarreImb = codBarreImb;
return this;
}
public String getCodMart() {
return codMart;
}
public VariazioniDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getCodMdep() {
return codMdep;
}
public VariazioniDTO setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getCodMgrp() {
return codMgrp;
}
public VariazioniDTO setCodMgrp(String codMgrp) {
this.codMgrp = codMgrp;
return this;
}
public String getCodMsfa() {
return codMsfa;
}
public VariazioniDTO setCodMsfa(String codMsfa) {
this.codMsfa = codMsfa;
return this;
}
public String getCodMsgr() {
return codMsgr;
}
public VariazioniDTO setCodMsgr(String codMsgr) {
this.codMsgr = codMsgr;
return this;
}
public String getCodPromo() {
return codPromo;
}
public VariazioniDTO setCodPromo(String codPromo) {
this.codPromo = codPromo;
return this;
}
public String getCodVlis() {
return codVlis;
}
public VariazioniDTO setCodVlis(String codVlis) {
this.codVlis = codVlis;
return this;
}
public String getColliPedana() {
return colliPedana;
}
public VariazioniDTO setColliPedana(String colliPedana) {
this.colliPedana = colliPedana;
return this;
}
public Date getDataFine() {
return dataFine;
}
public VariazioniDTO setDataFine(Date dataFine) {
this.dataFine = dataFine;
return this;
}
public Date getDataIniz() {
return dataIniz;
}
public VariazioniDTO setDataIniz(Date dataIniz) {
this.dataIniz = dataIniz;
return this;
}
public Date getDataInizPromo() {
return dataInizPromo;
}
public VariazioniDTO setDataInizPromo(Date dataInizPromo) {
this.dataInizPromo = dataInizPromo;
return this;
}
public Date getDataUltVar() {
return dataUltVar;
}
public VariazioniDTO setDataUltVar(Date dataUltVar) {
this.dataUltVar = dataUltVar;
return this;
}
public String getDescrArt() {
return descrArt;
}
public VariazioniDTO setDescrArt(String descrArt) {
this.descrArt = descrArt;
return this;
}
public String getDescrArtEqui() {
return descrArtEqui;
}
public VariazioniDTO setDescrArtEqui(String descrArtEqui) {
this.descrArtEqui = descrArtEqui;
return this;
}
public String getDescrGrup() {
return descrGrup;
}
public VariazioniDTO setDescrGrup(String descrGrup) {
this.descrGrup = descrGrup;
return this;
}
public String getDescrLisv() {
return descrLisv;
}
public VariazioniDTO setDescrLisv(String descrLisv) {
this.descrLisv = descrLisv;
return this;
}
public String getDescrMsfa() {
return descrMsfa;
}
public VariazioniDTO setDescrMsfa(String descrMsfa) {
this.descrMsfa = descrMsfa;
return this;
}
public String getDescrPromo() {
return descrPromo;
}
public VariazioniDTO setDescrPromo(String descrPromo) {
this.descrPromo = descrPromo;
return this;
}
public String getDescrSgrp() {
return descrSgrp;
}
public VariazioniDTO setDescrSgrp(String descrSgrp) {
this.descrSgrp = descrSgrp;
return this;
}
public String getDescrizioneEstesa() {
return descrizioneEstesa;
}
public VariazioniDTO setDescrizioneEstesa(String descrizioneEstesa) {
this.descrizioneEstesa = descrizioneEstesa;
return this;
}
public String getEsposizioneComp() {
return esposizioneComp;
}
public VariazioniDTO setEsposizioneComp(String esposizioneComp) {
this.esposizioneComp = esposizioneComp;
return this;
}
public String getEsposizioneCompAcq() {
return esposizioneCompAcq;
}
public VariazioniDTO setEsposizioneCompAcq(String esposizioneCompAcq) {
this.esposizioneCompAcq = esposizioneCompAcq;
return this;
}
public String getFinePromo() {
return finePromo;
}
public VariazioniDTO setFinePromo(String finePromo) {
this.finePromo = finePromo;
return this;
}
public String getFlagCalcPrz() {
return flagCalcPrz;
}
public VariazioniDTO setFlagCalcPrz(String flagCalcPrz) {
this.flagCalcPrz = flagCalcPrz;
return this;
}
public String getFlagCalcPrzAcq() {
return flagCalcPrzAcq;
}
public VariazioniDTO setFlagCalcPrzAcq(String flagCalcPrzAcq) {
this.flagCalcPrzAcq = flagCalcPrzAcq;
return this;
}
public String getFlagEsponiPrz() {
return flagEsponiPrz;
}
public VariazioniDTO setFlagEsponiPrz(String flagEsponiPrz) {
this.flagEsponiPrz = flagEsponiPrz;
return this;
}
public String getFlagListIvaInclusa() {
return flagListIvaInclusa;
}
public VariazioniDTO setFlagListIvaInclusa(String flagListIvaInclusa) {
this.flagListIvaInclusa = flagListIvaInclusa;
return this;
}
public String getFlagStato() {
return flagStato;
}
public VariazioniDTO setFlagStato(String flagStato) {
this.flagStato = flagStato;
return this;
}
public String getFlagTipoPromo() {
return flagTipoPromo;
}
public VariazioniDTO setFlagTipoPromo(String flagTipoPromo) {
this.flagTipoPromo = flagTipoPromo;
return this;
}
public String getFlagTracciabilita() {
return flagTracciabilita;
}
public VariazioniDTO setFlagTracciabilita(String flagTracciabilita) {
this.flagTracciabilita = flagTracciabilita;
return this;
}
public Integer getGgScadPartita() {
return ggScadPartita;
}
public VariazioniDTO setGgScadPartita(Integer ggScadPartita) {
this.ggScadPartita = ggScadPartita;
return this;
}
public String getIdArtEqui() {
return idArtEqui;
}
public VariazioniDTO setIdArtEqui(String idArtEqui) {
this.idArtEqui = idArtEqui;
return this;
}
public String getIdPromo() {
return idPromo;
}
public VariazioniDTO setIdPromo(String idPromo) {
this.idPromo = idPromo;
return this;
}
public String getIngredienti() {
return ingredienti;
}
public VariazioniDTO setIngredienti(String ingredienti) {
this.ingredienti = ingredienti;
return this;
}
public BigDecimal getPercAliq() {
return percAliq;
}
public VariazioniDTO setPercAliq(BigDecimal percAliq) {
this.percAliq = percAliq;
return this;
}
public BigDecimal getPercSco1() {
return percSco1;
}
public VariazioniDTO setPercSco1(BigDecimal percSco1) {
this.percSco1 = percSco1;
return this;
}
public BigDecimal getPercSco2() {
return percSco2;
}
public VariazioniDTO setPercSco2(BigDecimal percSco2) {
this.percSco2 = percSco2;
return this;
}
public BigDecimal getPercSco3() {
return percSco3;
}
public VariazioniDTO setPercSco3(BigDecimal percSco3) {
this.percSco3 = percSco3;
return this;
}
public BigDecimal getPercSco4() {
return percSco4;
}
public VariazioniDTO setPercSco4(BigDecimal percSco4) {
this.percSco4 = percSco4;
return this;
}
public BigDecimal getPercSfrido() {
return percSfrido;
}
public VariazioniDTO setPercSfrido(BigDecimal percSfrido) {
this.percSfrido = percSfrido;
return this;
}
public BigDecimal getPesoKg() {
return pesoKg;
}
public VariazioniDTO setPesoKg(BigDecimal pesoKg) {
this.pesoKg = pesoKg;
return this;
}
public String getPlu() {
return plu;
}
public VariazioniDTO setPlu(String plu) {
this.plu = plu;
return this;
}
public String getPosizione() {
return posizione;
}
public VariazioniDTO setPosizione(String posizione) {
this.posizione = posizione;
return this;
}
public BigDecimal getPrezzoPieno() {
return prezzoPieno;
}
public VariazioniDTO setPrezzoPieno(BigDecimal prezzoPieno) {
this.prezzoPieno = prezzoPieno;
return this;
}
public BigDecimal getPrzBase() {
return przBase;
}
public VariazioniDTO setPrzBase(BigDecimal przBase) {
this.przBase = przBase;
return this;
}
public BigDecimal getPrzPienoIva() {
return przPienoIva;
}
public VariazioniDTO setPrzPienoIva(BigDecimal przPienoIva) {
this.przPienoIva = przPienoIva;
return this;
}
public BigDecimal getPrzVend() {
return przVend;
}
public VariazioniDTO setPrzVend(BigDecimal przVend) {
this.przVend = przVend;
return this;
}
public BigDecimal getPrzVendIva() {
return przVendIva;
}
public VariazioniDTO setPrzVendIva(BigDecimal przVendIva) {
this.przVendIva = przVendIva;
return this;
}
public BigDecimal getQtaCnf() {
return qtaCnf;
}
public VariazioniDTO setQtaCnf(BigDecimal qtaCnf) {
this.qtaCnf = qtaCnf;
return this;
}
public BigDecimal getRapConv() {
return rapConv;
}
public VariazioniDTO setRapConv(BigDecimal rapConv) {
this.rapConv = rapConv;
return this;
}
public BigDecimal getRapConv2() {
return rapConv2;
}
public VariazioniDTO setRapConv2(BigDecimal rapConv2) {
this.rapConv2 = rapConv2;
return this;
}
public BigDecimal getRapConv3() {
return rapConv3;
}
public VariazioniDTO setRapConv3(BigDecimal rapConv3) {
this.rapConv3 = rapConv3;
return this;
}
public String getRepartoCassa() {
return repartoCassa;
}
public VariazioniDTO setRepartoCassa(String repartoCassa) {
this.repartoCassa = repartoCassa;
return this;
}
public BigDecimal getTaraKg() {
return taraKg;
}
public VariazioniDTO setTaraKg(BigDecimal taraKg) {
this.taraKg = taraKg;
return this;
}
public String getTipoCodice() {
return tipoCodice;
}
public VariazioniDTO setTipoCodice(String tipoCodice) {
this.tipoCodice = tipoCodice;
return this;
}
public String getTipoVariazione() {
return tipoVariazione;
}
public VariazioniDTO setTipoVariazione(String tipoVariazione) {
this.tipoVariazione = tipoVariazione;
return this;
}
public String getTipoVariazioneLisv() {
return tipoVariazioneLisv;
}
public VariazioniDTO setTipoVariazioneLisv(String tipoVariazioneLisv) {
this.tipoVariazioneLisv = tipoVariazioneLisv;
return this;
}
public String getUntMis() {
return untMis;
}
public VariazioniDTO setUntMis(String untMis) {
this.untMis = untMis;
return this;
}
public String getUntMisVen() {
return untMisVen;
}
public VariazioniDTO setUntMisVen(String untMisVen) {
this.untMisVen = untMisVen;
return this;
}
public String getUntMis2() {
return untMis2;
}
public VariazioniDTO setUntMis2(String untMis2) {
this.untMis2 = untMis2;
return this;
}
public String getUntMis3() {
return untMis3;
}
public VariazioniDTO setUntMis3(String untMis3) {
this.untMis3 = untMis3;
return this;
}
}

View File

@@ -1,126 +0,0 @@
package it.integry.ems.retail.ReportVariazioni.dto.Variazioni;
import java.util.Date;
public class VariazioniPvInputDTO {
private Date dataValidita;
private String codVlis;
private String whereCondArt;
private String whereCondLisv;
private String whereCondDoc;
private String inviaIngredienti;
private String fileXml;
private String tipoReport;
private String inviaDisattivazioni;
public Date getDataValidita() {
return dataValidita;
}
public VariazioniPvInputDTO setDataValidita(Date dataValidita) {
this.dataValidita = dataValidita;
return this;
}
public Type getTipoReportEnum() {
return Type.fromString(tipoReport);
}
public void setTipoReportEnum(Type tipoReport) {
this.tipoReport = tipoReport.getText();
}
public String getTipoReport() {
return tipoReport;
}
public void setTipoReport(String tipoReport) {
this.tipoReport = tipoReport;
}
public String getWhereCondArt() {
return whereCondArt;
}
public VariazioniPvInputDTO setWhereCondArt(String whereCondArt) {
this.whereCondArt = whereCondArt;
return this;
}
public String getWhereCondLisv() {
return whereCondLisv;
}
public VariazioniPvInputDTO setWhereCondLisv(String whereCondLisv) {
this.whereCondLisv = whereCondLisv;
return this;
}
public String getWhereCondDoc() {
return whereCondDoc;
}
public VariazioniPvInputDTO setWhereCondDoc(String whereCondDoc) {
this.whereCondDoc = whereCondDoc;
return this;
}
public String getInviaIngredienti() {
return inviaIngredienti;
}
public VariazioniPvInputDTO setInviaIngredienti(String inviaIngredienti) {
this.inviaIngredienti = inviaIngredienti;
return this;
}
public String getFileXml() {
return fileXml;
}
public void setFileXml(String fileXml) {
this.fileXml = fileXml;
}
public String getInviaDisattivazioni() {
return inviaDisattivazioni;
}
public void setInviaDisattivazioni(String inviaDisattivazioni) {
this.inviaDisattivazioni = inviaDisattivazioni;
}
public String getCodVlis() {
return codVlis;
}
public VariazioniPvInputDTO setCodVlis(String codVlis) {
this.codVlis = codVlis;
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;
}
}
}

View File

@@ -13,6 +13,8 @@ public class VariazioniDettaglioDTO {
private String codVlis;
@MapToTable("descrizione")
private String descrizione;
@MapToTable("descr_cassa")
private String descrCassa;
@MapToTable("flag_list_iva_inclusa")
private String flagListIvaInclusa;
@MapToTable("cod_mdep")
@@ -145,7 +147,14 @@ public class VariazioniDettaglioDTO {
private String untMis2;
@MapToTable (value = "unt_mis3")
private String untMis3;
@MapToTable (value = "libero1")
private String libero1;
@MapToTable (value = "libero2")
private String libero2;
@MapToTable (value = "posizione_articolo")
private String posizioneArticolo;
@MapToTable (value = "intercode_xml_variazioni")
private String intercodeXmlVariazioni;
public Date getDataVariazione() {
return dataVariazione;
}
@@ -164,6 +173,15 @@ public class VariazioniDettaglioDTO {
return this;
}
public String getDescrCassa() {
return descrCassa;
}
public VariazioniDettaglioDTO setDescrCassa(String descrCassa) {
this.descrCassa = descrCassa;
return this;
}
public String getElencoCasse() {
return elencoCasse;
}
@@ -766,4 +784,40 @@ public class VariazioniDettaglioDTO {
this.untMis3 = untMis3;
return this;
}
public String getLibero1() {
return libero1;
}
public VariazioniDettaglioDTO setLibero1(String libero1) {
this.libero1 = libero1;
return this;
}
public String getLibero2() {
return libero2;
}
public VariazioniDettaglioDTO setLibero2(String libero2) {
this.libero2 = libero2;
return this;
}
public String getPosizioneArticolo() {
return posizioneArticolo;
}
public VariazioniDettaglioDTO setPosizioneArticolo(String posizioneArticolo) {
this.posizioneArticolo = posizioneArticolo;
return this;
}
public String getIntercodeXmlVariazioni() {
return intercodeXmlVariazioni;
}
public VariazioniDettaglioDTO setIntercodeXmlVariazioni(String intercodeXmlVariazioni) {
this.intercodeXmlVariazioni = intercodeXmlVariazioni;
return this;
}
}

View File

@@ -7,6 +7,7 @@ public class VariazioniPvInputDTO {
private Date dataValidita;
private String codVlis;
private String whereCondArt;
private String whereCondLisv;
private String whereCondDoc;
private String inviaIngredienti;
@@ -105,6 +106,15 @@ public class VariazioniPvInputDTO {
return this;
}
public String getUserName() {
return userName;
}
public VariazioniPvInputDTO setUserName(String userName) {
this.userName = userName;
return this;
}
public List<VariazioniDettaglioDTO> getVariazioni() {
return variazioni;
}
@@ -114,12 +124,4 @@ public class VariazioniPvInputDTO {
return this;
}
public String getUserName() {
return userName;
}
public VariazioniPvInputDTO setUserName(String userName) {
this.userName = userName;
return this;
}
}

View File

@@ -2,6 +2,7 @@ package it.integry.ems.retail.ReportVariazioni.dto;
public enum VariazioniReportType {
VARIAZIONI("V"),
GRIGLIA("G"),
PROMOZIONI("P"),
LISTINO("L");

View File

@@ -1,969 +0,0 @@
package it.integry.ems.retail.ReportVariazioni.service;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.retail.ReportVariazioni.dto.Variazioni.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.xml.*;
import it.integry.ems.retail.dto.GrigliaAcquistoDTO;
import it.integry.ems.retail.service.GrigliaAcquistoHandlerService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.TypeDbObject;
import it.integry.ems_model.utility.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import java.io.File;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Scope("request")
public class VariazioniPVService {
@Autowired
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 {
String xmlVariazioni = null;
ReportType fileVariazioniDTO = variazionePrezzoPV(variazioniPvDTO);
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.");
}
return xmlVariazioni;
}
public ReportType variazionePrezzoPV(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
final String gestName = "w_vvariaz_prezzi_disp", section = "VARIAZIONI";
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 colNameDescrEstesa = "descrizione_estesa";
String setupDescr = setup.get("DESCRIZIONE_ESTESA");
if (!UtilityString.isNullOrEmpty(setupDescr)) {
if (setupDescr.equalsIgnoreCase("D"))
colNameDescrEstesa = "descr_art";
else if (setupDescr.equalsIgnoreCase("B"))
colNameDescrEstesa = "descr_cassa";
}
ReportType fileVariazioniDTO = new ReportType();
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"));
String codMdep = UtilityString.streNull(UtilityHashMap.getValueIfExists(datiLisv, "cod_mdep"));
String elencoCasse = getElencoCasse(codMdep);
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
ObjectFactory objectFactory = new ObjectFactory();
CodVlisType listinoDTO = new CodVlisType();
String codVlisVariazioni = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, "COD_VLIS_VARIAZIONI", codMdep);
if (UtilityString.isNullOrEmpty(codVlisVariazioni)) {
listinoDTO.getContent().add(codVlis);
} else {
listinoDTO.getContent().add(codVlisVariazioni);
}
listinoDTO.setDescrizione(descrLisv);
listinoDTO.setFlagListIvaInclusa(flagListIvaInclusa);
listinoDTO.setDataVariazione(new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(variazioniPvDTO.getDataValidita()));
listinoDTO.setCodMdep(codMdep);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeElencoCasse(elencoCasse));
fileVariazioniDTO.getCodVlis().add(listinoDTO);
String query = getQueryVariazioni(variazioniPvDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
List<HashMap<String, Object>> elencoVar = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
boolean getVariazioneGriglia = false;
if ((variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.GRIGLIA ||
variazioniPvDTO.getTipoReportEnum() == VariazioniPvInputDTO.Type.LISTINO) &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
getVariazioneGriglia = true;
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,
setup.get("LIBERO1"),
setup.get("LIBERO2"), getVariazioneGriglia);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
}
}
if (fileVariazioniDTO.getCodVlis() != null && fileVariazioniDTO.getCodVlis().size() > 0) {
} else {
throw new Exception("Non ci sono variazione nel periodo selezionato.");
}
return fileVariazioniDTO;
}
private CodMartType fillArticoloData(ObjectFactory objectFactory, HashMap<String, Object> var,
VariazioniPvInputDTO variazioniPvDTO,
String invioIngredientiSetup,
Map<String, String> setupDepo,
String codMdep,
String colNameDescrEstesa,
String valLibero1,
String valLibero2,
boolean getVariazioneGriglia) 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");
if ("P".equals(flagTipoPromo)) {
przPienoIva = przVendIva;
przPieno = przVend;
}
String dataFinePromoS = "";
Date dataFinePromo = UtilityHashMap.getValueIfExists(var, "data_fine");
if (dataFinePromo != null) {
dataFinePromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataFinePromo);
}
String dataInizPromoS = "";
Date dataInizPromo = UtilityHashMap.getValueIfExists(var, "data_iniz_promo");
if (dataInizPromo != null) {
dataInizPromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(dataInizPromo);
}
String dataUltVarS = "";
Date dataUltVar = UtilityHashMap.getValueIfExists(var, "data_ult_var");
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)) {
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(",", ".")));
CodMgrpType codMgrpType = objectFactory.createCodMgrpType();
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")));
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")));
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.createCodMartTypeTipoVariazioneLisv(tipoVariazioneLisv));
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.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.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.createCodMartTypeFlagStato(flagStato));
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");
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.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(",", ".")));
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")));
codMartType.getContent().add(objectFactory.createCodMartTypeIdArtEqui(idArtEquiType));
}
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPieno(UtilityString.bigDecimalToString(przPieno, "###0.00###").replace(",", ".")));
codMartType.getContent().add(objectFactory.createCodMartTypePrezzoPienoIva(UtilityString.bigDecimalToString(przPienoIva, "###0.00").replace(",", ".")));
//PUNTI ARTICOLO
BigDecimal puntiArticolo = getPuntiArt(codMart, variazioniPvDTO.getDataValidita());
codMartType.getContent().add(objectFactory.createCodMartTypePuntiArticolo(UtilityString.bigDecimalToString(puntiArticolo, "###0.00").replace(",", ".")));
//PROMOZIONE MxN
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"));
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"));
dataFinePromoS = new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(datiPromo.get("data_fine"));
}
codMartType.getContent().add(objectFactory.createCodMartTypeCodPromo(codPromo));
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.createCodMartTypeFlagMxn(flagMxnType));
//INGREDIENTI
String inviaIngrOpz = null;
inviaIngrOpz = variazioniPvDTO.getInviaIngredienti();
if (UtilityString.isNullOrEmpty(inviaIngrOpz)) {
//PER CARELLI ABBIAMO RESO OPZIONALE L'INVIO DEGLI INGREDIENTI (SOLO SE VARIATI IN DISTINTA BASE) PER TUTTI GLI ALTRI
//GLI INGREDIENTI VENGONO COMUNQUE INVIATI
inviaIngrOpz = invioIngredientiSetup;
}
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));
//COMPONENTI
ComponentiType componentiType = getComponenti(objectFactory, codMart, przVend);
codMartType.getContent().add(objectFactory.createCodMartTypeComponenti(componentiType));
//PREMI
PremioType premioType = getPuntiPremi(objectFactory, codMart, variazioniPvDTO.getDataValidita());
if (premioType != null) {
codMartType.getContent().add(objectFactory.createCodMartTypePremio(premioType));
}
//CODICE A BARRE ALTERNATIVI
CodiciABarreType codiciABarreType = getBarcodeAlternativi(objectFactory, codMart);
codMartType.getContent().add(objectFactory.createCodMartTypeCodiciABarre(codiciABarreType));
//DATI GRIGLIA DI ACQUISTO
if ("S".equalsIgnoreCase(setupDepo.get("SELEZIONA_GRIGLIE"))) {
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvDTO.getDataValidita(), codMartType, getVariazioneGriglia);
}
if ("S".equalsIgnoreCase(setupDepo.get("ABILITA_CAMPI_LIBERI"))) {
codMartType.getContent().add(objectFactory.createCodMartTypeLibero1(UtilityString.streNull(getValueCampoLibero(valLibero1, var, codMdep, codMart))));
codMartType.getContent().add(objectFactory.createCodMartTypeLibero2(UtilityString.streNull(getValueCampoLibero(valLibero2, var, codMdep, codMart))));
}
return codMartType;
}
private String getValueCampoLibero(String tipoValore, HashMap<String, Object> var, String codMdep, String codMart) throws Exception {
if (UtilityString.isNullOrEmpty(tipoValore)) return "";
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);
BigDecimal valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
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" +
"WHERE cod_mdep = %s\n" +
" AND cod_mart = %s", codMdep, codMart);
valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
return (valMedio == null ? "" : new DecimalFormat("#,##0.00").format(valMedio));
} else if (tipoValore.equalsIgnoreCase("P")) {
return UtilityHashMap.getValueIfExists(var, "posizione_art");
} else if (tipoValore.equalsIgnoreCase("T")) {
return UtilityHashMap.getValueIfExists(var, "intercode_xml_variazioni");
}
return null;
}
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
HashMap<String, String> setup,
String codVlis,
String selezionaGriglie) throws Exception {
String queryAssortimento = getQueryAssortimento(variazioniPvDTO, setup, codVlis, selezionaGriglie);
String query =
"SELECT listino.cod_vlis,\n" +
" listino.descrizione AS 'descr_lisv',\n" +
" listino.flag_list_iva_inclusa,\n" +
" ISNULL(assortimento.cod_mart_view, listino.cod_mart) AS 'cod_mart',\n" +
" mtb_aart.descrizione AS 'descr_art',\n" +
" CONVERT(VARCHAR(40), mtb_aart.descr_cassa) AS 'descr_cassa',\n" +
" mtb_aart.descrizione_estesa AS 'descrizione_estesa',\n" +
" mtb_aart.unt_mis2 AS 'unt_mis2',\n" +
" ISNULL(mtb_aart.rap_conv2, 1) AS 'rap_conv2',\n" +
" mtb_aart.cod_mgrp AS 'cod_mgrp',\n" +
" mtb_grup.descrizione AS 'descr_grup',\n" +
" ISNULL(CASE\n" +
" WHEN '[CLASSIFICAZIONE_MERCEOLOGICA]' = '1'\n" +
" THEN mtb_aart.cod_msfa\n" +
" ELSE NULL END,\n" +
" mtb_aart.cod_msgr) AS 'cod_msgr',\n" +
" ISNULL(CASE\n" +
" WHEN '[CLASSIFICAZIONE_MERCEOLOGICA]' = '1'\n" +
" THEN ISNULL(mtb_sfam.descrizione, mtb_sgrp.descrizione)\n" +
" ELSE mtb_sgrp.descrizione END,\n" +
" '') AS 'descr_sgrp',\n" +
" mtb_aart.bar_code AS 'cod_barre',\n" +
" mtb_aart.plu AS 'plu',\n" +
" CASE\n" +
" WHEN assortimento.tipo_variazione = 'C' THEN 'I'\n" +
" ELSE mtb_aart.flag_stato END AS 'flag_stato',\n" +
" mtb_aart.cod_aliq AS 'cod_aliq',\n" +
" CASE\n" +
" WHEN mtb_aart.articolo_composto = 'S' AND mtb_aart.esposizione_comp = 'S' THEN 'S'\n" +
" ELSE 'N' END AS 'articolo_composto',\n" +
" mtb_aart.gg_scad_partita AS 'gg_scad_partita',\n" +
" mtb_aart.unt_mis AS 'unt_mis',\n" +
" mtb_aart.data_ult_var AS 'data_ult_var',\n" +
" mtb_aart.tipo_codice AS 'tipo_codice',\n" +
" mtb_aart.flag_tracciabilita AS 'flag_tracciabilita',\n" +
" CASE\n" +
" WHEN '[CLASSIFICAZIONE_MERCEOLOGICA]' = '0'\n" +
" THEN mtb_aart.cod_msfa\n" +
" ELSE NULL END AS 'cod_msfa',\n" +
" CASE\n" +
" WHEN '[CLASSIFICAZIONE_MERCEOLOGICA]' = '0'\n" +
" THEN mtb_sfam.descrizione\n" +
" ELSE NULL END AS 'descr_msfa',\n" +
" mtb_aart.unt_mis3 AS 'unt_mis3',\n" +
" ISNULL(mtb_aart.rap_conv3, 1) AS rap_conv3,\n" +
" mtb_aart.peso_kg AS 'peso_kg',\n" +
" mtb_aart.flag_esponi_prz AS 'flag_esponi_prz',\n" +
" mtb_aart.perc_sfrido AS 'perc_sfrido',\n" +
" mtb_aart.cod_barre_imb AS 'cod_barre_imb',\n" +
" mtb_aart.flag_calc_prz AS 'flag_calc_prz',\n" +
" mtb_aart.esposizione_comp_acq AS 'esposizione_comp_acq',\n" +
" mtb_aart.flag_calc_prz_acq AS 'flag_calc_prz_acq',\n" +
" mtb_aart.colli_pedana AS 'colli_pedana',\n" +
" mtb_aart.qta_cnf AS 'qta_cnf',\n" +
" mtb_aart.tara_kg AS 'tara_kg',\n" +
" mtb_aart.esposizione_comp AS 'esposizione_comp',\n" +
" CASE\n" +
" WHEN listino.tipo_variazione = 'I' AND (assortimento.fine_promo = 'S' OR assortimento.tipo_variazione = 'P')\n" +
" THEN 'U'\n" +
" ELSE listino.tipo_variazione END AS 'tipo_variazione_lisv',\n" +
" listino.prz_base,\n" +
" ISNULL(ISNULL(promozione.prz_vend_netto, listino.prz_vend_netto), 0) AS prz_vend,\n" +
" ISNULL(ISNULL(promozione.prz_vend_iva, listino.prz_vend_iva), 0) AS prz_vend_iva,\n" +
" listino.posizione,\n" +
" listino.unt_mis_ven,\n" +
" listino.rap_conv,\n" +
" listino.perc_sco1,\n" +
" listino.perc_sco2,\n" +
" listino.perc_sco3,\n" +
" listino.perc_sco4,\n" +
" gtb_aliq.perc_aliq,\n" +
" listino.prz_vend_netto AS 'prezzo_pieno',\n" +
" listino.prz_vend_iva AS 'prz_pieno_iva',\n" +
" promozione.cod_promo,\n" +
" promozione.descr_promo,\n" +
" promozione.data_fine,\n" +
" mtb_aart.ingredienti,\n" +
" ISNULL(promozione.data_iniz, listino.data_iniz) AS 'data_iniz',\n" +
" stb_gest_setup.value AS 'reparto_cassa',\n" +
" mtb_aart.note AS 'annotazioni_art',\n" +
" CASE\n" +
" WHEN assortimento.tipo_variazione = 'C' THEN 'A'\n" +
" WHEN assortimento.tipo_variazione = 'A' AND listino.tipo_variazione = 'I' THEN 'P'\n" +
" ELSE assortimento.tipo_variazione END AS 'tipo_variazione',\n" +
" assortimento.fine_promo,\n" +
" mtb_depo.cod_mdep,\n" +
" mtb_aart.id_art_equi AS 'id_art_equi',\n" +
" mtb_aart_equi.descrizione AS 'descr_art_equi',\n" +
" promozione.flag_tipo_promo,\n" +
" CASE\n" +
" WHEN promozione.flag_tipo_promo <> 'P' THEN promozione.data_iniz\n" +
" ELSE NULL END AS 'data_iniz_promo',\n" +
" CASE\n" +
" WHEN promozione.cod_promo IS NOT NULL AND promozione.flag_tipo_promo <> 'P'\n" +
" THEN listino.cod_vlis + '_' + CAST(promozione.versione AS VARCHAR)\n" +
" ELSE NULL END AS 'id_promo',\n" +
" mtb_aart.posizione AS 'posizione_art',\n" +
" promozione.intercode_xml_variazioni AS 'intercode_xml_variazioni'\n" +
"FROM (" + queryAssortimento + ") assortimento\n" +
" INNER JOIN dbo.getlistinovendita('[DATA_VARIAZIONE]', '[COD_VLIS]', NULL) listino\n" +
" ON assortimento.cod_vlis = listino.cod_vlis AND assortimento.cod_mart = listino.cod_mart and listino.data_iniz is not null\n" +
" INNER JOIN mtb_aart ON listino.cod_mart = mtb_aart.cod_mart\n" +
" INNER JOIN mtb_depo ON listino.cod_vlis = mtb_depo.cod_vlis\n" +
" INNER JOIN mtb_grup ON mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
" INNER JOIN mtb_sgrp ON mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp AND mtb_aart.cod_msgr = mtb_sgrp.cod_msgr\n" +
" INNER JOIN gtb_aliq ON mtb_aart.cod_aliq = gtb_aliq.cod_aliq\n" +
" LEFT OUTER JOIN mtb_sfam ON mtb_aart.cod_mgrp = mtb_sfam.cod_mgrp AND\n" +
" mtb_aart.cod_msgr = mtb_sfam.cod_msgr AND\n" +
" mtb_aart.cod_msfa = mtb_sfam.cod_msfa\n" +
" LEFT OUTER JOIN mtb_aart_equi ON mtb_aart.id_art_equi = mtb_aart_equi.id_art_equi\n" +
" LEFT OUTER JOIN stb_gest_setup ON stb_gest_setup.gest_name = 'EXPORT_DATI_CASSA' AND\n" +
" stb_gest_setup.section = 'REPARTO_CASSA' AND\n" +
" stb_gest_setup.key_section = mtb_grup.cod_mgrp\n" +
" LEFT OUTER JOIN dbo.getpromozionevendita('[DATA_VARIAZIONE]', NULL, '[COD_VLIS]', NULL, NULL) promozione\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" +
"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 ";
query = query
.replace("'[DATA_VARIAZIONE]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD))
.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")));
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);
List<Object> casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
return StringUtils.join(casse, "|");
}
private String getQueryAssortimento(VariazioniPvInputDTO variazioniPvDTO,
HashMap<String, String> setup,
String codVlis,
String selezionaGriglia) throws Exception {
String queryAssortimento = null;
if (UtilityString.isNullOrEmpty(variazioniPvDTO.getTipoReportEnum())) {
throw new Exception("Tipo report non configurato");
} else {
switch (variazioniPvDTO.getTipoReportEnum()) {
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);
break;
case VARIAZIONI:
queryAssortimento =
"SELECT vtb_list_data.cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
" 'P' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS 'cod_mart_view',\n" +
" 'N' AS 'fine_promo'\n" +
"FROM vtb_list_data\n" +
" INNER JOIN mtb_lisv_data\n" +
" ON ISNULL(vtb_list_data.cod_vlis_rif, vtb_list_data.cod_vlis) = mtb_lisv_data.cod_vlis AND\n" +
" vtb_list_data.versione = mtb_lisv_data.versione\n" +
"WHERE vtb_list_data.data_iniz = '[DATA_VALIDITA]'\n" +
" AND vtb_list_data.cod_vlis = '[COD_VLIS]'\n" +
" AND vtb_list_data.cod_promo IS NULL\n" +
"UNION\n" +
"SELECT vtb_list_data.cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
" 'P' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS 'cod_mart_view',\n" +
" 'N' AS 'fine_promo'\n" +
"FROM vtb_list_data\n" +
" INNER JOIN mtb_lisv_data ON vtb_list_data.cod_vlis = mtb_lisv_data.cod_vlis AND\n" +
" vtb_list_data.versione = mtb_lisv_data.versione\n" +
" INNER JOIN vtb_promo ON vtb_list_data.cod_promo = vtb_promo.cod_promo AND\n" +
" vtb_promo.flag_tipo_promo = 'A'\n" +
" INNER JOIN vtb_list_data v\n" +
" ON vtb_list_data.cod_vlis = v.cod_vlis AND v.cod_promo IS NULL AND v.data_iniz = '[DATA_VALIDITA]'\n" +
" INNER JOIN mtb_lisv_data vr ON v.cod_vlis = vr.cod_vlis AND v.versione = vr.versione AND\n" +
" mtb_lisv_data.cod_mart = vr.cod_mart\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" +
"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" +
" , lisv.cod_mart\n" +
" , tipo_variazione\n" +
" , cod_mart_new\n" +
" , 'N' AS 'fine_promo'\n" +
"FROM (SELECT mtb_aart.cod_mart,\n" +
" 'A' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS cod_mart_new\n" +
" FROM mtb_aart\n" +
" WHERE mtb_aart.data_ult_var = '[DATA_VALIDITA]'\n" +
" UNION\n" +
" SELECT jtb_cicl.cod_prod,\n" +
" 'A' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS cod_mart_new\n" +
" FROM jtb_cicl\n" +
" WHERE jtb_cicl.data_ult_var = '[DATA_VALIDITA]'\n" +
" UNION\n" +
" SELECT mtb_cambio_art.codice_nuovo,\n" +
" 'C' AS tipo_variazione,\n" +
" mtb_cambio_art.codice_vecchio\n" +
" FROM mtb_cambio_art\n" +
" WHERE CAST(mtb_cambio_art.dataora_cambio AS DATE) = '[DATA_VALIDITA]') art\n" +
" INNER JOIN (SELECT vtb_list.cod_vlis AS cod_vlis,\n" +
" mtb_lisv.cod_mart\n" +
" FROM vtb_list\n" +
" 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]'";
queryAssortimento =
queryAssortimento
.replace("'[COD_VLIS]'", UtilityDB.valueToString(codVlis))
.replace("'[DATA_VALIDITA]'", UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD));
break;
case GRIGLIA:
queryAssortimento =
"SELECT mtb_depo.cod_vlis,\n" +
" atb_griglie_art.cod_mart,\n" +
" 'G' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\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]'";
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");
queryAssortimento =
"SELECT vtb_list_data.cod_vlis, " +
" mtb_lisv_data.cod_mart, " +
" 'P' as tipo_variazione, " +
" convert(varchar(15), null) as cod_mart_view, " +
" CASE " +
" WHEN max(vtb_list_data.data_iniz) = " + UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD) + " THEN 'N' " +
" WHEN vtb_promo.flag_tipo_promo = 'P' THEN 'N' " +
" ELSE 'S' " +
" END as 'fine_promo' " +
" FROM vtb_list_data " +
" INNER JOIN mtb_lisv_data ON IsNull(vtb_list_data.cod_vlis_rif,vtb_list_data.cod_vlis) = mtb_lisv_data.cod_vlis and " +
" vtb_list_data.versione = mtb_lisv_data.versione" +
" INNER JOIN vtb_promo ON vtb_list_data.cod_promo = vtb_promo.cod_promo " +
" WHERE vtb_list_data.cod_vlis = " + UtilityDB.valueToString(codVlis) +
" AND ( vtb_list_data.data_iniz = " + UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD) + " OR " +
" vtb_list_data.data_fine = DateAdd(dd, -1, " + UtilityDB.valueDateToString(variazioniPvDTO.getDataValidita(), CommonConstants.DATE_FORMAT_YMD) + ")) " +
"GROUP BY vtb_list_data.cod_vlis, " +
" mtb_lisv_data.cod_mart, " +
" vtb_promo.flag_tipo_promo ";
if (!UtilityString.isNullOrEmpty(filtroPromoOrto)) {
String queryArt = " SELECT mtb_aart.cod_mart FROM mtb_aart inner join mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart ";
queryArt = UtilityDB.addwhereCond(queryArt, filtroPromoOrto, false);
filtroPromoOrto = "EXISTS( " + queryArt + " AND mtb_lisv_data.cod_mart = mtb_aart.cod_mart )";
queryAssortimento = UtilityDB.addwhereCond(queryAssortimento, filtroPromoOrto, false);
}
break;
}
}
String filtroMenu = setup.get("FILTRO_ART_MENU");
if (!UtilityString.isNullOrEmpty(filtroMenu)) {
filtroMenu = "mtb_aart.cod_mart not in (" + filtroMenu + ")";
}
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), max(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 " +
"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";
return query;
}
private BigDecimal getPuntiArt(String codMart, Date dataValidita) throws Exception {
String query =
"SELECT count_fidelity " +
" FROM vtb_promo, " +
" vtb_promo_articoli " +
" WHERE vtb_promo.cod_promo = vtb_promo_articoli.cod_promo AND " +
UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
" 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;
return punti;
}
private FlagMxnType getScontoMerce(ObjectFactory objectFactory, String codMart, Date dataValidita, HashMap<String, Object> datipromo) throws Exception {
FlagMxnType flagMxnType = objectFactory.createFlagMxnType();
String query =
"SELECT qta_vend," +
" qta_omaggio, " +
" vtb_list_data.versione, " +
" vtb_list_data.data_iniz, " +
" vtb_list_data.data_fine, " +
" vtb_list_data.cod_promo " +
" FROM vtb_promo, " +
" mtb_lisv_data, " +
" vtb_list_data " +
" WHERE vtb_promo.cod_promo = vtb_list_data.cod_promo AND " +
"( " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_list_data.data_iniz and vtb_list_data.data_fine OR " +
"DateAdd(day, -1, " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ") = vtb_list_data.data_fine ) AND " +
" mtb_lisv_data.cod_mart = " + UtilityDB.valueToString(codMart) + " AND " +
" vtb_list_data.cod_vlis = mtb_lisv_data.cod_vlis AND " +
" vtb_list_data.versione = mtb_lisv_data.versione AND " +
" vtb_promo.flag_tipo_promo = 'M'";
HashMap<String, Object> dt = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), query);
if (dt != null && !dt.isEmpty()) {
datipromo.putAll(dt);
BigDecimal qtaVend = (BigDecimal) datipromo.get("qta_vend");
BigDecimal qtaOmaggio = (BigDecimal) datipromo.get("qta_omaggio");
int versione = (int) datipromo.get("versione");
flagMxnType.setValue("S");
flagMxnType.setQtaOmg(UtilityString.bigDecimalToString(qtaOmaggio, "###0.00").replace(",", "."));
flagMxnType.setQtaVend(UtilityString.bigDecimalToString(qtaVend, "###0.00").replace(",", "."));
flagMxnType.setCodMix(String.valueOf(versione));
} else {
flagMxnType.setValue("N");
}
return flagMxnType;
}
private IngredientiType getIngredienti(ObjectFactory objectFactory, String codMart, Date dataVariazioni, VariazioniPvInputDTO.Type tipoReport, String tipoVariazioneLisv, String invioIngOpz, String ingredientiArt) throws Exception {
IngredientiType ingredientiType = objectFactory.createIngredientiType();
if (UtilityString.isNullOrEmpty(ingredientiArt)) {
String whereCond = "";
String query =
"SELECT jtb_dist_mate.note as descrizione " +
" FROM jtb_cicl, jtb_dist_mate " +
" WHERE jtb_dist_mate.note is not null AND " +
" jtb_cicl.cod_prod = '" + codMart + "' AND " +
" jtb_cicl.cod_prod = jtb_dist_mate.cod_prod " +
" ORDER BY jtb_dist_mate.id_riga";
if ("S".equalsIgnoreCase(invioIngOpz)) {
if (tipoReport.compareTo(VariazioniPvInputDTO.Type.LISTINO) != 0 &&
!"I".equalsIgnoreCase(tipoVariazioneLisv)) {
whereCond = "jtb_cicl.data_ult_var = " + UtilityDB.valueDateToString(dataVariazioni, CommonConstants.DATE_FORMAT_YMD);
query = UtilityDB.addwhereCond(query, whereCond, false);
}
}
List<String> ingredienti = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
int contatore = 1;
for (String i : ingredienti) {
IngredientiArticoloType ingredientiArticoloType = objectFactory.createIngredientiArticoloType();
String descrIngr = UtilityString.streNull(i);
ingredientiArticoloType.setIdRiga(String.valueOf(contatore));
ingredientiArticoloType.setValue(descrIngr);
ingredientiType.getIngredientiArticolo().add(ingredientiArticoloType);
contatore++;
}
} else {
IngredientiArticoloType ingredientiArticoloType = objectFactory.createIngredientiArticoloType();
ingredientiArticoloType.setIdRiga("1");
ingredientiArticoloType.setValue(ingredientiArt);
ingredientiType.getIngredientiArticolo().add(ingredientiArticoloType);
}
return ingredientiType;
}
private ComponentiType getComponenti(ObjectFactory objectFactory, String codMart, BigDecimal prezzo) throws Exception {
ComponentiType componentiType = objectFactory.createComponentiType();
String query =
"SELECT mtb_comp.cod_comp as 'cod_comp'," +
" mtb_comp.qta_std as 'qta_std'," +
" mtb_comp.perc_prezzo as 'perc_prezzo', " +
" count(mtb_comp.cod_comp) over (partition by mtb_comp.cod_mart) as 'tot_comp' " +
" FROM mtb_aart," +
" mtb_comp " +
" WHERE mtb_aart.cod_mart = mtb_comp.cod_mart AND " +
" mtb_aart.esposizione_comp = 'S' AND " +
" mtb_comp.cod_mart = " + UtilityDB.valueToString(codMart);
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
ResultSet rs = ps.executeQuery();
BigDecimal totPrzKit = BigDecimal.ZERO;
while (rs.next()) {
String codComp = UtilityString.streNull(rs.getString("cod_comp"));
BigDecimal qtaStd = rs.getBigDecimal("qta_std");
BigDecimal percPrezzo = rs.getBigDecimal("perc_prezzo");
int totComp = rs.getInt("tot_comp");
BigDecimal przComp = BigDecimal.ZERO;
if (rs.getRow() < totComp) {
percPrezzo = percPrezzo.divide(new BigDecimal("100"));
przComp = (prezzo.multiply(percPrezzo)).setScale(2, RoundingMode.HALF_UP);
} else {
przComp = (prezzo.subtract(totPrzKit)).setScale(2, RoundingMode.HALF_UP);
}
totPrzKit = totPrzKit.add(przComp);
ComponenteType componenteType = objectFactory.createComponenteType();
componenteType.setValue(codComp);
componenteType.setPercPrezzo(UtilityString.bigDecimalToString(percPrezzo, "###0.00").replace(",", "."));
componenteType.setQtaStd(UtilityString.bigDecimalToString(qtaStd, "###0.00").replace(",", "."));
componenteType.setPrezzoComp(UtilityString.bigDecimalToString(przComp, "###0.00").replace(",", "."));
componentiType.getComponente().add(componenteType);
}
rs.close();
ps.close();
return componentiType;
}
private PremioType getPuntiPremi(ObjectFactory objectFactory, String codMart, Date dataValidita) throws Exception {
String query =
"SELECT count_fidelity," +
" amount_fidelity " +
" FROM vtb_promo, " +
" vtb_promo_articoli " +
" WHERE vtb_promo.cod_promo = vtb_promo_articoli.cod_promo AND " +
UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " between vtb_promo.data_iniz_sell_in and vtb_promo.data_fine_sell_in AND " +
" vtb_promo_articoli.cod_mart = " + UtilityDB.valueToString(codMart) + " AND " +
" vtb_promo.flag_tipo_promo = 'R'";
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
ResultSet rs = ps.executeQuery();
PremioType premioType = null;
if (rs.next()) {
BigDecimal puntiPremi = rs.getBigDecimal(1);
BigDecimal contributoPremi = rs.getBigDecimal(2);
premioType = objectFactory.createPremioType();
premioType.setPunti(UtilityString.bigDecimalToString(puntiPremi, "###0.00").replace(",", "."));
premioType.setContributo(UtilityString.bigDecimalToString(contributoPremi, "###0.00").replace(",", "."));
}
rs.close();
ps.close();
return premioType;
}
private CodiciABarreType getBarcodeAlternativi(ObjectFactory objectFactory, String codMart) throws Exception {
CodiciABarreType codiciABarreType = objectFactory.createCodiciABarreType();
String query =
"SELECT mtb_aart_bar_code.cod_barre as 'cod_barre'," +
" mtb_aart_bar_code.qta_cnf as 'qta_cnf' " +
" FROM mtb_aart_bar_code " +
" WHERE mtb_aart_bar_code.cod_mart = " + UtilityDB.valueToString(codMart);
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String codBarre = rs.getString("cod_barre");
BigDecimal qtaCnf = rs.getBigDecimal("qta_cnf");
CodBarreType codBarreType = objectFactory.createCodBarreType();
codBarreType.setValue(codBarre);
codBarreType.setQtaCnf(UtilityString.bigDecimalToString(qtaCnf, "###0.00").replace(",", "."));
codiciABarreType.getCodBarre().add(codBarreType);
}
rs.close();
ps.close();
return codiciABarreType;
}
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
CodAlisType codAlisType = objectFactory.createCodAlisType();
String tipoAssortimento = "",
tipoVariazioneGriglia = "",
codAlis = "",
descrList = "";
if (getVariazioneGriglia) {
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);
}
}
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);
}
} else {
codAlis = "NO GRIGLIA";
descrList = codAlis;
tipoAssortimento = "F.A.";
tipoVariazioneGriglia = "";
}
}
codAlisType.setValue(codAlis);
codAlisType.setDescrizione(descrList);
codMartType.getContent().add(objectFactory.createCodMartTypeTipoAssortimento(tipoAssortimento));
codMartType.getContent().add(objectFactory.createCodMartTypeTipoVariazioneGriglia(tipoVariazioneGriglia));
codMartType.getContent().add(objectFactory.createCodMartTypeCodAlis(codAlisType));
}
}

View File

@@ -10,11 +10,14 @@ import it.integry.ems.retail.ReportVariazioni.dto.VariazioniDettaglioDTO;
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.dto.GrigliaAcquistoDTO;
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.utility.UtilityDirs;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.TypeDbObject;
import it.integry.ems_model.utility.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
@@ -32,12 +35,13 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Scope("request")
public class VariazioniPvServiceNew {
public class VariazioniPvService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
@@ -51,6 +55,11 @@ public class VariazioniPvServiceNew {
private JSONObjectMapper jsonObjectMapper;
@Autowired
private MailService mailService;
@Autowired
private GrigliaAcquistoHandlerService grigliaAcquistoHandlerService;
private HashMap<String, String> listini = new HashMap<>();
private List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
@@ -77,13 +86,17 @@ public class VariazioniPvServiceNew {
public List<VariazioniDettaglioDTO> variazionePrezzoPVdto(VariazioniPvInputDTO variazioniPvDTO) throws Exception {
HashMap<String, String> setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
boolean existVariazioni = (variazioniPvDTO.getVariazioni() != null && variazioniPvDTO.getVariazioni().size() > 0 );
List<VariazioniDTO> listini = getListini(variazioniPvDTO, existVariazioni);
List<VariazioniDettaglioDTO> variazioni = new ArrayList<>();
Date startDate = new Date();
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.trace(VariazioniPvService.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
for(VariazioniDTO datiLisv:listini) {
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
datiLisv
.setElencoCasse(getElencoCasse(datiLisv.getCodMdep()));
String codVlisVariazioni = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, "COD_VLIS_VARIAZIONI", datiLisv.getCodMdep());
@@ -91,6 +104,9 @@ public class VariazioniPvServiceNew {
datiLisv.setCodVlis(codVlisVariazioni);
}
datiLisv.setDataVariazione(variazioniPvDTO.getDataValidita());
List<VariazioniDettaglioDTO> variazioniLisv = null;
if (existVariazioni) {
variazioniLisv =
@@ -98,7 +114,7 @@ public class VariazioniPvServiceNew {
.filter(x->x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.toList();
} else {
String query = getQueryVariazioni(variazioniPvDTO, setup, datiLisv.getCodVlis());
String query = getQueryVariazioni(variazioniPvDTO, setup, datiLisv.getCodVlis(), getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
variazioniLisv = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, VariazioniDettaglioDTO.class);
if (variazioniLisv != null) {
Stream.of(variazioniLisv)
@@ -111,12 +127,12 @@ public class VariazioniPvServiceNew {
);
}
}
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - getElencoArticoli Listino " + datiLisv.getCodVlis() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.trace(VariazioniPvService.class.getSimpleName() + " - getElencoArticoli Listino " + datiLisv.getCodVlis() + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
if (variazioniLisv != null && variazioniLisv.size() > 0 )
variazioni.addAll(variazioniLisv);
}
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - fine : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.trace(VariazioniPvService.class.getSimpleName() + " - fine : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
return variazioni;
}
@@ -124,17 +140,25 @@ public class VariazioniPvServiceNew {
public ReportType variazionePrezzoPV(VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
HashMap<String, String> setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
String invioIngredienti = setup.get("INVIA_INGREDIENTI_OPZ");
String colNameDescrEstesa = "descrizione_estesa";
String setupDescr = setup.get("DESCRIZIONE_ESTESA");
boolean existVariazioni = (variazioniPvInputDTO.getVariazioni() != null && variazioniPvInputDTO.getVariazioni().size() > 0 );
List<VariazioniDTO> listini = getListini(variazioniPvInputDTO, existVariazioni);
ReportType fileVariazioniDTO = new ReportType();
Date startDate = new Date();
logger.debug(VariazioniPvServiceNew.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.debug(VariazioniPvService.class.getSimpleName() + " - inizio : Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
for(VariazioniDTO datiLisv:listini) {
String codVlis = datiLisv.getCodVlis();
String codMdep = UtilityString.streNull(datiLisv.getCodMdep());
String elencoCasse = getElencoCasse(codMdep);
HashMap<String, String> getSetupSectionDepo = setupGest.getSetupSectionDepo(multiDBTransactionManager.getPrimaryConnection(), gestName, section, codMdep);
ObjectFactory objectFactory = new ObjectFactory();
CodVlisType listinoDTO = new CodVlisType();
@@ -158,19 +182,36 @@ public class VariazioniPvServiceNew {
.filter(x->x.getCodVlis().equalsIgnoreCase(datiLisv.getCodVlis()))
.toList();
} else {
String query = getQueryVariazioni(variazioniPvInputDTO, setup, codVlis);
String query = getQueryVariazioni(variazioniPvInputDTO, setup, codVlis, getSetupSectionDepo.get("SELEZIONA_GRIGLIE"));
elencoVar = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), query, VariazioniDettaglioDTO.class);
}
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - getElencoArticoli Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.trace(VariazioniPvService.class.getSimpleName() + " - getElencoArticoli Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
if (elencoVar != null ) {
boolean getVariazioneGriglia = false;
if ((variazioniPvInputDTO.getTipoReportEnum() == VariazioniReportType.GRIGLIA ||
variazioniPvInputDTO.getTipoReportEnum() == VariazioniReportType.LISTINO) &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE") != null &&
getSetupSectionDepo.get("SELEZIONA_GRIGLIE").equalsIgnoreCase("S")) {
getVariazioneGriglia = true;
grigliaAcquisto = grigliaAcquistoHandlerService.getGrigliaAcquisto();
grigliaAcquisto = Stream.of(grigliaAcquisto)
.filter(x -> x.getDataValidita().equals(variazioniPvInputDTO.getDataValidita()) &&
x.getCodMdep().equalsIgnoreCase(codMdep))
.toList();
}
for (VariazioniDettaglioDTO variazioni : elencoVar) {
CodMartType codMart = fillArticoloData(objectFactory, variazioni, setup, variazioniPvInputDTO, codMdep);
CodMartType codMart = fillArticoloData(objectFactory, variazioni, variazioniPvInputDTO,invioIngredienti, getSetupSectionDepo, codMdep, setupDescr,
setup.get("LIBERO1"),
setup.get("LIBERO2"), getVariazioneGriglia);
listinoDTO.getContent().add(objectFactory.createCodVlisTypeCodMart(codMart));
}
}
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - creazione xml Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
logger.trace(VariazioniPvService.class.getSimpleName() + " - creazione xml Listino " + codVlis + ": Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
}
logger.trace(VariazioniPvServiceNew.class.getSimpleName() + " - fine : 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) {
@@ -215,9 +256,14 @@ public class VariazioniPvServiceNew {
private CodMartType fillArticoloData(ObjectFactory objectFactory,
VariazioniDettaglioDTO var,
Map<String, String> setup,
VariazioniPvInputDTO variazioniPvInputDTO,
String codMdep) throws Exception {
String invioIngredientiSetup,
Map<String, String> setupDepo,
String codMdep,
String setupDescr,
String valLibero1,
String valLibero2,
boolean getVariazioneGriglia) throws Exception {
CodMartType codMartType = objectFactory.createCodMartType();
String codMart = var.getCodMart();
@@ -243,7 +289,14 @@ public class VariazioniPvServiceNew {
flagStato = "I";
}
codMartType.getContent().add(codMart);
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizione(UtilityString.streNull(var.getDescrArt())));
String descrizioneEstesa = var.getDescrizioneEstesa();
if (!UtilityString.isNullOrEmpty(setupDescr)) {
if (setupDescr.equalsIgnoreCase("D"))
descrizioneEstesa = var.getDescrizione();
else if (setupDescr.equalsIgnoreCase("B"))
descrizioneEstesa = var.getDescrCassa();
}
codMartType.getContent().add(objectFactory.createCodMartTypeDescrizioneEstesa(UtilityString.streNull(descrizioneEstesa)));
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis2(UtilityString.streNull(var.getUntMis2())));
codMartType.getContent().add(objectFactory.createCodMartTypeUntMis(UtilityString.streNull(var.getUntMis())));
codMartType.getContent().add(objectFactory.createCodMartTypeRapConv2(UtilityString.bigDecimalToString(var.getRapConv2(), "###0.00").replace(",", ".")));
@@ -336,7 +389,7 @@ public class VariazioniPvServiceNew {
if (UtilityString.isNullOrEmpty(inviaIngrOpz)) {
//PER CARELLI ABBIAMO RESO OPZIONALE L'INVIO DEGLI INGREDIENTI (SOLO SE VARIATI IN DISTINTA BASE) PER TUTTI GLI ALTRI
//GLI INGREDIENTI VENGONO COMUNQUE INVIATI
inviaIngrOpz = setup.get("INVIA_INGREDIENTI_OPZ");
inviaIngrOpz = invioIngredientiSetup;
}
String ingredienti = UtilityString.streNull(var.getIngredienti());
IngredientiType ingredientiType = getIngredienti(objectFactory, codMart, variazioniPvInputDTO.getDataValidita(), variazioniPvInputDTO.getTipoReportEnum(), tipoVariazioneLisv, inviaIngrOpz, ingredienti);
@@ -357,13 +410,46 @@ public class VariazioniPvServiceNew {
codMartType.getContent().add(objectFactory.createCodMartTypeCodiciABarre(codiciABarreType));
//DATI GRIGLIA DI ACQUISTO
if ("S".equalsIgnoreCase(setup.get("SELEZIONA_GRIGLIE"))) {
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvInputDTO.getDataValidita(), codMartType);
if ("S".equalsIgnoreCase(setupDepo.get("SELEZIONA_GRIGLIE"))) {
getDatiGriglia(objectFactory, codMart, codMdep, variazioniPvInputDTO.getDataValidita(), codMartType, getVariazioneGriglia);
}
if ("S".equalsIgnoreCase(setupDepo.get("ABILITA_CAMPI_LIBERI"))) {
codMartType.getContent().add(objectFactory.createCodMartTypeLibero1(UtilityString.streNull(getValueCampoLibero(valLibero1, var, codMdep, codMart))));
codMartType.getContent().add(objectFactory.createCodMartTypeLibero2(UtilityString.streNull(getValueCampoLibero(valLibero2, var, codMdep, codMart))));
}
return codMartType;
}
private String getValueCampoLibero(String tipoValore, VariazioniDettaglioDTO var, String codMdep, String codMart) throws Exception {
if (UtilityString.isNullOrEmpty(tipoValore)) return "";
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);
BigDecimal valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
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" +
"WHERE cod_mdep = %s\n" +
" AND cod_mart = %s", codMdep, codMart);
valMedio = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
return (valMedio == null ? "" : new DecimalFormat("#,##0.00").format(valMedio));
} else if (tipoValore.equalsIgnoreCase("P")) {
return var.getPosizioneArticolo();
} else if (tipoValore.equalsIgnoreCase("T")) {
return var.getIntercodeXmlVariazioni();
}
return null;
}
private static String convertDateToString(Date data) {
String dataString = "";
if (data != null) {
@@ -400,19 +486,20 @@ public class VariazioniPvServiceNew {
return codMgrpType;
}
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO, HashMap<String, String> setup, String codVlis) throws Exception{
private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO,
HashMap<String, String> setup,
String codVlis,
String selezionaGriglie) throws Exception{
String queryAssortimento = getQueryAssortimento(variazioniPvDTO, setup, codVlis);
String queryAssortimento = getQueryAssortimento(variazioniPvDTO, setup, codVlis, selezionaGriglie);
String query =
"SELECT listino.cod_vlis,\n" +
" listino.descrizione AS 'descr_lisv',\n" +
" listino.flag_list_iva_inclusa,\n" +
" ISNULL(assortimento.cod_mart_view, listino.cod_mart) AS 'cod_mart',\n" +
" ISNULL(CASE\n" +
" WHEN '[INVIA_DESC_CASSA]' = 'D'\n" +
" THEN CONVERT(VARCHAR(40), mtb_aart.descr_cassa)\n" +
" ELSE NULL END,\n" +
" mtb_aart.descrizione) AS 'descr_art',\n" +
" mtb_aart.descrizione AS 'descr_art',\n" +
" CONVERT(VARCHAR(40), mtb_aart.descr_cassa) AS 'descr_cassa',\n" +
" mtb_aart.descrizione_estesa AS 'descrizione_estesa',\n" +
" mtb_aart.unt_mis2 AS 'unt_mis2',\n" +
" ISNULL(mtb_aart.rap_conv2, 1) AS 'rap_conv2',\n" +
" mtb_aart.cod_mgrp AS 'cod_mgrp',\n" +
@@ -432,11 +519,6 @@ public class VariazioniPvServiceNew {
" CASE\n" +
" WHEN assortimento.tipo_variazione = 'C' THEN 'I'\n" +
" ELSE mtb_aart.flag_stato END AS 'flag_stato',\n" +
" ISNULL(CASE\n" +
" WHEN '[INVIA_DESC_CASSA]' = 'E'\n" +
" THEN CONVERT(VARCHAR(40), mtb_aart.descr_cassa)\n" +
" ELSE NULL END,\n" +
" mtb_aart.descrizione_estesa) AS 'descrizione_estesa',\n" +
" mtb_aart.cod_aliq AS 'cod_aliq',\n" +
" CASE\n" +
" WHEN mtb_aart.articolo_composto = 'S' AND mtb_aart.esposizione_comp = 'S' THEN 'S'\n" +
@@ -506,7 +588,9 @@ public class VariazioniPvServiceNew {
" CASE\n" +
" WHEN promozione.cod_promo IS NOT NULL AND promozione.flag_tipo_promo <> 'P'\n" +
" THEN listino.cod_vlis + '_' + CAST(promozione.versione AS VARCHAR)\n" +
" ELSE NULL END AS 'id_promo'\n" +
" ELSE NULL END AS 'id_promo',\n" +
" mtb_aart.posizione AS 'posizione_art',\n" +
" promozione.intercode_xml_variazioni AS 'intercode_xml_variazioni'\n" +
"FROM (" + queryAssortimento + ") assortimento\n" +
" INNER JOIN dbo.getlistinovendita('[DATA_VARIAZIONE]', '[COD_VLIS]', NULL) listino\n" +
" ON assortimento.cod_vlis = listino.cod_vlis AND assortimento.cod_mart = listino.cod_mart and listino.data_iniz is not null\n" +
@@ -526,17 +610,17 @@ public class VariazioniPvServiceNew {
" 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()==VariazioniReportType.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() == VariazioniReportType.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;
}
@@ -552,7 +636,10 @@ public class VariazioniPvServiceNew {
return StringUtils.join(casse, "|");
}
private String getQueryAssortimento(VariazioniPvInputDTO variazioniPvDTO, HashMap<String, String> setup, String codVlis) throws Exception {
private String getQueryAssortimento(VariazioniPvInputDTO variazioniPvDTO,
HashMap<String, String> setup,
String codVlis,
String selezionaGriglia) throws Exception {
String queryAssortimento = null;
@@ -563,18 +650,18 @@ public class VariazioniPvServiceNew {
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:
String selezionaGriglia = setup.get("SELEZIONA_GRIGLIE");
queryAssortimento =
"SELECT vtb_list_data.cod_vlis,\n" +
" mtb_lisv_data.cod_mart,\n" +
@@ -606,17 +693,6 @@ public class VariazioniPvServiceNew {
"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" +
"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 = '[DATA_VALIDITA]'\n" +
" AND mtb_depo.cod_vlis = '[COD_VLIS]'\n" +
" AND " + UtilityDB.valueToString(selezionaGriglia) + " = 'S'\n" +
"UNION\n" +
"SELECT lisv.cod_vlis\n" +
" , lisv.cod_mart\n" +
" , tipo_variazione\n" +
@@ -645,14 +721,30 @@ public class VariazioniPvServiceNew {
" 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 GRIGLIA:
queryAssortimento =
"SELECT mtb_depo.cod_vlis,\n" +
" atb_griglie_art.cod_mart,\n" +
" 'G' AS tipo_variazione,\n" +
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\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]'";
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, " +
@@ -688,20 +780,20 @@ public class VariazioniPvServiceNew {
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 " +
"Convert(varchar(1), max(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 " +
"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";
return query;
}
@@ -892,36 +984,85 @@ public class VariazioniPvServiceNew {
return codiciABarreType;
}
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType) throws Exception {
String query =
Query.format(
"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, " +
" dbo.getGrigliaAcquisto(%s, NULL, %s, NULL, %s) griglia " +
" WHERE griglia.tipo_variazione <> 'D' AND " +
" atb_list.cod_alis = griglia.cod_alis " +
" ORDER BY griglia.data_validita DESC ",
dataValidita, codMdep, codMart);
HashMap<String, Object> datiGriglia = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), query);
String tipoAssortimento, tipoVariazioneGriglia, codAlis, descrList;
private void getDatiGriglia(ObjectFactory objectFactory, String codMart, String codMdep, Date dataValidita, CodMartType codMartType, boolean getVariazioneGriglia) throws Exception {
CodAlisType codAlisType = objectFactory.createCodAlisType();
if (UtilityHashMap.isPresent(datiGriglia)) {
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 {
tipoAssortimento = "F.A.";
tipoVariazioneGriglia = "";
codAlis = "NO GRIGLIA";
descrList = codAlis;
String tipoAssortimento = "",
tipoVariazioneGriglia = "",
codAlis = "",
descrList = "";
if (getVariazioneGriglia) {
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);
}
}
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);
}
} else {
codAlis = "NO GRIGLIA";
descrList = codAlis;
tipoAssortimento = "F.A.";
tipoVariazioneGriglia = "";
}
}
codAlisType.setValue(codAlis);
@@ -976,7 +1117,7 @@ public class VariazioniPvServiceNew {
private void export(String codVlis, Date dataValidita, String tipoReport, VariazioniPvInputDTO variazioniPvInputDTO) throws Exception {
logger.debug(
String.format(VariazioniPvServiceNew.class.getSimpleName() + " - export %s %s %s",
String.format(VariazioniPvService.class.getSimpleName() + " - export %s %s %s",
codVlis,
tipoReport,
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataValidita)));

View File

@@ -8,8 +8,8 @@ import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.response.StatusResponse;
import it.integry.ems.retail.ReportVariazioni.dto.Variazioni.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPVService;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService;
import it.integry.ems.retail.Scontrini.service.ScontriniService;
import it.integry.ems.retail.dto.IntegRetailRequestDTO;
import it.integry.ems.retail.export.VariazioniExporter;
@@ -45,7 +45,7 @@ public class RetailController {
private ScontriniService scontriniService;
@Autowired
private VariazioniPVService retailService;
private VariazioniPvService retailService;
@Autowired
private EmsServices emsServices;

View File

@@ -9,8 +9,9 @@ import it.integry.ems.json.JSONObjectMapper;
import it.integry.ems.properties.EmsProperties;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.retail.ReportVariazioni.dto.Variazioni.*;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPVService;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportType;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService;
import it.integry.ems.retail.ReportVariazioni.xml.*;
import it.integry.ems.retail.pvmRetail.dto.SesSepDTO;
import it.integry.ems.service.HttpRestWrapper;
@@ -49,8 +50,7 @@ import java.util.*;
@Scope("request")
public class VariazioniPvExportServices {
private final Logger logger = LogManager.getLogger();
@Autowired
private EmsProperties properties;
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
@@ -58,7 +58,7 @@ public class VariazioniPvExportServices {
@Autowired
private JSONObjectMapper jsonObjectMapper;
@Autowired
private VariazioniPVService variazioniPVService;
private VariazioniPvService variazioniPVService;
public EntityExportResponse xmlDialogo(String type, String format, String whereCond, JsonNode jsonBody, WtbUsersInfo wtbUsersInfo, List<AnomalieDTO> anomalie) throws Exception {
String fileXml = null;
@@ -79,7 +79,7 @@ public class VariazioniPvExportServices {
variazioniPvDTO.setDataValidita(UtilityDate.RelativeDateTime(new Date(), 1));
}
if (variazioniPvDTO.getTipoReportEnum() == null) {
variazioniPvDTO.setTipoReportEnum(VariazioniPvInputDTO.Type.VARIAZIONI);
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);
}
if (!UtilityString.isNullOrEmpty(whereCond) && UtilityString.isNullOrEmpty(variazioniPvDTO.getWhereCondArt())) {
@@ -196,7 +196,7 @@ public class VariazioniPvExportServices {
if (isSingleLisv) {
String suffix = "";
if (variazioniPvDTO.getTipoReportEnum().compareTo(VariazioniPvInputDTO.Type.PROMOZIONI) == 0) {
if (variazioniPvDTO.getTipoReportEnum().compareTo(VariazioniReportType.PROMOZIONI) == 0) {
suffix = "P";
}
String pathFile = setup.get("PATH_FILE");
@@ -247,7 +247,7 @@ public class VariazioniPvExportServices {
variazioniPvDTO.setDataValidita(UtilityDate.RelativeDateTime(new Date(), 1));
}
if (variazioniPvDTO.getTipoReportEnum() == null) {
variazioniPvDTO.setTipoReportEnum(VariazioniPvInputDTO.Type.VARIAZIONI);
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);
}
ReportType variazioni = variazioniPVService.variazionePrezzoPV(variazioniPvDTO);

View File

@@ -12,7 +12,6 @@ import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportType;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvServiceNew;
import it.integry.ems.retail.ReportVariazioni.xml.*;
import it.integry.ems.retail.pvmRetail.dto.SesSepDTO;
import it.integry.ems.service.HttpRestWrapper;
@@ -61,8 +60,10 @@ public class VariazioniPvExportServicesNew {
private SetupGest setupGest;
@Autowired
private JSONObjectMapper jsonObjectMapper;
@Autowired
private VariazioniPvServiceNew variazioniPVService;
private VariazioniPvService variazioniPvService;
public EntityExportResponse xmlDialogo(String type, String format, String whereCond, JsonNode jsonBody, WtbUsersInfo wtbUsersInfo) throws Exception {
String fileXml;
@@ -107,7 +108,7 @@ public class VariazioniPvExportServicesNew {
}
}
fileXml = variazioniPVService.variazionePrezzoPVXml(variazioniPvDTO);
fileXml = variazioniPvService.variazionePrezzoPVXml(variazioniPvDTO);
} else {
fileXml = variazioniPvDTO.getFileXml();
logger.trace(String.format(VariazioniPvExportServicesNew.class.getSimpleName() + " %s %s", variazioniPvDTO.getCodVlis(), variazioniPvDTO.getTipoReport()));
@@ -220,16 +221,16 @@ public class VariazioniPvExportServicesNew {
JSONObjectMapper objectMapper = new JSONObjectMapper();
json = objectMapper.writeValueAsString(variazioniPvDTO.getVariazioni());
}
// NtbVariazioniExportLog ntbVariazioniExportLog =
// new NtbVariazioniExportLog()
// .setDataExport(new Date())
// .setCodVlis(variazioniPvDTO.getCodVlis())
// .setFormatFile(format)
// .setJsonString(json)
// .setXmlFileName(fileName + ".xml")
// .setUserName(variazioniPvDTO.getUserName());
// ntbVariazioniExportLog.setOperation(OperationType.INSERT);
// extraInfo.add(ntbVariazioniExportLog);
NtbVariazioniExportLog ntbVariazioniExportLog =
new NtbVariazioniExportLog()
.setDataExport(new Date())
.setCodVlis(variazioniPvDTO.getCodVlis())
.setFormatFile(format)
.setJsonString(json)
.setXmlFileName(fileName + ".xml")
.setUserName(variazioniPvDTO.getUserName());
ntbVariazioniExportLog.setOperation(OperationType.INSERT);
extraInfo.add(ntbVariazioniExportLog);
}
fileName = pathFile + File.separator + fileName + ".xml";
File file = new File(fileName);
@@ -268,7 +269,7 @@ public class VariazioniPvExportServicesNew {
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);
}
ReportType variazioni = variazioniPVService.variazionePrezzoPV(variazioniPvDTO);
ReportType variazioni = variazioniPvService.variazionePrezzoPV(variazioniPvDTO);
if (variazioni.getCodVlis().size() == 1) {
List<Serializable> content = variazioni.getCodVlis().get(0).getContent();

View File

@@ -81,6 +81,8 @@ public class RestLoggerBodyFilter extends AbstractRequestLoggingFilter {
!serviceName.startsWith("agribook/orders/attachment/") &&
!serviceName.contains("upload") &&
!serviceName.startsWith("users/") &&
!serviceName.startsWith("users/") &&
!serviceName.startsWith("variazioni-negozi/") &&
(!serviceName.contains("processSql") || UtilityDebug.isDebugExecution());
}