Fix ricalcolo numCnf nelle regole dei doc nel caso in cui sia una UM di tipo imballo
This commit is contained in:
@@ -35,17 +35,22 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
|
||||
BigDecimal qta1 = entity.getQta();
|
||||
String untMis1 = entity.getUntMis();
|
||||
final String finalUntMis1 = untMis1;
|
||||
BigDecimal qtaCnf = entity.getQtaCnf();
|
||||
|
||||
if (mtbAart == null) {
|
||||
mtbAart = CommonRules.completeDatiMtbAart(connection, codMart);
|
||||
}
|
||||
if (mtbPartitaMag == null){
|
||||
if (mtbPartitaMag == null) {
|
||||
mtbPartitaMag = CommonRules.completeDatiMtbPartitaMag(connection, codMart, partitaMag);
|
||||
}
|
||||
|
||||
List<MtbUntMis> mtbUntMisArt = getUmArticolo(connection, codMart);
|
||||
|
||||
boolean isEntityUMOfTipoImballo = mtbUntMisArt.stream()
|
||||
.anyMatch(x -> x.getUntMis().equalsIgnoreCase(finalUntMis1) && x.getTipoUm() == MtbUntMis.TipoUM.UI);
|
||||
|
||||
|
||||
if (UtilityString.isNullOrEmpty(untMis1)) {
|
||||
untMis1 = mtbAart.getUntMis();
|
||||
}
|
||||
@@ -74,7 +79,10 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
} else {
|
||||
cifreDec = 0;
|
||||
}
|
||||
if (!UtilityBigDecimal.isNullOrZero(qtaCnf) && !UtilityBigDecimal.isNullOrZero(qta1)) {
|
||||
|
||||
if (isEntityUMOfTipoImballo && numCnf == null) {
|
||||
numCnf = qta1;
|
||||
} else if (!UtilityBigDecimal.isNullOrZero(qtaCnf) && !UtilityBigDecimal.isNullOrZero(qta1)) {
|
||||
numCnf = qta1.divide(qtaCnf, cifreDec, RoundingMode.CEILING);
|
||||
} else {
|
||||
numCnf = BigDecimal.ZERO;
|
||||
@@ -82,7 +90,6 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
|
||||
}
|
||||
|
||||
final String finalUntMis1 = untMis1;
|
||||
Optional<MtbUntMis> optUM = Stream.of(mtbUntMisArt)
|
||||
.filter(mtbUntMis -> mtbUntMis.getUntMis().equalsIgnoreCase(finalUntMis1)).findFirst();
|
||||
|
||||
@@ -109,7 +116,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
String untMis2 = null, untMis3 = null;
|
||||
BigDecimal qta2 = BigDecimal.ZERO, qta3 = BigDecimal.ZERO;
|
||||
|
||||
if (mtbUntMisList.size() > 0) {
|
||||
if (!mtbUntMisList.isEmpty()) {
|
||||
if (mtbUntMisList.get(0).getOrdinamento() == 1) {
|
||||
mtbUntMisList = Stream.of(mtbUntMisList).sorted(Comparator.comparingInt(MtbUntMis::getOrdinamento)).toList();
|
||||
}
|
||||
@@ -161,8 +168,8 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
}
|
||||
|
||||
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);
|
||||
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,
|
||||
@@ -186,7 +193,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
if (UtilityBigDecimal.isNullOrZero(qtaCnf) && UtilityString.equalsIgnoreCase(gestione, "A") && !UtilityString.isNullOrEmpty(listino)) {
|
||||
sql =
|
||||
Query.format("SELECT qta_cnf FROM dbo.getListinoAcquisto(null, %s, %s, %s, 'N', null) lisa ORDER BY flag_attivo",
|
||||
listino, codArtFor, codMart);
|
||||
listino, codArtFor, codMart);
|
||||
qtaCnf = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
}
|
||||
|
||||
@@ -237,7 +244,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
private static BigDecimal getRapConvUM(String untMis, MtbAart mtbAart, MtbPartitaMag mtbPartitaMag) {
|
||||
BigDecimal rapConvArt = BigDecimal.ONE;
|
||||
|
||||
if (mtbAart.getFlagQtaCnfFissa().equalsIgnoreCase("P") && mtbPartitaMag != null){
|
||||
if (mtbAart.getFlagQtaCnfFissa().equalsIgnoreCase("P") && mtbPartitaMag != null) {
|
||||
if (untMis.equalsIgnoreCase(mtbAart.getUntMis2())) {
|
||||
rapConvArt = mtbPartitaMag.getRapConv2();
|
||||
} else if (untMis.equalsIgnoreCase(mtbAart.getUntMis3())) {
|
||||
@@ -245,7 +252,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
||||
} else {
|
||||
rapConvArt = BigDecimal.ONE;
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
if (untMis.equalsIgnoreCase(mtbAart.getUntMis2())) {
|
||||
rapConvArt = mtbAart.getRapConv2();
|
||||
} else if (untMis.equalsIgnoreCase(mtbAart.getUntMis3())) {
|
||||
|
||||
@@ -124,6 +124,9 @@ public class ExchangeDocumentImportService {
|
||||
|
||||
dataCount.addAndGet(allTestateData.size());
|
||||
|
||||
// allTestateData = allTestateData.stream()
|
||||
// .filter(x -> ((DtbDoct)x).getNumDoc() == 2428 && ((DtbDoct)x).getSerDoc().equalsIgnoreCase("A1"))
|
||||
// .collect(Collectors.toList());
|
||||
|
||||
for (EquatableEntityInterface dataToSave : allTestateData) {
|
||||
DtbDoct document = (DtbDoct) dataToSave;
|
||||
|
||||
Reference in New Issue
Block a user