diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/OrderRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/OrderRules.java index c620b0d3b6..f4381a086c 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/OrderRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/OrderRules.java @@ -477,4 +477,24 @@ public class OrderRules extends QueryRules { return true; } + + public static void setCodVvetIdViaggio(Connection conn, DtbOrdt dtbOrdt) throws SQLException { + if ( dtbOrdt.getDtbOrdr() != null && dtbOrdt.getDtbOrdr().size() > 0 ){ + List listaIdViaggio = dtbOrdt.getDtbOrdr().stream() + .filter(x->x.getIdViaggio() != null) + .map( + DtbOrdr::getIdViaggio + ).distinct().collect(Collectors.toList()); + + String sql = + String.format( + "SELECT TOP 1 cod_vvet FROM vtb_viaggi WHERE id_viaggio in (%s) ORDER BY data_ora_iniz_trasp DESC", + UtilityDB.listValueToString(listaIdViaggio)); + + String codVvet = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); + if ( !UtilityString.isNullOrEmpty(codVvet)){ + dtbOrdt.setCodVvet(codVvet); + } + } + } } \ No newline at end of file diff --git a/ems-core/src/main/resources/rules/post_calc.drl b/ems-core/src/main/resources/rules/post_calc.drl index 33132fe45e..a17abb0a14 100644 --- a/ems-core/src/main/resources/rules/post_calc.drl +++ b/ems-core/src/main/resources/rules/post_calc.drl @@ -57,6 +57,9 @@ then } CommonRules.completePosRigaEntity(conn, $testata); OrdWebRules.completeIdArtOrd(conn, $testata); + if ($testata.getGestione().equalsIgnoreCase("V")) { + OrderRules.setCodVvetIdViaggio(conn, $testata); + } if ($testata.getExecuteRecalc() ) { DocOrdCalTotaliRules.calcTotali(conn, $testata); OrderRules.sospendiOrdine(conn, $testata);