Finish Feature-Iban
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-06-19 17:23:57 +02:00
4 changed files with 47 additions and 50 deletions

View File

@@ -9,6 +9,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -37,10 +38,10 @@ public class GtbAnagNote extends EntityBase {
private String note;
@SqlField(value = "data_ins", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
private Date dataIns;
private LocalDate dataIns;
@SqlField(value = "data_scad", format = CommonConstants.SYSDATE)
private Date dataScad;
private LocalDate dataScad;
@SqlField(value = "flag_segn_scad", maxLength = 1, nullable = false, defaultObjectValue = "N")
private String flagSegnScad;
@@ -94,20 +95,20 @@ public class GtbAnagNote extends EntityBase {
return this;
}
public Date getDataIns() {
public LocalDate getDataIns() {
return dataIns;
}
public GtbAnagNote setDataIns(Date dataIns) {
public GtbAnagNote setDataIns(LocalDate dataIns) {
this.dataIns = dataIns;
return this;
}
public Date getDataScad() {
public LocalDate getDataScad() {
return dataScad;
}
public GtbAnagNote setDataScad(Date dataScad) {
public GtbAnagNote setDataScad(LocalDate dataScad) {
this.dataScad = dataScad;
return this;
}

View File

@@ -164,4 +164,14 @@ when
then
String codVvet = AnagRules.completeCodVvet(conn, $vtbVett);
modify ( $vtbVett ) { setCodVvet(codVvet) }
end
rule "completeDataInsGtbAnagNote"
no-loop
when
eval(completeRulesEnabled)
$entity: GtbAnagNote(dataIns == null)
then
modify ( $entity ) { setDataIns(UtilityLocalDate.getNow()) }
end

View File

@@ -180,7 +180,7 @@ public class PassiveInvoiceRecapObject {
DettaglioPagamentoType dettPag =
dati.getDettaglioPagamento().stream().filter(p -> p.getIBAN() != null).findFirst().orElse(null);
if (dettPag != null) {
object.setIban(dettPag.getIBAN());
object.setIban(dettPag.getIBAN().toUpperCase());
//break;
}

View File

@@ -153,7 +153,6 @@ public class PassiveInvoiceService {
message = null;
}
//saveIbanForn(recapObject.getCodAnag(), recapObject.getIban());
saveAnagForn(recapObject);
String prefixDesc = String.format("[%s - %s]", recapObject.getCodAnag(), recapObject.getRagSoc());
@@ -176,7 +175,9 @@ public class PassiveInvoiceService {
if (recapObject.getNumDoc() != null) {
String iban = recapObject.getIban();
if (iban != null){iban.toUpperCase();}
if (iban != null) {
iban.toUpperCase();
}
additionalAttachmentInfo.put(DATA_DOC_KEY, recapObject.getDate());
additionalAttachmentInfo.put(NUM_DOC_KEY, recapObject.getNumDoc());
additionalAttachmentInfo.put(TOT_DOC_KEY, recapObject.getTotDoc());
@@ -188,10 +189,10 @@ public class PassiveInvoiceService {
if (!recapObject.getScadenze().isEmpty()) {
additionalAttachmentInfo.put(SCADENZE_KEY, recapObject.getScadenze());
}
if (!recapObject.getIva().isEmpty()){
if (!recapObject.getIva().isEmpty()) {
additionalAttachmentInfo.put(CASTELLETTO_IVA_KEY, recapObject.getIva());
}
if (!recapObject.getDdt().isEmpty()){
if (!recapObject.getDdt().isEmpty()) {
additionalAttachmentInfo.put(DDT_KEY, recapObject.getDdt());
}
@@ -260,7 +261,7 @@ public class PassiveInvoiceService {
return dtbDocXml;
}).toList();
if(dtbDoxXmlList == null || dtbDoxXmlList.isEmpty()){
if (dtbDoxXmlList == null || dtbDoxXmlList.isEmpty()) {
return;
}
@@ -378,7 +379,7 @@ public class PassiveInvoiceService {
Date dataDoc = UtilityHashMap.getValueIfExists(additionalInfo, DATA_DOC_KEY);
String numDoc = UtilityHashMap.getValueIfExists(additionalInfo, NUM_DOC_KEY);
if ( parentId == null ) {
if (parentId == null) {
String regexName = ".{0,}([A-Z]{2}[a-z,A-Z,0-9]{2,28}[_][a-z,A-Z,0-9]{1,5}).{0,}";
Pattern pattern = Pattern.compile(regexName);
Matcher matcher = pattern.matcher(description);
@@ -433,7 +434,7 @@ public class PassiveInvoiceService {
}
String iban = UtilityHashMap.<String>getValueIfExists(additionalInfo, IBAN_KEY);
if ( iban != null ) {
if (iban != null) {
iban = iban.toUpperCase();
}
DtbFatturePassive fatturePassive = new DtbFatturePassive()
@@ -495,35 +496,20 @@ public class PassiveInvoiceService {
return nextId;
}
private void saveIbanForn(String codForn, String iban) throws Exception {
if (!UtilityString.isNullOrEmpty(codForn) && codForn.length() <= 5 && !UtilityString.isNullOrEmpty(iban)) {
GtbAnag gtbAnag = new GtbAnag();
gtbAnag.setCodAnag(codForn);
gtbAnag.setOperation(OperationType.NO_OP);
AtbForn atbForn = new AtbForn();
atbForn.setOperation(OperationType.UPDATE);
atbForn.setCodAnag(codForn);
atbForn.setIban(iban);
gtbAnag.setAtbForn(atbForn);
entityProcessor.processEntity(gtbAnag, true, multiDBTransactionManager);
}
}
private void saveAnagForn(PassiveInvoiceRecapObject recapObject) throws Exception {
Boolean saveIban = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "DATI_AZIENDA", "FATTURAZIONE_ELETTRONICA", "SALVA_IBAN_FORN");
if (UtilityString.isNullOrEmpty(recapObject.getCodAnag()) || recapObject.getCodAnag().equalsIgnoreCase(recapObject.getErrorCodAnag())) {
GtbAnag gtbAnag = recapObject.getGtbAnag();
gtbAnag.setOperation(OperationType.INSERT);
AtbForn atbForn = new AtbForn();
atbForn.setOperation(OperationType.INSERT);
atbForn.setIban(recapObject.getIban());
GtbAnagNote gtbAnagNote = new GtbAnagNote();
gtbAnagNote.setTipoNote("CODIFICA_AUTOMATICA");
gtbAnagNote.setNote("Codice Anagrafico codificato automaticamente, verifiare che i dati siano completi");
gtbAnagNote.setFlagSegnCmov("S");
gtbAnagNote.setFlagSegnScad("S");
gtbAnagNote.setDataIns(new Date());
if (saveIban)
atbForn.setIban(recapObject.getIban());
GtbAnagNote gtbAnagNote = new GtbAnagNote()
.setTipoNote("CODIFICA_AUTOMATICA")
.setNote("Codice Anagrafico codificato automaticamente, verifiare che i dati siano completi")
.setFlagSegnCmov("S")
.setFlagSegnScad("S");
gtbAnag.getGtbAnagNote().add(gtbAnagNote);
gtbAnag.setAtbForn(atbForn);
@@ -548,19 +534,19 @@ public class PassiveInvoiceService {
throw new Exception("Il file selezionato non contiene la partita iva di quest'azienda");
}
}
for(FatturePassiveCsvDTO f: fatturePassiveCsvDTOS) {
String partIvaForn = f.getPartitaIvaFornitore().replace("'","");
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",
"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,
@@ -571,12 +557,12 @@ public class PassiveInvoiceService {
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)
));
f.getTipoDocumento().replace("'", ""),
numFattura,
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataDoc),
f.getDenominazioneFornitore().replace("'", ""),
progressivoSdi)
));
}
}