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.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())
+ "<br /><br />" +
"<b>" + artsCounter + "</b> " + 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())
+ "<br /><br />" +
"<b>" + artsCounter + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())),
null,
() -> {
Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) ordini); //Optional parameters
getActivity().startActivity(myIntent);
Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) 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<OrdineAccettazioneGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
List<OrdineAccettazioneGroupedInevasoDTO> 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();
}
};

View File

@ -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<MainListAc
private Context mContext;
private List<OrdineAccettazioneGroupedInevasoDTO> mDataset;
private ICheckBoxCallback mCheckBoxCallback;
private RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> 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<MainListAc
}
// 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;
mDataset = myDataset;
mCheckBoxCallback = checkBoxCallback;
mOnGroupSelected = onGroupSelected;
}
// Create new views (invoked by the layout manager)
@ -78,23 +79,21 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
// - replace the contents of the view with that element
final List<OrdineAccettazioneGroupedInevasoDTO.Ordine> 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<MainListAc
groupModelView.setOnClickListener(view -> {
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);

View File

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