From 400f1440dbab18303ea73f57bb31cbcb207a2ec3 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 3 Apr 2023 14:09:31 +0200 Subject: [PATCH] =?UTF-8?q?Completata=20gestione=20delle=20unit=C3=A0=20di?= =?UTF-8?q?=20misura=20in=20colli=20nel=20popup=20informativo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/model/MvwSitArtUdcDetInventario.java | 11 --- .../rest/consumers/ArticoloRESTConsumer.java | 32 +++++++ .../rest/consumers/GiacenzaRESTConsumer.java | 95 ++++++++++--------- .../InstantItemSituationIncomingItemDto.java | 12 +-- .../core/utility/UntMisUtils.java | 12 +++ .../gest/spedizione/SpedizioneActivity.java | 7 +- ...ituazione_articolo_available_list_item.xml | 31 ++++++ ...situazione_articolo_incoming_list_item.xml | 51 ++++++++-- 8 files changed, 178 insertions(+), 73 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/utility/UntMisUtils.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java index 4dce7962..acfd8b69 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java @@ -38,8 +38,6 @@ public class MvwSitArtUdcDetInventario { private BigDecimal pesoLordoKg; private String codJfas; private MtbAart mtbAart; - private MtbUntMis mtbUntMis; - public String getGestione() { return gestione; @@ -284,15 +282,6 @@ public class MvwSitArtUdcDetInventario { return this; } - public MtbUntMis getMtbUntMis() { - return mtbUntMis; - } - - public MvwSitArtUdcDetInventario setMtbUntMis(MtbUntMis mtbUntMis) { - this.mtbUntMis = mtbUntMis; - return this; - } - public MtbColr toMtbColr() { return new MtbColr() .setCodJcom(getCodJcom()) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java index 6f7db1a9..040b0f2d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java @@ -6,6 +6,7 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -59,6 +60,8 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer { public static void getByCodMartsStatic(List codMartToFind, RunnableArgs> onComplete, RunnableArgs onFailed) { String joinedCods = Stream.of(codMartToFind) + .withoutNulls() + .distinct() .collect(Collectors.joining(",")); @@ -154,4 +157,33 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer { }.getType(); this.systemRESTConsumer.processSql("SELECT * FROM mtb_unt_mis " + whereCond, typeOfObjectsList, onComplete, onFailed); } + + public void fillMtbAartsWithMtbUntMis(List inputMtbAart, RunnableArgs> onComplete, RunnableArgs onFailed) { + var inputUntMis = new ArrayList(); + + if (inputMtbAart != null && !inputMtbAart.isEmpty()) { + inputUntMis.addAll(Stream.of(inputMtbAart) + .map(MtbAart::getUntMis) + .withoutNulls() + .distinct() + .toList()); + } + + if (inputUntMis.isEmpty()) { + onComplete.run(inputMtbAart); + return; + } + + getUntMisArts(inputUntMis, mtbUntMiss -> { + for (var item : inputMtbAart) { + var mtbUntMis = Stream.of(mtbUntMiss).filter(x -> x.getUntMis().equalsIgnoreCase(item.getUntMis())) + .findFirstOrElse(null); + + if (mtbUntMis != null) + item.setMtbUntMis(Collections.singletonList(mtbUntMis)); + } + + onComplete.run(inputMtbAart); + }, onFailed); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java index 6dbc3090..d0a00e42 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java @@ -124,51 +124,7 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer { public void onResponse(Call> call, Response> response) { analyzeAnswer(response, "getInstantItemSituation", data -> { - var inputUntMis = new ArrayList(); - - if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) { - inputUntMis.addAll(Stream.of(data.getIncomingItems()) - .map(InstantItemSituationIncomingItemDto::getUntMis) - .toList()); - } - - if (data.getAvailableItems() != null && !data.getAvailableItems().isEmpty()) { - inputUntMis.addAll(Stream.of(data.getAvailableItems()) - .map(MvwSitArtUdcDetInventario::getUntMis) - .toList()); - } - - if (inputUntMis.isEmpty()) { - onComplete.run(data); - return; - } - - mArticoloRESTConsumer.getUntMisArts(inputUntMis, mtbUntMiss -> { - - if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) { - for (var item : data.getIncomingItems()){ - var mtbUntMis = Stream.of(mtbUntMiss).filter(x -> x.getUntMis().equalsIgnoreCase(item.getUntMis())) - .findFirstOrElse(null); - - if(mtbUntMis != null) - item.setMtbUntMis(mtbUntMis); - } - } - - if (data.getAvailableItems() != null && !data.getAvailableItems().isEmpty()) { - for (var item : data.getAvailableItems()){ - var mtbUntMis = Stream.of(mtbUntMiss).filter(x -> x.getUntMis().equalsIgnoreCase(item.getUntMis())) - .findFirstOrElse(null); - - if(mtbUntMis != null) - item.setMtbUntMis(mtbUntMis); - } - } - - onComplete.run(data); - }, onFailed); - - + fillInstantItemSituationWithMtbAarts(data, onComplete, onFailed); }, onFailed); } @@ -179,5 +135,54 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer { }); } + private void fillInstantItemSituationWithMtbAarts(InstantItemSituationResponseDto data, RunnableArgs onComplete, RunnableArgs onFailed) { + var inputCodMarts = new ArrayList(); + + if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) { + inputCodMarts.addAll(Stream.of(data.getIncomingItems()) + .map(InstantItemSituationIncomingItemDto::getCodMart) + .toList()); + } + + if (data.getAvailableItems() != null && !data.getAvailableItems().isEmpty()) { + inputCodMarts.addAll(Stream.of(data.getAvailableItems()) + .map(MvwSitArtUdcDetInventario::getCodMart) + .toList()); + } + + if (inputCodMarts.isEmpty()) { + onComplete.run(data); + return; + } + + mArticoloRESTConsumer.getByCodMarts(inputCodMarts, mtbAarts -> { + + mArticoloRESTConsumer.fillMtbAartsWithMtbUntMis(mtbAarts, newMtbAarts -> { + if (data.getIncomingItems() != null && !data.getIncomingItems().isEmpty()) { + for (var item : data.getIncomingItems()) { + var mtbAart = Stream.of(newMtbAarts).filter(x -> x.getCodMart().equalsIgnoreCase(item.getCodMart())) + .findFirstOrElse(null); + + if (mtbAart != null) + item.setMtbAart(mtbAart); + } + } + + if (data.getAvailableItems() != null && !data.getAvailableItems().isEmpty()) { + for (var item : data.getAvailableItems()) { + var mtbAart = Stream.of(newMtbAarts).filter(x -> x.getCodMart().equalsIgnoreCase(item.getCodMart())) + .findFirstOrElse(null); + + if (mtbAart != null) + item.setMtbAart(mtbAart); + } + } + + onComplete.run(data); + }, onFailed); + + }, onFailed); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/giacenza/InstantItemSituationIncomingItemDto.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/giacenza/InstantItemSituationIncomingItemDto.java index b05d05bf..88c5bd3e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/giacenza/InstantItemSituationIncomingItemDto.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/giacenza/InstantItemSituationIncomingItemDto.java @@ -3,7 +3,7 @@ package it.integry.integrywmsnative.core.rest.model.giacenza; import java.math.BigDecimal; import java.time.LocalDate; -import it.integry.integrywmsnative.core.model.MtbUntMis; +import it.integry.integrywmsnative.core.model.MtbAart; public class InstantItemSituationIncomingItemDto { @@ -23,7 +23,7 @@ public class InstantItemSituationIncomingItemDto { private String codJcom; private String codMdep; private String untMis; - private MtbUntMis mtbUntMis; + private MtbAart mtbAart; public BigDecimal getQtaOrd() { return qtaOrd; @@ -89,12 +89,12 @@ public class InstantItemSituationIncomingItemDto { return untMis; } - public MtbUntMis getMtbUntMis() { - return mtbUntMis; + public MtbAart getMtbAart() { + return mtbAart; } - public InstantItemSituationIncomingItemDto setMtbUntMis(MtbUntMis mtbUntMis) { - this.mtbUntMis = mtbUntMis; + public InstantItemSituationIncomingItemDto setMtbAart(MtbAart mtbAart) { + this.mtbAart = mtbAart; return this; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UntMisUtils.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UntMisUtils.java new file mode 100644 index 00000000..289b2cce --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UntMisUtils.java @@ -0,0 +1,12 @@ +package it.integry.integrywmsnative.core.utility; + +import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.settings.SettingsManager; + +public class UntMisUtils { + + public static boolean shouldBeShowInColli(MtbAart mtbAart) { + return SettingsManager.iDB().isFlagForceAllToColli() || (mtbAart == null || !mtbAart.isFlagQtaCnfFissaBoolean()); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index 53d0f760..ff260ee8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -46,6 +46,7 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UntMisUtils; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; @@ -341,7 +342,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo spedizioneListModel.setGroupTitle(!mEnableFakeGiacenza ? getString(R.string.picking_not_available) : ""); spedizioneListModel.setBadge2(getCommessa(x.getSitArtOrdDTO().getCodJcom())); - if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + if (UntMisUtils.shouldBeShowInColli(x.getMtbAart())) { spedizioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd()); spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue()); @@ -389,7 +390,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))); - if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + if (UntMisUtils.shouldBeShowInColli(x.getMtbAart())) { cloneModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter); @@ -519,7 +520,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo if (!anyLUPresent) { spedizioneListModel.setBadge2(getCommessa(x.getSitArtOrdDTO().getCodJcom())); - if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) { + if (UntMisUtils.shouldBeShowInColli(x.getMtbAart())) { spedizioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col)); spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd()); spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue()); diff --git a/app/src/main/res/layout/dialog_info_situazione_articolo_available_list_item.xml b/app/src/main/res/layout/dialog_info_situazione_articolo_available_list_item.xml index 50ae192c..396ec500 100644 --- a/app/src/main/res/layout/dialog_info_situazione_articolo_available_list_item.xml +++ b/app/src/main/res/layout/dialog_info_situazione_articolo_available_list_item.xml @@ -10,6 +10,7 @@ + @@ -206,6 +207,34 @@ android:visibility="@{item.qtaCol != null ? View.VISIBLE : View.GONE}"> + + + + + diff --git a/app/src/main/res/layout/dialog_info_situazione_articolo_incoming_list_item.xml b/app/src/main/res/layout/dialog_info_situazione_articolo_incoming_list_item.xml index 7d50bfc7..4b2232a9 100644 --- a/app/src/main/res/layout/dialog_info_situazione_articolo_incoming_list_item.xml +++ b/app/src/main/res/layout/dialog_info_situazione_articolo_incoming_list_item.xml @@ -7,10 +7,15 @@ + + + + + @@ -21,16 +26,16 @@ + android:paddingVertical="8dp"> + android:orientation="vertical"> - + + + + + +