From a5a9cb1c502c2f277c8d6b8e8adf795f78ed6fe3 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 18 Jun 2024 16:06:02 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Aggiunto=20blocco=20durante=20la=20lettura?= =?UTF-8?q?=20dell'SSCC=20fornitore=20nell'accettazione=20se=20il=20barcod?= =?UTF-8?q?e=20ul=20=C3=A8=20gi=C3=A0=20presente=20in=20un=20collo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ColliAccettazioneRESTConsumer.java | 18 ++++++++++++++++++ .../ColliAccettazioneRESTConsumerService.java | 5 +++++ .../ColliLavorazioneRESTConsumer.java | 18 ++++++++++++++++++ .../ColliCaricoRESTConsumerInterface.java | 2 ++ .../AccettazioneOrdiniPickingActivity.java | 11 +++++++++++ .../AccettazioneOrdiniPickingViewModel.java | 16 ++++++++++++++-- 6 files changed, 68 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java index 91dcdb01..162a00c1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java @@ -114,4 +114,22 @@ public class ColliAccettazioneRESTConsumer extends _BaseRESTConsumer implements }); } + @Override + public void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed){ + ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = RESTBuilder.getService(ColliAccettazioneRESTConsumerService.class); + + colliAccettazioneRESTConsumerService.checkIfBarcodeUlAlreadyRegistered(barcodeUl) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "accettazione/checkIfBarcodeUlAlreadyRegistered", onComplete, onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumerService.java index 42a65b48..5f239012 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumerService.java @@ -12,7 +12,9 @@ import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowResponseDTO; import retrofit2.Call; import retrofit2.http.Body; +import retrofit2.http.GET; import retrofit2.http.POST; +import retrofit2.http.Query; public interface ColliAccettazioneRESTConsumerService { @@ -31,4 +33,7 @@ public interface ColliAccettazioneRESTConsumerService { @POST("wms/accettazione/deleteUDCRow") Call> deleteUDCRow(@Body DeleteUDCRowRequestDTO deleteUDCRowRequestDTO); + @GET("wms/accettazione/checkIfBarcodeUlAlreadyRegistered") + Call> checkIfBarcodeUlAlreadyRegistered(@Query("barcodeUl") String barcodeUl); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java index 0decfd3a..cacf5a5e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java @@ -264,4 +264,22 @@ public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements C } }); } + + @Override + public void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed){ + ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = RESTBuilder.getService(ColliAccettazioneRESTConsumerService.class); + + colliAccettazioneRESTConsumerService.checkIfBarcodeUlAlreadyRegistered(barcodeUl) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "accettazione/checkIfBarcodeUlAlreadyRegistered", onComplete, onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java index 30d87651..71db8839 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java @@ -21,4 +21,6 @@ public interface ColliCaricoRESTConsumerInterface { void editUDCRow(EditUDCRowRequestDTO editUDCRowRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed); void deleteUDCRow(DeleteUDCRowRequestDTO deleteUDCRequestDTO, Runnable onComplete, RunnableArgs onFailed); + + void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java index 3f549c78..78f42a9e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; +import android.text.Html; import android.text.SpannableString; import android.view.Gravity; import android.view.Menu; @@ -741,6 +742,16 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A BarcodeManager.enable(); } + @Override + public void onWarning(String warningText, Runnable action) { + this.runOnUiThread(() -> { + this.onLoadingEnded(); + DialogSimpleMessageView + .makeWarningDialog(new SpannableString(Html.fromHtml(warningText)), null, action) + .show(getSupportFragmentManager(), "tag"); + }); + } + @Override public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, RunnableArgss onComplete) { DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO().setMtbAart(mtbAart).setInitialNumCnf(initialNumCnf).setInitialQtaCnf(initialQtaCnf).setInitialQtaTot(initialQtaTot).setTotalQtaOrd(totalQtaOrd).setTotalNumCnfOrd(totalNumCnfOrd).setQtaCnfOrd(qtaCnfOrd).setTotalQtaToBeTaken(totalQtaToBeTaken).setTotalNumCnfToBeTaken(totalNumCnfToBeTaken).setQtaCnfToBeTaken(qtaCnfToBeTaken).setTotalQtaAvailable(totalQtaAvailable).setTotalNumCnfAvailable(totalNumCnfAvailable).setQtaCnfAvailable(qtaCnfAvailable).setPartitaMag(partitaMag).setDataScad(dataScad).setCanPartitaMagBeChanged(canPartitaMagBeChanged).setCanLUBeClosed(true).setCanOverflowOrderQuantity(canOverflowQuantity).setCustomArtDescription(customArtDescription); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java index 952a72b5..7ecdec6e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java @@ -247,8 +247,14 @@ public class AccettazioneOrdiniPickingViewModel { try { Ean128Model ean128Model = mEan128Service.decode(barcodeScanDTO); - //Nel caso trovo un SSCC lo aggiungo - this.processBarcodeNotOpenedLU(barcodeScanDTO, ean128Model.Sscc, onComplete); + mColliAccettazioneRESTConsumer.checkBarcodeUl(ean128Model.Sscc, result -> { + if (result){ + this.sendWarning("Barcode ul giĆ  registrato!", onComplete); + } else { + //Nel caso trovo un SSCC lo aggiungo + this.processBarcodeNotOpenedLU(barcodeScanDTO, ean128Model.Sscc, onComplete); + } + }, this::sendError); } catch (Exception e) { this.sendError(e); @@ -933,6 +939,10 @@ public class AccettazioneOrdiniPickingViewModel { if (this.mListener != null) mListener.onError(ex); } + private void sendWarning(String warningText, Runnable action) { + if (this.mListener != null) mListener.onWarning(warningText, action); + } + private void sendLUOpened(MtbColt mtbColt) { if (this.mListener != null) mListener.onLUOpened(mtbColt); } @@ -1050,6 +1060,8 @@ public class AccettazioneOrdiniPickingViewModel { void onFilterPosizioneApplied(String posizioneToFilter); + void onWarning(String warningText, Runnable action); + void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete); } From da301ec6b2d3ac46a612b56d93f2c90c43a53f5e Mon Sep 17 00:00:00 2001 From: MarcoE Date: Fri, 21 Jun 2024 17:55:37 +0200 Subject: [PATCH 2/3] Permettere la duplicazione delle uds --- .../ColliAccettazioneRESTConsumer.java | 1 - .../ColliLavorazioneRESTConsumer.java | 18 ----- .../ColliSpedizioneRESTConsumer.java | 21 ++++++ .../ColliSpedizioneRESTConsumerService.java | 5 ++ .../ColliCaricoRESTConsumerInterface.java | 2 - .../model/uds/DuplicateUDSRequestDTO.java | 28 +++++++ .../model/uds/DuplicateUDSResponseDTO.java | 19 +++++ .../core/settings/DBSettingsModel.java | 10 +++ .../core/settings/SettingsManager.java | 5 ++ .../gest/spedizione/SpedizioneActivity.java | 12 +++ .../gest/spedizione/SpedizioneViewModel.java | 74 ++++++++++++++----- 11 files changed, 157 insertions(+), 38 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSRequestDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSResponseDTO.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java index 162a00c1..dc07ca34 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java @@ -114,7 +114,6 @@ public class ColliAccettazioneRESTConsumer extends _BaseRESTConsumer implements }); } - @Override public void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed){ ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = RESTBuilder.getService(ColliAccettazioneRESTConsumerService.class); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java index cacf5a5e..0decfd3a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java @@ -264,22 +264,4 @@ public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements C } }); } - - @Override - public void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed){ - ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = RESTBuilder.getService(ColliAccettazioneRESTConsumerService.class); - - colliAccettazioneRESTConsumerService.checkIfBarcodeUlAlreadyRegistered(barcodeUl) - .enqueue(new Callback<>() { - @Override - public void onResponse(Call> call, Response> response) { - analyzeAnswer(response, "accettazione/checkIfBarcodeUlAlreadyRegistered", onComplete, onFailed); - } - - @Override - public void onFailure(Call> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java index 962e077b..682f6ed0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java @@ -1,5 +1,7 @@ package it.integry.integrywmsnative.core.rest.consumers; +import androidx.annotation.NonNull; + import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; @@ -13,6 +15,8 @@ import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO; @@ -113,4 +117,21 @@ public class ColliSpedizioneRESTConsumer extends _BaseRESTConsumer implements Co } + public void duplicateUDSRow(DuplicateUDSRequestDTO duplicateUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) { + ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class); + + colliSpedizioneRESTConsumerService.duplicateUDSRow(duplicateUDSRequestDTO) + .enqueue(new Callback<>() { + @Override + public void onResponse(@NonNull Call> call, @NonNull Response> response) { + analyzeAnswer(response, "spedizione/duplicateUDSRow", onComplete, onFailed); + } + + @Override + public void onFailure(@NonNull Call> call, @NonNull Throwable t) { + onFailed.run(new Exception()); + } + }); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java index 32f0b1fc..5492b609 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java @@ -6,6 +6,8 @@ import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO; @@ -35,4 +37,7 @@ public interface ColliSpedizioneRESTConsumerService { @POST("wms/spedizione/deleteUDSRow") Call> deleteUDSRow(@Body DeleteUDSRowRequestDTO deleteUDSRowRequestDTO); + @POST("wms/spedizione/duplicateUDSRow") + Call> duplicateUDSRow(@Body DuplicateUDSRequestDTO duplicateUDSRequestDTO); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java index 71db8839..30d87651 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java @@ -21,6 +21,4 @@ public interface ColliCaricoRESTConsumerInterface { void editUDCRow(EditUDCRowRequestDTO editUDCRowRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed); void deleteUDCRow(DeleteUDCRowRequestDTO deleteUDCRequestDTO, Runnable onComplete, RunnableArgs onFailed); - - void checkBarcodeUl(String barcodeUl, RunnableArgs onComplete, RunnableArgs onFailed); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSRequestDTO.java new file mode 100644 index 00000000..24c5bc0d --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSRequestDTO.java @@ -0,0 +1,28 @@ +package it.integry.integrywmsnative.core.rest.model.uds; + +import it.integry.integrywmsnative.core.model.MtbColt; + +public class DuplicateUDSRequestDTO { + + private MtbColt mtbColt; + + private int numOfDuplicates; + + public MtbColt getMtbColt() { + return mtbColt; + } + + public DuplicateUDSRequestDTO setMtbColt(MtbColt mtbColt) { + this.mtbColt = mtbColt; + return this; + } + + public int getNumOfDuplicates() { + return numOfDuplicates; + } + + public DuplicateUDSRequestDTO setNumOfDuplicates(int numOfDuplicates) { + this.numOfDuplicates = numOfDuplicates; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSResponseDTO.java new file mode 100644 index 00000000..47d39930 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DuplicateUDSResponseDTO.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.core.rest.model.uds; + +import java.util.List; + +import it.integry.integrywmsnative.core.model.MtbColt; + +public class DuplicateUDSResponseDTO { + + private List mtbColtList; + + public List getMtbColtList() { + return mtbColtList; + } + + public DuplicateUDSResponseDTO setMtbColtList(List mtbColtList) { + this.mtbColtList = mtbColtList; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index efe86553..92760a91 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -79,6 +79,7 @@ public class DBSettingsModel { private boolean flagTracciamentoImballiCaricoEnabled = false; private boolean flagTracciamentoImballiScaricoEnabled = false; private boolean flagPickingLiberoEnableScanArt = false; + private boolean flagAskDuplicateUDSSpedizione = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -664,4 +665,13 @@ public class DBSettingsModel { this.flagPickingLiberoEnableScanArt = flagPickingLiberoEnableScanArt; return this; } + + public boolean isFlagAskDuplicateUDSSpedizione() { + return flagAskDuplicateUDSSpedizione; + } + + public DBSettingsModel setFlagAskDuplicateUDSSpedizione(boolean flagAskDuplicateUDSSpedizione) { + this.flagAskDuplicateUDSSpedizione = flagAskDuplicateUDSSpedizione; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 2402e061..d1ebd35a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -388,6 +388,11 @@ public class SettingsManager { .setSection("SPEDIZIONE") .setKeySection("FLAG_ASK_INFO_AGGIUNTIVE") .setSetter(dbSettingsModelIstance::setFlagAskInfoAggiuntiveSpedizione)); + stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class) + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_ASK_DUPLICATE_UDS") + .setSetter(dbSettingsModelIstance::setFlagAskDuplicateUDSSpedizione)); stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class) .setGestName("PICKING") .setSection("SPEDIZIONE") 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 d2022ba4..d775ef0a 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 @@ -1072,4 +1072,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded) .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName()); } + + @Override + public void onInputDuplicate(RunnableArgs onComplete){ + DialogSimpleInputHelper.makeInputDialog(this, "Numero pedane da duplicare", inputValue -> { + try { + Integer num = Integer.parseInt(inputValue); + onComplete.run(num); + } catch (NumberFormatException ex) { + this.onError(new Exception("Inserire un numero di risorse valido")); + } + }, () -> {}).show(); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index f6dc1249..3780c29e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -1,5 +1,6 @@ package it.integry.integrywmsnative.gest.spedizione; +import androidx.annotation.IntegerRes; import androidx.databinding.ObservableArrayList; import androidx.lifecycle.MutableLiveData; @@ -13,6 +14,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.inject.Inject; @@ -72,6 +74,7 @@ import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestOrderDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.PrintULRequestDTO; @@ -1549,31 +1552,35 @@ public class SpedizioneViewModel { this.closeLU(generatedMtbColts -> { - this.mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(generatedMtbColts, filledMtbColts -> { + this.duplicateUDS(generatedMtbColts, duplicatedMtbColts -> { - this.askPositionChange( - filledMtbColts, - positionedMtbColts -> { + generatedMtbColts.addAll(duplicatedMtbColts); - this.askPrint((shouldPrint && SettingsManager.iDB().isFlagPrintEtichetteOnLUClose()), positionedMtbColts, () -> { - positionedMtbColts.stream() - .filter(x -> !this.mColliRegistrati.contains(x)) - .forEach(x -> this.mColliRegistrati.add(x)); + this.mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(generatedMtbColts, filledMtbColts -> { - postCloseOperations(positionedMtbColts); + this.askPositionChange( + filledMtbColts, + positionedMtbColts -> { - this.mIsNewLU = false; + this.askPrint((shouldPrint && SettingsManager.iDB().isFlagPrintEtichetteOnLUClose()), positionedMtbColts, () -> { + positionedMtbColts.stream() + .filter(x -> !this.mColliRegistrati.contains(x)) + .forEach(x -> this.mColliRegistrati.add(x)); + + postCloseOperations(positionedMtbColts); + + this.mIsNewLU = false; + + this.resetMatchedRows(); + this.sendLUClosed(); + this.sendOnLoadingEnded(); + }); - this.resetMatchedRows(); - this.sendLUClosed(); - this.sendOnLoadingEnded(); }); - }); - - }, this::sendError); + }, this::sendError); + }); }); - }); }); }); @@ -1596,8 +1603,35 @@ public class SpedizioneViewModel { this.mColliScaricoRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> { onComplete.run(closeResponse.getGeneratedMtbColts()); }, this::sendError); + } + private void duplicateUDS(List mtbColtList, RunnableArgs> onComplete) { + var clonedLu = (MtbColt) this.mCurrentMtbColt.clone(); + boolean noReference = clonedLu.getMtbColr().stream() + .allMatch( + x -> x.getGestioneRif() == null && + x.getDataColloRifD() == null && + x.getSerColloRif() == null && + x.getNumColloRif() == null + ); + + if (mtbColtList.size() > 1 || !noReference || !SettingsManager.iDB().isFlagAskDuplicateUDSSpedizione()) { + onComplete.run(new ArrayList<>()); + return; + } + + var savedMtbColt = mtbColtList.get(0); + + sendInputDuplicate(inputNumber -> { + var duplicateUDSRequestDTO = new DuplicateUDSRequestDTO() + .setMtbColt(savedMtbColt) + .setNumOfDuplicates(inputNumber); + + this.mColliSpedizioneRESTConsumer.duplicateUDSRow(duplicateUDSRequestDTO, data -> { + onComplete.run(data.getMtbColtList()); + }, this::sendError); + }); } private void checkIfShouldBeDeleted(Runnable onDeleted, Runnable onContinue) { @@ -1938,6 +1972,10 @@ public class SpedizioneViewModel { this.mDocumentRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError); } + private void sendInputDuplicate(RunnableArgs onComplete) { + if (this.mListener != null) mListener.onInputDuplicate(onComplete); + } + public SpedizioneViewModel setListeners(Listener listener) { this.mListener = listener; return this; @@ -1970,6 +2008,8 @@ public class SpedizioneViewModel { void onChooseArtsRequest(List artsList, RunnableArgs> onComplete); void onOrderClosed(); + + void onInputDuplicate(RunnableArgs onComplete); } } From 8a5c8f5c94f206621deb7a3060f8c7995f98de39 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Tue, 25 Jun 2024 09:06:02 +0200 Subject: [PATCH 3/3] -> v1.40.25 (442) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0774f5f2..f7541cbf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 441 - def appVersionName = '1.40.24' + def appVersionCode = 442 + def appVersionName = '1.40.25' signingConfigs { release {