Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2024-06-21 18:56:47 +02:00
17 changed files with 547 additions and 39 deletions

View File

@@ -0,0 +1,21 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621094545 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("PICKING", "SPEDIZIONE", "FLAG_ASK_DUPLICATE_UDS", "N", "Questo flag permetta all'utente di creare nel picking di vendita più UDS partendo da una già creata solo se l'UDS non ha riferimenti a colli di carico.", "SI_NO");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,28 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621142815 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
executeStatement(
"exec dropPrimaryKey 'mtb_depo_intercode'",
"alter table mtb_depo_intercode drop column id_intercode",
"alter table mtb_depo_intercode add id bigint identity not null",
"alter table mtb_depo_intercode add constraint pk_mtb_depo_intecode primary key(id)" );
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,22 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621160003 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("W_VDISKCONAD_DLG", "FILCONAD", "GESTISCI_CLIENTI_MULTIPLI", "N", "Se impostato nel filtro sarà possibile specificare più di un cliente, per default è possibile specificare solo un codice cliente", false, null, false, false, false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,25 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621160026 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (!isCustomerDb(IntegryCustomerDB.Gramm_Gramm))
return;
createSetup("W_VDISKCONAD_DLG", "FILCONAD", "GESTISCI_CLIENTI_MULTIPLI", "S", "Se impostato nel filtro sarà possibile specificare più di un cliente, per default è possibile specificare solo un codice cliente", false, null, false, false, false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,29 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621163035 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "ATTIVO", "S", "Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "EMAIL_FOR_LOG", null, "Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "FILE_FILTER", null, "Inserire il criterio di filtro dei file o il nome del file specifio (seguire la sintassi di java)", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "GG_CANC_FILE", null, "Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "IMPORT_REST", "S", "Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "LISTENING", "N", "Se LISTENIG = 'N' la procedura di importazione non si potrà mai mettere in ascolto sulla directory perchè nella procedura vengono prese in considerazione più file.", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "PATH_FILE", null, "Directory contente i file da importare.", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI ACQUISTO", "CASSETTO_FISCALE", "PATH_FILE_IMPORTED", null, "Directory dove vengono spostati i file dopo l'importazione.", false, null, false, false, false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,30 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomer;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240621174401 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'", false);
createSetup("NTB_DOCT", "PROMOZIONI", "ESCLUDI_PROMO_INFORMATIVE", null, "esclude le promozioni informative dall'importazione del codice promo negli scontrini", false, "SI_NO", false, false, false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
if (isCustomer(IntegryCustomer.Carelli)){
executeStatement("UPDATE vtb_promo SET flag_tipologia = null where flag_tipologia = 'I'",
"UPDATE vtb_promo SET flag_tipologia = 'I' where cod_promo in ('CASSA INT', 'CASSA VOL')"
);
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -419,7 +419,7 @@ public class PackagesRules extends QueryRules {
BigDecimal rapPesoLordo = mtbColt.getPesoKg().divide(pesoLordo, 5, RoundingMode.HALF_UP); BigDecimal rapPesoLordo = mtbColt.getPesoKg().divide(pesoLordo, 5, RoundingMode.HALF_UP);
BigDecimal rapPesoNetto = mtbColt.getPesoNettoKg().divide(pesoNetto, 5, RoundingMode.HALF_UP); BigDecimal rapPesoNetto = mtbColt.getPesoNettoKg().divide(pesoNetto, 5, RoundingMode.HALF_UP);
for (MtbColr mtbColr : righe) { for (MtbColr mtbColr : righe) {
if (mtbColr.getOperation() != OperationType.DELETE) { if (mtbColr.getOperation() != OperationType.DELETE && mtbColr.getCodMart() != null) {
BigDecimal pesoNettoRiga = mtbColr.getPesoNettoKg().multiply(rapPesoNetto).setScale(5, RoundingMode.HALF_UP); BigDecimal pesoNettoRiga = mtbColr.getPesoNettoKg().multiply(rapPesoNetto).setScale(5, RoundingMode.HALF_UP);
BigDecimal pesoLordoRiga = mtbColr.getPesoLordoKg().multiply(rapPesoLordo).setScale(5, RoundingMode.HALF_UP); BigDecimal pesoLordoRiga = mtbColr.getPesoLordoKg().multiply(rapPesoLordo).setScale(5, RoundingMode.HALF_UP);

View File

@@ -544,8 +544,9 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
return dataDistribuzione; return dataDistribuzione;
} }
public void setDataDistribuzione(Date dataDistribuzione) { public MtbColt setDataDistribuzione(Date dataDistribuzione) {
this.dataDistribuzione = dataDistribuzione; this.dataDistribuzione = dataDistribuzione;
return this;
} }
public String getFlagColloAnonimo() { public String getFlagColloAnonimo() {

View File

@@ -1,12 +1,9 @@
package it.integry.ems_model.entity; package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems_model.annotation.PK; import it.integry.ems_model.annotation.*;
import it.integry.ems_model.annotation.SqlField;
import it.integry.ems_model.annotation.Table;
import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.base.EntityBase;
import org.kie.api.definition.type.PropertyReactive; import org.kie.api.definition.type.PropertyReactive;
import it.integry.ems_model.annotation.FK;
@PropertyReactive @PropertyReactive
@Table(MtbDepoIntercode.ENTITY) @Table(MtbDepoIntercode.ENTITY)
@@ -17,17 +14,17 @@ public class MtbDepoIntercode extends EntityBase {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@PK @ImportFromParent
@SqlField(value = "cod_mdep", maxLength = 5, nullable = false) @SqlField(value = "cod_mdep", maxLength = 5, nullable = false)
private String codMdep; private String codMdep;
@PK
@SqlField(value = "cod_forn", maxLength = 5, nullable = false) @SqlField(value = "cod_forn", maxLength = 5, nullable = false)
private String codForn; private String codForn;
@PK @PK
@SqlField(value = "id_intercode", nullable = false) @Identity
private Integer idIntercode; @SqlField(value = "id", nullable = false)
private Long id;
@SqlField(value = "intercode", maxLength = 40, nullable = false) @SqlField(value = "intercode", maxLength = 40, nullable = false)
private String intercode; private String intercode;
@@ -49,55 +46,62 @@ public class MtbDepoIntercode extends EntityBase {
return codMdep; return codMdep;
} }
public void setCodMdep(String codMdep) { public MtbDepoIntercode setCodMdep(String codMdep) {
this.codMdep = codMdep; this.codMdep = codMdep;
return this;
} }
public String getCodForn() { public String getCodForn() {
return codForn; return codForn;
} }
public void setCodForn(String codForn) { public MtbDepoIntercode setCodForn(String codForn) {
this.codForn = codForn; this.codForn = codForn;
return this;
} }
public Integer getIdIntercode() { public Long getId() {
return idIntercode; return id;
} }
public void setIdIntercode(Integer idIntercode) { public MtbDepoIntercode setId(Long id) {
this.idIntercode = idIntercode; this.id = id;
return this;
} }
public String getIntercode() { public String getIntercode() {
return intercode; return intercode;
} }
public void setIntercode(String intercode) { public MtbDepoIntercode setIntercode(String intercode) {
this.intercode = intercode; this.intercode = intercode;
return this;
} }
public String getCodVdes() { public String getCodVdes() {
return codVdes; return codVdes;
} }
public void setCodVdes(String codVdes) { public MtbDepoIntercode setCodVdes(String codVdes) {
this.codVdes = codVdes; this.codVdes = codVdes;
return this;
} }
public String getUserName() { public String getUserName() {
return userName; return userName;
} }
public void setUserName(String userName) { public MtbDepoIntercode setUserName(String userName) {
this.userName = userName; this.userName = userName;
return this;
} }
public String getEmailOrdine() { public String getEmailOrdine() {
return emailOrdine; return emailOrdine;
} }
public void setEmailOrdine(String emailOrdine) { public MtbDepoIntercode setEmailOrdine(String emailOrdine) {
this.emailOrdine = emailOrdine; this.emailOrdine = emailOrdine;
return this;
} }
} }

File diff suppressed because one or more lines are too long

View File

@@ -112,6 +112,18 @@ public class ActivityDTO {
@SqlField(value = "planned_this_week") @SqlField(value = "planned_this_week")
private boolean plannedThisWeek; private boolean plannedThisWeek;
@SqlField(value = "done_this_month")
private boolean doneThisMonth;
@SqlField(value = "done_previous_month")
private boolean donePreviousMonth;
@SqlField(value = "done_this_quarter")
private boolean doneThisQuarter;
@SqlField(value = "done_previous_quarter")
private boolean donePreviousQuarter;
@SqlField(value = "stato_attivita") @SqlField(value = "stato_attivita")
private Integer statoAttivita; private Integer statoAttivita;
@@ -532,6 +544,42 @@ public class ActivityDTO {
return this; return this;
} }
public boolean isDoneThisMonth() {
return doneThisMonth;
}
public ActivityDTO setDoneThisMonth(boolean doneThisMonth) {
this.doneThisMonth = doneThisMonth;
return this;
}
public boolean isDonePreviousMonth() {
return donePreviousMonth;
}
public ActivityDTO setDonePreviousMonth(boolean donePreviousMonth) {
this.donePreviousMonth = donePreviousMonth;
return this;
}
public boolean isDoneThisQuarter() {
return doneThisQuarter;
}
public ActivityDTO setDoneThisQuarter(boolean doneThisQuarter) {
this.doneThisQuarter = doneThisQuarter;
return this;
}
public boolean isDonePreviousQuarter() {
return donePreviousQuarter;
}
public ActivityDTO setDonePreviousQuarter(boolean donePreviousQuarter) {
this.donePreviousQuarter = donePreviousQuarter;
return this;
}
public Integer getStatoAttivita() { public Integer getStatoAttivita() {
return statoAttivita; return statoAttivita;
} }

View File

@@ -877,7 +877,7 @@ public class ActivityService {
" THEN 1\n" + " THEN 1\n" +
" ELSE 0 END) AS done_this_month,\n" + " ELSE 0 END) AS done_this_month,\n" +
" MAX(CASE\n" + " MAX(CASE\n" +
" WHEN effective_date is not null AND effective_date BETWEEN dbo.f_getfirstdayofmonth(DateAdd(-1, month, GETDATE())) AND EOMONTH(DateAdd(-1, month, GETDATE())) THEN 1\n" + " WHEN effective_date is not null AND effective_date BETWEEN dbo.f_getfirstdayofmonth(DateAdd(MONTH, -1, GETDATE())) AND EOMONTH(DateAdd(MONTH, -1, GETDATE())) THEN 1\n" +
" ELSE 0 END) AS done_previous_month,\n" + " ELSE 0 END) AS done_previous_month,\n" +
" MAX(CASE\n" + " MAX(CASE\n" +
" WHEN effective_date is not null AND DATEPART(QUARTER, effective_date) = DATEPART(QUARTER, GETDATE())\n" + " WHEN effective_date is not null AND DATEPART(QUARTER, effective_date) = DATEPART(QUARTER, GETDATE())\n" +
@@ -1026,6 +1026,10 @@ public class ActivityService {
" CAST(ISNULL(sottoattivita.planned_previous_week, 0) AS BIT) AS planned_previous_week,\n" + " CAST(ISNULL(sottoattivita.planned_previous_week, 0) AS BIT) AS planned_previous_week,\n" +
" CAST(ISNULL(sottoattivita.planned_next_week, 0) AS BIT) AS planned_next_week,\n" + " CAST(ISNULL(sottoattivita.planned_next_week, 0) AS BIT) AS planned_next_week,\n" +
" CAST(ISNULL(sottoattivita.planned_this_week, 0) AS BIT) AS planned_this_week,\n" + " CAST(ISNULL(sottoattivita.planned_this_week, 0) AS BIT) AS planned_this_week,\n" +
" CAST(ISNULL(sottoattivita.done_this_month, 0) AS BIT) AS done_this_month,\n" +
" CAST(ISNULL(sottoattivita.done_previous_month, 0) AS BIT) AS done_previous_month,\n" +
" CAST(ISNULL(sottoattivita.done_this_quarter, 0) AS BIT) AS done_this_quarter,\n" +
" CAST(ISNULL(sottoattivita.done_previous_quarter, 0) AS BIT) AS done_previous_quarter,\n" +
" stato_attivita,\n" + " stato_attivita,\n" +
" is_bug,\n" + " is_bug,\n" +
" tags,\n" + " tags,\n" +

View File

@@ -7,6 +7,7 @@ import it.integry.ems.document.BRT.restShipment.BrtService;
import it.integry.ems.document.Import.dto.*; import it.integry.ems.document.Import.dto.*;
import it.integry.ems.document.Import.service.*; import it.integry.ems.document.Import.service.*;
import it.integry.ems.document.fatture.services.FPR12InvoiceService; import it.integry.ems.document.fatture.services.FPR12InvoiceService;
import it.integry.ems.document.fatture.services.PassiveInvoiceService;
import it.integry.ems.document.puddy.service.ImportDocumentiEUROFOODService; import it.integry.ems.document.puddy.service.ImportDocumentiEUROFOODService;
import it.integry.ems.document.puddy.service.SyncFromPuddyService; import it.integry.ems.document.puddy.service.SyncFromPuddyService;
import it.integry.ems.document.service.GirocontoVenditeService; import it.integry.ems.document.service.GirocontoVenditeService;
@@ -158,6 +159,11 @@ public class DocumentiImporter extends BaseEntityImporter<List<EntityBase>> impl
entities = getContextBean(DocumentiAcquistoImportService.class) entities = getContextBean(DocumentiAcquistoImportService.class)
.importApuliaRifOrd(type, format, requestDto, anomalie, headless); .importApuliaRifOrd(type, format, requestDto, anomalie, headless);
break; break;
case CASSETTO_FISCALE:
getContextBean(PassiveInvoiceService.class)
.checkPassiveInvoice(requestDto, anomalie);
entities = new ArrayList<>();
break;
default: default:
throw new Exception("Tipo " + format + " non supportato"); throw new Exception("Tipo " + format + " non supportato");
} }
@@ -213,7 +219,8 @@ public class DocumentiImporter extends BaseEntityImporter<List<EntityBase>> impl
BRT_JSON("BRT_JSON"), BRT_JSON("BRT_JSON"),
SCAR_MP_DA_DIST("SCAR_MP_DA_DIST"), SCAR_MP_DA_DIST("SCAR_MP_DA_DIST"),
GELORENT("GELORENT"), GELORENT("GELORENT"),
APULIA_RIFORD("APULIA_RIFORD"); APULIA_RIFORD("APULIA_RIFORD"),
CASSETTO_FISCALE("CASSETTO_FISCALE");
private String text; private String text;

View File

@@ -0,0 +1,220 @@
package it.integry.ems.document.fatture.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import it.integry.ems_model.annotation.DtoField;
import java.util.Date;
public class FatturePassiveCsvDTO {
final String formatDate = "dd/MM/yyyy";
@JsonProperty("TIPO FATTURA")
private String tipoFattura;
@JsonProperty("TIPO DOCUMENTO")
private String tipoDocumento;
@JsonProperty("NUMERO FATTURA / DOCUMENTO")
private String numFattura;
@DtoField(format = formatDate)
@JsonProperty("DATA EMISSIONE")
private Date dataEmissione;
@DtoField(format = formatDate)
@JsonProperty("DATA TRASMISSIONE")
private Date dataTrasmissione;
@JsonProperty("CODICE FISCALE FORNITORE")
private String codFiscaleFornitore;
@JsonProperty("PARTITA IVA FORNITORE")
private String partitaIvaFornitore;
@JsonProperty("DENOMINAZIONE FORNITORE")
private String denominazioneFornitore;
@JsonProperty("CODICE FISCALE CLIENTE")
private String codiceFiscaleCliente;
@JsonProperty("PARTITA IVA CLIENTE")
private String partitaIvaCliente;
@JsonProperty("DENOMINAZIONE CLIENTE")
private String denominazioneCliente;
@JsonProperty("IMPONIBILE/IMPORTO (TOTALE IN EURO)")
private String imponibileImporto;
@JsonProperty("IMPOSTA (TOTALE IN EURO)")
private String impostaImporto;
@JsonProperty("SDI/FILE")
private String sdi;
@JsonProperty("FATTURE CONSEGNATE")
private String fattureConsegnate;
@DtoField(format = formatDate)
@JsonProperty("DATA RICEZIONE")
private Date dataRicezione;
@JsonProperty("BOLLO VIRTUALE")
private String bolloVirtuale;
public String getFormatDate() {
return formatDate;
}
public String getTipoFattura() {
return tipoFattura;
}
public FatturePassiveCsvDTO setTipoFattura(String tipoFattura) {
this.tipoFattura = tipoFattura;
return this;
}
public String getTipoDocumento() {
return tipoDocumento;
}
public FatturePassiveCsvDTO setTipoDocumento(String tipoDocumento) {
this.tipoDocumento = tipoDocumento;
return this;
}
public String getNumFattura() {
return numFattura;
}
public FatturePassiveCsvDTO setNumFattura(String numFattura) {
this.numFattura = numFattura;
return this;
}
public Date getDataEmissione() {
return dataEmissione;
}
public FatturePassiveCsvDTO setDataEmissione(Date dataEmissione) {
this.dataEmissione = dataEmissione;
return this;
}
public Date getDataTrasmissione() {
return dataTrasmissione;
}
public FatturePassiveCsvDTO setDataTrasmissione(Date dataTrasmissione) {
this.dataTrasmissione = dataTrasmissione;
return this;
}
public String getCodFiscaleFornitore() {
return codFiscaleFornitore;
}
public FatturePassiveCsvDTO setCodFiscaleFornitore(String codFiscaleFornitore) {
this.codFiscaleFornitore = codFiscaleFornitore;
return this;
}
public String getPartitaIvaFornitore() {
return partitaIvaFornitore;
}
public FatturePassiveCsvDTO setPartitaIvaFornitore(String partitaIvaFornitore) {
this.partitaIvaFornitore = partitaIvaFornitore;
return this;
}
public String getDenominazioneFornitore() {
return denominazioneFornitore;
}
public FatturePassiveCsvDTO setDenominazioneFornitore(String denominazioneFornitore) {
this.denominazioneFornitore = denominazioneFornitore;
return this;
}
public String getCodiceFiscaleCliente() {
return codiceFiscaleCliente;
}
public FatturePassiveCsvDTO setCodiceFiscaleCliente(String codiceFiscaleCliente) {
this.codiceFiscaleCliente = codiceFiscaleCliente;
return this;
}
public String getPartitaIvaCliente() {
return partitaIvaCliente;
}
public FatturePassiveCsvDTO setPartitaIvaCliente(String partitaIvaCliente) {
this.partitaIvaCliente = partitaIvaCliente;
return this;
}
public String getDenominazioneCliente() {
return denominazioneCliente;
}
public FatturePassiveCsvDTO setDenominazioneCliente(String denominazioneCliente) {
this.denominazioneCliente = denominazioneCliente;
return this;
}
public String getImponibileImporto() {
return imponibileImporto;
}
public FatturePassiveCsvDTO setImponibileImporto(String imponibileImporto) {
this.imponibileImporto = imponibileImporto;
return this;
}
public String getImpostaImporto() {
return impostaImporto;
}
public FatturePassiveCsvDTO setImpostaImporto(String impostaImporto) {
this.impostaImporto = impostaImporto;
return this;
}
public String getSdi() {
return sdi;
}
public FatturePassiveCsvDTO setSdi(String sdi) {
this.sdi = sdi;
return this;
}
public String getFattureConsegnate() {
return fattureConsegnate;
}
public FatturePassiveCsvDTO setFattureConsegnate(String fattureConsegnate) {
this.fattureConsegnate = fattureConsegnate;
return this;
}
public Date getDataRicezione() {
return dataRicezione;
}
public FatturePassiveCsvDTO setDataRicezione(Date dataRicezione) {
this.dataRicezione = dataRicezione;
return this;
}
public String getBolloVirtuale() {
return bolloVirtuale;
}
public FatturePassiveCsvDTO setBolloVirtuale(String bolloVirtuale) {
this.bolloVirtuale = bolloVirtuale;
return this;
}
}

View File

@@ -2,16 +2,21 @@ package it.integry.ems.document.fatture.services;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants; import it.integry.common.var.CommonConstants;
import it.integry.ems.Import.dto.AnomalieDTO;
import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.document.fatture.base.FpxStatus; import it.integry.ems.document.fatture.base.FpxStatus;
import it.integry.ems.document.fatture.base.PassiveInvoiceRecapObject; import it.integry.ems.document.fatture.base.PassiveInvoiceRecapObject;
import it.integry.ems.document.fatture.dto.FattureCollegate; import it.integry.ems.document.fatture.dto.FattureCollegate;
import it.integry.ems.document.fatture.dto.FatturePassiveCsvDTO;
import it.integry.ems.document.fatture.dto.FpxPDFTypeEnum; import it.integry.ems.document.fatture.dto.FpxPDFTypeEnum;
import it.integry.ems.document.fatture.dto.FpxToPdfDTO; import it.integry.ems.document.fatture.dto.FpxToPdfDTO;
import it.integry.ems.document.fatture.xml.pa.FatturaElettronicaType; import it.integry.ems.document.fatture.xml.pa.FatturaElettronicaType;
import it.integry.ems.document.fatture.xml.pa.SoggettoEmittenteType; import it.integry.ems.document.fatture.xml.pa.SoggettoEmittenteType;
import it.integry.ems.document.fatture.xml.pa.TipoDocumentoType; import it.integry.ems.document.fatture.xml.pa.TipoDocumentoType;
import it.integry.ems.document.service.DocumentService; import it.integry.ems.document.service.DocumentService;
import it.integry.ems.file_formatter.csv.CsvMapper;
import it.integry.ems.javabeans.RequestDataDTO; import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.order.Import.dto.OrdiniDialogoDTO;
import it.integry.ems.response.FileItem; import it.integry.ems.response.FileItem;
import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.EntityProcessor;
import it.integry.ems.service.MailService; import it.integry.ems.service.MailService;
@@ -22,9 +27,7 @@ import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.*; import it.integry.ems_model.entity.*;
import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
@@ -524,4 +527,51 @@ public class PassiveInvoiceService {
} }
} }
public void checkPassiveInvoice(ImportRequestDTO requestDTO, List<AnomalieDTO> anomalie) throws Exception {
String csv = requestDTO.getRawContent();
CsvMapper<FatturePassiveCsvDTO> mapper = new CsvMapper<>();
List<FatturePassiveCsvDTO> fatturePassiveCsvDTOS = mapper.deserialize(csv.toUpperCase(), FatturePassiveCsvDTO.class, ";");
if (fatturePassiveCsvDTOS != null && fatturePassiveCsvDTOS.size() > 0) {
String sql = Query.format("SELECT CAST(COUNT(*) AS BIT) FROM azienda WHERE part_iva = %s", fatturePassiveCsvDTOS.get(0).getPartitaIvaCliente().replace("'", ""));
boolean existAzienda = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (!existAzienda) {
throw new Exception("Il file selezionato non contiene la partita iva di quest'azienda");
}
}
for(FatturePassiveCsvDTO f: fatturePassiveCsvDTOS) {
String partIvaForn = f.getPartitaIvaFornitore().replace("'","");
String numFattura = f.getNumFattura().replace("'", "");
Date dataDoc = f.getDataEmissione();
String progressivoSdi = f.getSdi().replace("'", "");
String sql = Query.format(
"SELECT CAST(COUNT(*) AS BIT)\n" +
"FROM dtb_fatture_passive\n" +
"WHERE part_iva = %s\n" +
" AND num_doc = %s\n" +
" AND data_doc = %s\n" +
" AND identificativo_sdi = %S",
partIvaForn,
numFattura,
dataDoc,
progressivoSdi);
boolean existDoc = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (!existDoc) {
anomalie.add(AnomalieDTO.error(
String.format("%s n. %s del %s fornitore: %s progressivo sdi: %s non presente nel sistema.",
f.getTipoDocumento().replace("'", ""),
numFattura,
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataDoc),
f.getDenominazioneFornitore().replace("'", ""),
progressivoSdi)
));
}
}
}
} }

View File

@@ -86,11 +86,11 @@ public class WMSSpedizioneController {
} }
@RequestMapping(value = "duplicateUDSRow", method = RequestMethod.POST) @RequestMapping(value = "duplicateUDS", method = RequestMethod.POST)
public @ResponseBody public @ResponseBody
ServiceRestResponse duplicateUDSRow(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, ServiceRestResponse duplicateUDS(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
@RequestBody DuplicateUDSRequestDTO duplicateUDSRowRequestDTO) throws Exception { @RequestBody DuplicateUDSRequestDTO duplicateUDSRequestDTO) throws Exception {
return ServiceRestResponse.createPositiveResponse(wmsSpedizioneService.duplicateUDSRow(duplicateUDSRowRequestDTO)); return ServiceRestResponse.createPositiveResponse(wmsSpedizioneService.duplicateUDS(duplicateUDSRequestDTO));
} }
} }

