From ecfbc1697b470db2283a2f8f7ad6369e903c51a1 Mon Sep 17 00:00:00 2001 From: Giuseppe Scorrano Date: Tue, 20 Nov 2018 17:54:34 +0100 Subject: [PATCH] Bloccata selezione ordini di fornitore diverso --- .../MainAccettazioneFragment.java | 42 ++++++++++++------- .../core/MainListAccettazioneAdapter.java | 34 +++++++-------- .../AccettazioneOnOrdineInevasoViewModel.java | 1 + 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java index 0446bc26..202a1214 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java @@ -28,6 +28,7 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.coollection.Coollection; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding; @@ -42,7 +43,7 @@ import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneIneva import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; -public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallback, SearchView.OnQueryTextListener, ITitledFragment { +public class MainAccettazioneFragment extends Fragment implements SearchView.OnQueryTextListener, ITitledFragment { private FragmentMainAccettazioneBinding mBinding; @@ -222,7 +223,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb groupedOrdiniInevasi.add(groupedOrdine); } - mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, this); + mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged); // mAdapter.setHasStableIds(true); mBinding.accettazioneMainList.setAdapter(mAdapter); //mRecyclerView.setAdapter(mAdapter); @@ -263,18 +264,18 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb } DialogSimpleMessageHelper.makeInfoDialog(getActivity(), - getText(R.string.orders).toString(), - Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, ordersKeys.size()), ordersKeys.size()) - + "

" + - "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())), - null, - () -> { + getText(R.string.orders).toString(), + Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, ordersKeys.size()), ordersKeys.size()) + + "

" + + "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())), + null, + () -> { - Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class); - myIntent.putExtra("key", (ArrayList) ordini); //Optional parameters - getActivity().startActivity(myIntent); + Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class); + myIntent.putExtra("key", (ArrayList) ordini); //Optional parameters + getActivity().startActivity(myIntent); - }).show(); + }).show(); } @@ -292,11 +293,20 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb } - @Override - public void onToggle(boolean newValue) { - if(helper.getSelectedOrders(groupedOrdiniInevasi).size() > 0) mBinding.accettazioneMainFab.show(); + RunnableArgs onGroupSelectionChanged = dto -> { + List selectedOrders = helper.getSelectedOrders(groupedOrdiniInevasi); + + if(selectedOrders != null && selectedOrders.size() > 1){ + for (OrdineAccettazioneGroupedInevasoDTO selectedOrder : selectedOrders) { + if(!dto.codAnagForn.equalsIgnoreCase(selectedOrder.codAnagForn)) { + Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false)); + } + } + } + + if(selectedOrders.size() > 0) mBinding.accettazioneMainFab.show(); else mBinding.accettazioneMainFab.hide(); - } + }; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java index 4260bcc0..036482ad 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO; @@ -28,7 +29,7 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter mDataset; - private ICheckBoxCallback mCheckBoxCallback; + private RunnableArgs mOnGroupSelected; private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000); private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000); @@ -46,10 +47,10 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter myDataset, ICheckBoxCallback checkBoxCallback) { + public MainListAccettazioneAdapter(Context context, List myDataset, RunnableArgs onGroupSelected) { mContext = context; mDataset = myDataset; - mCheckBoxCallback = checkBoxCallback; + mOnGroupSelected = onGroupSelected; } // Create new views (invoked by the layout manager) @@ -78,23 +79,21 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter subGroup = mDataset.get(position).ordini; + final int finalPosition = position; holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeFornitore); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - boolean newValue = true; + holder.itemView.setOnClickListener(view -> { + boolean newValue = true; - for(int i = 0; i < subGroup.size(); i++){ - if(subGroup.get(i).checkBox) newValue = false; - } - - for(int i = 0; i < subGroup.size(); i++){ - subGroup.get(i).setCheckbox(newValue); - } - - mCheckBoxCallback.onToggle(newValue); + for(int i = 0; i < subGroup.size(); i++){ + if(subGroup.get(i).checkBox) newValue = false; } + + for(int i = 0; i < subGroup.size(); i++){ + subGroup.get(i).setCheckbox(newValue); + } + + mOnGroupSelected.run(mDataset.get(finalPosition)); }); for (int i = 0; i < subGroup.size(); i++) { @@ -128,7 +127,8 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter { checkBox.toggle(); ordine.checkBox = checkBox.isChecked(); - mCheckBoxCallback.onToggle(checkBox.isChecked()); + mOnGroupSelected.run(mDataset.get(finalPosition)); +// mCheckBoxCallback.onToggle(checkBox.isChecked()); }); TextView testataOrdTextView = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_testata_ord); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java index fe28cfcc..8179f438 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java @@ -156,6 +156,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb } + setULToCurrentContext(recoveredMtbColt); refreshOrderBy(false); }