diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index dcee27f8..6cff7d29 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -14,12 +14,15 @@ import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.ImageButton; import butterknife.BindView; import butterknife.ButterKnife; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; +import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; @@ -35,6 +38,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @BindView(R.id.main_search) SearchView mSearchView; + @BindView(R.id.main_select_all) ImageButton mSelectAll; + @BindView(R.id.main_filter) ImageButton mFilterBtn; @BindView(R.id.nav_view) NavigationView mNavigationView; @@ -198,6 +203,22 @@ public class MainActivity extends AppCompatActivity if(fragment instanceof IRecyclerFragment) { ((IRecyclerFragment) fragment).setWaterfallToolbar(mWaterfallToolbar); } + + if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) { + mSelectAll.setVisibility(View.VISIBLE); + mSelectAll.setOnClickListener(v -> ((ISelectAllFragment)fragment).onSelectAll()); + } else { + mSelectAll.setVisibility(View.GONE); + mSelectAll.setOnClickListener(null); + } + + if(fragment instanceof IFilterableFragment) { + mFilterBtn.setVisibility(View.VISIBLE); + mFilterBtn.setOnClickListener(v -> ((IFilterableFragment)fragment).onFilterClick()); + } else { + mFilterBtn.setVisibility(View.GONE); + mFilterBtn.setOnClickListener(null); + } } private void changeContentFragment(Fragment fragment){ diff --git a/app/src/main/java/it/integry/integrywmsnative/core/interfaces/IFilterableFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/IFilterableFragment.java new file mode 100644 index 00000000..499017bd --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/IFilterableFragment.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.core.interfaces; + +public interface IFilterableFragment { + + void onFilterClick(); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ISelectAllFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ISelectAllFragment.java new file mode 100644 index 00000000..1f32fff7 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ISelectAllFragment.java @@ -0,0 +1,9 @@ +package it.integry.integrywmsnative.core.interfaces; + +public interface ISelectAllFragment { + + boolean isEnabled(); + + void onSelectAll(); + +} 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 54c5f602..335c1a23 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 @@ -7,7 +7,6 @@ import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; import android.text.Html; import android.text.SpannableString; import android.view.LayoutInflater; @@ -25,7 +24,9 @@ import butterknife.OnClick; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; +import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; @@ -40,7 +41,7 @@ import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInev import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; -public class MainVenditaFragment extends Fragment implements ITitledFragment, IRecyclerFragment { +public class MainVenditaFragment extends Fragment implements ITitledFragment, IRecyclerFragment, ISelectAllFragment, IFilterableFragment { private static WaterfallToolbar mWaterfallToolbar; @@ -296,5 +297,30 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR @Override public void setWaterfallToolbar(WaterfallToolbar waterfallToolbar) { mWaterfallToolbar = waterfallToolbar; + } + + @Override + public boolean isEnabled() { + return SettingsManager.iDB().isFlagMultiClienteOrdV(); + } + + @Override + public void onSelectAll() { + if(groupedOrdiniInevasi != null && groupedOrdiniInevasi.size() > 0) { + if(mHelper.getSelectedOrders(groupedOrdiniInevasi).size() > 0){ + mHelper.deselectAll(groupedOrdiniInevasi); + } else { + //Selezionare solo quelli attualmente a video + mHelper.selectAll(groupedOrdiniInevasi); + } + + } + } + + @Override + public void onFilterClick() { + + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java index c49a8ffa..61f1b981 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java @@ -197,6 +197,24 @@ public class VenditaHelper { + public void selectAll(List groupedOrdiniInevasi) { + toggleSelection(groupedOrdiniInevasi, true); + } + + public void deselectAll(List groupedOrdiniInevasi) { + toggleSelection(groupedOrdiniInevasi, false); + } + + public void toggleSelection(List groupedOrdiniInevasi, boolean value) { + for(int i = 0; i < groupedOrdiniInevasi.size(); i++){ + for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){ + groupedOrdiniInevasi.get(i).ordini.get(j).setCheckbox(value); + } + } + } + + + diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java new file mode 100644 index 00000000..2933c430 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.gest.vendita.dialogs; + +import android.app.AlertDialog; +import android.content.Context; + + +public class DialogVenditaFiltroAvanzato { + + private static Context currentContext; + + + public static AlertDialog makeBase(final Context context) { + currentContext = context; + + return null; + } +} diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 75f6ae10..0668384f 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -18,6 +18,7 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"> + + android:layout_gravity="end"/> + + + + diff --git a/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml b/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml new file mode 100644 index 00000000..5f663861 --- /dev/null +++ b/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 4bd43058..833295b4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -129,6 +129,9 @@ Filtro articoli applicato Rimuovi filtro + + Filtro avanzato + Fornitore Cod art / Descrizione Seleziona un fornitore prima diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 6be8f76c..79ecb987 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -4,6 +4,7 @@ @color/indigo_700 #387ef5 #3f3f51b5 + #757575 @color/green_500 @color/orange_700 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e094af9d..da8af156 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,6 +137,8 @@ Item filter applied Remove filter + Advanced filter + Supplier Item code / Description