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)
.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 ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel)
@ -415,6 +422,7 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
.toList());
List<SitArtOrdDTO> 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())

View File

@ -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<MtbGrup> selectedMtbGrup = new ArrayList<>();
public BindableBoolean getSelected() {
return selected;
@ -20,4 +25,13 @@ public class ProdFabbisognoLineeItemModelDto {
this.ordineLavorazioneDTO = ordineLavorazioneDTO;
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) {
returnList = this.initialList;
} else {
Stream<ProdFabbisognoLineeItemModelDto> 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);