Implementazione del DataCache per gestire lo spostamento dati da un'activity all'altra.

Iniziata implementazione del recover del collo di Vendita.
This commit is contained in:
2019-01-23 16:59:30 +01:00
parent d7915e187f
commit 38f7be5076
17 changed files with 593 additions and 367 deletions

View File

@@ -13,21 +13,17 @@ import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.fragment.app.FragmentTransaction;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@@ -207,8 +203,8 @@ public class MainActivity extends AppCompatActivity
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
}
if(fragment instanceof IRecyclerFragment) {
((IRecyclerFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
if(fragment instanceof IScrollableFragment) {
((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
}
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {

View File

@@ -8,12 +8,16 @@ import com.orhanobut.logger.Logger;
import io.fabric.sdk.android.Fabric;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.Stash;
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;
@@ -85,11 +89,19 @@ public class AppContext {
private void initRecoverColli() {
ColliDataRecover.init(mContext);
// if(ColliDataRecover.thereIsAnExistantSession()){
// MtbColt recoveredMtbColt = ColliDataRecover.getFirstSession();
//
//
// }
if(ColliDataRecover.thereIsAnExistantSession()){
Integer recoveredMtbColtID = ColliDataRecover.getFirstSessionID();
MtbColt recoveredMtbColt = ColliDataRecover.getSession(recoveredMtbColtID);
if(recoveredMtbColt != null && recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && !UtilityString.isNullOrEmpty(recoveredMtbColt.getFiltroOrdini())) {
ColliMagazzinoRESTConsumer.distribuisciCollo(recoveredMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE,
mtbColts -> {
ColliDataRecover.closeSession(recoveredMtbColtID);
},
ex -> UtilityExceptions.defaultException(mContext, ex));
}
}
}
}

View File

@@ -0,0 +1,43 @@
package it.integry.integrywmsnative.core.data_cache;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class DataCache {
private static List<DataCacheDTO> dataCacheList = new ArrayList<>();
public static String addItem(Object item) {
String uniqueID = UUID.randomUUID().toString();
DataCacheDTO dataCacheDTO = new DataCacheDTO()
.setItem(item)
.setUUID(uniqueID);
dataCacheList.add(dataCacheDTO);
return uniqueID;
}
public static <T>T retrieveItem(String uuid) {
List<DataCacheDTO> dataCacheTemp = Stream.of(dataCacheList)
.filter(x -> x.getUUID().equals(uuid)).toList();
Object foundDataCache = null;
if(dataCacheTemp != null && dataCacheTemp.size() > 0) {
foundDataCache = dataCacheTemp.get(0).getItem();
dataCacheList.remove(dataCacheTemp.get(0));
}
return (T)foundDataCache;
}
}

View File

@@ -0,0 +1,25 @@
package it.integry.integrywmsnative.core.data_cache;
public class DataCacheDTO {
private String UUID;
private Object item;
public String getUUID() {
return UUID;
}
public DataCacheDTO setUUID(String UUID) {
this.UUID = UUID;
return this;
}
public Object getItem() {
return item;
}
public DataCacheDTO setItem(Object item) {
this.item = item;
return this;
}
}

View File

@@ -2,9 +2,18 @@ package it.integry.integrywmsnative.core.data_recover;
import android.content.Context;
import com.google.android.gms.common.util.IOUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
@@ -19,6 +28,7 @@ public class ColliDataRecover {
private String serCollo;
private String dataCollo;
private String gestioneCollo;
private String filtro;
public int getNumCollo() {
return numCollo;
@@ -55,6 +65,15 @@ public class ColliDataRecover {
this.gestioneCollo = gestioneCollo;
return this;
}
public String getFiltro() {
return filtro;
}
public RecoverDTO setFiltro(String filtro) {
this.filtro = filtro;
return this;
}
}
private static Context mContext;
@@ -63,36 +82,48 @@ public class ColliDataRecover {
public static void init(Context context) {
mContext = context;
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
loadLocalFile();
}
}
public static boolean thereIsAnExistantSession() {
return mtbColtsSessions.size() > 0;
}
public static MtbColt getFirstSession() {
public static Integer getFirstSessionID() {
if(thereIsAnExistantSession()){
RecoverDTO dto = mtbColtsSessions.get(0);
mtbColtsSessions.remove(dto);
return new MtbColt()
.setNumCollo(dto.getNumCollo())
.setSerCollo(dto.getSerCollo())
.setGestione(dto.getGestioneCollo())
.setDataCollo(dto.getDataCollo());
return 0;
} else return null;
}
public static MtbColt getSession(Integer sessionID) {
if(sessionID == null) return null;
RecoverDTO dto = mtbColtsSessions.get(sessionID);
return new MtbColt()
.setNumCollo(dto.getNumCollo())
.setSerCollo(dto.getSerCollo())
.setGestione(dto.getGestioneCollo())
.setDataCollo(dto.getDataCollo())
.setFiltroOrdini(dto.getFiltro());
}
public static int startNewSession(MtbColt mtbColtSession) {
RecoverDTO recoverDTO = new RecoverDTO()
.setDataCollo(mtbColtSession.getDataColloS())
.setNumCollo(mtbColtSession.getNumCollo())
.setSerCollo(mtbColtSession.getSerCollo())
.setGestioneCollo(mtbColtSession.getGestione());
.setGestioneCollo(mtbColtSession.getGestione())
.setFiltro(mtbColtSession.getFiltroOrdini());
mtbColtsSessions.add(recoverDTO);
updateLocalFile();
@@ -105,6 +136,28 @@ public class ColliDataRecover {
}
private static void loadLocalFile() {
InputStream inputStream;
Gson gson = new Gson();
try {
inputStream = mContext.openFileInput(CommonConst.Files.RECOVER_COLLO_FILE);
byte[] bytes = IOUtils.readInputStreamFully(inputStream);
String jsonString = new String(bytes);
Type listType = new TypeToken<ArrayList<RecoverDTO>>(){}.getType();
mtbColtsSessions = gson.fromJson(jsonString, listType);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
UtilityExceptions.defaultException(mContext, e);
}
}
private static void updateLocalFile() {
FileOutputStream outputStream;
@@ -119,7 +172,13 @@ public class ColliDataRecover {
e.printStackTrace();
UtilityExceptions.defaultException(mContext, e);
}
}
private static boolean isFilePresent(String fileName) {
String path = mContext.getFilesDir().getAbsolutePath() + "/" + fileName;
File file = new File(path);
return file.exists();
}
}

View File

@@ -2,7 +2,7 @@ package it.integry.integrywmsnative.core.interfaces;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
public interface IRecyclerFragment {
public interface IScrollableFragment {
void setWaterfallToolbar(WaterfallToolbar waterfallToolbar);

View File

@@ -5,13 +5,12 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.appcompat.widget.SearchView;
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater;
@@ -31,6 +30,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.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
import it.integry.integrywmsnative.core.utility.UtilityString;
@@ -39,7 +39,7 @@ import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
@@ -48,7 +48,7 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.Accettazione
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IRecyclerFragment {
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
private static WaterfallToolbar mWaterfallToolbar;
@@ -239,9 +239,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
}
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
// mAdapter.setHasStableIds(true);
mBinding.accettazioneMainList.setAdapter(mAdapter);
//mRecyclerView.setAdapter(mAdapter);
}
@OnClick(R.id.accettazione_main_fab)
@@ -286,8 +284,10 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
null,
() -> {
String cacheItemID = DataCache.addItem(ordini);
Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) ordini); //Optional parameters
myIntent.putExtra("key", cacheItemID); //Optional parameters
getActivity().startActivity(myIntent);
}).show();

View File

@@ -14,6 +14,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
@@ -41,7 +42,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
List<OrdineAccettazioneDTO> orders = DataCache.retrieveItem(getIntent().getStringExtra("key"));
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineAccettazioneInevasoViewModel(
this, mArticoliInColloBottomSheetViewModel, orders);

View File

@@ -6,6 +6,7 @@ import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
@@ -23,24 +24,23 @@ import de.hdodenhof.circleimageview.CircleImageView;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.wifi.WiFiCheckerViewHolder;
import it.integry.integrywmsnative.databinding.FragmentMainBinding;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
/**
* A simple {@link Fragment} subclass.
* Use the {@link MainFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class MainFragment extends Fragment implements ITitledFragment {
public class MainFragment extends Fragment implements ITitledFragment, IScrollableFragment {
private FragmentMainBinding mBindings;
@BindView(R.id.no_connection_top_layout) ExpandableLayout mNoConnectionLayout;
@BindView(R.id.current_user_name) TextView currentUsername;
@BindView(R.id.current_deposito) TextView currentDeposito;
// @BindView(R.id.drawer_logoAzienda) CircleImageView currentLogoAzienda;
private View mView;
private WaterfallToolbar mWaterfallToolbar;
public MainFragment() {
}
@@ -61,24 +61,26 @@ public class MainFragment extends Fragment implements ITitledFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mView = inflater.inflate(R.layout.fragment_main, container, false);
ButterKnife.bind(this, mView);
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main, container, false);
ButterKnife.bind(this, mBindings.getRoot());
mWaterfallToolbar.setNestedScrollView(mBindings.fragmentMainScrollview);
init();
return mView;
return mBindings.getRoot();
}
private void init(){
ServerStatusChecker.getIstance().addCallback(value -> {
if(value && mNoConnectionLayout.isExpanded()){
if(value && mBindings.noConnectionTopLayout.isExpanded()){
collapseNoConnectionLayout();
} else if(!value && !mNoConnectionLayout.isExpanded()){
} else if(!value && !mBindings.noConnectionTopLayout.isExpanded()){
expandNoConnectionLayout();
}
});
@@ -91,8 +93,8 @@ public class MainFragment extends Fragment implements ITitledFragment {
}
private void initSessionData() {
currentUsername.setText(SettingsManager.i().user.fullname);
currentDeposito.setText(String.format("%s - %s", SettingsManager.i().userSession.depo.getCodMdep(), SettingsManager.i().userSession.depo.getDescrizione()));
mBindings.currentUserName.setText(SettingsManager.i().user.fullname);
mBindings.currentDeposito.setText(String.format("Deposito: %s %s", SettingsManager.i().userSession.depo.getCodMdep(), SettingsManager.i().userSession.depo.getDescrizione()));
if(SettingsManager.iDB().getDatiAzienda() != null && SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) {
// currentLogoAzienda.setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo());
@@ -100,14 +102,20 @@ public class MainFragment extends Fragment implements ITitledFragment {
}
private void collapseNoConnectionLayout(){
if(getActivity() != null) getActivity().runOnUiThread(() -> mNoConnectionLayout.collapse(true));
if(getActivity() != null) getActivity().runOnUiThread(() -> mBindings.noConnectionTopLayout.collapse(true));
}
private void expandNoConnectionLayout(){
if(getActivity() != null) getActivity().runOnUiThread(() -> mNoConnectionLayout.expand(true));
if(getActivity() != null) getActivity().runOnUiThread(() -> mBindings.noConnectionTopLayout.expand(true));
}
private void startRecoverMode() {
mBindings.recoverDataExpandableLayout.expand(true);
}
private void endRecoverMode() {
mBindings.recoverDataExpandableLayout.collapse(true);
}
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
@@ -139,4 +147,8 @@ public class MainFragment extends Fragment implements ITitledFragment {
((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
}
@Override
public void setWaterfallToolbar(WaterfallToolbar waterfallToolbar) {
mWaterfallToolbar = waterfallToolbar;
}
}

View File

@@ -4,7 +4,6 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
@@ -30,9 +29,10 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
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.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@@ -52,7 +52,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, ISelectAllFragment, IFilterableFragment {
public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment {
private static WaterfallToolbar mWaterfallToolbar;
@@ -190,7 +190,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
.forEach(anagOrd -> {
String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3, anagOrd.length());
String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3);
OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
@@ -354,11 +354,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
null,
() -> {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
myIntent.putExtra("keyPickingList", (ArrayList<PickingObjectDTO>) ordini); //Optional parameters
myIntent.putExtra("keyTestateOrdini", (ArrayList<OrdineVenditaGroupedInevasoDTO>)selectedOrders);
myIntent.putExtra("keyColliRegistrati", (ArrayList<MtbColt>)mtbColtList);
getActivity().startActivity(myIntent);
startVenditaActivity(ordini, selectedOrders, mtbColtList);
}).show();
@@ -404,7 +400,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
public void onFilterClick() {
DialogVenditaFiltroAvanzato.make(getActivity(), mOriginalOrderList, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
mAppliedFilterViewModel = filter;
if(filteredOrderList != null){
@@ -414,6 +409,25 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
}
}).show();
}
private void startVenditaActivity(List<PickingObjectDTO> ordini, List<OrdineVenditaGroupedInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
String keyPickingList = DataCache.addItem(ordini);
myIntent.putExtra("keyPickingList", keyPickingList);
String keyTestateOrdini = DataCache.addItem(selectedOrders);
myIntent.putExtra("keyTestateOrdini", keyTestateOrdini);
String keyColliRegistrati = DataCache.addItem(mtbColtList);
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
getActivity().startActivity(myIntent);
}
}

View File

@@ -14,6 +14,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
@@ -44,9 +45,9 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List<PickingObjectDTO> pickingList = (ArrayList<PickingObjectDTO>)getIntent().getSerializableExtra("keyPickingList");
List<OrdineVenditaGroupedInevasoDTO> testateOrdini = (ArrayList<OrdineVenditaGroupedInevasoDTO>)getIntent().getSerializableExtra("keyTestateOrdini");
List<MtbColt> colliRegistrati = (ArrayList<MtbColt>) getIntent().getSerializableExtra("keyColliRegistrati");
List<PickingObjectDTO> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
List<OrdineVenditaGroupedInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
List<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);