diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java index efc62be9..94a5867a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java @@ -125,9 +125,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF this.initRecyclerView(); this.initBarcodeReader(); - String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); - mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol); - return mBindings.getRoot(); } @@ -135,9 +132,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF public void onStart() { super.onStart(); - if(mAppliedFilterViewModel != null) { - - } + String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); + mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol); } @Override @@ -155,13 +151,13 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders(); boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV(); - this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList); + this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), v -> this.refreshList(null)); OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter = new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData) .setEmptyView(this.mBindings.ordiniVenditaEmptyView) .setOnGroupItemClicked(x -> { - if(!canSelectMultipleClienti) { + if (!canSelectMultipleClienti) { Stream.of(mOrdiniInevasiMutableData) .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get()) .forEach(y -> y.getSelectedObservable().set(false)); @@ -176,7 +172,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF .forEach(y -> y.getSelectedObservable().set(!allSelected)); }) .setOnItemChecked(x -> { - if(!canSelectMultipleClienti && x.getSelectedObservable().get()) { + if (!canSelectMultipleClienti && x.getSelectedObservable().get()) { Stream.of(mOrdiniInevasiMutableData) .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get()) .forEach(y -> y.getSelectedObservable().set(false)); @@ -189,7 +185,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter); this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity())); - if(mToolbar != null) + if (mToolbar != null) mToolbar.setRecyclerView(this.mBindings.venditaMainList); } @@ -211,9 +207,21 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF }); }; - private void refreshList(List orderList) { + private void refreshList(List filteredList) { + List tmpList = null; + + if(filteredList != null) { + tmpList = filteredList; + } else if (mAppliedFilterViewModel != null) { + mAppliedFilterViewModel.init(mViewModel.getOrderList().getValue()); + mAppliedFilterViewModel.applyAllTests(); + tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue(); + } else { + tmpList = mViewModel.getOrderList().getValue(); + } + this.mOrdiniInevasiMutableData.clear(); - this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(orderList)); + this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList)); } private List convertDataModelToListModel(List dataList) { @@ -353,14 +361,12 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF this.mViewModel.getOrderList().getValue(), mAppliedFilterViewModel, - (filteredOrderList, filter) -> { - mAppliedFilterViewModel = filter; + filter -> { - if(filteredOrderList != null){ - refreshList(filteredOrderList); - } + mAppliedFilterViewModel = filter; + refreshList(null); - }).show(); + }).show(); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java index a063ee90..0c34d915 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java @@ -25,7 +25,7 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita; import it.integry.integrywmsnative.core.di.BindableString; -import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO; @@ -37,7 +37,7 @@ public class DialogVenditaFiltroAvanzatoView { private final AlertDialog currentAlert; private final Context currentContext; - private final RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone; + private final RunnableArgs currentOnFilterDone; @@ -66,18 +66,18 @@ public class DialogVenditaFiltroAvanzatoView { private DialogVenditaFiltroAvanzatoViewModel viewModel; - public static AlertDialog make(final Context context, final List ordersList, RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> onDismiss) { + public static AlertDialog make(final Context context, final List ordersList, RunnableArgs onDismiss) { return new DialogVenditaFiltroAvanzatoView(context, ordersList, null, onDismiss).currentAlert; } public static AlertDialog make(final Context context, final List ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, - RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> onDismiss) { + RunnableArgs onDismiss) { return new DialogVenditaFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert; } - private DialogVenditaFiltroAvanzatoView(final Context context, final List ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> onDismiss) { + private DialogVenditaFiltroAvanzatoView(final Context context, final List ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgs onDismiss) { currentContext = context; currentOnFilterDone = onDismiss; @@ -114,7 +114,7 @@ public class DialogVenditaFiltroAvanzatoView { currentAlert.setOnDismissListener(dialogInterface -> { - if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel.getMutableFilteredOrderList().getValue(), viewModel); + if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel); }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index 4357e998..ae84ba9e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -769,8 +769,9 @@ public class SpedizioneViewModel { pickingObjectDTO.getTempPickData().getSourceMtbColt() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null) { + List scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr(); - List availableBatchLot = Stream.of(pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr()) + List availableBatchLot = Stream.of(scannedMtbColrs) .filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && ( x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD()) )) @@ -815,7 +816,7 @@ public class SpedizioneViewModel { }); } else { - dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, null, canPartitaMagBeChanged); + dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, scannedMtbColrs.get(0), canPartitaMagBeChanged); } } else {