diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java index a4aeb37c..e07b7bff 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java @@ -21,13 +21,13 @@ public abstract class ExtendedSectionedRecyclerView myDataset) { mDataset.addAll(myDataset); - myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() { + myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() { @Override - public void onChanged(ObservableList sender) { + public void onChanged(ObservableList sender) { mDataset.clear(); mDataset.addAll(sender); - notifyDataSetChanged(); notifyDataChanged(); + notifyDataSetChanged(); checkIfEmpty(); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java index 73ebad1b..02b7194b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java @@ -66,7 +66,7 @@ public abstract class _BaseRESTConsumer { } } else { Log.e(logTitle, response.body().getErrorMessage()); - onFailed.run(new Exception(response.body().getErrorMessage())); + onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage())); } } else { Log.e(logTitle, response.message()); @@ -76,7 +76,9 @@ public abstract class _BaseRESTConsumer { if (response.code() == 404) { Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata"); onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")")); - } else { + } else if (response.code() == 550) + onFailed.run(new NotValidLicenseException()); + else { Log.e(logTitle, "Status " + response.code() + ": " + response.message()); onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); } @@ -113,7 +115,9 @@ public abstract class _BaseRESTConsumer { if (responseList.code() == 404) { Log.e(logTitle, "Errore " + responseList.code() + ": risorsa non trovata"); onFailed.run(new Exception("Errore " + responseList.code() + ": risorsa non trovata (" + logTitle + ")")); - } else { + } else if (responseList.code() == 550) + onFailed.run(new NotValidLicenseException()); + else { Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message()); onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message())); } 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 8fa39870..b9348bae 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 @@ -42,6 +42,7 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepo; import it.integry.integrywmsnative.core.model.MtbGrup; +import it.integry.integrywmsnative.core.model.OrdineInevasoDTO; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer; @@ -692,30 +693,30 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF private final RunnableArgs onScanSuccessful = data -> { this.onLoadingStarted(); - this.mViewModel.processBarcodeDTO(data, () -> { - this.onLoadingEnded(); - }); + this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded); }; private void refreshList(List filteredList) { - List tmpList; + requireActivity().runOnUiThread(() -> { + List tmpList; - if (filteredList != null) { - tmpList = filteredList; - } else if (mAppliedFilterViewModel != null) { - mAppliedFilterViewModel.applyAllTests(); - tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue(); - } else { - tmpList = mViewModel.getOrderList().getValue(); - } + if (filteredList != null) { + tmpList = filteredList; + } else if (mAppliedFilterViewModel != null) { + mAppliedFilterViewModel.applyAllTests(); + tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue(); + } else { + tmpList = mViewModel.getOrderList().getValue(); + } - var list = convertDataModelToListModel(tmpList); + var list = convertDataModelToListModel(tmpList); - this.mOrdiniInevasiMutableData.clear(); - this.mOrdiniInevasiMutableData.addAll(list); + this.mOrdiniInevasiMutableData.clear(); + this.mOrdiniInevasiMutableData.addAll(list); - fabVisible.set(Stream.of(mOrdiniInevasiMutableData) - .anyMatch(y -> y.getSelectedObservable().get())); + fabVisible.set(Stream.of(mOrdiniInevasiMutableData) + .anyMatch(y -> y.getSelectedObservable().get())); + }); } private List convertDataModelToListModel(List dataList) { @@ -780,6 +781,17 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF this.mViewModel.loadPicking(selectedOrders, this.mAppliedFilterViewModel.getSelectedMtbGrup()); } + @Override + public void onFilterNumOrderApplied(List filteredOrder) { + requireActivity().runOnUiThread(() -> { + var numOrders = Stream.of(filteredOrder) + .map(OrdineInevasoDTO::getNumOrd) + .distinct() + .toList(); + this.mAppliedFilterViewModel.setNumOrdFilter(numOrders); + }); + } + @Override public void onOrderFiltered(List filteredOrders) { refreshList(filteredOrders); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java index 41386842..593d0df5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java @@ -154,12 +154,15 @@ public class OrdiniUscitaElencoViewModel { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { RunnableArgs> onBarcodeScanComplete = orderList -> { - onComplete.run(); this.sendOnOrderFiltered(orderList); + onComplete.run(); }; if (UtilityBarcode.isBarcodeOrdineV(barcodeScanDTO)) { - this.executeEtichettaOrdineV(barcodeScanDTO.getStringValue(), onBarcodeScanComplete); + this.executeEtichettaOrdineV(barcodeScanDTO.getStringValue(), foundOrder -> { + this.sendOnFilterNumOrderApplied(foundOrder); + onComplete.run(); + }); } else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) { this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onBarcodeScanComplete); } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) { @@ -196,10 +199,11 @@ public class OrdiniUscitaElencoViewModel { final String finalGestione = gestione; final Date finalDate = date; - List filteredOrders = Stream.of(mOrderList.getValue()) - .filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate)).toList(); + List foundItem = Stream.of(mOrderList.getValue()) + .filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate)) + .toList(); - onComplete.run(filteredOrders); + onComplete.run(foundItem); } @@ -284,6 +288,10 @@ public class OrdiniUscitaElencoViewModel { if (this.mListener != null) mListener.onError(ex); } + private void sendOnFilterNumOrderApplied(List filteredOrder) { + if (this.mListener != null) mListener.onFilterNumOrderApplied(filteredOrder); + } + private void sendOnOrderFiltered(List filteredOrders) { if (this.mListener != null) mListener.onOrderFiltered(filteredOrders); } @@ -297,6 +305,8 @@ public class OrdiniUscitaElencoViewModel { void onError(Exception ex); + void onFilterNumOrderApplied(List filteredOrder); + void onOrderFiltered(List filteredOrders); void onOrdersDispatched(List orders, List sitArts, List alreadyRegisteredMtbColts);