Fix su loop nel caso di ricerca barcode kit in accettazione da bolla
This commit is contained in:
parent
7bdb9b47f4
commit
f2d5bb76c5
@ -305,8 +305,8 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
|
||||||
this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
|
this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
|
||||||
|
|
||||||
if (mtbAartList != null && mtbAartList.size() > 0) {
|
if (mtbAartList != null && !mtbAartList.isEmpty()) {
|
||||||
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
|
this.searchArtFromAnag(mtbAartList.get(0), pickData, null, onComplete);
|
||||||
} else {
|
} else {
|
||||||
this.manageUnknownBarcode(barcodeProd, onComplete);
|
this.manageUnknownBarcode(barcodeProd, onComplete);
|
||||||
}
|
}
|
||||||
@ -315,28 +315,41 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) {
|
private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, ArrayList<MtbAart> previousSearchedArts, Runnable onComplete) {
|
||||||
|
if (previousSearchedArts == null) previousSearchedArts = new ArrayList<>();
|
||||||
|
|
||||||
|
if (previousSearchedArts.contains(mtbAart)) {
|
||||||
|
manageNoArtFound(mtbAart, pickData);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
previousSearchedArts.add(mtbAart);
|
||||||
|
|
||||||
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
|
List<PickingObjectDTO> matchPickingObject = pickingList == null ? new ArrayList<>() :
|
||||||
|
pickingList.stream()
|
||||||
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart()))
|
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart()))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
||||||
pickingObjectDTO.setTempPickData(pickData);
|
pickingObjectDTO.setTempPickData(pickData);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadMatchedRows(matchPickingObject, mtbAart, pickData);
|
this.loadMatchedRows(matchPickingObject, mtbAart, pickData, previousSearchedArts);
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadMatchedRows(List<PickingObjectDTO> matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) {
|
private void loadMatchedRows(List<PickingObjectDTO> matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO, ArrayList<MtbAart> previousSearchedArts) {
|
||||||
if (matchedRows == null || matchedRows.isEmpty()) {
|
if (matchedRows == null || matchedRows.isEmpty()) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
this.mArticoloRESTConsumer.findIfIsKit(mtbAart, mtbAartFind -> {
|
this.mArticoloRESTConsumer.findIfIsKit(mtbAart, mtbAartFind -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
if (mtbAartFind == null) {
|
if (mtbAartFind == null) {
|
||||||
manageNoArtFound(mtbAart, pickDataDTO);
|
manageNoArtFound(mtbAart, pickDataDTO);
|
||||||
} else {
|
} else {
|
||||||
searchArtFromAnag(mtbAartFind, pickDataDTO, () -> {});
|
searchArtFromAnag(mtbAartFind, pickDataDTO, previousSearchedArts, () -> {
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
} else if (matchedRows.size() == 1) {
|
} else if (matchedRows.size() == 1) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user