Fix ricalcolo numCnf nelle regole dei doc nel caso in cui sia una UM di tipo imballo
This commit is contained in:
@@ -35,6 +35,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
|||||||
|
|
||||||
BigDecimal qta1 = entity.getQta();
|
BigDecimal qta1 = entity.getQta();
|
||||||
String untMis1 = entity.getUntMis();
|
String untMis1 = entity.getUntMis();
|
||||||
|
final String finalUntMis1 = untMis1;
|
||||||
BigDecimal qtaCnf = entity.getQtaCnf();
|
BigDecimal qtaCnf = entity.getQtaCnf();
|
||||||
|
|
||||||
if (mtbAart == null) {
|
if (mtbAart == null) {
|
||||||
@@ -46,6 +47,10 @@ public class DocOrdUntMisRules extends QueryRules {
|
|||||||
|
|
||||||
List<MtbUntMis> mtbUntMisArt = getUmArticolo(connection, codMart);
|
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)) {
|
if (UtilityString.isNullOrEmpty(untMis1)) {
|
||||||
untMis1 = mtbAart.getUntMis();
|
untMis1 = mtbAart.getUntMis();
|
||||||
}
|
}
|
||||||
@@ -74,7 +79,10 @@ public class DocOrdUntMisRules extends QueryRules {
|
|||||||
} else {
|
} else {
|
||||||
cifreDec = 0;
|
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);
|
numCnf = qta1.divide(qtaCnf, cifreDec, RoundingMode.CEILING);
|
||||||
} else {
|
} else {
|
||||||
numCnf = BigDecimal.ZERO;
|
numCnf = BigDecimal.ZERO;
|
||||||
@@ -82,7 +90,6 @@ public class DocOrdUntMisRules extends QueryRules {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final String finalUntMis1 = untMis1;
|
|
||||||
Optional<MtbUntMis> optUM = Stream.of(mtbUntMisArt)
|
Optional<MtbUntMis> optUM = Stream.of(mtbUntMisArt)
|
||||||
.filter(mtbUntMis -> mtbUntMis.getUntMis().equalsIgnoreCase(finalUntMis1)).findFirst();
|
.filter(mtbUntMis -> mtbUntMis.getUntMis().equalsIgnoreCase(finalUntMis1)).findFirst();
|
||||||
|
|
||||||
@@ -109,7 +116,7 @@ public class DocOrdUntMisRules extends QueryRules {
|
|||||||
String untMis2 = null, untMis3 = null;
|
String untMis2 = null, untMis3 = null;
|
||||||
BigDecimal qta2 = BigDecimal.ZERO, qta3 = BigDecimal.ZERO;
|
BigDecimal qta2 = BigDecimal.ZERO, qta3 = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (mtbUntMisList.size() > 0) {
|
if (!mtbUntMisList.isEmpty()) {
|
||||||
if (mtbUntMisList.get(0).getOrdinamento() == 1) {
|
if (mtbUntMisList.get(0).getOrdinamento() == 1) {
|
||||||
mtbUntMisList = Stream.of(mtbUntMisList).sorted(Comparator.comparingInt(MtbUntMis::getOrdinamento)).toList();
|
mtbUntMisList = Stream.of(mtbUntMisList).sorted(Comparator.comparingInt(MtbUntMis::getOrdinamento)).toList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,6 +124,9 @@ public class ExchangeDocumentImportService {
|
|||||||
|
|
||||||
dataCount.addAndGet(allTestateData.size());
|
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) {
|
for (EquatableEntityInterface dataToSave : allTestateData) {
|
||||||
DtbDoct document = (DtbDoct) dataToSave;
|
DtbDoct document = (DtbDoct) dataToSave;
|
||||||
|
|||||||
Reference in New Issue
Block a user