diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index e2531d5d..dfbf1daf 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java index fc532ec7..25b6a5ec 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java @@ -12,6 +12,7 @@ import it.integry.integrywmsnative.core.REST.model.Ean128Model; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityLogger; +import it.integry.integrywmsnative.core.utility.UtilityString; public class PickingObjectDTO implements Parcelable { @@ -463,5 +464,50 @@ public class PickingObjectDTO implements Parcelable { this.dataScad = dataScad; return this; } + + + + public static PickData fromEan128(Ean128Model ean128Model) { + PickingObjectDTO.PickData pickData = null; + + if(ean128Model != null){ + pickData = new PickingObjectDTO.PickData(); + + if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) { + pickData.setBatchLot(ean128Model.BatchLot); + } + + try { + if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){ + pickData.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); + } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { + pickData.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); + } + + } catch (Exception e) { + UtilityLogger.errorMe(e); + } + + + if(ean128Model.Count != null && ean128Model.Count > 0) { + //if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { + pickData.setNumCnf(new BigDecimal(ean128Model.Count)); + //} else { + // dto.setQtaTot(new BigDecimal(ean128Model.Count)); + //} + } + + if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) { + pickData.setQtaTot(new BigDecimal(ean128Model.NetWeightKg)); + } + + if(pickData.getQtaTot() != null && pickData.getQtaTot().floatValue() > 0 && pickData.getNumCnf() != null && pickData.getNumCnf().floatValue() > 0) { + pickData.setQtaCnf(pickData.getQtaTot().divide(pickData.getNumCnf())); + } + + } + + return pickData; + } } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java index fd5c813d..0bda6a5f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java @@ -71,6 +71,9 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity { mArticoliInColloBottomSheetViewModel.collapse(); } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) { mArticoliInColloBottomSheetViewModel.closeCurrentUL(); + + BarcodeManager.removeCallback(barcodeScannerIstanceID); + super.onBackPressed(); } else { BarcodeManager.removeCallback(barcodeScannerIstanceID); super.onBackPressed(); 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 411c0a3c..d2d1a4ea 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 @@ -16,6 +16,7 @@ import java.util.Objects; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.CommonConst; +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; @@ -25,6 +26,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.CommonModelConsts; 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.secondary.GestioneEnum; @@ -364,7 +366,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO barcodeProd = barcodeProd.substring(1, barcodeProd.length()); } -// this.loadArticolo(barcodeProd, ean128Model, progressDialog); + this.loadArticolo(barcodeProd, PickingObjectDTO.PickData.fromEan128(ean128Model), progressDialog); } @@ -380,8 +382,45 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO }); } + private void loadArticolo(String barcodeProd, PickingObjectDTO.PickData pickData, ProgressDialog progressDialog) { + if(barcodeProd.length() == 14) { + barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); + } + + + ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { + + if(mtbAartList != null && mtbAartList.size() > 0) { + +// if(!thereIsAnOpenedUL()){ +// +// this.createNewUL(null, null, progressDialog, false, () -> { +// BarcodeManager.enable(); +// this.searchArtInList(mtbAartList.get(0), ean128Model); +// }); +// +// } else { + this.searchArtFromAnag(mtbAartList.get(0), pickData); + + BarcodeManager.enable(); + progressDialog.dismiss(); +// } +// + } else { + BarcodeManager.enable(); + progressDialog.dismiss(); + + DialogSimpleMessageHelper.makeWarningDialog(mActivity, + new SpannableString(mActivity.getResources().getText(R.string.no_result_from_barcode)), + null, null) + .show(); + } + + }, ex -> { + BarcodeManager.enable(); + UtilityExceptions.defaultException(mActivity, ex, progressDialog); + }); - private void executeEtichettaEan128Art(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) { } @@ -472,8 +511,30 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - private void searchArtFromAnag() { + private void searchArtFromAnag(MtbAart mtbAart, PickingObjectDTO.PickData pickData) { + final List pickingList = mPickingList; + + List matchPickingObject = Stream.of(pickingList) + .filter(x -> x.getNumCollo() == null && + (mtbAart.getCodMart().equalsIgnoreCase(x.getCodMart()))) + .toList(); + + + if(SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { + List matchWithPartitaMag = Stream.of(matchPickingObject) + .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) && + Objects.equals(x.getPartitaMag(), pickData.getBatchLot())).toList(); + + matchPickingObject = matchWithPartitaMag; + + } + + if(matchPickingObject.size() == 1){ + matchPickingObject.get(0).setTempPickData(pickData); + } + + this.loadMatchedRows(matchPickingObject); }