diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index ed0ded79..98a2b99c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -24,6 +24,7 @@ import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.REST.consumers.PosizioneRESTonsumer; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; @@ -34,11 +35,13 @@ import it.integry.integrywmsnative.core.model.FiltroOrdineDTO; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityPosizione; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO; @@ -334,10 +337,18 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if(UtilityBarcode.isEtichettaAnonima(data)){ //Cerco gli articoli presenti nell'ul dell'etichetta anonima this.executeEtichettaLU(data.getStringValue(), progressDialog); - } else if(UtilityBarcode.isEtichetta128(data)) { + + } else if(UtilityBarcode.isEtichetta128(data)) { //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) this.executeEtichettaEan128(data, progressDialog); + + + } else if(UtilityBarcode.isEtichettaPosizione(data)) { + //Cerco l'UL presente all'interno della posizione + this.executeEtichettaPosizione(data.getStringValue(), progressDialog); + + } else { this.loadArticolo(data.getStringValue(), null, progressDialog); } @@ -377,6 +388,65 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO UtilityExceptions.defaultException(mActivity, ex, progressDialog); BarcodeManager.enable(); }); + } + + private void executeEtichettaPosizione(String posizione, ProgressDialog progressDialog) { + + + MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(posizione); + + + if(foundPosizione != null) { + + if(foundPosizione.isFlagMonoCollo()) { + + PosizioneRESTonsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> { + + if(mtbColtList == null || mtbColtList.size() == 0 || mtbColtList.size() > 1) { + + progressDialog.dismiss(); + //Nessuna UL trovata oppure più UL nella stessa posizione + DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna UL trovata"), null, BarcodeManager::enable).show(); + + } else { + ColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> { + if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) { + searchArtFromUL(mtbColt, progressDialog); + } else { + progressDialog.dismiss(); + showNoArtFoundDialog(); + } + + + BarcodeManager.enable(); + }, ex -> { + UtilityExceptions.defaultException(mActivity, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + }, ex -> { + UtilityExceptions.defaultException(mActivity, ex, progressDialog); + BarcodeManager.enable(); + }); + + } else { + progressDialog.dismiss(); + //La posizione non è Mono-UL + DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("La posizione scelta non è Mono-UL"), null, BarcodeManager::enable).show(); + } + + } else { + progressDialog.dismiss(); + //Nessuna posizione trovata con questo barcode + DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna posizione trovata con il barcode scansionato"), null, BarcodeManager::enable).show(); + + } + + + + + } @@ -418,7 +488,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } else { if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { - barcodeProd = barcodeProd.substring(1, barcodeProd.length()); + barcodeProd = barcodeProd.substring(1); } this.loadArticolo(barcodeProd, PickingObjectDTO.PickData.fromEan128(ean128Model), progressDialog); diff --git a/app/src/main/res/drawable/integry_round_icon.png b/app/src/main/res/drawable/integry_round_icon.png new file mode 100644 index 00000000..936a16eb Binary files /dev/null and b/app/src/main/res/drawable/integry_round_icon.png differ diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 5e1ce671..6064b09a 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -30,9 +30,10 @@