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 @@