diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 2b51460c..b59c5175 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index b6a4512c..77042253 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 19 - def appVersionName = '1.0.16' + def appVersionCode = 20 + def appVersionName = '1.0.17' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index f762f7f6..1fd2f6a1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -210,6 +210,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR .setData(ord.getDataOrdS()) .setNumero(ord.getNumOrd()) .setCodAnagOrd(ord.getCodAnagOrd()) + .setCodAnagClie(groupedOrdine.codAnagClie) .setRagSocOrd(ord.getRagSocOrd()) .setPesoTotale(ord.getPesoTotale() != null ? ord.getPesoTotale().floatValue() : null) .setBarcode(ord.getBarcode()) @@ -256,7 +257,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR } private void initRecyclerView() { - mAdapter = new MainListVenditaAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged); + mAdapter = new MainListVenditaAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged, onSingleSelectionChanged); mBinding.venditaMainList.setAdapter(mAdapter); } @@ -264,6 +265,28 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR mAdapter.updateItems(groupedOrdiniInevasi); } + RunnableArgs onSingleSelectionChanged = dto -> { + List selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi); + + if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){ + + if(selectedOrders != null && selectedOrders.size() > 1){ + for (OrdineVenditaGroupedInevasoDTO selectedOrder : selectedOrders) { + if(!dto.getCodAnagClie().equalsIgnoreCase(selectedOrder.codAnagClie)) { + Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false)); + } + } + } + } + + if(selectedOrders != null && selectedOrders.size() > 0) { + mBinding.venditaMainFab.show(); + } + else { + mBinding.venditaMainFab.hide(); + } + }; + RunnableArgs onGroupSelectionChanged = dto -> { List selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java index 709d8e18..2d50d738 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java @@ -8,6 +8,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.TextView; @@ -24,6 +25,7 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter mDataset; private RunnableArgs mOnGroupSelected; + private RunnableArgs mOnSingleSelectionChanged; private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000); private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000); @@ -41,10 +43,11 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter myDataset, RunnableArgs onGroupSelected) { + public MainListVenditaAdapter(Context context, List myDataset, RunnableArgs onGroupSelected, RunnableArgs onSingleSelectionChanged) { mContext = context; mDataset = myDataset; mOnGroupSelected = onGroupSelected; + mOnSingleSelectionChanged = onSingleSelectionChanged; } public void updateItems(List updatedDataset) { @@ -108,39 +111,44 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter { + ordine.checkBox = checkBox.isChecked(); + mOnSingleSelectionChanged.run(ordine); + }); + + ordine.checkBoxCallback.add(checkBox::setChecked); - groupModelView.setOnClickListener(view -> { + ordineView.setOnClickListener(view -> { checkBox.toggle(); - ordine.checkBox = checkBox.isChecked(); - mOnGroupSelected.run(mDataset.get(finalPosition)); -// mCheckBoxCallback.onToggle(checkBox.isChecked()); + //ordine.checkBox = checkBox.isChecked(); + //mOnGroupSelected.run(mDataset.get(finalPosition)); }); - TextView testataOrdTextView = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_testata_ord); + TextView testataOrdTextView = ordineView.findViewById(R.id.vendita_main_list_group_item_container_testata_ord); String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getData(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); testataOrdTextView.setText(Html.fromHtml(testataOrdString)); - TextView testataDataConsTextView = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_testata_data_cons); + TextView testataDataConsTextView = ordineView.findViewById(R.id.vendita_main_list_group_item_container_testata_data_cons); String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); testataDataConsTextView.setText(Html.fromHtml(testataDataConsString)); - LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord); + LinearLayout clientLinearLayout = ordineView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord); List subGroupClienti = ordine.clienti; clientLinearLayout.removeAllViews(); @@ -172,7 +180,7 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter clienti; public boolean checkBox; @@ -158,6 +160,15 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable, return this; } + public String getCodAnagClie() { + return codAnagClie; + } + + public Ordine setCodAnagClie(String codAnagClie) { + this.codAnagClie = codAnagClie; + return this; + } + public List getClienti() { return clienti; }