Bloccata selezione ordini di fornitore diverso
This commit is contained in:
parent
c806ca00be
commit
ecfbc1697b
@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -156,6 +156,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
||||
|
||||
}
|
||||
|
||||
|
||||
setULToCurrentContext(recoveredMtbColt);
|
||||
refreshOrderBy(false);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user