diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 3d6e3c4b..0c0c3383 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -1,17 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index 59988780..d8f96b71 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -15,6 +15,8 @@ import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazi
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoModule;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingComponent;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingModule;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.MainAccettazioneBollaElencoComponent;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.MainAccettazioneBollaElencoModule;
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent;
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniModule;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoComponent;
@@ -177,7 +179,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
DialogChooseArtsFromMtbAartListModule.class,
MainSettingsModule.class,
DialogInfoSituazioneArticoloModule.class,
- DialogSelectArtToOrderModule.class
+ DialogSelectArtToOrderModule.class,
+ MainAccettazioneBollaElencoModule.class
})
public interface MainApplicationComponent {
@@ -195,7 +198,7 @@ public interface MainApplicationComponent {
MainFragmentComponent.Factory mainFragmentComponent();
- MainAccettazioneOrdiniElencoComponent.Factory mainAccettazioneComponent();
+ MainAccettazioneOrdiniElencoComponent.Factory mainAccettazioneOrdiniComponent();
ListaBancaliComponent.Factory listaBancaliComponent();
@@ -299,6 +302,8 @@ public interface MainApplicationComponent {
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
+ MainAccettazioneBollaElencoComponent.Factory mainAccettazioneBollaElencoComponent();
+
void inject(MainApplication mainApplication);
void inject(AppContext mainApplication);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
index 45a137cd..db6c3a92 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.class_router.configs;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.MainAccettazioneBollaElencoFragment;
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
@@ -40,6 +41,14 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setDrawerIcon(R.drawable.ic_black_download)
.setFragmentFactory(MainAccettazioneOrdiniElencoFragment::newInstance))
+ .addItem(new MenuItem()
+ .setID(R.id.nav_accettazione_bolle)
+ .setCodMenu("MG065")
+ .setTitleText(R.string.accettazione_title_fragment)
+ .setTitleIcon(R.drawable.ic_dashboard_accettazione)
+ .setDrawerIcon(R.drawable.ic_black_download)
+ .setFragmentFactory(MainAccettazioneBollaElencoFragment::newInstance))
+
.addItem(new MenuItem()
.setID(R.id.nav_resi_fornitore)
.setCodMenu("MG045")
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
index b1a9cac7..c7d8fdd5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
@@ -11,7 +11,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
-import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -34,6 +33,7 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneOrdiniBinding;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui.MainListAccettazioneOrdiniElencoAdapter;
@@ -54,7 +54,7 @@ public class MainAccettazioneOrdiniElencoFragment extends BaseFragment implement
private ElevatedToolbar mToolbar;
private String mTextFilter;
- private FragmentMainAccettazioneBinding mBinding;
+ private FragmentMainAccettazioneOrdiniBinding mBinding;
private final ObservableArrayList mOrdiniInevasiMutableData = new ObservableArrayList<>();
@@ -93,10 +93,10 @@ public class MainAccettazioneOrdiniElencoFragment extends BaseFragment implement
if (savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
- mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
+ mBinding = FragmentMainAccettazioneOrdiniBinding.inflate(inflater, container, false);
MainApplication.appComponent
- .mainAccettazioneComponent()
+ .mainAccettazioneOrdiniComponent()
.create()
.inject(this);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
index 1b904529..6080c7f7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
@@ -51,15 +51,16 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
+import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RecoverMtbColtDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.AccettazionePickingFiltroOrdineViewModel;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterCodArtLayoutView;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterPosizioneLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.RecoverMtbColtDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui.AccettazioneOrdiniPickingListAdapter;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui.AccettazioneOrdiniPickingListModel;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
@@ -116,6 +117,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
mOrders = DataCache.retrieveItem(getIntent().getStringExtra("keyOrders"));
mSitArts = DataCache.retrieveItem(getIntent().getStringExtra("keySitArts"));
+
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
mBindings.setLifecycleOwner(this);
mBindings.setAccettazioneView(this);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java
new file mode 100644
index 00000000..cacb5dc7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface MainAccettazioneBollaElencoComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+
+ MainAccettazioneBollaElencoComponent create();
+ }
+
+ void inject(MainAccettazioneBollaElencoFragment mainAccettazioneBollaElencoFragment);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java
new file mode 100644
index 00000000..3f1cc7a2
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoFragment.java
@@ -0,0 +1,219 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.databinding.ObservableArrayList;
+
+import com.annimon.stream.Stream;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.data_cache.DataCache;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.core.expansion.BaseFragment;
+import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
+import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaBinding;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui.MainAccettazioneBolleElencoAdapter;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui.MainAccettazioneBolleElencoListModel;
+import it.integry.integrywmsnative.ui.ElevatedToolbar;
+
+public class MainAccettazioneBollaElencoFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, MainAccettazioneBollaElencoViewModel.Listener {
+
+
+ @Inject
+ MainAccettazioneBollaElencoViewModel mViewModel;
+
+
+ private final ObservableArrayList mBolleInevaseMutableData = new ObservableArrayList<>();
+ private FragmentMainAccettazioneBollaBinding mBinding;
+ private ElevatedToolbar mToolbar;
+ private AppCompatTextView mAppBarTitle;
+
+ public BindableBoolean fabVisible = new BindableBoolean(false);
+
+ private String mTextFilter;
+
+
+ private final List mOnPreDestroyList = new ArrayList<>();
+
+
+ public MainAccettazioneBollaElencoFragment() {
+ }
+
+ public static MainAccettazioneBollaElencoFragment newInstance() {
+ return new MainAccettazioneBollaElencoFragment();
+ }
+
+
+ @Override
+ public void onCreateActionBar(AppCompatTextView titleText, Context context) {
+ mAppBarTitle = titleText;
+ mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ onLoadingEnded();
+ outState.putString("mToolbar", DataCache.addItem(mToolbar));
+
+ super.onSaveInstanceState(outState);
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ setRetainInstance(true);
+
+ if (savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
+ mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
+
+ mBinding = FragmentMainAccettazioneBollaBinding.inflate(inflater, container, false);
+
+ MainApplication.appComponent
+ .mainAccettazioneBollaElencoComponent()
+ .create()
+ .inject(this);
+
+ mViewModel.setListener(this);
+
+ mBinding.setLifecycleOwner(this);
+ mBinding.setView(this);
+
+ this.initRecyclerView();
+
+ mToolbar.setRecyclerView(mBinding.accettazioneMainList);
+
+ return mBinding.getRoot();
+ }
+
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ this.fabVisible.set(false);
+ mViewModel.init();
+ }
+
+ @Override
+ public void onDestroy() {
+ for (Runnable onPreDestroy : mOnPreDestroyList) {
+ onPreDestroy.run();
+ }
+ super.onDestroy();
+ }
+
+ private void initRecyclerView() {
+ this.mViewModel.getBolleList().observe(getViewLifecycleOwner(), x -> {
+ this.refreshList();
+ });
+
+
+ MainAccettazioneBolleElencoAdapter adapter = new MainAccettazioneBolleElencoAdapter(getActivity(), mBolleInevaseMutableData)
+ .setOnGroupItemClicked(x -> {
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
+ .forEach(y -> y.getSelectedObservable().set(false));
+
+ boolean allSelected = Stream.of(mBolleInevaseMutableData)
+ .filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
+ .allMatch(y -> y.getSelectedObservable().get());
+
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
+ .forEach(y -> y.getSelectedObservable().set(!allSelected));
+ })
+ .setOnItemChecked(x -> {
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
+ .forEach(y -> y.getSelectedObservable().set(false));
+
+ fabVisible.set(Stream.of(mBolleInevaseMutableData)
+ .anyMatch(y -> y.getSelectedObservable().get()));
+ });
+
+ adapter.setEmptyView(this.mBinding.bolleAccettazioneEmptyView);
+
+ this.mBinding.accettazioneMainList.setAdapter(adapter);
+
+ if (mToolbar != null)
+ mToolbar.setRecyclerView(this.mBinding.accettazioneMainList);
+ }
+
+
+ private void refreshList() {
+ List tmpList = mViewModel.getBolleList().getValue();
+
+ //TODO: Filter here
+
+ this.mBolleInevaseMutableData.clear();
+ this.mBolleInevaseMutableData.addAll(convertDataModelToListModel(tmpList));
+ }
+
+ @Override
+ public void setScrollToolbar(ElevatedToolbar toolbar) {
+ mToolbar = toolbar;
+ }
+
+
+ @Override
+ public void addOnPreDestroy(Runnable onPreDestroy) {
+ this.mOnPreDestroyList.add(onPreDestroy);
+ }
+
+
+
+
+
+ private List convertDataModelToListModel(List dataList) {
+
+ return Stream.of(dataList)
+ .sortBy(x -> x.getRagSoc() + UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
+ .map(x -> {
+ MainAccettazioneBolleElencoListModel listModel = new MainAccettazioneBolleElencoListModel();
+
+ listModel.setOriginalModel(x);
+ listModel.setGroupTitle(x.getRagSoc());
+ listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumDoc(), UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
+
+ listModel.setSubDescription(x.getListino() + " - " + x.getDescrizioneListino());
+ listModel.setRightDescription(x.getCodAnag());
+ listModel.setRightSubDescription(x.getCodJcom());
+
+ return listModel;
+ })
+ .toList();
+ }
+
+
+ public void dispatchBolle() {
+ List selectedOrders = Stream.of(this.mBolleInevaseMutableData)
+ .filter(x -> x.getSelectedObservable().get())
+ .map(MainAccettazioneBolleElencoListModel::getOriginalModel)
+ .toList();
+
+// this.mViewModel.loadPicking(selectedOrders, this.mAppliedFilterViewModel.getSelectedMtbGrup());
+ }
+
+ @Override
+ public void onBolleDispatched(List orders, List sitArts) {
+
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java
new file mode 100644
index 00000000..f68f7cd2
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoModule.java
@@ -0,0 +1,21 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.BolleAccettazioneRESTConsumer;
+
+@Module(subcomponents = {MainAccettazioneBollaElencoComponent.class})
+public class MainAccettazioneBollaElencoModule {
+
+
+ @Provides
+ BolleAccettazioneRESTConsumer providesBolleAccettazioneRESTConsumer() {
+ return new BolleAccettazioneRESTConsumer();
+ }
+
+
+ @Provides
+ MainAccettazioneBollaElencoViewModel providesMainAccettazioneBollaViewModel(BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer) {
+ return new MainAccettazioneBollaElencoViewModel(bolleAccettazioneRESTConsumer);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java
new file mode 100644
index 00000000..676cf885
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/MainAccettazioneBollaElencoViewModel.java
@@ -0,0 +1,66 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco;
+
+import androidx.lifecycle.MutableLiveData;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.BolleAccettazioneRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+
+public class MainAccettazioneBollaElencoViewModel {
+
+ private final BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer;
+
+ private final MutableLiveData> bolleList = new MutableLiveData<>();
+ private Listener listener;
+
+ @Inject
+ public MainAccettazioneBollaElencoViewModel(BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer) {
+ this.bolleAccettazioneRESTConsumer = bolleAccettazioneRESTConsumer;
+ }
+
+ public void init() {
+ this.sendOnLoadingStarted();
+
+ bolleAccettazioneRESTConsumer.retrieveBolleDaAccettare(bolleList -> {
+ this.bolleList.postValue(bolleList);
+
+ this.sendOnLoadingEnded();
+
+ }, this::sendError);
+ }
+
+
+ public MutableLiveData> getBolleList() {
+ return bolleList;
+ }
+
+ public MainAccettazioneBollaElencoViewModel setListener(MainAccettazioneBollaElencoViewModel.Listener listener) {
+ this.listener = listener;
+ return this;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.listener != null) listener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.listener != null) listener.onLoadingEnded();
+ }
+
+ private void sendError(Exception ex) {
+ if (this.listener != null) listener.onError(ex);
+ }
+
+ public interface Listener extends ILoadingListener {
+ void onError(Exception ex);
+
+ void onBolleDispatched(List orders, List sitArts);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java
new file mode 100644
index 00000000..1c2fa571
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java
@@ -0,0 +1,37 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest;
+
+import java.util.List;
+
+import javax.inject.Singleton;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class BolleAccettazioneRESTConsumer extends _BaseRESTConsumer {
+
+
+ public void retrieveBolleDaAccettare(RunnableArgs> onComplete, RunnableArgs onFailed) {
+ BolleAccettazioneRESTConsumerService service = RESTBuilder.getService(BolleAccettazioneRESTConsumerService.class);
+ service.retrieveElencoBolle()
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "retrieveBolleDaAccettare", data -> onComplete.run(data.getBolleDaAccettare()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java
new file mode 100644
index 00000000..6b6f1ff3
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java
@@ -0,0 +1,13 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO;
+import retrofit2.Call;
+import retrofit2.http.GET;
+
+public interface BolleAccettazioneRESTConsumerService {
+
+ @GET("wms/accettazione-bolla/retrieveElencoBolle")
+ Call> retrieveElencoBolle();
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java
new file mode 100644
index 00000000..a2978ac0
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java
@@ -0,0 +1,12 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto;
+
+import java.util.List;
+
+public class RetrieveElencoBolleAccettazioneResponseDTO {
+
+ private List bolleDaAccettare;
+
+ public List getBolleDaAccettare() {
+ return bolleDaAccettare;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java
new file mode 100644
index 00000000..e17128da
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java
@@ -0,0 +1,51 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto;
+
+import java.util.Date;
+
+public class TestataBollaAccettazioneDTO {
+ private String codAnag;
+ private String ragSoc;
+ private String codDtip;
+ private Date dataDoc;
+ private String serDoc;
+ private int numDoc;
+ private String listino;
+ private String descrizioneListino;
+ private String codJcom;
+
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public String getRagSoc() {
+ return ragSoc;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public Date getDataDoc() {
+ return dataDoc;
+ }
+
+ public String getSerDoc() {
+ return serDoc;
+ }
+
+ public int getNumDoc() {
+ return numDoc;
+ }
+
+ public String getListino() {
+ return listino;
+ }
+
+ public String getDescrizioneListino() {
+ return descrizioneListino;
+ }
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java
new file mode 100644
index 00000000..9632410d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java
@@ -0,0 +1,143 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui;
+
+import android.content.Context;
+import android.text.Html;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.ObservableArrayList;
+import androidx.recyclerview.widget.RecyclerView;
+
+import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaListGroupModelBinding;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaListModelBinding;
+
+public class MainAccettazioneBolleElencoAdapter extends ExtendedSectionedRecyclerView {
+
+ private final Context mContext;
+ private RunnableArgs mOnGroupItemClicked;
+ private RunnableArgs mOnItemChecked;
+
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
+
+ FragmentMainAccettazioneBollaListModelBinding mBinding;
+
+ SubheaderHolder(FragmentMainAccettazioneBollaListModelBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ FragmentMainAccettazioneBollaListGroupModelBinding mBinding;
+
+ SingleItemViewHolder(FragmentMainAccettazioneBollaListGroupModelBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+ public MainAccettazioneBolleElencoAdapter(Context context, ObservableArrayList mutableDataSet) {
+ super(mutableDataSet);
+ mContext = context;
+ }
+
+ public MainAccettazioneBolleElencoAdapter setOnGroupItemClicked(RunnableArgs mOnGroupItemClicked) {
+ this.mOnGroupItemClicked = mOnGroupItemClicked;
+ return this;
+ }
+
+ public MainAccettazioneBolleElencoAdapter setOnItemChecked(RunnableArgs mOnItemChecked) {
+ this.mOnItemChecked = mOnItemChecked;
+ return this;
+ }
+
+ @Override
+ public MainAccettazioneBolleElencoAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ FragmentMainAccettazioneBollaListModelBinding binding = FragmentMainAccettazioneBollaListModelBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new MainAccettazioneBolleElencoAdapter.SubheaderHolder(binding);
+ }
+
+ @Override
+ public MainAccettazioneBolleElencoAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ FragmentMainAccettazioneBollaListGroupModelBinding binding = FragmentMainAccettazioneBollaListGroupModelBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new MainAccettazioneBolleElencoAdapter.SingleItemViewHolder(binding);
+ }
+
+ @Override
+ public void onBindSubheaderViewHolder(MainAccettazioneBolleElencoAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
+ MainAccettazioneBolleElencoListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
+
+ subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
+ subheaderHolder.mBinding.groupTitle.setText(Html.fromHtml(pickingObjectDTO.getGroupTitle()));
+
+ subheaderHolder.mBinding.getRoot().setOnClickListener(new OnSingleClickListener() {
+ @Override
+ public void onSingleClick(View v) {
+ if(mOnGroupItemClicked != null) mOnGroupItemClicked.run(pickingObjectDTO.getGroupTitle());
+ }
+ });
+ }
+
+ @Override
+ public void onBindItemViewHolder(final MainAccettazioneBolleElencoAdapter.SingleItemViewHolder holder, final int position) {
+ MainAccettazioneBolleElencoListModel listModel = this.mDataset.get(position);
+
+ listModel.getSelectedObservable().resetOnPropertyChangedCallback();
+
+ if(listModel.getEtichettaColor() != null)
+ holder.mBinding.emptyView.setBackgroundColor(listModel.getEtichettaColor());
+ else holder.mBinding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), android.R.color.transparent, null));
+
+ if(!UtilityString.isNullOrEmpty(listModel.getDescription())) {
+ holder.mBinding.descrizione.setText(Html.fromHtml(listModel.getDescription()));
+ holder.mBinding.descrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.descrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getSubDescription())) {
+ holder.mBinding.subDescrizione.setText(Html.fromHtml(listModel.getSubDescription()));
+ holder.mBinding.subDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.subDescrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getRightDescription())) {
+ holder.mBinding.rightDescrizione.setText(Html.fromHtml(listModel.getRightDescription()));
+ holder.mBinding.rightDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.rightDescrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getRightSubDescription())) {
+ holder.mBinding.rightSubDescrizione.setText(Html.fromHtml(listModel.getRightSubDescription()));
+ holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE);
+
+ holder.mBinding.setSelected(listModel.getSelectedObservable());
+ holder.mBinding.executePendingBindings();
+ holder.mBinding.checkbox.jumpDrawablesToCurrentState();
+
+ listModel.getSelectedObservable().addOnPropertyChangedCallback(() -> {
+ if(this.mOnItemChecked != null) this.mOnItemChecked.run(listModel);
+ });
+
+ holder.mBinding.getRoot().setOnClickListener(v -> {
+ listModel.getSelectedObservable().set(!listModel.getSelectedObservable().get());
+ });
+ }
+ @Override
+ public boolean onPlaceSubheaderBetweenItems(int position) {
+
+ if (getItemSize() == 1) return true;
+ else if (getItemSize() > 1) {
+ MainAccettazioneBolleElencoListModel compare1 = this.mDataset.get(position);
+ MainAccettazioneBolleElencoListModel compare2 = this.mDataset.get(position + 1);
+
+ return !UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle());
+ }
+
+ return true;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java
new file mode 100644
index 00000000..d0974618
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazone_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java
@@ -0,0 +1,99 @@
+package it.integry.integrywmsnative.gest.accettazone_bolla_elenco.ui;
+
+import androidx.annotation.ColorInt;
+
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.gest.accettazone_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+
+public class MainAccettazioneBolleElencoListModel implements Cloneable {
+ private String groupTitle;
+
+ private String description;
+ private String subDescription;
+ private String rightDescription;
+ private String rightSubDescription;
+
+ private @ColorInt Integer etichettaColor;
+
+ private boolean hidden;
+ private BindableBoolean selected = new BindableBoolean();
+
+
+ private TestataBollaAccettazioneDTO originalModel;
+
+
+ public String getGroupTitle() {
+ return groupTitle;
+ }
+
+ public MainAccettazioneBolleElencoListModel setGroupTitle(String groupTitle) {
+ this.groupTitle = groupTitle;
+ return this;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public MainAccettazioneBolleElencoListModel setDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ public String getSubDescription() {
+ return subDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setSubDescription(String subDescription) {
+ this.subDescription = subDescription;
+ return this;
+ }
+
+ public String getRightDescription() {
+ return rightDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setRightDescription(String rightDescription) {
+ this.rightDescription = rightDescription;
+ return this;
+ }
+
+ public String getRightSubDescription() {
+ return rightSubDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setRightSubDescription(String rightSubDescription) {
+ this.rightSubDescription = rightSubDescription;
+ return this;
+ }
+
+ public @ColorInt Integer getEtichettaColor() {
+ return etichettaColor;
+ }
+
+ public MainAccettazioneBolleElencoListModel setEtichettaColor(@ColorInt Integer etichettaColor) {
+ this.etichettaColor = etichettaColor;
+ return this;
+ }
+
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ public MainAccettazioneBolleElencoListModel setHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
+
+ public BindableBoolean getSelectedObservable() {
+ return selected;
+ }
+
+ public TestataBollaAccettazioneDTO getOriginalModel() {
+ return originalModel;
+ }
+
+ public void setOriginalModel(TestataBollaAccettazioneDTO originalModel) {
+ this.originalModel = originalModel;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
index d5979ce7..2ffb1c47 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
@@ -291,7 +291,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
v -> initBottomSheetDialogFilter(filterChipDTO));
switch (filterChipDTO.getID()) {
- case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID:
+ case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentDepositoPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -311,9 +311,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDepositoPredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.VIAGGIO_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.VIAGGIO_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentIdViaggioPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -333,9 +332,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentIdViaggioPredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.NUM_ORD_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.NUM_ORD_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -355,9 +353,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentNumOrdsPredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.CLIENTE_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.CLIENTE_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentClientePredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -377,9 +374,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentClientePredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.VETTORE_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.VETTORE_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentVettorePredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -399,9 +395,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentVettorePredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.AUTOMEZZO_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.AUTOMEZZO_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentAutomezzoPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -421,9 +416,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentAutomezzoPredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.PAESE_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.PAESE_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentPaesePredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -443,9 +437,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentPaesePredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.AGENTE_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.AGENTE_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentAgentePredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -465,9 +458,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentAgentePredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.TERM_CONS_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.TERM_CONS_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentTermConsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -487,9 +479,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentTermConsPredicate().set(null));
- break;
-
- case OrdiniUscitaElencoBindings.DATA_CONS_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.DATA_CONS_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentDataConsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -512,9 +503,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
mAppliedFilterViewModel.setDataConsegnaFilter(null);
mAppliedFilterViewModel.getCurrentDataConsPredicate().set(null);
});
- break;
-
- case OrdiniUscitaElencoBindings.GRUPPO_MERC_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.GRUPPO_MERC_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentGruppoMercPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -537,9 +527,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
mAppliedFilterViewModel.setGruppoMercFilter(null);
mAppliedFilterViewModel.getCurrentGruppoMercPredicate().set(null);
});
- break;
-
- case OrdiniUscitaElencoBindings.COMMESSA_FILTER_ID:
+ }
+ case OrdiniUscitaElencoBindings.COMMESSA_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentCommessaPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -562,8 +551,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
mAppliedFilterViewModel.setCommessaFilter(null);
mAppliedFilterViewModel.getCurrentCommessaPredicate().set(null);
});
- break;
-
+ }
}
this.mBindings.filterChipsGroup.addView(filterChipView);
@@ -596,143 +584,122 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
.getFilterLayoutView();
switch (filterChipDTO.getID()) {
- case OrdiniUscitaElencoBindings.COMMESSA_FILTER_ID:
- ((FilterCommessaLayoutView) filterLayoutView)
- .setAllCommesse(mAppliedFilterViewModel.getAllCommesse(this.jtbComtCache))
- .setAvailableCommesse(mAppliedFilterViewModel.getAvailableCommesse(this.jtbComtCache))
- .setOnFilterApplied(mAppliedFilterViewModel::setCommessaFilter)
- .setPreSelectedCommesse(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentCommessaPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentCommessaPredicate().get())
- .map(x -> Stream.of(jtbComtCache).filter(y -> x.getCodJcom().equalsIgnoreCase(y.getCodJcom())).findFirst().get())
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID:
- ((FilterDepositoLayoutView) filterLayoutView)
- .setAllCodMdeps(mAppliedFilterViewModel.getAllCodMdeps(mtbDepoCache))
- .setAvailableCodMdeps(mAppliedFilterViewModel.getAvailableCodMdeps(mtbDepoCache))
- .setOnFilterApplied(mAppliedFilterViewModel::setDepositoFilter)
- .setPreSelectedCodMdeps(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentDepositoPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentDepositoPredicate().get())
- .map(x -> Stream.of(mtbDepoCache).filter(y -> x.getCodMdep().equalsIgnoreCase(y.getCodMdep())).findFirst().get())
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.VIAGGIO_FILTER_ID:
- ((FilterViaggioLayoutView) filterLayoutView)
- .setAllIDViaggio(mAppliedFilterViewModel.getAllIDViaggio())
- .setAvailableIDViaggio(mAppliedFilterViewModel.getAvailableIDViaggio())
- .setOnFilterApplied(mAppliedFilterViewModel::setIDViaggioFilter)
- .setPreSelectedIDViaggio(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentIdViaggioPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentIdViaggioPredicate().get())
- .map(OrdineUscitaInevasoDTO::getIdViaggio)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.NUM_ORD_FILTER_ID:
- ((FilterNumeroOrdineLayoutView) filterLayoutView)
- .setAllNumOrds(mAppliedFilterViewModel.getAllNumOrds())
- .setAvailableNumOrds(mAppliedFilterViewModel.getAvailableNumOrds())
- .setOnFilterApplied(mAppliedFilterViewModel::setNumOrdFilter)
- .setPreSelectedNumOrds(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentNumOrdsPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentNumOrdsPredicate().get())
- .map(OrdineUscitaInevasoDTO::getNumOrd)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.CLIENTE_FILTER_ID:
- ((FilterClienteLayoutView) filterLayoutView)
- .setAllClienti(mAppliedFilterViewModel.getAllClienti())
- .setAvailableClienti(mAppliedFilterViewModel.getAvailableClienti())
- .setOnFilterApplied(mAppliedFilterViewModel::setClienteFilter)
- .setPreSelectedClienti(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentClientePredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentClientePredicate().get())
- .map(OrdineUscitaInevasoDTO::getRagSocOrd)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.VETTORE_FILTER_ID:
- ((FilterVettoreLayoutView) filterLayoutView)
- .setAllVettori(mAppliedFilterViewModel.getAllVettori())
- .setAvailableVettori(mAppliedFilterViewModel.getAvailableVettori())
- .setOnFilterApplied(mAppliedFilterViewModel::setVettoreFilter)
- .setPreSelectedVettori(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentVettorePredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentVettorePredicate().get())
- .map(x -> x.getCodVvet() + (!UtilityString.isNullOrEmpty(x.getCodVvet()) ? " - " + x.getDescrizioneVettore() : ""))
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.AUTOMEZZO_FILTER_ID:
- ((FilterAutomezzoLayoutView) filterLayoutView)
- .setAllAutomezzi(mAppliedFilterViewModel.getAllAutomezzi())
- .setAvailableAutomezzi(mAppliedFilterViewModel.getAvailableAutomezzi())
- .setOnFilterApplied(mAppliedFilterViewModel::setAutomezzoFilter)
- .setPreSelectedAutomezzi(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentAutomezzoPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentAutomezzoPredicate().get())
- .map(OrdineUscitaInevasoDTO::getDescrizioneAuto)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.PAESE_FILTER_ID:
- ((FilterPaeseLayoutView) filterLayoutView)
- .setAllPaesi(mAppliedFilterViewModel.getAllPaesi())
- .setAvailablePaesi(mAppliedFilterViewModel.getAvailablePaesi())
- .setOnFilterApplied(mAppliedFilterViewModel::setPaeseFilter)
- .setPreSelectedPaesi(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentPaesePredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentPaesePredicate().get())
- .map(OrdineUscitaInevasoDTO::getCitta)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.AGENTE_FILTER_ID:
- ((FilterAgenteLayoutView) filterLayoutView)
- .setAllAgenti(mAppliedFilterViewModel.getAllAgenti())
- .setAvailableAgenti(mAppliedFilterViewModel.getAvailableAgenti())
- .setOnFilterApplied(mAppliedFilterViewModel::setAgenteFilter)
- .setPreSelectedAgenti(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentAgentePredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentAgentePredicate().get())
- .map(OrdineUscitaInevasoDTO::getCitta)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.TERM_CONS_FILTER_ID:
- ((FilterTermConsLayoutView) filterLayoutView)
- .setAllTermCons(mAppliedFilterViewModel.getAllTermCons())
- .setAvailableTermCons(mAppliedFilterViewModel.getAvailableTermCons())
- .setOnFilterApplied(mAppliedFilterViewModel::setTerminiConsegnaFilter)
- .setPreSelectedTermCons(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentTermConsPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentTermConsPredicate().get())
- .map(OrdineUscitaInevasoDTO::getCitta)
- .toList());
- break;
-
- case OrdiniUscitaElencoBindings.GRUPPO_MERC_FILTER_ID:
- ((FilterGruppoMercLayoutView) filterLayoutView)
- .setAllGroupMerc(mAppliedFilterViewModel.getAllGruppoMerc(mtbGrupCache))
- .setAvailableGroupMerc(mAppliedFilterViewModel.getAvailableGruppoMerc(mtbGrupCache))
- .setOnFilterApplied(mAppliedFilterViewModel::setGruppoMercFilter)
- .setPreSelectedGroupMerc(mAppliedFilterViewModel.getSelectedMtbGrup());
- break;
+ case OrdiniUscitaElencoBindings.COMMESSA_FILTER_ID ->
+ ((FilterCommessaLayoutView) filterLayoutView)
+ .setAllCommesse(mAppliedFilterViewModel.getAllCommesse(this.jtbComtCache))
+ .setAvailableCommesse(mAppliedFilterViewModel.getAvailableCommesse(this.jtbComtCache))
+ .setOnFilterApplied(mAppliedFilterViewModel::setCommessaFilter)
+ .setPreSelectedCommesse(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentCommessaPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentCommessaPredicate().get())
+ .map(x -> Stream.of(jtbComtCache).filter(y -> x.getCodJcom().equalsIgnoreCase(y.getCodJcom())).findFirst().get())
+ .toList());
+ case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID ->
+ ((FilterDepositoLayoutView) filterLayoutView)
+ .setAllCodMdeps(mAppliedFilterViewModel.getAllCodMdeps(mtbDepoCache))
+ .setAvailableCodMdeps(mAppliedFilterViewModel.getAvailableCodMdeps(mtbDepoCache))
+ .setOnFilterApplied(mAppliedFilterViewModel::setDepositoFilter)
+ .setPreSelectedCodMdeps(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentDepositoPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentDepositoPredicate().get())
+ .map(x -> Stream.of(mtbDepoCache).filter(y -> x.getCodMdep().equalsIgnoreCase(y.getCodMdep())).findFirst().get())
+ .toList());
+ case OrdiniUscitaElencoBindings.VIAGGIO_FILTER_ID ->
+ ((FilterViaggioLayoutView) filterLayoutView)
+ .setAllIDViaggio(mAppliedFilterViewModel.getAllIDViaggio())
+ .setAvailableIDViaggio(mAppliedFilterViewModel.getAvailableIDViaggio())
+ .setOnFilterApplied(mAppliedFilterViewModel::setIDViaggioFilter)
+ .setPreSelectedIDViaggio(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentIdViaggioPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentIdViaggioPredicate().get())
+ .map(OrdineUscitaInevasoDTO::getIdViaggio)
+ .toList());
+ case OrdiniUscitaElencoBindings.NUM_ORD_FILTER_ID ->
+ ((FilterNumeroOrdineLayoutView) filterLayoutView)
+ .setAllNumOrds(mAppliedFilterViewModel.getAllNumOrds())
+ .setAvailableNumOrds(mAppliedFilterViewModel.getAvailableNumOrds())
+ .setOnFilterApplied(mAppliedFilterViewModel::setNumOrdFilter)
+ .setPreSelectedNumOrds(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentNumOrdsPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentNumOrdsPredicate().get())
+ .map(OrdineUscitaInevasoDTO::getNumOrd)
+ .toList());
+ case OrdiniUscitaElencoBindings.CLIENTE_FILTER_ID ->
+ ((FilterClienteLayoutView) filterLayoutView)
+ .setAllClienti(mAppliedFilterViewModel.getAllClienti())
+ .setAvailableClienti(mAppliedFilterViewModel.getAvailableClienti())
+ .setOnFilterApplied(mAppliedFilterViewModel::setClienteFilter)
+ .setPreSelectedClienti(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentClientePredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentClientePredicate().get())
+ .map(OrdineUscitaInevasoDTO::getRagSocOrd)
+ .toList());
+ case OrdiniUscitaElencoBindings.VETTORE_FILTER_ID ->
+ ((FilterVettoreLayoutView) filterLayoutView)
+ .setAllVettori(mAppliedFilterViewModel.getAllVettori())
+ .setAvailableVettori(mAppliedFilterViewModel.getAvailableVettori())
+ .setOnFilterApplied(mAppliedFilterViewModel::setVettoreFilter)
+ .setPreSelectedVettori(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentVettorePredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentVettorePredicate().get())
+ .map(x -> x.getCodVvet() + (!UtilityString.isNullOrEmpty(x.getCodVvet()) ? " - " + x.getDescrizioneVettore() : ""))
+ .toList());
+ case OrdiniUscitaElencoBindings.AUTOMEZZO_FILTER_ID ->
+ ((FilterAutomezzoLayoutView) filterLayoutView)
+ .setAllAutomezzi(mAppliedFilterViewModel.getAllAutomezzi())
+ .setAvailableAutomezzi(mAppliedFilterViewModel.getAvailableAutomezzi())
+ .setOnFilterApplied(mAppliedFilterViewModel::setAutomezzoFilter)
+ .setPreSelectedAutomezzi(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentAutomezzoPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentAutomezzoPredicate().get())
+ .map(OrdineUscitaInevasoDTO::getDescrizioneAuto)
+ .toList());
+ case OrdiniUscitaElencoBindings.PAESE_FILTER_ID ->
+ ((FilterPaeseLayoutView) filterLayoutView)
+ .setAllPaesi(mAppliedFilterViewModel.getAllPaesi())
+ .setAvailablePaesi(mAppliedFilterViewModel.getAvailablePaesi())
+ .setOnFilterApplied(mAppliedFilterViewModel::setPaeseFilter)
+ .setPreSelectedPaesi(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentPaesePredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentPaesePredicate().get())
+ .map(OrdineUscitaInevasoDTO::getCitta)
+ .toList());
+ case OrdiniUscitaElencoBindings.AGENTE_FILTER_ID ->
+ ((FilterAgenteLayoutView) filterLayoutView)
+ .setAllAgenti(mAppliedFilterViewModel.getAllAgenti())
+ .setAvailableAgenti(mAppliedFilterViewModel.getAvailableAgenti())
+ .setOnFilterApplied(mAppliedFilterViewModel::setAgenteFilter)
+ .setPreSelectedAgenti(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentAgentePredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentAgentePredicate().get())
+ .map(OrdineUscitaInevasoDTO::getCitta)
+ .toList());
+ case OrdiniUscitaElencoBindings.TERM_CONS_FILTER_ID ->
+ ((FilterTermConsLayoutView) filterLayoutView)
+ .setAllTermCons(mAppliedFilterViewModel.getAllTermCons())
+ .setAvailableTermCons(mAppliedFilterViewModel.getAvailableTermCons())
+ .setOnFilterApplied(mAppliedFilterViewModel::setTerminiConsegnaFilter)
+ .setPreSelectedTermCons(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentTermConsPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentTermConsPredicate().get())
+ .map(OrdineUscitaInevasoDTO::getCitta)
+ .toList());
+ case OrdiniUscitaElencoBindings.GRUPPO_MERC_FILTER_ID ->
+ ((FilterGruppoMercLayoutView) filterLayoutView)
+ .setAllGroupMerc(mAppliedFilterViewModel.getAllGruppoMerc(mtbGrupCache))
+ .setAvailableGroupMerc(mAppliedFilterViewModel.getAvailableGruppoMerc(mtbGrupCache))
+ .setOnFilterApplied(mAppliedFilterViewModel::setGruppoMercFilter)
+ .setPreSelectedGroupMerc(mAppliedFilterViewModel.getSelectedMtbGrup());
}
if (!filterLayoutView.isAdded())
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java
index 512ab6f7..9ad20f1d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java
@@ -22,7 +22,7 @@ import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListModel
public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerView {
- private Context mContext;
+ private final Context mContext;
private RunnableArgs mOnGroupItemClicked;
private RunnableArgs mOnItemChecked;
@@ -141,17 +141,9 @@ public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerView
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_accettazione_bolla.xml b/app/src/main/res/layout/fragment_main_accettazione_bolla.xml
new file mode 100644
index 00000000..66fcb841
--- /dev/null
+++ b/app/src/main/res/layout/fragment_main_accettazione_bolla.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_accettazione_bolla__list_group_model.xml b/app/src/main/res/layout/fragment_main_accettazione_bolla__list_group_model.xml
new file mode 100644
index 00000000..2d522cb1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_main_accettazione_bolla__list_group_model.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_accettazione_bolla__list_model.xml b/app/src/main/res/layout/fragment_main_accettazione_bolla__list_model.xml
new file mode 100644
index 00000000..2ee259a8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_main_accettazione_bolla__list_model.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_main_accettazione.xml b/app/src/main/res/layout/fragment_main_accettazione_ordini.xml
similarity index 100%
rename from app/src/main/res/layout/fragment_main_accettazione.xml
rename to app/src/main/res/layout/fragment_main_accettazione_ordini.xml
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 042e1261..06069fad 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -260,6 +260,7 @@
Nessun articolo trovato
Nessuna UL trovata
+ Non sono state trovate bolle
Non sono stati trovati ordini
Non รจ stato selezionato alcun ordine
Sono ammesse solo UL di Acquisto o Lavorazione qui
diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml
index 4a63fe50..8d9c4314 100644
--- a/app/src/main/res/values/config.xml
+++ b/app/src/main/res/values/config.xml
@@ -13,6 +13,7 @@
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f99ef1b5..a11515b1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -267,6 +267,7 @@
No items found
No LU found
+ No documents found
No orders found
No one order is selected
Only Purchase or Production\'s LU are accepted here
diff --git a/build.gradle b/build.gradle
index 3043ed2c..3a1d4eca 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
buildscript {
ext {
kotlin_version = '1.8.0'
- agp_version = '8.0.2'
+ agp_version = '8.1.0'
}
repositories {
@@ -18,7 +18,7 @@ buildscript {
classpath 'com.google.firebase:perf-plugin:1.4.2'
// Add the Firebase Crashlytics Gradle plugin.
- classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
+ classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.7'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files