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); }