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) {
|
||||
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,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();
|
||||
|
||||
List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
|
||||
List<PickingObjectDTO> matchPickingObject = pickingList == null ? new ArrayList<>() :
|
||||
pickingList.stream()
|
||||
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitBollaAccettazione().getCodMart()))
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
|
||||
for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
||||
pickingObjectDTO.setTempPickData(pickData);
|
||||
}
|
||||
|
||||
this.loadMatchedRows(matchPickingObject, mtbAart, pickData);
|
||||
this.loadMatchedRows(matchPickingObject, mtbAart, pickData, previousSearchedArts);
|
||||
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()) {
|
||||
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);
|
||||
} else if (matchedRows.size() == 1) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user