Sistemato ricaricamento ordini di uscita senza perdere l'istanza del filtro applicato.
This commit is contained in:
parent
ea7acf6053
commit
8ea38fd31c
@ -125,9 +125,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
|
|
||||||
|
|
||||||
return mBindings.getRoot();
|
return mBindings.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,9 +132,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
|
||||||
if(mAppliedFilterViewModel != null) {
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -155,13 +151,13 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders();
|
boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders();
|
||||||
boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV();
|
boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV();
|
||||||
|
|
||||||
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), v -> this.refreshList(null));
|
||||||
|
|
||||||
OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter =
|
OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter =
|
||||||
new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
|
new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||||
.setEmptyView(this.mBindings.ordiniVenditaEmptyView)
|
.setEmptyView(this.mBindings.ordiniVenditaEmptyView)
|
||||||
.setOnGroupItemClicked(x -> {
|
.setOnGroupItemClicked(x -> {
|
||||||
if(!canSelectMultipleClienti) {
|
if (!canSelectMultipleClienti) {
|
||||||
Stream.of(mOrdiniInevasiMutableData)
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
|
||||||
.forEach(y -> y.getSelectedObservable().set(false));
|
.forEach(y -> y.getSelectedObservable().set(false));
|
||||||
@ -176,7 +172,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
.forEach(y -> y.getSelectedObservable().set(!allSelected));
|
.forEach(y -> y.getSelectedObservable().set(!allSelected));
|
||||||
})
|
})
|
||||||
.setOnItemChecked(x -> {
|
.setOnItemChecked(x -> {
|
||||||
if(!canSelectMultipleClienti && x.getSelectedObservable().get()) {
|
if (!canSelectMultipleClienti && x.getSelectedObservable().get()) {
|
||||||
Stream.of(mOrdiniInevasiMutableData)
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
|
||||||
.forEach(y -> y.getSelectedObservable().set(false));
|
.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.setAdapter(ordiniUscitaElencoAdapter);
|
||||||
this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
if(mToolbar != null)
|
if (mToolbar != null)
|
||||||
mToolbar.setRecyclerView(this.mBindings.venditaMainList);
|
mToolbar.setRecyclerView(this.mBindings.venditaMainList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,9 +207,21 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
private void refreshList(List<OrdiniUscitaElencoDTO> orderList) {
|
private void refreshList(List<OrdiniUscitaElencoDTO> filteredList) {
|
||||||
|
List<OrdiniUscitaElencoDTO> 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.clear();
|
||||||
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(orderList));
|
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList));
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {
|
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {
|
||||||
@ -353,14 +361,12 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
this.mViewModel.getOrderList().getValue(),
|
this.mViewModel.getOrderList().getValue(),
|
||||||
mAppliedFilterViewModel,
|
mAppliedFilterViewModel,
|
||||||
|
|
||||||
(filteredOrderList, filter) -> {
|
filter -> {
|
||||||
mAppliedFilterViewModel = filter;
|
|
||||||
|
|
||||||
if(filteredOrderList != null){
|
mAppliedFilterViewModel = filter;
|
||||||
refreshList(filteredOrderList);
|
refreshList(null);
|
||||||
}
|
|
||||||
|
|
||||||
}).show();
|
}).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import it.integry.integrywmsnative.R;
|
|||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
|
import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
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.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
||||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||||
@ -37,7 +37,7 @@ public class DialogVenditaFiltroAvanzatoView {
|
|||||||
private final AlertDialog currentAlert;
|
private final AlertDialog currentAlert;
|
||||||
private final Context currentContext;
|
private final Context currentContext;
|
||||||
|
|
||||||
private final RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
private final RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -66,18 +66,18 @@ public class DialogVenditaFiltroAvanzatoView {
|
|||||||
|
|
||||||
private DialogVenditaFiltroAvanzatoViewModel viewModel;
|
private DialogVenditaFiltroAvanzatoViewModel viewModel;
|
||||||
|
|
||||||
public static AlertDialog make(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
public static AlertDialog make(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzatoView(context, ordersList, null, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzatoView(context, ordersList, null, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog make(final Context context,
|
public static AlertDialog make(final Context context,
|
||||||
final List<OrdiniUscitaElencoDTO> ordersList,
|
final List<OrdiniUscitaElencoDTO> ordersList,
|
||||||
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogVenditaFiltroAvanzatoView(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
private DialogVenditaFiltroAvanzatoView(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
currentContext = context;
|
currentContext = context;
|
||||||
currentOnFilterDone = onDismiss;
|
currentOnFilterDone = onDismiss;
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ public class DialogVenditaFiltroAvanzatoView {
|
|||||||
|
|
||||||
|
|
||||||
currentAlert.setOnDismissListener(dialogInterface -> {
|
currentAlert.setOnDismissListener(dialogInterface -> {
|
||||||
if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel.getMutableFilteredOrderList().getValue(), viewModel);
|
if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -769,8 +769,9 @@ public class SpedizioneViewModel {
|
|||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
|
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
|
||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null) {
|
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null) {
|
||||||
|
|
||||||
|
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
|
||||||
|
|
||||||
List<MtbPartitaMag> availableBatchLot = Stream.of(pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr())
|
List<MtbPartitaMag> availableBatchLot = Stream.of(scannedMtbColrs)
|
||||||
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && (
|
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && (
|
||||||
x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD())
|
x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD())
|
||||||
))
|
))
|
||||||
@ -815,7 +816,7 @@ public class SpedizioneViewModel {
|
|||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, null, canPartitaMagBeChanged);
|
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, scannedMtbColrs.get(0), canPartitaMagBeChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user