From 2e2f6c20d918d757b7a0ecae6d0c840c1703941d Mon Sep 17 00:00:00 2001 From: MinaR Date: Fri, 6 Dec 2024 11:45:44 +0100 Subject: [PATCH] sistemato salvataggo colli aggnaciati a documenti --- .../ems/rules/completing/DocumentRules.java | 27 ++++++++++++++++++- .../it/integry/ems_model/entity/DtbDoct.java | 6 ++--- .../src/main/resources/rules/post_calc.drl | 11 +++++++- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentRules.java index 6c25a884c2..4f1c314a9a 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/DocumentRules.java @@ -567,7 +567,8 @@ public class DocumentRules extends QueryRules { return mtbPartitaMag; } - public static void completeNtbDoct(Connection conn, DtbDoct testata) { + public static void completeNtbDoct(DtbDoct testata) { + for (NtbDoct ntbDoct : testata.getNtbDoct()) { ntbDoct.setCodAnagVal(testata.getCodAnag()); ntbDoct.setCodDtipVal(testata.getCodDtip()); @@ -577,6 +578,30 @@ public class DocumentRules extends QueryRules { } } + public static void completeDatiDocMtbColt(Connection connection, DtbDoct testata) throws SQLException { + for (MtbColt mtbColt: testata.getMtbColt()) { + boolean isDelete = mtbColt.getOperation() == OperationType.DELETE; + String sql = + Query.format( + "SELECT CAST(IIF(flag_collo_anonimo='N',0,1) as bit) FROM mtb_colt WHERE gestione = %s AND data_collo = %s AND ser_collo = %s AND num_collo = %s", + mtbColt.getGestione(), + mtbColt.getDataCollo(), + mtbColt.getSerCollo(), + mtbColt.getNumCollo()); + + boolean colloAnonimo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); + + mtbColt + .setCodAnag(isDelete && colloAnonimo?EmsRestConstants.NULL:testata.getCodAnag()) + .setCodDtip(isDelete?EmsRestConstants.NULL:testata.getCodDtip()) + .setDataDoc(isDelete?EmsRestConstants.DATE_NULL:testata.getDataDoc()) + .setSerDoc(isDelete?EmsRestConstants.NULL:testata.getSerDoc()) + .setNumDoc(isDelete?EmsRestConstants.INTEGER_NULL:testata.getNumDoc()); + mtbColt.setOperation(OperationType.UPDATE); + } + + } + public static Integer completeVersione(Connection conn, DtbDocPdf dtbDocPdf) throws SQLException { String sql = "SELECT isNull(Max(versione) + 1, 0) next_versione " + diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java b/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java index 0ac0b44d20..75ace7d8b4 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/DtbDoct.java @@ -375,9 +375,6 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface dtbDocs = new ArrayList<>(); - @EntityChild - private List mtbColt = new ArrayList<>(); - @EntityChild private List drlDocAttached = new ArrayList<>(); @@ -389,6 +386,9 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface mtbColt = new ArrayList<>(); + private List ctbMovi; private List costi; diff --git a/ems-core/src/main/resources/rules/post_calc.drl b/ems-core/src/main/resources/rules/post_calc.drl index 261569e31c..0df3280770 100644 --- a/ems-core/src/main/resources/rules/post_calc.drl +++ b/ems-core/src/main/resources/rules/post_calc.drl @@ -218,7 +218,16 @@ when eval(postRulesEnabled) $dtbDoct: DtbDoct(getNtbDoct() != null) then - DocumentRules.completeNtbDoct(conn, $dtbDoct); + DocumentRules.completeNtbDoct($dtbDoct); +end + +rule "completeMtbColtDocumenti" +no-loop +when + eval(postRulesEnabled) + $dtbDoct: DtbDoct(getMtbColt() != null) +then + DocumentRules.completeDatiDocMtbColt(conn, $dtbDoct); end rule "completeIdRigaCoan"