From aacec1dfde7dbe18b20e5cfdd879e6feac363dd8 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Mon, 22 May 2023 11:50:50 +0200 Subject: [PATCH 1/2] [CARELLI - INVENTARIO] - aggiunto caricamento su scansione articolo - corretto bug: NullPointerException in riconoscimento articolo senza codMart --- .../picking/PickingInventarioActivity.java | 5 +- .../picking/PickingInventarioViewModel.java | 154 +++--------------- 2 files changed, 27 insertions(+), 132 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java index 6e13463f..91b5ed74 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java @@ -179,8 +179,7 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn } private final RunnableArgs onScanSuccessful = data -> { - this.mViewModel.processBarcodeDTO(data, () -> { - }); + this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded); }; @@ -260,7 +259,7 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn .setNew(true)); DialogSelectDocRowsView.newInstance(dialogSelectDocRowsItemListModels, data -> { - if(data.isNew()) + if (data.isNew()) this.mViewModel.dispatchRowInsert(null, matchedArt, null); else this.mViewModel.dispatchRowEdit(matchedArt.toMtbAart(), (InventarioRowRoomDTO) data.getOriginalModel()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java index 6c06338b..5e2e7f64 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java @@ -47,9 +47,7 @@ public class PickingInventarioViewModel extends ViewModel { private List availableInventarioArts; private Listener mListener; - public PickingInventarioViewModel( - InventarioRepository inventarioRepository, - InventarioRowRepository inventarioRowRepository) { + public PickingInventarioViewModel(InventarioRepository inventarioRepository, InventarioRowRepository inventarioRowRepository) { this.inventarioRepository = inventarioRepository; this.inventarioRowRepository = inventarioRowRepository; } @@ -84,6 +82,7 @@ public class PickingInventarioViewModel extends ViewModel { } public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { + this.sendOnLoadingStarted(); if (UtilityBarcode.isEanPeso(barcodeScanDTO)) { //Cerco tramite etichetta ean peso this.executeEtichettaEanPeso(barcodeScanDTO, onComplete); @@ -97,27 +96,17 @@ public class PickingInventarioViewModel extends ViewModel { var barcodeList = new ArrayList(); barcodeList.add(itemToUpdate.getScanCodBarre()); - var matchedArt = availableInventarioArts.stream() - .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())) - .findFirst() - .orElse(null); + var matchedArt = availableInventarioArts.stream().filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())).findFirst().orElse(null); MtbAart articolo; if (canAddUnknownItems && matchedArt == null) { - matchedArt = new InventarioArtDTO() - .setBarcode(barcodeList) - .setFlagQtaCnfFissa(true) - .setPlu(false) - .setUntMis(itemToUpdate.getUntMis()) - .setQtaCnf(itemToUpdate.getQtaConf()); + matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis(itemToUpdate.getUntMis()).setQtaCnf(itemToUpdate.getQtaConf()); } if (matchedArt != null) { - articolo = matchedArt.toMtbAart() - .setFlagTracciabilita("N"); + articolo = matchedArt.toMtbAart().setFlagTracciabilita("N"); dispatchRowEdit(articolo, itemToUpdate); - } else - this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre())); + } else this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre())); } public void deleteRow(InventarioRowRoomDTO itemToDelete) { @@ -155,19 +144,11 @@ public class PickingInventarioViewModel extends ViewModel { var barcodeList = new ArrayList(); barcodeList.add(barcodeProd); - var matchedArt = availableInventarioArts.stream() - .filter(x -> x.getBarcode().contains(barcodeProd)) - .findFirst() - .orElse(null); + var matchedArt = availableInventarioArts.stream().filter(x -> x.getBarcode().contains(barcodeProd)).findFirst().orElse(null); if (canAddUnknownItems && matchedArt == null) { - matchedArt = new InventarioArtDTO() - .setBarcode(barcodeList) - .setFlagQtaCnfFissa(true) - .setPlu(false) - .setUntMis("PZ") - .setQtaCnf(BigDecimal.ONE); + matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis("PZ").setQtaCnf(BigDecimal.ONE); } @@ -182,8 +163,7 @@ public class PickingInventarioViewModel extends ViewModel { } onComplete.run(); - } else - this.sendError(new NoResultFromBarcodeException(barcodeProd)); + } else this.sendError(new NoResultFromBarcodeException(barcodeProd)); } private List searchArtInAlreadyScannedItems(InventarioArtDTO inventarioArtDTO) { @@ -191,9 +171,7 @@ public class PickingInventarioViewModel extends ViewModel { if (inventarioRows == null) return null; - return Stream.of(inventarioRows) - .filter(x -> x.getCodMart().equalsIgnoreCase(inventarioArtDTO.getCodMart())) - .toList(); + return Stream.of(inventarioRows).filter(x -> x.getCodMart() != null ? x.getCodMart().equalsIgnoreCase(inventarioArtDTO.getCodMart()) : inventarioArtDTO.getBarcode().contains(x.getScanCodBarre())).toList(); } @@ -201,9 +179,7 @@ public class PickingInventarioViewModel extends ViewModel { var mtbAart = inventarioArtDTO.toMtbAart(); mtbAart.setFlagTracciabilita("N"); - PickingObjectDTO pickingObjectDTO = new PickingObjectDTO() - .setMtbAart(mtbAart) - .setTempPickData(PickDataDTO.fromEan128(ean128Model)); + PickingObjectDTO pickingObjectDTO = new PickingObjectDTO().setMtbAart(mtbAart).setTempPickData(PickDataDTO.fromEan128(ean128Model)); BigDecimal numCnfDaPrelevare = null; BigDecimal qtaColDaPrelevare = null; @@ -277,65 +253,26 @@ public class PickingInventarioViewModel extends ViewModel { } if (inventarioArtDTO.isPlu()) { - this.saveNewRow(pickingObjectDTO, - initialNumCnf, - initialQtaCnf, - initialQtaTot, - null, - barcode); + this.saveNewRow(pickingObjectDTO, initialNumCnf, initialQtaCnf, initialQtaTot, null, barcode); } else { - this.sendOnItemDispatched( - pickingObjectDTO, - pickingObjectDTO.getMtbAart(), - null, //initialNumCnf, - initialQtaCnf, - null, //initialQtaTot, - null, - null, - null, - null, - null, - null, - false, - true, - false, - (pickedQuantityDTO, shouldCloseLU) -> { - this.saveNewRow(pickingObjectDTO, - pickedQuantityDTO.getNumCnf(), - pickedQuantityDTO.getQtaCnf(), - pickedQuantityDTO.getQtaTot(), - pickedQuantityDTO.getPartitaMag(), - barcode); + this.sendOnItemDispatched(pickingObjectDTO, pickingObjectDTO.getMtbAart(), null, //initialNumCnf, + initialQtaCnf, null, //initialQtaTot, + null, null, null, null, null, null, false, true, false, (pickedQuantityDTO, shouldCloseLU) -> { + this.saveNewRow(pickingObjectDTO, pickedQuantityDTO.getNumCnf(), pickedQuantityDTO.getQtaCnf(), pickedQuantityDTO.getQtaTot(), pickedQuantityDTO.getPartitaMag(), barcode); }); } } public void dispatchRowEdit(MtbAart mtbAart, InventarioRowRoomDTO inventarioRowRoomDTO) { - final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO() - .setMtbAart(mtbAart); + final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO().setMtbAart(mtbAart); - this.sendOnItemDispatched( - pickingObjectDTO, - pickingObjectDTO.getMtbAart(), - inventarioRowRoomDTO.getNumConf(), - inventarioRowRoomDTO.getQtaConf(), - inventarioRowRoomDTO.getQta(), - null, null, null, - null, null, null, - false, - false, - false, - (pickedQuantityDTO, shouldCloseLU) -> { + this.sendOnItemDispatched(pickingObjectDTO, pickingObjectDTO.getMtbAart(), inventarioRowRoomDTO.getNumConf(), inventarioRowRoomDTO.getQtaConf(), inventarioRowRoomDTO.getQta(), null, null, null, null, null, null, false, false, false, (pickedQuantityDTO, shouldCloseLU) -> { - this.saveEditedRow(inventarioRowRoomDTO, - pickedQuantityDTO.getNumCnf(), - pickedQuantityDTO.getQtaCnf(), - pickedQuantityDTO.getQtaTot(), - pickedQuantityDTO.getPartitaMag()); - }); + this.saveEditedRow(inventarioRowRoomDTO, pickedQuantityDTO.getNumCnf(), pickedQuantityDTO.getQtaCnf(), pickedQuantityDTO.getQtaTot(), pickedQuantityDTO.getPartitaMag()); + }); } @@ -382,40 +319,13 @@ public class PickingInventarioViewModel extends ViewModel { if (this.mListener != null) mListener.onError(ex); } - private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO, - MtbAart mtbAart, - BigDecimal initialNumCnf, - BigDecimal initialQtaCnf, - BigDecimal initialQtaTot, - BigDecimal totalQtaAvailable, - BigDecimal totalNumCnfAvailable, - BigDecimal qtaCnfAvailable, - BigDecimal totalQtaToBeTaken, - BigDecimal totalNumCnfToBeTaken, - BigDecimal qtaCnfToBeTaken, - boolean canOverflowOrderQuantity, - boolean canPartitaMagBeChanged, - boolean canLUBeClosed, - RunnableArgss onComplete) { - if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO, - mtbAart, - initialNumCnf, - initialQtaCnf, - initialQtaTot, - totalQtaAvailable, - totalNumCnfAvailable, - qtaCnfAvailable, - totalQtaToBeTaken, - totalNumCnfToBeTaken, - qtaCnfToBeTaken, - canOverflowOrderQuantity, - canPartitaMagBeChanged, - canLUBeClosed, - onComplete); + private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, RunnableArgss onComplete) { + if (this.mListener != null) + mListener.onItemDispatched(pickingObjectDTO, mtbAart, initialNumCnf, initialQtaCnf, initialQtaTot, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, totalQtaToBeTaken, totalNumCnfToBeTaken, qtaCnfToBeTaken, canOverflowOrderQuantity, canPartitaMagBeChanged, canLUBeClosed, onComplete); } private void sendOnItemAlreadyFound(InventarioArtDTO matchedArt, List alreadyScannedItems) { - if(this.mListener != null) + if (this.mListener != null) this.mListener.onItemAlreadyFound(matchedArt, alreadyScannedItems); } @@ -428,21 +338,7 @@ public class PickingInventarioViewModel extends ViewModel { void onError(Exception ex); - void onItemDispatched(PickingObjectDTO pickingObjectDTO, - MtbAart mtbAart, - BigDecimal initialNumCnf, - BigDecimal initialQtaCnf, - BigDecimal initialQtaTot, - BigDecimal totalQtaAvailable, - BigDecimal totalNumCnfAvailable, - BigDecimal qtaCnfAvailable, - BigDecimal totalQtaToBeTaken, - BigDecimal totalNumCnfToBeTaken, - BigDecimal qtaCnfToBeTaken, - boolean canOverflowOrderQuantity, - boolean canPartitaMagBeChanged, - boolean canLUBeClosed, - RunnableArgss onComplete); + void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, RunnableArgss onComplete); void onItemAlreadyFound(InventarioArtDTO matchedArt, List alreadyScannedItems); From 21ed15a2ead53ccc6997334ba0ef4d5ed738893d Mon Sep 17 00:00:00 2001 From: ValerioC Date: Mon, 22 May 2023 12:04:57 +0200 Subject: [PATCH 2/2] -> v1.33.09 (380) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7b5eceb9..c7324545 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 379 - def appVersionName = '1.33.08' + def appVersionCode = 380 + def appVersionName = '1.33.09' signingConfigs { release {