Leggere la qta cnf dal listino di acquisto

This commit is contained in:
2024-03-28 17:14:39 +01:00
parent e796c9e803
commit 83eaa1b8f6

View File

@@ -10,6 +10,8 @@ import it.integry.ems_model.entity.MtbAart;
import it.integry.ems_model.entity.MtbPartitaMag;
import it.integry.ems_model.entity.MtbUntMis;
import it.integry.ems_model.entity.common.DtbDocOrdR;
import it.integry.ems_model.entity.common.DtbDocOrdT;
import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityBigDecimal;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
@@ -56,7 +58,8 @@ public class DocOrdUntMisRules extends QueryRules {
//CALCOLO QTA_CNF
if (UtilityBigDecimal.isNullOrZero(qtaCnf)) {
qtaCnf = calcQtaCnf(connection, codMart, partitaMag, mtbAart, numCnf, rapConv, qta1, qtaCnf);
qtaCnf = calcQtaCnf(connection, codMart, partitaMag, mtbAart, numCnf, rapConv, qta1, qtaCnf,
((DtbDocOrdT) entity.getParent()).getListino(), ((DtbDocOrdT) entity.getParent()).getGestione(), entity.getCodArtFor());
}
if (qta1 == null && !UtilityBigDecimal.isNullOrZero(numCnf)) {
@@ -156,7 +159,14 @@ public class DocOrdUntMisRules extends QueryRules {
return untMisDTO;
}
public static BigDecimal calcQtaCnf(Connection connection, String codMart, String partitaMag, MtbAart mtbAart, BigDecimal numCnf, BigDecimal rapConv, BigDecimal qta, BigDecimal qtaCnf) throws Exception {
public static BigDecimal calcQtaCnf(Connection connection, String codMart, String partitaMag,
MtbAart mtbAart, BigDecimal numCnf, BigDecimal rapConv, BigDecimal qta, BigDecimal qtaCnf ) throws Exception {
return calcQtaCnf(connection, codMart, partitaMag, mtbAart, numCnf, rapConv, qta,qtaCnf, null, null, null);
}
public static BigDecimal calcQtaCnf(Connection connection, String codMart, String partitaMag,
MtbAart mtbAart, BigDecimal numCnf, BigDecimal rapConv, BigDecimal qta, BigDecimal qtaCnf,
String listino, String gestione, String codArtFor) throws Exception {
String sql;
if (!UtilityString.isNullOrEmpty(partitaMag) && mtbAart.getFlagQtaCnfFissa().equalsIgnoreCase("P")) {
//Leggere qtaCnf dalla partita di magazzino
@@ -172,6 +182,13 @@ public class DocOrdUntMisRules extends QueryRules {
qtaCnf = qta.divide(numCnf, EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
}
if (UtilityBigDecimal.isNullOrZero(qtaCnf) && gestione.equalsIgnoreCase("A") && !UtilityString.isNullOrEmpty(listino)) {
sql =
Query.format("SELECT qta_cnf FROM mtb_lisa WHERE cod_alis = %s AND cod_mart = %s AND ( %s is null OR cod_art_for = %s) ORDER BY flag_attivo",
listino, codMart, codArtFor, codArtFor);
qtaCnf = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
}
if (UtilityBigDecimal.isNullOrZero(qtaCnf)) {
qtaCnf = mtbAart.getQtaCnf();
}