View File

@@ -499,19 +499,38 @@ public class WMSSpedizioneService {
entityProcessor.processEntity(mtbColt, multiDBTransactionManager); entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
} }
public DuplicateUDSResponseDTO duplicateUDSRow(DuplicateUDSRequestDTO deleteUDSRowRequestDTO) throws Exception { public DuplicateUDSResponseDTO duplicateUDS(DuplicateUDSRequestDTO duplicateUDSRequest) throws Exception {
List<MtbColt> mtbColtList = new ArrayList<>(); List<MtbColt> mtbColtListToReturn = new ArrayList<>();
for (int i = 0; i < duplicateUDSRequest.getNumOfDuplicates(); i++) {
MtbColt mtbColt = (MtbColt) duplicateUDSRequest.getMtbColt().clone();
MtbColt mtbColt = deleteUDSRowRequestDTO.getMtbColt(); mtbColt.setNumCollo(null)
mtbColt.setOperation(OperationType.INSERT); .setDataDistribuzione(null)
.setDataVers(null)
.setDataOrd(null)
.setNumOrd(null)
.setOperation(OperationType.INSERT);
for (int i = 0; i < deleteUDSRowRequestDTO.getNumOfDuplicates(); i++) { mtbColt.getMtbColr().stream().peek(x -> {
mtbColtList.add(mtbColt.setNumCollo(null)); x.setNumCollo(null)
.setDataOrd(null)
.setNumOrd(null)
.setRigaOrd(null);
});
entityProcessor.processEntity(mtbColt, multiDBTransactionManager);
List<MtbColt> distributedUDS = wmsColliService.distribuisciUL(new FiltroDistribuzioneColloDTO()
.setDataCollo(mtbColt.getDataCollo())
.setSerCollo(mtbColt.getSerCollo())
.setGestione(mtbColt.getGestione())
.setNumCollo(mtbColt.getNumCollo())
.setCriterioDistribuzione(FiltroDistribuzioneColloDTO.CriterioDistribuzioneEnum.U.getText()));
mtbColtListToReturn.addAll(distributedUDS);
} }
entityProcessor.processEntityList(mtbColtList, true); return new DuplicateUDSResponseDTO().setMtbColtList(mtbColtListToReturn);
return new DuplicateUDSResponseDTO().setMtbColtList(mtbColtList);
} }
} }