diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java index f5609670..4a3cb0af 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java @@ -402,11 +402,18 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi .max(Date::compareTo) .orElse(null); - this.mViewModel.loadFabbisogno(ordini, codMdep, dataInizio, dataFine, this::startPickingActivity); + List listMtbGrup = Stream.of(mProdFabbisognoItemModel) + .filter(x -> x instanceof ProdFabbisognoLineeItemModelDto && ((ProdFabbisognoLineeItemModelDto) x).selected.get()) + .flatMap(x -> Stream.of(((ProdFabbisognoLineeItemModelDto) x).getSelectedMtbGrup())) + .toList(); + + this.mViewModel.loadFabbisogno(ordini, codMdep, dataInizio, dataFine, onCompleteData -> { + startPickingActivity(listMtbGrup, onCompleteData); + }); } - private void startPickingActivity(List fabbisognoList) { + private void startPickingActivity(List listMtbGrup, List fabbisognoList) { String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); String ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel) @@ -415,6 +422,7 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi .toList()); List sitArtOrdDTOS = Stream.of(fabbisognoList) + .filter(x -> Stream.of(listMtbGrup).anyMatch(y -> y.getCodMgrp().equalsIgnoreCase(x.getCodMgrp()))) .map(x -> { SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO() .setCodMart(x.getCodMart()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeItemModelDto.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeItemModelDto.java index cc425eee..e9d4f762 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeItemModelDto.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeItemModelDto.java @@ -1,12 +1,17 @@ package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto; +import java.util.ArrayList; +import java.util.List; + import it.integry.integrywmsnative.core.di.BindableBoolean; +import it.integry.integrywmsnative.core.model.MtbGrup; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; public class ProdFabbisognoLineeItemModelDto { public BindableBoolean selected = new BindableBoolean(); public OrdineLavorazioneDTO ordineLavorazioneDTO; + List selectedMtbGrup = new ArrayList<>(); public BindableBoolean getSelected() { return selected; @@ -20,4 +25,13 @@ public class ProdFabbisognoLineeItemModelDto { this.ordineLavorazioneDTO = ordineLavorazioneDTO; return this; } + + public List getSelectedMtbGrup() { + return selectedMtbGrup; + } + + public ProdFabbisognoLineeItemModelDto setSelectedMtbGrup(List selectedMtbGrup) { + this.selectedMtbGrup = selectedMtbGrup; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/filters/ProdFabbisognoLineeProdFilterViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/filters/ProdFabbisognoLineeProdFilterViewModel.java index 73bfbbbc..297578a4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/filters/ProdFabbisognoLineeProdFilterViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/filters/ProdFabbisognoLineeProdFilterViewModel.java @@ -60,12 +60,10 @@ public class ProdFabbisognoLineeProdFilterViewModel { currentGruppoMercPredicate.get() == null) { returnList = this.initialList; } else { - Stream tmpStream = Stream.of(this.initialList) + returnList = Stream.of(this.initialList) .filter(x -> (currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))) && (currentGruppoMercPredicate.get() == null || (currentGruppoMercPredicate.get().test(x))) - ); - - returnList = tmpStream.toList(); + ).map(x -> x.setSelectedMtbGrup(this.selectedMtbGrup)).toList(); } this.currentList.setValue(returnList);