diff --git a/app/build.gradle b/app/build.gradle index c6a8c555..6dfda05f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 488 - def appVersionName = '1.46.00' + def appVersionCode = 489 + def appVersionName = '1.46.01' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java index bbfd9f64..1c564213 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -305,8 +305,8 @@ public class AccettazioneBollaPickingViewModel { private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> { - if (mtbAartList != null && mtbAartList.size() > 0) { - this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete); + if (mtbAartList != null && !mtbAartList.isEmpty()) { + this.searchArtFromAnag(mtbAartList.get(0), pickData, null, onComplete); } else { this.manageUnknownBarcode(barcodeProd, onComplete); } @@ -315,7 +315,16 @@ public class AccettazioneBollaPickingViewModel { } - private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) { + private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, ArrayList previousSearchedArts, Runnable onComplete) { + if (previousSearchedArts == null) previousSearchedArts = new ArrayList<>(); + + if (previousSearchedArts.contains(mtbAart)) { + manageNoArtFound(mtbAart, pickData); + return; + } + + previousSearchedArts.add(mtbAart); + final List pickingList = mPickingList.getValue(); List matchPickingObject = pickingList == null ? new ArrayList<>() : @@ -327,17 +336,19 @@ public class AccettazioneBollaPickingViewModel { pickingObjectDTO.setTempPickData(pickData); } - this.loadMatchedRows(matchPickingObject, mtbAart, pickData); + this.loadMatchedRows(matchPickingObject, mtbAart, pickData, previousSearchedArts); onComplete.run(); } - private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) { + private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO, ArrayList previousSearchedArts) { if (matchedRows == null || matchedRows.isEmpty()) { + this.sendOnLoadingStarted(); this.mArticoloRESTConsumer.findIfIsKit(mtbAart, mtbAartFind -> { + this.sendOnLoadingEnded(); if (mtbAartFind == null) { manageNoArtFound(mtbAart, pickDataDTO); } else { - searchArtFromAnag(mtbAartFind, pickDataDTO, () -> { + searchArtFromAnag(mtbAartFind, pickDataDTO, previousSearchedArts, () -> { }); } }, this::sendError);