Importazione DIPA

This commit is contained in:
2024-06-20 09:39:49 +02:00
parent 46692dd75e
commit afa1342e8f
4 changed files with 68 additions and 40 deletions

View File

@@ -11,7 +11,7 @@ public class Migration_20240619105525 extends BaseMigration implements Migration
return; return;
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "DIPA", "€/KG.", "KG", "Tipo calcolo euro/kg", false, null, false, false, false, false, false, null, false, null); createSetup("IMPORT_DOCUMENTI_TRASPORTO", "DIPA", "€/KG.", "PESO", "Tipo calcolo euro/kg", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "DIPA", "€/PLT", "PEDANE", "Tipo calcolo euro/pallet", false, null, false, false, false, false, false, null, false, null); createSetup("IMPORT_DOCUMENTI_TRASPORTO", "DIPA", "€/PLT", "PEDANE", "Tipo calcolo euro/pallet", false, null, false, false, false, false, false, null, false, null);
} }

View File

@@ -0,0 +1,26 @@
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_20240619163048 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (!isCustomerDb(IntegryCustomerDB.Gramm_Gramm))
return;
updateSetupValue("IMPORT_DOCUMENTI_TRASPORTO", "DIPA", "ELENCO_TIPI_DOC_DA_ESCLUDERE", "D.D.T|DDTAV|DDTRC");
updateSetupValue("IMPORT_DOCUMENTI_TRASPORTO", "MIRARCHI", "ELENCO_TIPI_DOC_DA_ESCLUDERE", "D.D.T|DDTAV|DDTRC");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -26,10 +26,6 @@ public class DocTraspImportDTO {
private String rifDoc; private String rifDoc;
/*Riferimento del numero di riga del file importato*/ /*Riferimento del numero di riga del file importato*/
private Integer idRiga; private Integer idRiga;
/*Se impostata vengono passati l'elenco dei documenti che dovranno essere sclusi dalla ricerca,
l'elenco dei documenti da escludere normalmente viene configurato nella setup del formato di importazione*/
private String elencoDocDaEscludere;
private BigDecimal peso; private BigDecimal peso;
private BigDecimal colli; private BigDecimal colli;
private BigDecimal pallet; private BigDecimal pallet;
@@ -155,15 +151,6 @@ public class DocTraspImportDTO {
return this; return this;
} }
public String getElencoDocDaEscludere() {
return elencoDocDaEscludere;
}
public DocTraspImportDTO setElencoDocDaEscludere(String elencoDocDaEscludere) {
this.elencoDocDaEscludere = elencoDocDaEscludere;
return this;
}
public BigDecimal getPeso() { public BigDecimal getPeso() {
return peso; return peso;
} }

View File

