Bloccata selezione ordini di fornitore diverso

This commit is contained in:
Giuseppe Scorrano 2018-11-20 17:54:34 +01:00
parent c806ca00be
commit ecfbc1697b
3 changed files with 44 additions and 33 deletions

View File

@ -28,6 +28,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.coollection.Coollection; 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.interfaces.ICheckBoxCallback;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding; 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.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; 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; private FragmentMainAccettazioneBinding mBinding;
@ -222,7 +223,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
groupedOrdiniInevasi.add(groupedOrdine); groupedOrdiniInevasi.add(groupedOrdine);
} }
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, this); mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
// mAdapter.setHasStableIds(true); // mAdapter.setHasStableIds(true);
mBinding.accettazioneMainList.setAdapter(mAdapter); mBinding.accettazioneMainList.setAdapter(mAdapter);
//mRecyclerView.setAdapter(mAdapter); //mRecyclerView.setAdapter(mAdapter);
@ -292,11 +293,20 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
} }
@Override RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
public void onToggle(boolean newValue) { List<OrdineAccettazioneGroupedInevasoDTO> selectedOrders = helper.getSelectedOrders(groupedOrdiniInevasi);
if(helper.getSelectedOrders(groupedOrdiniInevasi).size() > 0) mBinding.accettazioneMainFab.show();
else mBinding.accettazioneMainFab.hide(); 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();
};

View File

@ -15,6 +15,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback; import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
@ -28,7 +29,7 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
private Context mContext; private Context mContext;
private List<OrdineAccettazioneGroupedInevasoDTO> mDataset; private List<OrdineAccettazioneGroupedInevasoDTO> mDataset;
private ICheckBoxCallback mCheckBoxCallback; private RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> mOnGroupSelected;
private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000); private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000);
private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000); private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000);
@ -46,10 +47,10 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
} }
// Provide a suitable constructor (depends on the kind of dataset) // Provide a suitable constructor (depends on the kind of dataset)
public MainListAccettazioneAdapter(Context context, List<OrdineAccettazioneGroupedInevasoDTO> myDataset, ICheckBoxCallback checkBoxCallback) { public MainListAccettazioneAdapter(Context context, List<OrdineAccettazioneGroupedInevasoDTO> myDataset, RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> onGroupSelected) {
mContext = context; mContext = context;
mDataset = myDataset; mDataset = myDataset;
mCheckBoxCallback = checkBoxCallback; mOnGroupSelected = onGroupSelected;
} }
// Create new views (invoked by the layout manager) // Create new views (invoked by the layout manager)
@ -78,11 +79,10 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
// - replace the contents of the view with that element // - replace the contents of the view with that element
final List<OrdineAccettazioneGroupedInevasoDTO.Ordine> subGroup = mDataset.get(position).ordini; final List<OrdineAccettazioneGroupedInevasoDTO.Ordine> subGroup = mDataset.get(position).ordini;
final int finalPosition = position;
holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeFornitore); holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeFornitore);
holder.itemView.setOnClickListener(new View.OnClickListener() { holder.itemView.setOnClickListener(view -> {
@Override
public void onClick(View view) {
boolean newValue = true; boolean newValue = true;
for(int i = 0; i < subGroup.size(); i++){ for(int i = 0; i < subGroup.size(); i++){
@ -93,8 +93,7 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
subGroup.get(i).setCheckbox(newValue); subGroup.get(i).setCheckbox(newValue);
} }
mCheckBoxCallback.onToggle(newValue); mOnGroupSelected.run(mDataset.get(finalPosition));
}
}); });
for (int i = 0; i < subGroup.size(); i++) { for (int i = 0; i < subGroup.size(); i++) {
@ -128,7 +127,8 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
groupModelView.setOnClickListener(view -> { groupModelView.setOnClickListener(view -> {
checkBox.toggle(); checkBox.toggle();
ordine.checkBox = checkBox.isChecked(); 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); TextView testataOrdTextView = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_testata_ord);

View File

@ -156,6 +156,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
} }
setULToCurrentContext(recoveredMtbColt); setULToCurrentContext(recoveredMtbColt);
refreshOrderBy(false); refreshOrderBy(false);
} }