Fix filtro gruppo merceologico in approvvigionamento linee

This commit is contained in:
Marco Elefante 2024-03-14 15:22:10 +01:00
parent e12da84fa3
commit 66e0ce15cb
3 changed files with 26 additions and 6 deletions

View File

@ -402,11 +402,18 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
.max(Date::compareTo) .max(Date::compareTo)
.orElse(null); .orElse(null);
this.mViewModel.loadFabbisogno(ordini, codMdep, dataInizio, dataFine, this::startPickingActivity); List<MtbGrup> 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<ProdFabbisognoLineeProdDTO> fabbisognoList) { private void startPickingActivity(List<MtbGrup> listMtbGrup, List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
String ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel) String ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel)
@ -415,6 +422,7 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
.toList()); .toList());
List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList) List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList)
.filter(x -> Stream.of(listMtbGrup).anyMatch(y -> y.getCodMgrp().equalsIgnoreCase(x.getCodMgrp())))
.map(x -> { .map(x -> {
SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO() SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO()
.setCodMart(x.getCodMart()) .setCodMart(x.getCodMart())

View File

@ -1,12 +1,17 @@
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto; 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.di.BindableBoolean;
import it.integry.integrywmsnative.core.model.MtbGrup;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
public class ProdFabbisognoLineeItemModelDto { public class ProdFabbisognoLineeItemModelDto {
public BindableBoolean selected = new BindableBoolean(); public BindableBoolean selected = new BindableBoolean();
public OrdineLavorazioneDTO ordineLavorazioneDTO; public OrdineLavorazioneDTO ordineLavorazioneDTO;
List<MtbGrup> selectedMtbGrup = new ArrayList<>();
public BindableBoolean getSelected() { public BindableBoolean getSelected() {
return selected; return selected;
@ -20,4 +25,13 @@ public class ProdFabbisognoLineeItemModelDto {
this.ordineLavorazioneDTO = ordineLavorazioneDTO; this.ordineLavorazioneDTO = ordineLavorazioneDTO;
return this; return this;
} }
public List<MtbGrup> getSelectedMtbGrup() {
return selectedMtbGrup;
}
public ProdFabbisognoLineeItemModelDto setSelectedMtbGrup(List<MtbGrup> selectedMtbGrup) {
this.selectedMtbGrup = selectedMtbGrup;
return this;
}
} }

View File

@ -60,12 +60,10 @@ public class ProdFabbisognoLineeProdFilterViewModel {
currentGruppoMercPredicate.get() == null) { currentGruppoMercPredicate.get() == null) {
returnList = this.initialList; returnList = this.initialList;
} else { } else {
Stream<ProdFabbisognoLineeItemModelDto> tmpStream = Stream.of(this.initialList) returnList = Stream.of(this.initialList)
.filter(x -> (currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))) && .filter(x -> (currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))) &&
(currentGruppoMercPredicate.get() == null || (currentGruppoMercPredicate.get().test(x))) (currentGruppoMercPredicate.get() == null || (currentGruppoMercPredicate.get().test(x)))
); ).map(x -> x.setSelectedMtbGrup(this.selectedMtbGrup)).toList();
returnList = tmpStream.toList();
} }
this.currentList.setValue(returnList); this.currentList.setValue(returnList);