@@ -20,6 +20,10 @@ import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -32,6 +36,7 @@ import org.springframework.stereotype.Service;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.math.RoundingMode; import java.math.RoundingMode;
@@ -77,6 +82,7 @@ public class DocCostiTrasporto {
String codVvet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "COD_VVET")); String codVvet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "COD_VVET"));
String elencoClientiTipoCalcPallet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "TIPO_CALC_PALLET_EL_COD_ANAG")); String elencoClientiTipoCalcPallet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "TIPO_CALC_PALLET_EL_COD_ANAG"));
String elencoDocDaEscludere = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "ELENCO_TIPI_DOC_DA_ESCLUDERE"));
if (codVvet == null){ if (codVvet == null){
throw new Exception("CODICE VETTORE NON CONFIGURATO"); throw new Exception("CODICE VETTORE NON CONFIGURATO");
} }
@@ -92,13 +98,15 @@ public class DocCostiTrasporto {
Integer numDoc = doc.getNumDoc(); Integer numDoc = doc.getNumDoc();
String serDoc = UtilityString.emptyStr2Null(doc.getSerDoc()); String serDoc = UtilityString.emptyStr2Null(doc.getSerDoc());
Integer idRiga = doc.getIdRiga(); Integer idRiga = doc.getIdRiga();
String elencoDocDaEscludere = doc.getElencoDocDaEscludere();
String note = ""; String note = "";
String checkgestione = doc.getCheckGestione(); String checkgestione = doc.getCheckGestione();
String untMis = getUntMisFromTipoCalc(tipoCalc); String untMis = getUntMisFromTipoCalc(tipoCalc);
// Acquisizione numero e serie documento // Acquisizione numero e serie documento
codDtip = null;
codAnag = null;
serDoc = null;
if (numDoc == null){ if (numDoc == null){
if (rifDoc == null || rifDoc.length() == 0){ if (rifDoc == null || rifDoc.length() == 0){
rifDoc = "[VUOTO]"; rifDoc = "[VUOTO]";
@@ -176,7 +184,7 @@ public class DocCostiTrasporto {
note += "@DOC_NO_EXIST=" + rifDoc + " documento inesistente"; note += "@DOC_NO_EXIST=" + rifDoc + " documento inesistente";
dataDoc = dataSped; dataDoc = dataSped;
} else if (rowCounter > 1) { } else if (rowCounter > 1) {
note += "@DOC_MORE=" + rifDoc + " ci sono più documenti associati con la stessa serie e numero nel gestionale"; note += "@DOC_MORE=" + rifDoc + " ci sono più documenti associati con la stessa numero nel gestionale";
dataDoc = dataSped; dataDoc = dataSped;
} }
} }
@@ -518,7 +526,6 @@ public class DocCostiTrasporto {
docTrasp.setDataSped(dataDoc); docTrasp.setDataSped(dataDoc);
docTrasp.setRifDoc(rifDoc); docTrasp.setRifDoc(rifDoc);
docTrasp.setIdRiga(idRiga); docTrasp.setIdRiga(idRiga);
docTrasp.setElencoDocDaEscludere(elencoTipiDocDaEscludere);
docTrasp.setCheckSerDoc(checkSerieDoc); docTrasp.setCheckSerDoc(checkSerieDoc);
docTrasp.setColli(tassatoCollo); docTrasp.setColli(tassatoCollo);
docTrasp.setPeso(tassatoPeso); docTrasp.setPeso(tassatoPeso);
@@ -608,7 +615,7 @@ public class DocCostiTrasporto {
String checkSerieDoc = "N", String checkSerieDoc = "N",
checkAnnoDoc = "N", checkAnnoDoc = "N",
checkVettore = "S", checkVettore = "N",
checkGestione = "V"; checkGestione = "V";
File tempFile = new File(requestDataDTO.getPathFile()); File tempFile = new File(requestDataDTO.getPathFile());
@@ -621,13 +628,16 @@ public class DocCostiTrasporto {
while (rowIterator.hasNext()) { while (rowIterator.hasNext()) {
if (idRiga <= 1){ if (idRiga <= 1){
row = rowIterator.next(); row = rowIterator.next();
} idRiga++;
idRiga++; if (idRiga == 1){
if (idRiga == 1){ continue;
continue; }
}else {
if (rifDoc.length() == 0){
break;
}
} }
// Ciclo su riferimento documento per clacolo del costo toale nolo
int index = 0; int index = 0;
do { do {
String dataSpedizione = String.valueOf(row.getCell(0)); String dataSpedizione = String.valueOf(row.getCell(0));
@@ -635,26 +645,16 @@ public class DocCostiTrasporto {
String ragSoc = dataFormatter.formatCellValue(row.getCell(3)); String ragSoc = dataFormatter.formatCellValue(row.getCell(3));
String citta = dataFormatter.formatCellValue(row.getCell(4)).toUpperCase(); String citta = dataFormatter.formatCellValue(row.getCell(4)).toUpperCase();
BigDecimal tassato = new BigDecimal(String.valueOf(row.getCell(5))); BigDecimal tassato = new BigDecimal(String.valueOf(row.getCell(5)));
String tipoCalc = dataFormatter.formatCellValue(row.getCell(7)).toUpperCase(); String tipoCalcVett = dataFormatter.formatCellValue(row.getCell(7)).toUpperCase();
BigDecimal nolo = new BigDecimal(String.valueOf(row.getCell(8))); BigDecimal nolo = new BigDecimal(String.valueOf(row.getCell(8)));
Date dataDoc = new SimpleDateFormat("dd-MMM-yyyy").parse(dataSpedizione); Date dataDoc = new SimpleDateFormat("dd/MM/yyyy").parse(dataSpedizione);
index++; index++;
// Le informazioni relativa agli estremi del documento vengono presi dalla prima riga, mentre dalle atre righe vengono solo sommati i singoli importi di spedizione più diritti fissi e contrassegno // Le informazioni relativa agli estremi del documento vengono presi dalla prima riga, mentre dalle atre righe vengono solo sommati i singoli importi di spedizione più diritti fissi e contrassegno
if (index == 1){ if (index == 1){
// Verifica se si tratta di un documento di acquisto o di reso, in tal caso nella destinazione c'è il nome dell'azienda e non devono essere ricercati i riferimenti del docuemento
sql = "select count(*) " +
"from dbo.ParseStringIntoArray((select dbo.getGestSetup(IMPORT_" + UtilityDB.valueToString(type) + ", " + UtilityDB.valueToString(format) +", 'RAG_SOC_AZIENDA')), '|')" +
" where value_string = " + UtilityDB.valueToString(ragSoc);
Integer isDocAnonymous = (Integer) getSingleValue(multiDBTransactionManager.getPrimaryConnection(), sql);
tipoCalc = setupGest.getImportSetup(connect, type, format, tipoCalc);
String untMis = getUntMisFromTipoCalc(tipoCalc);
Integer numDoc = null; Integer numDoc = null;
if (isDocAnonymous == 0) { if (UtilityString.isNumber(rifDoc)) {
if (UtilityString.isNumber(rifDoc)) { numDoc = Integer.valueOf(rifDoc);
numDoc = Integer.valueOf(rifDoc);
}
} }
docTrasp = new DocTraspImportDTO(); docTrasp = new DocTraspImportDTO();
@@ -662,9 +662,6 @@ public class DocCostiTrasporto {
docTrasp.setNumDoc(numDoc); docTrasp.setNumDoc(numDoc);
docTrasp.setRagSoc(ragSoc); docTrasp.setRagSoc(ragSoc);
docTrasp.setNolo(nolo); docTrasp.setNolo(nolo);
docTrasp.setTassato(tassato);
docTrasp.setTipoCalc(tipoCalc);
docTrasp.setUntMis(untMis);
docTrasp.setDataSped(dataDoc); docTrasp.setDataSped(dataDoc);
docTrasp.setRifDoc(rifDoc); docTrasp.setRifDoc(rifDoc);
docTrasp.setIdRiga(idRiga); docTrasp.setIdRiga(idRiga);
@@ -673,14 +670,32 @@ public class DocCostiTrasporto {
docTrasp.setCheckSerDoc(checkSerieDoc); docTrasp.setCheckSerDoc(checkSerieDoc);
docTrasp.setCheckAnnoDoc(checkAnnoDoc); docTrasp.setCheckAnnoDoc(checkAnnoDoc);
docTrasp.setCheckVettore(checkVettore); docTrasp.setCheckVettore(checkVettore);
String tipoCalc = setupGest.getImportSetup(connect, type, format, tipoCalcVett);
if (tipoCalc != null){
String untMis = getUntMisFromTipoCalc(tipoCalc);
docTrasp.setTipoCalc(tipoCalc);
docTrasp.setUntMis(untMis);
docTrasp.setTassato(tassato);
}
listDocTrasp.add(docTrasp); listDocTrasp.add(docTrasp);
} else { } else {
String tipoCalc = setupGest.getImportSetup(connect, type, format, tipoCalcVett);
String untMis = getUntMisFromTipoCalc(tipoCalc);
if (tipoCalc != null){
docTrasp.setTipoCalc(tipoCalc);
docTrasp.setUntMis(untMis);
docTrasp.setTassato(tassato);
}
docTrasp.setNolo(docTrasp.getNolo().add(nolo)); docTrasp.setNolo(docTrasp.getNolo().add(nolo));
} }
rifDocOld = rifDoc; rifDocOld = rifDoc;
if (rowIterator.hasNext()){ if (rowIterator.hasNext()){
idRiga++;
row = rowIterator.next(); row = rowIterator.next();
rifDoc = dataFormatter.formatCellValue(row.getCell(1)); rifDoc = dataFormatter.formatCellValue(row.getCell(1));
} }