imporazione rosso gargano
This commit is contained in:
@@ -5,6 +5,7 @@ import com.annimon.stream.Stream;
|
||||
import it.integry.ems.datasource.DataSource;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.rules.businessLogic.AccountingBusinessLogic;
|
||||
import it.integry.ems.rules.businessLogic.enums.TipoPartita;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
@@ -80,7 +81,7 @@ public class RossoGarganoSyncService {
|
||||
saveCtbMovt(rgExchange.getConnection(), "(PNOTA.PN_SEZIONALE_IVA <> '' AND PN_CAUSALE_MOVIMENTO <> '998')", dataIniz, dataFine);
|
||||
logger.info("Importazione fatture attive e passive: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
// saveCtbMovt(rgExchange.getConnection(), "", dataIniz, dataFine);
|
||||
saveCtbMovt(rgExchange.getConnection(), "", dataIniz, dataFine);
|
||||
logger.info("Importazione altri movimenti contabili: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
}
|
||||
|
||||
@@ -307,9 +308,11 @@ public class RossoGarganoSyncService {
|
||||
|
||||
}
|
||||
if (pagaScadenze && !UtilityString.isNullOrEmpty(codAnag)) {
|
||||
List<CtbScad> scadenzeAperte = pagaScadenze(pnPartita, tipoAnag, codAnag, ctbMovt, pnImportoMov, ctbMovr);
|
||||
if (scadenzeAperte != null)
|
||||
ctbMovt.setCtbScad(scadenzeAperte);
|
||||
List<CtbScad> scadenzeAperte = pagaScadenze(pnPartita, tipoAnag, codAnag, ctbMovt, pnImportoMov, pnSegnoMovimento, ctbMovr);
|
||||
if (scadenzeAperte != null) {
|
||||
if (ctbMovt.getCtbScad() == null) ctbMovt.setCtbScad(new ArrayList<>());
|
||||
ctbMovt.getCtbScad().addAll(scadenzeAperte);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1040,15 +1043,18 @@ public class RossoGarganoSyncService {
|
||||
ctbMovt.setCtbPart(ctbPart);
|
||||
}
|
||||
|
||||
private List<CtbScad> pagaScadenze(String pnPartita, String tipoAnag, String codAnag, CtbMovt ctbMovt, BigDecimal impIncasso, CtbMovr ctbMovr) throws Exception {
|
||||
String anno = "20" + pnPartita.substring(0, 2);
|
||||
private List<CtbScad> pagaScadenze(String pnPartita, String tipoAnag, String codAnag, CtbMovt ctbMovt, BigDecimal impIncasso, String pnSegnoMovimento, CtbMovr ctbMovr) throws Exception {
|
||||
String anno = null;
|
||||
if (UtilityString.isNumber(pnPartita.substring(0, 2)))
|
||||
anno = "20" + pnPartita.substring(0, 2);
|
||||
|
||||
String numero = pnPartita.substring(2);
|
||||
if (UtilityString.isNumber(numero))
|
||||
numero = new Integer(numero).toString();
|
||||
|
||||
List<CtbScad> elencoScadenze;
|
||||
Integer annoPart = 2021, numDoc = 0, tipoPartita = 0;
|
||||
String serDoc = "/";
|
||||
List<CtbScad> elencoScadenze = new ArrayList<>();
|
||||
Integer annoPart = null, numDoc = null, tipoPartita = null;
|
||||
String serDoc = null;
|
||||
|
||||
if (ctbMovt.getCtbPart() != null) {
|
||||
annoPart = UtilityDate.getYear(ctbMovt.getDataDoc());
|
||||
@@ -1065,11 +1071,11 @@ public class RossoGarganoSyncService {
|
||||
" ctb_part.anno_part = ctb_parr.anno_part AND ctb_part.ser_doc = ctb_parr.ser_doc AND\n" +
|
||||
" ctb_part.num_doc = ctb_parr.num_doc\n" +
|
||||
" INNER JOIN ctb_movt ON ctb_parr.num_cmov = ctb_movt.num_cmov\n" +
|
||||
"WHERE ctb_part.anno_part = %s\n" +
|
||||
" AND ISNULL(ctb_movt.num_doc_forn, cast(ctb_part.num_doc as varchar)) = %s\n" +
|
||||
"WHERE " + ( anno != null?"ctb_part.anno_part = " + anno + " AND \n":"") +
|
||||
" ISNULL(ctb_movt.num_doc_forn, cast(ctb_part.num_doc as varchar)) = %s\n" +
|
||||
" AND ctb_part.cod_anag = %s\n" +
|
||||
" AND ctb_part.tipo_anag = %s",
|
||||
anno, numero, codAnag, tipoAnag);
|
||||
" AND ctb_part.tipo_anag = %s\n",
|
||||
numero, codAnag, tipoAnag);
|
||||
|
||||
HashMap<String, Object> datiPartita = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
if (UtilityHashMap.isPresent(datiPartita)) {
|
||||
@@ -1077,12 +1083,40 @@ public class RossoGarganoSyncService {
|
||||
numDoc = UtilityHashMap.getValueIfExists(datiPartita, "num_doc");
|
||||
serDoc = UtilityHashMap.getValueIfExists(datiPartita, "ser_doc");
|
||||
tipoPartita = UtilityHashMap.getValueIfExists(datiPartita, "tipo_partita");
|
||||
} else {
|
||||
numDoc = 0;
|
||||
serDoc = "/";
|
||||
annoPart = 2021;
|
||||
}
|
||||
|
||||
elencoScadenze = AccountingBusinessLogic.loadScadenze(multiDBTransactionManager.getPrimaryConnection(), tipoAnag, codAnag, annoPart, serDoc, numDoc);
|
||||
if (ctbMovt.getCtbScad() != null) {
|
||||
Integer finalAnnoPart = annoPart;
|
||||
String finalSerDoc = serDoc;
|
||||
Integer finalNumDoc = numDoc;
|
||||
|
||||
elencoScadenze = Stream.of(ctbMovt.getCtbScad()).filter(x -> x.getCodAnag().equalsIgnoreCase(codAnag) &&
|
||||
x.getTipoAnag().equalsIgnoreCase(tipoAnag) &&
|
||||
x.getAnnoPart().intValue() == finalAnnoPart &&
|
||||
x.getSerDoc().equalsIgnoreCase(finalSerDoc) &&
|
||||
x.getNumDoc().intValue() == finalNumDoc).toList();
|
||||
}
|
||||
AccountingBusinessLogic.pagaScadenze(ctbMovt.getDataCmov(), impIncasso.abs(), elencoScadenze, ctbMovr.getIdRiga());
|
||||
if (elencoScadenze != null) {
|
||||
|
||||
if (elencoScadenze == null || elencoScadenze.size() == 0)
|
||||
elencoScadenze = AccountingBusinessLogic.loadScadenze(multiDBTransactionManager.getPrimaryConnection(), tipoAnag, codAnag, annoPart, serDoc, numDoc);
|
||||
else
|
||||
ctbMovt.getCtbScad().removeAll(elencoScadenze);
|
||||
}
|
||||
|
||||
if (tipoPartita != null) {
|
||||
if ((pnSegnoMovimento.equalsIgnoreCase("A") && TipoPartita.fromValue(tipoPartita.intValue()) == TipoPartita.PASSIVA) ||
|
||||
(pnSegnoMovimento.equalsIgnoreCase("D") && TipoPartita.fromValue(tipoPartita.intValue()) == TipoPartita.ATTIVA)
|
||||
) {
|
||||
impIncasso = impIncasso.multiply(new BigDecimal(-1));
|
||||
}
|
||||
}
|
||||
|
||||
AccountingBusinessLogic.pagaScadenze(ctbMovt.getDataCmov(), impIncasso, elencoScadenze, ctbMovr.getIdRiga());
|
||||
if (elencoScadenze != null && elencoScadenze.size() > 0) {
|
||||
List<CtbScad> scad = Stream.of(elencoScadenze).filter(x -> x.getIdRigaMov() != null && x.getIdRigaMov().equals(ctbMovr.getIdRiga())).toList();
|
||||
ctbMovr
|
||||
.setAnnoPart(annoPart)
|
||||
|
||||
Reference in New Issue
Block a user