diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/NtbVariazioniExportLog.java b/ems-core/src/main/java/it/integry/ems_model/entity/NtbVariazioniExportLog.java new file mode 100644 index 0000000000..cf889335a6 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems_model/entity/NtbVariazioniExportLog.java @@ -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; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/controller/VariazioniPvController.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/controller/VariazioniPvController.java index 964d50bafb..b5d3c4bfbc 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/controller/VariazioniPvController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/controller/VariazioniPvController.java @@ -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 diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniDTO.java deleted file mode 100644 index 0e7b0ebf16..0000000000 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniDTO.java +++ /dev/null @@ -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; - } - - -} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniPvInputDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniPvInputDTO.java deleted file mode 100644 index 38683fa24f..0000000000 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/Variazioni/VariazioniPvInputDTO.java +++ /dev/null @@ -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; - } - } -} diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniDettaglioDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniDettaglioDTO.java index 976c413e07..2fa6b515cd 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniDettaglioDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniDettaglioDTO.java @@ -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; + } } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniPvInputDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniPvInputDTO.java index 5fe23940a1..bb1536b2d3 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniPvInputDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniPvInputDTO.java @@ -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 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; - } } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniReportType.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniReportType.java index 7bda7e7efa..132374288b 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniReportType.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/dto/VariazioniReportType.java @@ -2,6 +2,7 @@ package it.integry.ems.retail.ReportVariazioni.dto; public enum VariazioniReportType { VARIAZIONI("V"), + GRIGLIA("G"), PROMOZIONI("P"), LISTINO("L"); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPVService.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPVService.java deleted file mode 100644 index c64c6ea2b3..0000000000 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPVService.java +++ /dev/null @@ -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 listini = new HashMap<>(); - private List 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 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> 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 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 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> 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 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 var, - VariazioniPvInputDTO variazioniPvDTO, - String invioIngredientiSetup, - Map 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.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 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 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 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 casse = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql); - - return StringUtils.join(casse, "|"); - } - - private String getQueryAssortimento(VariazioniPvInputDTO variazioniPvDTO, - HashMap 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 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 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 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 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 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)); - } -} \ No newline at end of file diff --git a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvServiceNew.java b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java similarity index 83% rename from ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvServiceNew.java rename to ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java index f3f589a8d1..45a00126bb 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvServiceNew.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/ReportVariazioni/service/VariazioniPvService.java @@ -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 listini = new HashMap<>(); + private List grigliaAcquisto = new ArrayList<>(); public String variazionePrezzoPVXml(VariazioniPvInputDTO variazioniPvDTO) throws Exception { @@ -77,13 +86,17 @@ public class VariazioniPvServiceNew { public List variazionePrezzoPVdto(VariazioniPvInputDTO variazioniPvDTO) throws Exception { HashMap setup = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section); + boolean existVariazioni = (variazioniPvDTO.getVariazioni() != null && variazioniPvDTO.getVariazioni().size() > 0 ); List listini = getListini(variazioniPvDTO, existVariazioni); List 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 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 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 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 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 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 setup, VariazioniPvInputDTO variazioniPvInputDTO, - String codMdep) throws Exception { + String invioIngredientiSetup, + Map 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 setup, String codVlis) throws Exception{ + private String getQueryVariazioni(VariazioniPvInputDTO variazioniPvDTO, + HashMap 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 setup, String codVlis) throws Exception { + private String getQueryAssortimento(VariazioniPvInputDTO variazioniPvDTO, + HashMap 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 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 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 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))); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/controller/RetailController.java b/ems-engine/src/main/java/it/integry/ems/retail/controller/RetailController.java index 3b574347b1..097ff07569 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/controller/RetailController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/controller/RetailController.java @@ -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; diff --git a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java index 17fddcd5b2..9341b31d6a 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServices.java @@ -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 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); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServicesNew.java b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServicesNew.java index 91e310e277..ed7110bab7 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServicesNew.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/export/service/VariazioniPvExportServicesNew.java @@ -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 content = variazioni.getCodVlis().get(0).getContent(); diff --git a/ems-engine/src/main/java/it/integry/security/filter/RestLoggerBodyFilter.java b/ems-engine/src/main/java/it/integry/security/filter/RestLoggerBodyFilter.java index 95c45058dc..af9feb0b8c 100644 --- a/ems-engine/src/main/java/it/integry/security/filter/RestLoggerBodyFilter.java +++ b/ems-engine/src/main/java/it/integry/security/filter/RestLoggerBodyFilter.java @@ -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()); }