From d5f814350a8ef1e674cab7c0c1b6491a3be05177 Mon Sep 17 00:00:00 2001 From: MinaR Date: Fri, 11 Jul 2025 16:40:58 +0200 Subject: [PATCH 1/2] sistemata chiusura partite --- .../ems/rules/completing/AccountingRules.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java index 2a8ae3639b..fe8e78b682 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java @@ -596,17 +596,30 @@ public class AccountingRules extends QueryRules { BigDecimal impDare = BigDecimal.ZERO; BigDecimal impAvere = BigDecimal.ZERO; - if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) { +// if (UtilityBigDecimal.greaterThan(ctbMovr.getImpDare(), BigDecimal.ZERO)) { +// if (ctbScad.getImpDare() == null) +// impDare = ctbMovr.getImpDare(); +// else +// impDare = ctbScad.getImpDare().divide(cambioScad, 5, RoundingMode.HALF_UP); +// } +// if (UtilityBigDecimal.greaterThan(ctbMovr.getImpAvere(), BigDecimal.ZERO)) { +// if (ctbScad.getImpAvere() == null) +// impAvere = ctbMovr.getImpAvere(); +// else +// impAvere = ctbScad.getImpAvere().divide(cambioScad).setScale(5, RoundingMode.HALF_UP); +// } + + + if ( tipoPartita == 0 || (ctbScad.getRiaperta() && tipoPartita == 1)){ if (ctbScad.getImpDare() == null) impDare = ctbMovr.getImpDare(); else impDare = ctbScad.getImpDare().divide(cambioScad, 5, RoundingMode.HALF_UP); - } - if (UtilityBigDecimal.greaterThan(ctbMovr.getImpAvere(), BigDecimal.ZERO)) { + } else { if (ctbScad.getImpAvere() == null) impAvere = ctbMovr.getImpAvere(); else - impAvere = ctbScad.getImpAvere().divide(cambioScad).setScale(5, RoundingMode.HALF_UP); + impAvere = ctbScad.getImpAvere().divide(cambioScad, 5, RoundingMode.HALF_UP); } ctbParr = From 038245c883c1b7e07b3bf2c357a90607650b0e05 Mon Sep 17 00:00:00 2001 From: MinaR Date: Fri, 11 Jul 2025 17:14:14 +0200 Subject: [PATCH 2/2] aggiunto controllo su partite incassete per importo maggiore --- .../ems/rules/completing/AccountingRules.java | 4 ++-- .../Import/service/ContabilImportService.java | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java index fe8e78b682..bd3aa98399 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/AccountingRules.java @@ -609,8 +609,8 @@ public class AccountingRules extends QueryRules { // impAvere = ctbScad.getImpAvere().divide(cambioScad).setScale(5, RoundingMode.HALF_UP); // } - - if ( tipoPartita == 0 || (ctbScad.getRiaperta() && tipoPartita == 1)){ + Boolean riperta = ctbScad.getRiaperta()==null?false:ctbScad.getRiaperta(); + if ( tipoPartita == 0 || (riperta && tipoPartita == 1)){ if (ctbScad.getImpDare() == null) impDare = ctbMovr.getImpDare(); else diff --git a/ems-engine/src/main/java/it/integry/ems/contabil/Import/service/ContabilImportService.java b/ems-engine/src/main/java/it/integry/ems/contabil/Import/service/ContabilImportService.java index 46fc867618..f5ded7f462 100644 --- a/ems-engine/src/main/java/it/integry/ems/contabil/Import/service/ContabilImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/contabil/Import/service/ContabilImportService.java @@ -616,13 +616,13 @@ public class ContabilImportService { for (MovimentiContabiliDocfinanceDTO mov : movimenti.get(ctbMovt)) { String diacod = mov.getPianoDeiConti(); sql = Query.format( - "SELECT gtb_anag.cod_anag, ctb_anag.cod_ccon, IIF(vtb_clie.cod_anag IS NOT NULL, 'C', 'F') AS tipo_anag\n" + + "SELECT gtb_anag.cod_anag, ctb_anag.cod_ccon, IIF(vtb_clie.cod_anag IS NOT NULL, 'C', 'F') AS tipo_anag, gtb_anag.rag_soc\n" + "FROM gtb_anag\n" + " INNER JOIN ctb_anag ON gtb_anag.cod_anag = ctb_anag.cod_anag\n" + " LEFT OUTER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag\n" + "WHERE gtb_anag.diacod = %s\n" + "UNION\n" + - "SELECT NULL, ctb_cont.cod_ccon, NULL\n" + + "SELECT NULL, ctb_cont.cod_ccon, NULL, ctb_cont.descrizione\n" + "FROM ctb_cont\n" + "WHERE diacod = %s", diacod, diacod @@ -668,12 +668,19 @@ public class ContabilImportService { if (ctbScadList == null || ctbScadList.isEmpty()) { listAnomalie.add(AnomalieDTO.warning(String.format("Chiave coge non trovato: %s", chiaveCoge))); } else { - AccountingBusinessLogic.pagaScadenze(mov.getDataOperazione(), controvalore, ctbScadList); + BigDecimal residuo = AccountingBusinessLogic.pagaScadenze(mov.getDataOperazione(), controvalore, ctbScadList); ctbMovr.setCtbScad(ctbScadList); ctbMovr.setAnnoPart(ctbScadList.get(0).getAnnoPart()) .setSerDoc(ctbScadList.get(0).getSerDoc()) .setNumDoc(ctbScadList.get(0).getNumDoc()); + + if (!UtilityBigDecimal.isNullOrZero(residuo)){ + AnomalieDTO anomalia = AnomalieDTO.warning(String.format("Importo del movimento superiore rispetto all'importo della partita %s/%s del %s %s ", + ctbMovr.getSerDoc(), ctbMovr.getNumDoc(), ctbMovr.getAnnoPart(), codAnag)); + listAnomalie.add(anomalia); + } + } }