diff --git a/app/build.gradle b/app/build.gradle index 2a66f360..c7324545 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 378 - def appVersionName = '1.33.07' + def appVersionCode = 380 + def appVersionName = '1.33.09' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java index b6d97ea2..f5d52879 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java @@ -58,7 +58,7 @@ public abstract class _BaseRepository< .collect(Collectors.toList()); var dataToDelete = finalLocalData.stream() - .filter(x -> finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x))) + .filter(x -> x.isSyncronized() && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x))) .collect(Collectors.toList()); var dataToInsert = finalRemoteData.stream() 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);