diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index fb8a2c56..179bcd79 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
index 91af906d..52f57fad 100644
--- a/.idea/runConfigurations/app.xml
+++ b/.idea/runConfigurations/app.xml
@@ -6,7 +6,7 @@
-
+
@@ -43,7 +43,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 15cbb0ff..d7c0f129 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 65
- def appVersionName = '1.6.4'
+ def appVersionCode = 66
+ def appVersionName = '1.6.5'
signingConfigs {
release {
@@ -99,7 +99,7 @@ dependencies {
implementation 'com.orhanobut:logger:2.2.0'
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-crash:16.2.1'
- implementation 'com.google.firebase:firebase-perf:18.0.0'
+ implementation 'com.google.firebase:firebase-perf:18.0.1'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
@@ -147,6 +147,7 @@ dependencies {
//AppUpdate
implementation 'com.github.javiersantos:AppUpdater:2.7'
+
//Barcode
implementation project(':pointmobilescannerlibrary')
implementation project(':zebrascannerlibrary')
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
index 01e44f3c..7bcacf66 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
@@ -157,10 +157,10 @@ public class MainActivity extends AppCompatActivity
fragment = PickingLiberoFragment.newInstance();
this.adaptViewToFragment(fragment);
}
-// else if (id == R.id.nav_resi_cliente) {
-// fragment = UltimeConsegneClienteFragment.newInstance();
-// this.adaptViewToFragment(fragment);
-// }
+ else if (id == R.id.nav_resi_cliente) {
+ fragment = UltimeConsegneClienteFragment.newInstance();
+ this.adaptViewToFragment(fragment);
+ }
else if (id == R.id.nav_prod_versamento_materiale) {
fragment = ProdVersamentoMaterialeFragment.newInstance();
this.adaptViewToFragment(fragment);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java
index ceac5f87..fdfb1a2f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java
@@ -6,10 +6,10 @@ import java.util.List;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
public interface IOrdiniVendita {
- void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed);
+ void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
index d9009fe2..64175f0e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
@@ -1,16 +1,83 @@
package it.integry.integrywmsnative.core.di;
+import androidx.annotation.NonNull;
import androidx.databinding.BaseObservable;
+import androidx.databinding.Bindable;
+import androidx.databinding.Observable;
+import androidx.databinding.PropertyChangeRegistry;
+
+public class BindableBoolean implements Observable {
-public class BindableBoolean extends BaseObservable {
boolean mValue;
- public BindableBoolean() {}
+ private transient PropertyChangeRegistry mCallbacks;
+
+ public BindableBoolean() {
+ }
public BindableBoolean(boolean startValue) {
this.mValue = startValue;
}
+
+ @Override
+ public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
+ synchronized (this) {
+ if (mCallbacks == null) {
+ mCallbacks = new PropertyChangeRegistry();
+ }
+ }
+ mCallbacks.add(callback);
+ }
+
+ @Override
+ public void removeOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
+ synchronized (this) {
+ if (mCallbacks == null) {
+ return;
+ }
+ }
+ mCallbacks.remove(callback);
+ }
+
+ public void resetOnPropertyChangedCallback() {
+ synchronized (this) {
+ if (mCallbacks == null) {
+ return;
+ }
+ }
+ mCallbacks.clear();
+ mCallbacks = null;
+ }
+
+ /**
+ * Notifies listeners that all properties of this instance have changed.
+ */
+ public void notifyChange() {
+ synchronized (this) {
+ if (mCallbacks == null) {
+ return;
+ }
+ }
+ mCallbacks.notifyCallbacks(this, 0, null);
+ }
+
+ /**
+ * Notifies listeners that a specific property has changed. The getter for the property
+ * that changes should be marked with {@link Bindable} to generate a field in
+ * BR to be used as fieldId.
+ *
+ * @param fieldId The generated BR id for the Bindable field.
+ */
+ public void notifyPropertyChanged(int fieldId) {
+ synchronized (this) {
+ if (mCallbacks == null) {
+ return;
+ }
+ }
+ mCallbacks.notifyCallbacks(this, fieldId, null);
+ }
+
public boolean get() {
return mValue;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/FiltroOrdineDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/FiltroOrdineDTO.java
index 0e9e5ea1..1a600530 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/FiltroOrdineDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/FiltroOrdineDTO.java
@@ -47,4 +47,24 @@ public class FiltroOrdineDTO {
this.numOrd = numOrd;
return this;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ FiltroOrdineDTO that = (FiltroOrdineDTO) o;
+
+ if (getNumOrd() != that.getNumOrd()) return false;
+ if (!getGestioneOrd().equals(that.getGestioneOrd())) return false;
+ return dataOrd.equals(that.dataOrd);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getGestioneOrd().hashCode();
+ result = 31 * result + dataOrd.hashCode();
+ result = 31 * result + getNumOrd();
+ return result;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java
index 04517ac1..6c379f4d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java
@@ -4,6 +4,7 @@ import com.orhanobut.logger.Logger;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.net.SocketTimeoutException;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -39,23 +40,26 @@ public class UtilityLogger {
}
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs onFailed) {
- String message = UtilityResources.readRawTextFile(R.raw.error_mail);
+ if(!(ex instanceof SocketTimeoutException)) {
- message = message.replace("#exception_name#", ex.getMessage());
+ String message = UtilityResources.readRawTextFile(R.raw.error_mail);
- StringWriter sw = new StringWriter();
- ex.printStackTrace(new PrintWriter(sw));
+ message = message.replace("#exception_name#", ex.getMessage());
- if(additionalText != null) sw.append("\n").append(additionalText);
- message = message.replace("#stacktrace#", sw.toString());
+ StringWriter sw = new StringWriter();
+ ex.printStackTrace(new PrintWriter(sw));
- String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
- message = message.replace("#azienda_nome#", currentAzienda);
+ if (additionalText != null) sw.append("\n").append(additionalText);
+ message = message.replace("#stacktrace#", sw.toString());
- SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
- message = message.replace("#current_date#", sdf.format(new Date()));
+ String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
+ message = message.replace("#azienda_nome#", currentAzienda);
- SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
+ SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
+ message = message.replace("#current_date#", sdf.format(new Date()));
+
+ SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
+ }
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
index 9d21b9d4..de79415a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
@@ -217,10 +217,10 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
}
-// @OnClick(R.id.fast_button_resi_clienti)
-// public void onClickResiClientio(View view) {
-// ((MainActivity) getActivity()).setItem(R.id.nav_resi_cliente);
-// }
+ @OnClick(R.id.fast_button_resi_clienti)
+ public void onClickResiClientio(View view) {
+ ((MainActivity) getActivity()).setItem(R.id.nav_resi_cliente);
+ }
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 69d09f42..f8384c99 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
@@ -21,7 +21,6 @@ import android.view.ViewGroup;
import com.annimon.stream.Stream;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import butterknife.ButterKnife;
@@ -46,7 +45,6 @@ import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzato;
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzatoViewModel;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel;
@@ -66,7 +64,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
private MainListVenditaAdapter mAdapter;
private List mOriginalOrderList;
- private List groupedOrdiniInevasi;
+ private List mRenderedOrderList = new ArrayList<>();
private DialogVenditaFiltroAvanzatoViewModel mAppliedFilterViewModel;
@@ -121,7 +119,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
ButterKnife.bind(this, mBinding.getRoot());
-// if(mWaterfallToolbar != null) mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList);
if(mToolbar != null) mToolbar.setRecyclerView(mBinding.venditaMainList);
return mBinding.getRoot();
@@ -166,7 +163,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
- groupOrdini(ordini);
+ refreshOrdini(ordini);
initRecyclerView();
progress.dismiss();
}
@@ -188,112 +185,124 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
}
- public void groupOrdini(List ordini){
+ public void refreshOrdini(List ordini){
- groupedOrdiniInevasi = new ArrayList<>();
-
- //Splitto gli ordini per codAnagOrd (Cliente)
- Stream.of(ordini)
- .distinctBy(OrdineVenditaInevasoDTO::getCodAnagOrd)
- .sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
- .map(x -> x.getCodAnagOrd() + "#_#" + x.getRagSocOrd())
- .forEach(anagOrd -> {
-
- String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
- String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3);
-
- OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
-
- groupedOrdine.codAnagClie = codAnagOrd;
- groupedOrdine.nomeCliente = ragSocOrd;
- groupedOrdine.ordini = new ArrayList<>();
+ mRenderedOrderList.clear();
+ mRenderedOrderList.addAll(ordini);
- //Raggruppo gli ordini del singolo fornitore suddivisi per data, dataCons e numero
- Stream.of(ordini)
- .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd))
- .distinctBy(x -> x.getDataOrdS() + " - " + x.getDataConsS() + " - " + x.getNumOrd())
- .sortBy(x -> x.getDataConsD() != null ? x.getDataConsD() : new Date(2000, 01, 01))
- .forEach(ord -> {
-
-
- OrdineVenditaGroupedInevasoDTO.Ordine rigaOrdine = new OrdineVenditaGroupedInevasoDTO.Ordine();
-
- rigaOrdine
- .setData(ord.getDataOrdS())
- .setNumero(ord.getNumOrd())
- .setCodMdep(ord.getCodMdep())
- .setCodAnagOrd(ord.getCodAnagOrd())
- .setCodAnagClie(groupedOrdine.codAnagClie)
- .setRagSocOrd(ord.getRagSocOrd())
- .setPesoTotale(ord.getPesoTotale() != null ? ord.getPesoTotale().floatValue() : null)
- .setBarcode(ord.getBarcode())
- .setTermCons(ord.getTermCons())
- .setDataCons(ord.getDataConsS())
- .setRifOrd(ord.getRifOrd())
- .setGestione(ord.getGestione())
- .setExistCollo(ord.flagExistCollo());
-
- rigaOrdine.clienti = new ArrayList<>();
-
-
- //Leggo tutti i clienti dell'ordine corrente
- Stream.of(ordini)
- .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd) &&
- x.getNumOrd().equals(ord.getNumOrd()) &&
- x.getDataOrdS().equalsIgnoreCase(ord.getDataOrdS()) &&
- x.getDataConsS().equalsIgnoreCase(ord.getDataConsS()))
- .distinctBy(OrdineVenditaInevasoDTO::getCodJcom)
- .forEach(ordCliente -> {
-
- OrdineVenditaGroupedInevasoDTO.Cliente cliente = new OrdineVenditaGroupedInevasoDTO.Cliente();
-
- cliente.codJcom = ordCliente.getCodJcom();
- cliente.ragSocCom = ordCliente.getRagSocCom();
- cliente.descrCom = ordCliente.getDescrizioneCom();
- cliente.dataCons = ordCliente.getDataConsS();
- cliente.numCnf = ordCliente.getNumCnfdaEvadere() != null ? ordCliente.getNumCnfdaEvadere().floatValue() : 0;
- cliente.rifOrd = ordCliente.getRifOrd();
-
- rigaOrdine.clienti.add(cliente);
-
- });
-
- groupedOrdine.ordini.add(rigaOrdine);
-
-
- });
-
- groupedOrdiniInevasi.add(groupedOrdine);
-
- });
+//
+// //Splitto gli ordini per codAnagOrd (Cliente)
+// Stream.of(ordini)
+// .distinctBy(OrdineVenditaInevasoDTO::getCodAnagOrd)
+// .sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
+// .map(x -> x.getCodAnagOrd() + "#_#" + x.getRagSocOrd())
+// .forEach(anagOrd -> {
+//
+// String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
+// String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3);
+//
+// OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
+//
+// groupedOrdine.codAnagClie = codAnagOrd;
+// groupedOrdine.nomeCliente = ragSocOrd;
+// groupedOrdine.ordini = new ArrayList<>();
+//
+//
+// //Raggruppo gli ordini del singolo fornitore suddivisi per data, dataCons e numero
+// Stream.of(ordini)
+// .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd))
+// .distinctBy(x -> x.getDataOrdS() + " - " + x.getDataConsS() + " - " + x.getNumOrd())
+// .sortBy(x -> x.getDataConsD() != null ? x.getDataConsD() : new Date(2000, 01, 01))
+// .forEach(ord -> {
+//
+//
+// OrdineVenditaGroupedInevasoDTO.Ordine rigaOrdine = new OrdineVenditaGroupedInevasoDTO.Ordine();
+//
+// rigaOrdine
+// .setData(ord.getDataOrdS())
+// .setNumero(ord.getNumOrd())
+// .setCodMdep(ord.getCodMdep())
+// .setCodAnagOrd(ord.getCodAnagOrd())
+// .setCodAnagClie(groupedOrdine.codAnagClie)
+// .setRagSocOrd(ord.getRagSocOrd())
+// .setPesoTotale(ord.getPesoTotale() != null ? ord.getPesoTotale().floatValue() : null)
+// .setBarcode(ord.getBarcode())
+// .setTermCons(ord.getTermCons())
+// .setDataCons(ord.getDataConsS())
+// .setRifOrd(ord.getRifOrd())
+// .setGestione(ord.getGestione())
+// .setExistCollo(ord.flagExistCollo());
+//
+// rigaOrdine.clienti = new ArrayList<>();
+//
+//
+// //Leggo tutti i clienti dell'ordine corrente
+// Stream.of(ordini)
+// .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd) &&
+// x.getNumOrd().equals(ord.getNumOrd()) &&
+// x.getDataOrdS().equalsIgnoreCase(ord.getDataOrdS()) &&
+// x.getDataConsS().equalsIgnoreCase(ord.getDataConsS()))
+// .distinctBy(OrdineVenditaInevasoDTO::getCodJcom)
+// .forEach(ordCliente -> {
+//
+// OrdineVenditaGroupedInevasoDTO.Cliente cliente = new OrdineVenditaGroupedInevasoDTO.Cliente();
+//
+// cliente.codJcom = ordCliente.getCodJcom();
+// cliente.ragSocCom = ordCliente.getRagSocCom();
+// cliente.descrCom = ordCliente.getDescrizioneCom();
+// cliente.dataCons = ordCliente.getDataConsS();
+// cliente.numCnf = ordCliente.getNumCnfdaEvadere() != null ? ordCliente.getNumCnfdaEvadere().floatValue() : 0;
+// cliente.rifOrd = ordCliente.getRifOrd();
+//
+// rigaOrdine.clienti.add(cliente);
+//
+// });
+//
+// groupedOrdine.ordini.add(rigaOrdine);
+//
+//
+// });
+//
+// mRenderedOrderList.add(groupedOrdine);
+//
+// });
}
private void initRecyclerView() {
- mAdapter = new MainListVenditaAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged, onSingleSelectionChanged);
+// mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onGroupSelectionChanged, onSingleSelectionChanged);
+ mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
mBinding.venditaMainList.setAdapter(mAdapter);
}
public void refreshRecyclerView() {
- mAdapter.updateItems(groupedOrdiniInevasi);
+ mAdapter.updateItems(mRenderedOrderList);
}
- private RunnableArgs onSingleSelectionChanged = dto -> {
- List selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
+ private RunnableArgs onSingleSelectionChanged = dto -> {
+ List selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
+ boolean allMatch = Stream.of(selectedOrders).allMatch(x -> dto.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()));
- if(selectedOrders != null && selectedOrders.size() > 1){
- for (OrdineVenditaGroupedInevasoDTO selectedOrder : selectedOrders) {
- if(!dto.getCodAnagClie().equalsIgnoreCase(selectedOrder.codAnagClie)) {
- Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
- }
- }
+ if(!allMatch) {
+ Stream.of(selectedOrders)
+ .filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()))
+ .forEach(x -> x.setSelected(false));
}
- }
+//
+// if(selectedOrders != null && selectedOrders.size() > 1){
+// for (OrdineVenditaInevasoDTO selectedOrder : selectedOrders) {
+// if(!dto.getCodAnagOrd().equalsIgnoreCase(selectedOrder.getCodAnagOrd())) {
+// Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
+// }
+// }
+// }
+ }
+//
if(selectedOrders != null && selectedOrders.size() > 0) {
mBinding.venditaMainFab.show();
}
@@ -302,40 +311,20 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
}
};
- private RunnableArgs onGroupSelectionChanged = dto -> {
- List selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
-
- if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
-
- if(selectedOrders != null && selectedOrders.size() > 1){
- for (OrdineVenditaGroupedInevasoDTO selectedOrder : selectedOrders) {
- if(!dto.codAnagClie.equalsIgnoreCase(selectedOrder.codAnagClie)) {
- Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
- }
- }
- }
- }
-
- if(selectedOrders != null && selectedOrders.size() > 0) mBinding.venditaMainFab.show();
- else mBinding.venditaMainFab.hide();
- };
-
@OnClick(R.id.vendita_main_fab)
public void onClick(View view) {
- List selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
+ List selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
List barcodes = new ArrayList<>();
String dataCons = null;
- for(OrdineVenditaGroupedInevasoDTO ordine : selectedOrders){
- for(OrdineVenditaGroupedInevasoDTO.Ordine righeOrd : ordine.ordini){
- if(!barcodes.contains(righeOrd.getBarcode())) barcodes.add(righeOrd.getBarcode());
+ for(OrdineVenditaInevasoDTO ordine : selectedOrders){
+ if(!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
- if(dataCons == null) dataCons = righeOrd.getDataConsS();
- else if(!dataCons.equalsIgnoreCase(righeOrd.getDataConsS())) dataCons = "";
- }
+ if(dataCons == null) dataCons = ordine.getDataConsS();
+ else if(!dataCons.equalsIgnoreCase(ordine.getDataConsS())) dataCons = "";
}
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
@@ -407,12 +396,12 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
@Override
public void onSelectAll() {
- if(groupedOrdiniInevasi != null && groupedOrdiniInevasi.size() > 0) {
- if(mHelper.getSelectedOrders(groupedOrdiniInevasi).size() > 0){
- mHelper.deselectAll(groupedOrdiniInevasi);
+ if(mRenderedOrderList != null && mRenderedOrderList.size() > 0) {
+ if(mHelper.getSelectedOrders(mRenderedOrderList).size() > 0){
+ mHelper.deselectAll(mRenderedOrderList);
} else {
//Selezionare solo quelli attualmente a video
- mHelper.selectAll(groupedOrdiniInevasi);
+ mHelper.selectAll(mRenderedOrderList);
}
}
@@ -426,22 +415,19 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
if(filteredOrderList != null){
- groupOrdini(filteredOrderList);
+ refreshOrdini(filteredOrderList);
refreshRecyclerView();
}
}).show();
}
- private void checkSelectedOrders(List selectedOrders, Runnable onComplete, Runnable onFailed) {
+ private void checkSelectedOrders(List selectedOrders, Runnable onComplete, Runnable onFailed) {
if(selectedOrders != null && selectedOrders.size() > 0) {
- List flatOrderArray = new ArrayList<>();
-
- Stream.of(selectedOrders).forEach(x -> flatOrderArray.addAll(x.ordini));
//Definizione della gestione collo di default
- List foundGestioni = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getGestioneEnum)
+ List foundGestioni = Stream.of(selectedOrders)
+ .map(OrdineVenditaInevasoDTO::getGestioneEnum)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -454,8 +440,8 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
}
//Definizione del deposito di default
- List foundCodMdep = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getCodMdep)
+ List foundCodMdep = Stream.of(selectedOrders)
+ .map(OrdineVenditaInevasoDTO::getCodMdep)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -471,7 +457,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
onComplete.run();
}
- private void startVenditaActivity(List ordini, List selectedOrders, List mtbColtList) {
+ private void startVenditaActivity(List ordini, List selectedOrders, List mtbColtList) {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
String keyPickingList = DataCache.addItem(ordini);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java
index 8c181855..4e17a907 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/MainListVenditaAdapter.java
@@ -1,234 +1,254 @@
package it.integry.integrywmsnative.gest.vendita.core;
import android.content.Context;
-
-import androidx.core.content.ContextCompat;
-import androidx.core.content.res.ResourcesCompat;
-import androidx.core.util.Pools;
-import androidx.recyclerview.widget.RecyclerView;
-
-import android.graphics.Color;
import android.text.Html;
import android.view.LayoutInflater;
-import android.view.View;
import android.view.ViewGroup;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import java.util.ArrayList;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.DataBindingUtil;
+import androidx.databinding.Observable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.annimon.stream.Stream;
+import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
+
+import java.util.HashMap;
import java.util.List;
import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityDate;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.databinding.VenditaMainListGroupModelBinding;
+import it.integry.integrywmsnative.databinding.VenditaMainListModelBinding;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
+import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
-public class MainListVenditaAdapter extends RecyclerView.Adapter {
+public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter implements SectionTitleProvider {
private Context mContext;
- private List mDataset;
- private RunnableArgs mOnGroupSelected;
- private RunnableArgs mOnSingleSelectionChanged;
- private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000);
- private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000);
+ private List mDataset;
+ private RunnableArgs mOnSingleSelectionChanged;
- public static class ViewHolder extends RecyclerView.ViewHolder {
- // each data item is just a string in this case
- private TextView mTextViewGroupHeader;
- private LinearLayout mLinearLayoutGroupItemContainer;
- private List views = new ArrayList<>();
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
- public ViewHolder(View v) {
- super(v);
+ VenditaMainListModelBinding binding;
+
+ SubheaderHolder(VenditaMainListModelBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ VenditaMainListGroupModelBinding binding;
+
+ SingleItemViewHolder(VenditaMainListGroupModelBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
}
}
- // Provide a suitable constructor (depends on the kind of dataset)
- public MainListVenditaAdapter(Context context, List myDataset, RunnableArgs onGroupSelected, RunnableArgs onSingleSelectionChanged) {
+
+ public MainListVenditaAdapter(Context context, List myDataset, RunnableArgs onSingleSelectionChanged) {
mContext = context;
- mDataset = myDataset;
- mOnGroupSelected = onGroupSelected;
+ mDataset = orderItems(myDataset);
mOnSingleSelectionChanged = onSingleSelectionChanged;
}
- public void updateItems(List updatedDataset) {
+ public void updateItems(List updatedDataset) {
mDataset.clear();
- mDataset.addAll(updatedDataset);
+ mDataset.addAll(orderItems(updatedDataset));
notifyDataSetChanged();
+ notifyDataChanged();
}
- // Create new views (invoked by the layout manager)
- @Override
- public MainListVenditaAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
- int viewType) {
- // create a new view
- View v = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.vendita_main_list_model, parent, false);
+ private List orderItems(List dataset) {
+ return Stream.of(dataset)
+ .sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
+ .toList();
- ViewHolder vh = new ViewHolder(v);
-
- TextView groupHeader = v.findViewById(R.id.vendita_main_list_group_header);
- vh.mTextViewGroupHeader = groupHeader;
-
- LinearLayout groupItemContainer = v.findViewById(R.id.vendita_main_list_group_item_container);
- vh.mLinearLayoutGroupItemContainer = groupItemContainer;
-
- return vh;
}
- // Replace the contents of a view (invoked by the layout manager)
+
+
@Override
- public void onBindViewHolder(ViewHolder holder, int position) {
- // - get element from your dataset at this position
- // - replace the contents of the view with that element
+ public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ VenditaMainListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.vendita_main_list_model, parent, false);
+ return new SubheaderHolder(binding);
+ }
- final List subGroup = mDataset.get(position).ordini;
- final int finalPosition = position;
+ @Override
+ public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ VenditaMainListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.vendita_main_list_group_model, parent, false);
+ return new SingleItemViewHolder(binding);
+ }
- holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeCliente);
- holder.itemView.setOnClickListener(view -> {
- boolean newValue = true;
- for(int i = 0; i < subGroup.size(); i++){
- if(subGroup.get(i).checkBox) newValue = false;
- }
+ @Override
+ public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
+ subheaderHolder.binding.venditaMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
- for(int i = 0; i < subGroup.size(); i++){
- subGroup.get(i).setCheckbox(newValue);
- }
+ subheaderHolder.binding.getRoot().setOnClickListener(v -> {
- mOnGroupSelected.run(mDataset.get(finalPosition));
+ boolean anySelected = Stream.of(mDataset)
+ .filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
+ .anyMatch(OrdineVenditaInevasoDTO::isSelected);
+
+ List ordersToSelect =
+ Stream.of(mDataset)
+ .filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd())).toList();
+
+ Stream.of(mDataset)
+ .filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
+ .forEach(x -> x.setSelected(!anySelected));
+ });
+ }
+
+ @Override
+ public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
+ final OrdineVenditaInevasoDTO ordine = mDataset.get(itemPosition);
+ final SingleItemViewHolder holder = h;
+
+ holder.binding.venditaMainListGroupItemContainerCheckBox.setTag(ordine.getNumOrd());
+
+ holder.binding.venditaMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
+
+ ordine.selected.resetOnPropertyChangedCallback();
+
+
+ holder.binding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), ordine.flagExistCollo() ? R.color.colorPrimary : android.R.color.transparent, null));
+
+ String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
+ holder.binding.venditaMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
+
+ String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
+ holder.binding.venditaMainListGroupItemContainerTestataDataCons.setText(Html.fromHtml(testataDataConsString));
+
+ holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
+
+ holder.binding.setCheckboxValue(ordine.selected);
+
+ holder.binding.getRoot().setOnClickListener(v -> {
+ ordine.setSelected(!ordine.isSelected());
});
- for (int i = 0; i < subGroup.size(); i++) {
- final OrdineVenditaGroupedInevasoDTO.Ordine ordine = subGroup.get(i);
+ holder.binding.venditaMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
- ordine.checkBoxCallback = new ArrayList<>();
-
- View groupModelViewPool = (View) sPool.acquire();
- if(groupModelViewPool == null){
- groupModelViewPool = LayoutInflater.from(mContext)
- .inflate(R.layout.vendita_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false);
- }
-
- View ordineView = groupModelViewPool;
- holder.views.add(ordineView);
-
-
- ordineView.setVisibility(View.VISIBLE);
-
- if (i % 2 == 1) {
- ordineView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
- } else {
- ordineView.setBackgroundColor(mContext.getResources().getColor(R.color.white));
- }
-
- final CheckBox checkBox = ordineView.findViewById(R.id.vendita_main_list_group_item_container_checkBox);
- checkBox.setChecked(ordine.checkBox);
-
- checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
- ordine.checkBox = checkBox.isChecked();
- mOnSingleSelectionChanged.run(ordine);
- });
-
-
- ordine.checkBoxCallback.add(checkBox::setChecked);
-
- ordineView.setOnClickListener(view -> {
- checkBox.toggle();
- //ordine.checkBox = checkBox.isChecked();
- //mOnGroupSelected.run(mDataset.get(finalPosition));
- });
-
-
- TextView testataOrdTextView = ordineView.findViewById(R.id.vendita_main_list_group_item_container_testata_ord);
- String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getData(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
- testataOrdTextView.setText(Html.fromHtml(testataOrdString));
-
- TextView testataDataConsTextView = ordineView.findViewById(R.id.vendita_main_list_group_item_container_testata_data_cons);
- String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
- testataDataConsTextView.setText(Html.fromHtml(testataDataConsString));
-
- LinearLayout clientLinearLayout = ordineView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord);
- List subGroupClienti = ordine.clienti;
-
- clientLinearLayout.removeAllViews();
-
- for (int k = 0; k < subGroupClienti.size(); k++) {
-
-
- View groupClienteModelViewPool = (View) sPoolClienti.acquire();
- if(groupClienteModelViewPool == null){
- groupClienteModelViewPool = LayoutInflater.from(mContext)
- .inflate(R.layout.vendita_main_list_group_clienti, clientLinearLayout, false);
+ //Bindable to View
+ ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
+ @Override
+ public void onPropertyChanged(Observable sender, int propertyId) {
+ if(holder.binding.venditaMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumOrd())) {
+ holder.binding.venditaMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
}
-
- View groupClienteModelView = groupClienteModelViewPool;
-
-
- TextView clienteComm = groupClienteModelView.findViewById(R.id.vendita_main_list_group_clienti_comm);
- String clienteText;
- clienteText = subGroupClienti.get(k).rifOrd;
- clienteComm.setText(clienteText);
-
-// TextView dataCons = groupClienteModelView.findViewById(R.id.vendita_main_list_group_clienti_datacons);
-// if (subGroupClienti.get(k).getDataCons() != null) {
-// dataCons.setText(UtilityDate.formatDate(subGroupClienti.get(k).getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
-// } else {
-// dataCons.setText("");
-// }
-
- clientLinearLayout.addView(groupClienteModelView);
}
-
- holder.mLinearLayoutGroupItemContainer.addView(ordineView);
- }
+ });
+ //View to Bindable
+ holder.binding.venditaMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ ordine.setSelected(isChecked);
+ mOnSingleSelectionChanged.run(ordine);
+ });
}
+
@Override
- public void onViewRecycled(ViewHolder holder){
- if(holder != null){
- for(int i = 0; i < holder.views.size(); i++){
- View groupModelView = holder.views.get(i);
+ public boolean onPlaceSubheaderBetweenItems(int position) {
+ return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd());
- LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.vendita_main_list_group_item_container_clienti_ord);
-
- for(int k = 0; k < clientLinearLayout.getChildCount(); k++){
- View cliente = clientLinearLayout.getChildAt(k);
- ((ViewGroup) cliente.getParent()).removeView(cliente);
-
- sPoolClienti.release(cliente);
- }
-
- ((ViewGroup) groupModelView.getParent()).removeView(groupModelView);
- sPool.release(groupModelView);
- }
-
- holder.views.clear();
- }
-
- super.onViewRecycled(holder);
}
- // Return the size of your dataset (invoked by the layout manager)
@Override
- public int getItemCount() {
+ public int getItemSize() {
return mDataset.size();
}
- public void setFilter(List newDataset) {
- mDataset = new ArrayList<>();
- mDataset.addAll(newDataset);
- notifyDataSetChanged();
+ @Override
+ public String getSectionTitle(int position) {
+ return null;
}
+ private static class OrdineListModel {
+ private String data;
+ private Integer numero;
+ private String gestione;
+ private String dataCons;
+
+ public static OrdineListModel fromOrdine(OrdineVenditaInevasoDTO ordine) {
+ return new OrdineListModel()
+ .setData(ordine.getDataOrdS())
+ .setDataCons(ordine.getDataConsS())
+ .setGestione(ordine.getGestione())
+ .setNumero(ordine.getNumOrd());
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public OrdineListModel setData(String data) {
+ this.data = data;
+ return this;
+ }
+
+ public Integer getNumero() {
+ return numero;
+ }
+
+ public OrdineListModel setNumero(Integer numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public OrdineListModel setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+
+ public String getDataCons() {
+ return dataCons;
+ }
+
+ public OrdineListModel setDataCons(String dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ OrdineListModel that = (OrdineListModel) o;
+
+ if (!getData().equals(that.getData())) return false;
+ if (!getNumero().equals(that.getNumero())) return false;
+ if (!getGestione().equals(that.getGestione())) return false;
+ return getDataCons() != null ? getDataCons().equals(that.getDataCons()) : that.getDataCons() == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getData().hashCode();
+ result = 31 * result + getNumero().hashCode();
+ result = 31 * result + getGestione().hashCode();
+ result = 31 * result + (getDataCons() != null ? getDataCons().hashCode() : 0);
+ return result;
+ }
+ }
+
}
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 67183dad..7e2f0e7e 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
@@ -4,6 +4,7 @@ import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
+import com.annimon.stream.Stream;
import com.google.firebase.perf.metrics.Trace;
import com.google.gson.reflect.TypeToken;
@@ -11,7 +12,6 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
-import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
@@ -19,7 +19,6 @@ import it.integry.integrywmsnative.core.REST.model.EsitoType;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbOrdt;
-import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@@ -27,7 +26,6 @@ import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
@@ -139,7 +137,7 @@ public class VenditaHelper {
- public void getBancaliVenditaGiaRegistrati(List orders, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void getBancaliVenditaGiaRegistrati(List orders, RunnableArgs> onComplete, RunnableArgs onFailed) {
String baseSql = "SELECT DISTINCT mtb_colt.* " +
"FROM mtb_colt, " +
@@ -156,21 +154,15 @@ public class VenditaHelper {
for(int i = 0; i < orders.size(); i++){
- List currentOrders = orders.get(i).ordini;
- for(int j = 0; j < currentOrders.size(); j++){
+ whereCond
+ .append("(mtb_colr.data_ord = '").append(UtilityDate.formatDate(orders.get(i).getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)).append("' ")
+ .append("AND mtb_colr.num_ord = ").append(orders.get(i).getNumOrd()).append(" ")
+ .append("AND mtb_colr.gestione = ").append(UtilityDB.valueToString(orders.get(i).getGestione()))
+ .append(") ");
- whereCond
- .append("(mtb_colr.data_ord = '").append(UtilityDate.formatDate(currentOrders.get(j).getData(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)).append("' ")
- .append("AND mtb_colr.num_ord = ").append(currentOrders.get(j).getNumero()).append(" ")
- .append("AND mtb_colr.gestione = ").append(UtilityDB.valueToString(currentOrders.get(j).getGestione()))
- .append(") ");
-
- if(i != (orders.size() - 1)){
- whereCond.append("OR ");
- } else if(j != (currentOrders.size() - 1)) {
- whereCond.append("OR ");
- }
+ if(i != (orders.size() - 1)){
+ whereCond.append("OR ");
}
}
@@ -241,47 +233,49 @@ public class VenditaHelper {
- public List getSelectedOrders(List groupedOrdiniInevasi){
- List selectedOrdini = new ArrayList<>();
+ public List getSelectedOrders(List ordiniList){
+// List selectedOrdini = new ArrayList<>();
- for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
- List selectedOrdiniGroup = new ArrayList<>();
+ return Stream.of(ordiniList)
+ .filter(OrdineVenditaInevasoDTO::isSelected)
+ .toList();
- for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){
- if(groupedOrdiniInevasi.get(i).ordini.get(j).checkBox) {
- selectedOrdiniGroup.add(groupedOrdiniInevasi.get(i).ordini.get(j));
- }
- }
+// for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
+// List selectedOrdiniGroup = new ArrayList<>();
+//
+// //for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){
+// if(groupedOrdiniInevasi.get(i).checkBox) {
+// selectedOrdiniGroup.add(groupedOrdiniInevasi.get(i).ordini.get(j));
+// }
+// //}
+//
+// if(selectedOrdiniGroup.size() > 0) {
+// try {
+// OrdineVenditaGroupedInevasoDTO cloneOrdine = groupedOrdiniInevasi.get(i).clone();
+// cloneOrdine.ordini = selectedOrdiniGroup;
+// selectedOrdini.add(cloneOrdine);
+// } catch (CloneNotSupportedException e) {
+// e.printStackTrace();
+// }
+// }
+// }
- if(selectedOrdiniGroup.size() > 0) {
- try {
- OrdineVenditaGroupedInevasoDTO cloneOrdine = groupedOrdiniInevasi.get(i).clone();
- cloneOrdine.ordini = selectedOrdiniGroup;
- selectedOrdini.add(cloneOrdine);
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- }
- }
- }
-
- return selectedOrdini;
+// return selectedOrdini;
}
- public void selectAll(List groupedOrdiniInevasi) {
+ public void selectAll(List groupedOrdiniInevasi) {
toggleSelection(groupedOrdiniInevasi, true);
}
- public void deselectAll(List groupedOrdiniInevasi) {
+ public void deselectAll(List groupedOrdiniInevasi) {
toggleSelection(groupedOrdiniInevasi, false);
}
- public void toggleSelection(List groupedOrdiniInevasi, boolean value) {
+ 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);
- }
+ groupedOrdiniInevasi.get(i).setSelected(value);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaGroupedInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaGroupedInevasoDTO.java
deleted file mode 100644
index c6be534c..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaGroupedInevasoDTO.java
+++ /dev/null
@@ -1,401 +0,0 @@
-package it.integry.integrywmsnative.gest.vendita.dto;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
-import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-
-public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable, Parcelable {
-
- public String codAnagClie;
- public String nomeCliente;
- public List ordini;
-
- public OrdineVenditaGroupedInevasoDTO clone() throws CloneNotSupportedException {
- return (OrdineVenditaGroupedInevasoDTO) super.clone();
- }
-
-
- public static class Ordine implements Parcelable{
- private String data;
- private int numero;
- private String codMdep;
- private String codAnagOrd = "";
- private String ragSocOrd = "";
- private Float pesoTotale;
- private String barcode;
- private String termCons;
- private String dataCons;
- private String rifOrd;
- private String gestione;
- private int colliRiservati;
- private boolean existCollo;
-
- private String codAnagClie;
-
- public List clienti;
-
- public boolean checkBox;
- public List checkBoxCallback = new ArrayList<>();
-
-
-
- public void setCheckbox(boolean newValue){
- checkBox = newValue;
- if(checkBoxCallback != null && checkBoxCallback.size() > 0) {
- for(ICheckBoxCallback callback : checkBoxCallback) callback.onToggle(newValue);
- }
- }
-
-
- public Date getData(){
- try {
- return UtilityDate.recognizeDate(data);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public Ordine setData(String data) {
- this.data = data;
- return this;
- }
-
- public int getNumero() {
- return numero;
- }
-
- public Ordine setNumero(int numero) {
- this.numero = numero;
- return this;
- }
-
- public String getCodMdep() {
- return codMdep;
- }
-
- public Ordine setCodMdep(String codMdep) {
- this.codMdep = codMdep;
- return this;
- }
-
- public String getCodAnagOrd() {
- return codAnagOrd;
- }
-
- public Ordine setCodAnagOrd(String codAnagOrd) {
- this.codAnagOrd = codAnagOrd;
- return this;
- }
-
- public String getRagSocOrd() {
- return ragSocOrd;
- }
-
- public Ordine setRagSocOrd(String ragSocOrd) {
- this.ragSocOrd = ragSocOrd;
- return this;
- }
-
- public Float getPesoTotale() {
- return pesoTotale;
- }
-
- public Ordine setPesoTotale(Float pesoTotale) {
- this.pesoTotale = pesoTotale;
- return this;
- }
-
- public String getBarcode() {
- return barcode;
- }
-
- public Ordine setBarcode(String barcode) {
- this.barcode = barcode;
- return this;
- }
-
- public String getTermCons() {
- return termCons;
- }
-
- public Ordine setTermCons(String termCons) {
- this.termCons = termCons;
- return this;
- }
-
- public String getDataConsS(){
- return dataCons;
- }
-
- public Date getDataConsD(){
- try {
- return UtilityDate.recognizeDate(dataCons);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public Ordine setDataCons(String dataCons) {
- this.dataCons = dataCons;
- return this;
- }
-
- public String getRifOrd() {
- return rifOrd;
- }
-
- public Ordine setRifOrd(String rifOrd) {
- this.rifOrd = rifOrd;
- return this;
- }
-
- public String getGestione() {
- return gestione;
- }
-
- public GestioneEnum getGestioneEnum() {
- return GestioneEnum.fromString(getGestione());
- }
-
- public Ordine setGestione(String gestione) {
- this.gestione = gestione;
- return this;
- }
-
- public String getCodAnagClie() {
- return codAnagClie;
- }
-
- public Ordine setCodAnagClie(String codAnagClie) {
- this.codAnagClie = codAnagClie;
- return this;
- }
-
- public int getColliRiservati() {
- return colliRiservati;
- }
-
- public Ordine setColliRiservati(int colliRiservati) {
- this.colliRiservati = colliRiservati;
- return this;
- }
-
- public List getClienti() {
- return clienti;
- }
-
- public Ordine setClienti(List clienti) {
- this.clienti = clienti;
- return this;
- }
-
- public boolean isCheckBox() {
- return checkBox;
- }
-
- public Ordine setCheckBox(boolean checkBox) {
- this.checkBox = checkBox;
- return this;
- }
-
- public boolean isExistCollo() {
- return existCollo;
- }
-
- public Ordine setExistCollo(boolean existCollo) {
- this.existCollo = existCollo;
- return this;
- }
-
- public Ordine(){}
-
- protected Ordine(Parcel in) {
- data = in.readString();
- numero = in.readInt();
- codAnagOrd = in.readString();
- ragSocOrd = in.readString();
- pesoTotale = in.readByte() == 0x00 ? null : in.readFloat();
- barcode = in.readString();
- termCons = in.readString();
- dataCons = in.readString();
- rifOrd = in.readString();
- if (in.readByte() == 0x01) {
- clienti = new ArrayList<>();
- in.readList(clienti, Cliente.class.getClassLoader());
- } else {
- clienti = null;
- }
- gestione = in.readString();
- colliRiservati = in.readInt();
- codMdep = in.readString();
- existCollo = in.readByte() != 0x00;
-
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(data);
- dest.writeInt(numero);
- dest.writeString(codAnagOrd);
- dest.writeString(ragSocOrd);
- if (pesoTotale == null) {
- dest.writeByte((byte) (0x00));
- } else {
- dest.writeByte((byte) (0x01));
- dest.writeFloat(pesoTotale);
- }
- dest.writeString(barcode);
- dest.writeString(termCons);
- dest.writeString(dataCons);
- dest.writeString(rifOrd);
- if (clienti == null) {
- dest.writeByte((byte) (0x00));
- } else {
- dest.writeByte((byte) (0x01));
- dest.writeList(clienti);
- }
- dest.writeString(gestione);
- dest.writeInt(colliRiservati);
- dest.writeString(codMdep);
- dest.writeByte((byte) (existCollo ? 0x01 : 0x00));
- }
-
- @SuppressWarnings("unused")
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public Ordine createFromParcel(Parcel in) {
- return new Ordine(in);
- }
-
- @Override
- public Ordine[] newArray(int size) {
- return new Ordine[size];
- }
- };
-
- }
-
- public static class Cliente implements Parcelable{
- public String codJcom;
- public String ragSocCom;
- public int idRiga;
- public String dataCons;
- public Float numCnf;
- public String descrCom;
- public String rifOrd;
-
- public Date getDataCons(){
- try {
- return UtilityDate.recognizeDate(dataCons);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public Cliente(){}
-
- protected Cliente(Parcel in) {
- codJcom = in.readString();
- ragSocCom = in.readString();
- idRiga = in.readInt();
- dataCons = in.readString();
- numCnf = in.readByte() == 0x00 ? null : in.readFloat();
- descrCom = in.readString();
- rifOrd = in.readString();
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(codJcom);
- dest.writeString(ragSocCom);
- dest.writeInt(idRiga);
- dest.writeString(dataCons);
- if (numCnf == null) {
- dest.writeByte((byte) (0x00));
- } else {
- dest.writeByte((byte) (0x01));
- dest.writeFloat(numCnf);
- }
- dest.writeString(descrCom);
- dest.writeString(rifOrd);
- }
-
- @SuppressWarnings("unused")
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public Cliente createFromParcel(Parcel in) {
- return new Cliente(in);
- }
-
- @Override
- public Cliente[] newArray(int size) {
- return new Cliente[size];
- }
- };
- }
-
- public OrdineVenditaGroupedInevasoDTO(){}
-
- protected OrdineVenditaGroupedInevasoDTO(Parcel in) {
- codAnagClie = in.readString();
- nomeCliente = in.readString();
- if (in.readByte() == 0x01) {
- ordini = new ArrayList<>();
- in.readList(ordini, Ordine.class.getClassLoader());
- } else {
- ordini = null;
- }
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(codAnagClie);
- dest.writeString(nomeCliente);
- if (ordini == null) {
- dest.writeByte((byte) (0x00));
- } else {
- dest.writeByte((byte) (0x01));
- dest.writeList(ordini);
- }
- }
-
- @SuppressWarnings("unused")
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public OrdineVenditaGroupedInevasoDTO createFromParcel(Parcel in) {
- return new OrdineVenditaGroupedInevasoDTO(in);
- }
-
- @Override
- public OrdineVenditaGroupedInevasoDTO[] newArray(int size) {
- return new OrdineVenditaGroupedInevasoDTO[size];
- }
- };
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaInevasoDTO.java
index be0e091b..59e6bfc1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaInevasoDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/OrdineVenditaInevasoDTO.java
@@ -8,6 +8,8 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class OrdineVenditaInevasoDTO implements Parcelable {
@@ -47,6 +49,12 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
private int colliRiservati;
private String existCollo;
+ public BindableBoolean selected;
+
+
+ public OrdineVenditaInevasoDTO() {
+ this.selected = new BindableBoolean(false);
+ }
protected OrdineVenditaInevasoDTO(Parcel in) {
data = in.readString();
@@ -91,6 +99,8 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
ragSocOrdV = in.readString();
colliRiservati = in.readInt();
existCollo = in.readString();
+
+ selected = new BindableBoolean(in.readByte() == 0x01);
}
@Override
@@ -140,6 +150,8 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
dest.writeString(ragSocOrdV);
dest.writeInt(colliRiservati);
dest.writeString(existCollo);
+
+ dest.writeByte(selected.get() ? (byte) 1 : (byte) 0);
}
@Override
@@ -163,9 +175,14 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
return data;
}
- public Date getDataOrdD() throws ParseException {
+ public Date getDataOrdD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
- return sdf.parse(getDataOrdS());
+ try {
+ return sdf.parse(getDataOrdS());
+ } catch (ParseException e) {
+ UtilityLogger.errorMe(e);
+ return null;
+ }
}
public OrdineVenditaInevasoDTO setData(String data) {
@@ -186,6 +203,11 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
return gestione;
}
+ public GestioneEnum getGestioneEnum() {
+ return GestioneEnum.fromString(getGestione());
+ }
+
+
public OrdineVenditaInevasoDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
@@ -488,4 +510,33 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
this.existCollo = existCollo;
return this;
}
+
+ public boolean isSelected() {
+ return selected.get();
+ }
+
+ public OrdineVenditaInevasoDTO setSelected(boolean selected) {
+ this.selected.set(selected);
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ OrdineVenditaInevasoDTO that = (OrdineVenditaInevasoDTO) o;
+
+ if (!data.equals(that.data)) return false;
+ if (!numero.equals(that.numero)) return false;
+ return getGestione().equals(that.getGestione());
+ }
+
+ @Override
+ public int hashCode() {
+ int result = data.hashCode();
+ result = 31 * result + numero.hashCode();
+ result = 31 * result + getGestione().hashCode();
+ return result;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
index 038f9c8b..621b2651 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
@@ -120,7 +120,7 @@ public class VenditaViewModel {
List filteredOrders = Stream.of(mOrdini)
.filter(x -> numOrds.contains(x.getNumOrd())).toList();
- mFragment.groupOrdini(filteredOrders);
+ mFragment.refreshOrdini(filteredOrders);
mFragment.refreshRecyclerView();
} else {
showNoOrderFound();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java
index a796f617..d14f351a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java
@@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
@@ -45,7 +45,7 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
ArrayList pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
- ArrayList testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
+ ArrayList testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
ArrayList colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
this, mBindings, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
index 0c6e1606..6233edb2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
@@ -52,7 +52,7 @@ import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.VenditaOrdineInevasoHelper;
@@ -81,7 +81,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
private final List mPickingList;
private List> mGroupedPickingList;
- private final List mTestateOrdini;
+ private final List mTestateOrdini;
private final List mColliRegistrati;
private VenditaOrdineInevasoHelper mHelper;
@@ -98,7 +98,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
private Integer mtbColtSessionID = null;
- public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ActivityVenditaOrdineInevasoBinding bindings, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List pickingList, List orders, List colliRegistrati) {
+ public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ActivityVenditaOrdineInevasoBinding bindings, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List pickingList, List orders, List colliRegistrati) {
this.mActivity = activity;
this.mBindings = bindings;
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
@@ -157,13 +157,10 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
private void initDatiPicking() {
if(this.mTestateOrdini != null && this.mTestateOrdini.size() > 0){
- List flatOrderArray = new ArrayList<>();
-
- Stream.of(this.mTestateOrdini).forEach(x -> flatOrderArray.addAll(x.ordini));
//Definizione della gestione collo di default
- List foundGestioni = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getGestioneEnum)
+ List foundGestioni = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getGestioneEnum)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -180,8 +177,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
}
//Definizione del deposito di default
- List foundCodMdep = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getCodMdep)
+ List foundCodMdep = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getCodMdep)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -200,18 +197,20 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
//Definizione del filtro ordine da applicare a tutti i colli generati
- Stream.of(flatOrderArray).forEach(x -> {
- defaultFiltroOrdine.add(new FiltroOrdineDTO()
- .setDataOrd(x.getData())
- .setNumOrd(x.getNumero())
- .setGestioneOrd(x.getGestione()));
+ Stream.of(mTestateOrdini).forEach(x -> {
+ FiltroOrdineDTO filtro = new FiltroOrdineDTO()
+ .setDataOrd(x.getDataOrdD())
+ .setNumOrd(x.getNumOrd())
+ .setGestioneOrd(x.getGestione());
+
+ if(defaultFiltroOrdine.contains(filtro)) defaultFiltroOrdine.add(filtro);
});
//Definizione del codAnag
- List foundCodAnag = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getCodAnagOrd)
+ List foundCodAnag = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getCodAnagOrd)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -222,8 +221,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
//Definizione del rifOrd
- List foundRifOrd = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getRifOrd)
+ List foundRifOrd = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getRifOrd)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -234,8 +233,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
//Definizione del numOrd
- List foundNumOrd = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getNumero)
+ List foundNumOrd = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getNumOrd)
.withoutNulls()
.distinctBy(x -> x)
.toList();
@@ -246,8 +245,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
//Definizione del dataOrd
- List foundDataOrd = Stream.of(flatOrderArray)
- .map(OrdineVenditaGroupedInevasoDTO.Ordine::getData)
+ List foundDataOrd = Stream.of(mTestateOrdini)
+ .map(OrdineVenditaInevasoDTO::getDataOrdD)
.withoutNulls()
.distinctBy(x -> x)
.toList();
diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/CheckBoxThreeStates.java b/app/src/main/java/it/integry/integrywmsnative/ui/CheckBoxThreeStates.java
new file mode 100644
index 00000000..62cf64fd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/ui/CheckBoxThreeStates.java
@@ -0,0 +1,293 @@
+package it.integry.integrywmsnative.ui;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.ViewDebug;
+
+import androidx.annotation.ArrayRes;
+import androidx.appcompat.widget.AppCompatCheckBox;
+
+import it.integry.integrywmsnative.R;
+
+public class CheckBoxThreeStates extends AppCompatCheckBox {
+
+
+ private boolean mBroadcasting;
+ private boolean mIndeterminate;
+
+ private OnCheckedChangeListener mOnCheckedChangeListener;
+
+
+ private static final int[] INDETERMINATE_STATE_SET = {
+// R.attr.state_indeterminate
+ };
+
+ private static final int[] DEFAULT_CYCLE = {
+ 1, 0, 1, 0
+ };
+
+ private int[] mCycle = DEFAULT_CYCLE;
+
+// public CheckBoxThreeStates(final Context context) {
+// this(context, null);
+// }
+
+// public CheckBoxThreeStates(final Context context, final AttributeSet attrs) {
+// this(context, attrs, R.attr.checkbox3Style);
+// }
+
+ public CheckBoxThreeStates(final Context context, final AttributeSet attrs, final int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+/*
+ final TypedArray a =
+ context.obtainStyledAttributes(attrs, R.styleable.CheckBox3, defStyleAttr, R.style.Widget_Checkbox3);
+
+ try {
+
+ if (a.hasValue(R.styleable.CheckBox3_checkbox3_checkableCycle)) {
+ int cycleRes = a.getResourceId(R.styleable.CheckBox3_checkbox3_checkableCycle, 0);
+ if (cycleRes != 0) {
+ setCycle(getResources().getIntArray(cycleRes));
+ }
+ }
+
+ if (a.hasValue(R.styleable.CheckBox3_android_fontFamily)) {
+ final String font = a.getString(R.styleable.CheckBox3_android_fontFamily);
+ setTypeface(TypefaceUtils.loadFromAsset(getResources().getAssets(), font));
+ }
+
+ final boolean indeterminate = a.getBoolean(R.styleable.CheckBox3_checkbox3_indeterminate, false);
+ final boolean checked = a.getBoolean(R.styleable.CheckBox3_android_checked, false);
+
+ mBroadcasting = true;
+
+ int index = getStateIndex(checked, indeterminate);
+ if (!isValidStateIndex(index)) {
+ index = getFirstValidStateIndex(index);
+ }
+ moveToState(index);
+
+ } finally {
+ a.recycle();
+ }
+ */
+ }
+
+ public void setCycle(@ArrayRes final int cycleRes) {
+ setCycle(getResources().getIntArray(cycleRes));
+ }
+
+ /**
+ * Change the cycle used to determine the next state of the checkbox when the user
+ * click the component, or when the {@link #toggle()} is called.
+ * The value passed is an array of 4 integer elements, representing the state of the checkbox.
+ * The value of each element can be 0 or 1, with 0 to disable the state and 1 to enable the state.
+ * The states are (in order):
+ *
+ *
Checked
+ *
Indeterminate (checked)
+ *
Unchecked
+ *
Indeterminate (unchecked)
+ *
+ * So if a cycle like this one is used:
+ * int[] cycle = new int[]{1,0,1,0}
+ * the checkbox will only cycle between checked and unchecked state.
+ * The default cycle is: {1,0,1,0}
+ *
+ *
The method throws an exception if the array is not valid. A valid array must match the following rules:
+ *
+ *
If not null, must have 4 elements
+ *
At least 2 elements must be not equal to 0
+ *
+ *
+ * @param cycle change the cycle
+ */
+ public void setCycle(final int[] cycle) {
+ validateCycle(cycle);
+ mCycle = cycle == null ? DEFAULT_CYCLE : cycle;
+ }
+
+ /**
+ * Move to the next state of the checkbox
+ */
+ @Override
+ public void toggle() {
+ if (null == mCycle) return;
+
+ final int currentIndex = getCurrentStateIndex();
+ moveToNextState(currentIndex);
+ }
+
+ @Override
+ public void setChecked(boolean checked) {
+ if (null == mCycle) return;
+
+ int index = getStateIndex(checked, isIndeterminate());
+ if (!isValidStateIndex(index)) {
+ return;
+ }
+
+ super.setChecked(checked);
+ }
+
+ /**
+ * Change the state of the checkbox
+ *
+ * @param checked
+ * @param indeterminate
+ */
+ public void setChecked(boolean checked, boolean indeterminate) {
+ if (null == mCycle) return;
+
+ if (isChecked() == checked) {
+ setIndeterminate(indeterminate);
+ } else {
+ mIndeterminate = indeterminate;
+ }
+ setChecked(checked);
+ }
+
+ @ViewDebug.ExportedProperty
+ public boolean isIndeterminate() {
+ return mIndeterminate;
+ }
+
+ public void setIndeterminate(boolean indeterminate) {
+ if (null == mCycle) return;
+
+ int index = getStateIndex(isChecked(), indeterminate);
+ if (!isValidStateIndex(index)) {
+ return;
+ }
+
+ setIndeterminateImpl(indeterminate, true);
+ }
+
+ private void moveToNextState(final int index) {
+ int nextIndex = getNextValidIndex(index);
+ boolean checked = nextIndex < 2;
+ mIndeterminate = nextIndex == 1 || nextIndex == 3;
+ setChecked(checked);
+ }
+
+ private void moveToState(final int nextIndex) {
+ if (!isValidStateIndex(nextIndex)) {
+ }
+ boolean checked = nextIndex < 2;
+ mIndeterminate = nextIndex == 1 || nextIndex == 3;
+ setChecked(checked);
+ }
+
+
+ private void validateCycle(final int[] cycle) {
+ if (null == cycle) {
+ return;
+ }
+ if (cycle.length != 4) {
+ throw new IllegalArgumentException("Invalid cycle length. Expected 4 an array or 4 int");
+ }
+
+ int total = 0;
+ for (final int i1 : cycle) {
+ if (i1 != 0) {
+ total++;
+ }
+ }
+ if (total < 2) {
+ throw new IllegalArgumentException("Invalid cycle. At least 2 elements must be positive");
+ }
+ }
+
+ private int getCurrentStateIndex() {
+ return getStateIndex(isChecked(), isIndeterminate());
+ }
+
+ private int getStateIndex(boolean checked, boolean indeterminate) {
+ int index = 0;
+ if (checked) {
+ index += indeterminate ? 1 : 0;
+ } else {
+ index = indeterminate ? 3 : 2;
+ }
+ return index;
+ }
+
+ private int getFirstValidStateIndex(int index) {
+ int i = index;
+ while (i >= 0) {
+ if (mCycle[i] != 0) return i;
+ i--;
+ }
+
+ i = index;
+ while (i < mCycle.length) {
+ if (mCycle[i] != 0) return i;
+ i++;
+ }
+
+ return -1;
+ }
+
+ private boolean isValidStateIndex(int index) {
+ return mCycle[index] != 0;
+ }
+
+ private int getNextValidIndex(int index) {
+ int nextIndex = index + 1 >= mCycle.length ? 0 : index + 1;
+ if (mCycle[nextIndex] != 0) {
+ return nextIndex;
+ }
+ return getNextValidIndex(nextIndex);
+ }
+
+ @Override
+ public void setOnCheckedChangeListener(final OnCheckedChangeListener listener) {
+ super.setOnCheckedChangeListener(listener);
+ mOnCheckedChangeListener = listener;
+ }
+
+ @Override
+ protected int[] onCreateDrawableState(int extraSpace) {
+ final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
+ if (isIndeterminate()) {
+ mergeDrawableStates(drawableState, INDETERMINATE_STATE_SET);
+ }
+ return drawableState;
+ }
+
+ @Override
+ protected void drawableStateChanged() {
+ super.drawableStateChanged();
+ }
+
+ private void setIndeterminateImpl(boolean indeterminate, boolean notify) {
+ if (mIndeterminate != indeterminate) {
+ mIndeterminate = indeterminate;
+ refreshDrawableState();
+ if (notify) {
+ notifyStateListener();
+ }
+ }
+ }
+
+ private void notifyStateListener() {
+ if (mBroadcasting) {
+ return;
+ }
+
+ mBroadcasting = true;
+
+ if (mOnCheckedChangeListener != null) {
+ mOnCheckedChangeListener.onCheckedChanged(this, isChecked());
+ }
+ mBroadcasting = false;
+
+ }
+
+ @Override
+ public CharSequence getAccessibilityClassName() {
+ return CheckBoxThreeStates.class.getName();
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
index b288d59a..190a6064 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
@@ -5,6 +5,7 @@ import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.res.ColorStateList;
+
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
@@ -40,6 +41,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
+import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding;
@@ -371,6 +373,8 @@ public class DialogInputQuantity {
quantityDTO.expireDate = c.getTime();
}
+ refreshQtaDescriptionText();
+
}
@@ -502,6 +506,8 @@ public class DialogInputQuantity {
}
}
+
+// refreshQtaDescriptionText();
}
});
@@ -537,6 +543,7 @@ public class DialogInputQuantity {
}
}
+// refreshQtaDescriptionText();
}
});
@@ -567,6 +574,8 @@ public class DialogInputQuantity {
}
}
+
+// refreshQtaDescriptionText();
}
});
@@ -627,6 +636,42 @@ public class DialogInputQuantity {
}
+ private void refreshQtaDescriptionText() {
+
+ int numConf = (int) (currentQuantityDto.qtaDaEvadere.get() / currentQuantityDto.qtaCnf.get());
+ float qtaTot = currentQuantityDto.qtaDaEvadere.get().floatValue();
+
+ float mod = qtaTot % numConf;
+
+ String text = "";
+
+ if(numConf > 0) {
+ text += "" + numConf + " " + currentContext.getResources().getQuantityString(R.plurals.item_package, numConf).toUpperCase() + "";
+ }
+ if(numConf > 0 && mod > 0) {
+ text += " e ";
+ }
+ if(mod > 0) {
+
+ text += "" + UtilityNumber.decimalToString(mod) + " ";
+ if(mod == 1) {
+ text += currentContext.getResources().getQuantityString(R.plurals.pieces, (int) mod).toUpperCase();
+ } else {
+ text += currentContext.getString(R.string.piece).toUpperCase();
+ }
+
+ text += "";
+
+
+
+ }
+
+ currentBinding.qtaDescriptionText.setText(Html.fromHtml(text));
+
+ }
+
+
+
private void onConfirm(Context context, QuantityDTO quantityDTO, RunnableArgss dialogCallback, boolean closeUL){
if(currentDTO.mtbAart.isFlagTracciabilita() && (quantityDTO.batchLot == null || quantityDTO.batchLot.get().trim().length() == 0)){
diff --git a/app/src/main/res/layout/dialog_input_quantity_articolo.xml b/app/src/main/res/layout/dialog_input_quantity_articolo.xml
index ab6504e0..f6283472 100644
--- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml
+++ b/app/src/main/res/layout/dialog_input_quantity_articolo.xml
@@ -213,6 +213,15 @@
+
+
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
index ff200a73..cb8f6806 100644
--- a/app/src/main/res/layout/fragment_main.xml
+++ b/app/src/main/res/layout/fragment_main.xml
@@ -429,51 +429,51 @@
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
+
diff --git a/app/src/main/res/layout/vendita_main_list_group_model.xml b/app/src/main/res/layout/vendita_main_list_group_model.xml
index 677ad4ce..20fc1109 100644
--- a/app/src/main/res/layout/vendita_main_list_group_model.xml
+++ b/app/src/main/res/layout/vendita_main_list_group_model.xml
@@ -1,52 +1,91 @@
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+ android:paddingStart="2dp"
+ android:paddingEnd="4dp">
-
-
+ android:paddingStart="2dp"
+ android:paddingEnd="8dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:layout_toEndOf="@id/empty_view"
+ android:background="@color/full_white">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/vendita_main_list_model.xml b/app/src/main/res/layout/vendita_main_list_model.xml
index 8cd747b2..8934bb9b 100644
--- a/app/src/main/res/layout/vendita_main_list_model.xml
+++ b/app/src/main/res/layout/vendita_main_list_model.xml
@@ -1,3 +1,4 @@
+
-
+
+
+
+
+
+
+
+
+
+ android:paddingStart="12dp"
+ android:paddingTop="8dp"
+ android:paddingEnd="8dp"
+ android:paddingBottom="8dp">
-
+
-
\ 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 b6edd4b4..31a9a986 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -77,6 +77,14 @@
%d ordine]]>%d ordini]]>
+
+ @string/piece
+ pezzi
+
+
+ confezione
+ confezioni
+ Chiudi ULArticoli presentiOrdini
@@ -85,6 +93,7 @@
DataPosizionePreparato da
+ Pezzo
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 8d337f0c..d13bfbdb 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -25,6 +25,7 @@
#E8F0FE
+ #C9D5F0
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f58d92bf..764bf300 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -75,6 +75,14 @@
%d order selected]]>%d orders selected]]>
+
+ @string/piece
+ pieces
+
+
+ package
+ packages
+ Close LUSubmitted itemsOrders
@@ -86,7 +94,7 @@
Picking not availablePlease scan an item barcodeExtra item
-
+ Piecebetween 3 and 30 alphanumeric charactersenter a valid username
diff --git a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
index 9e04adaa..ac61c630 100644
--- a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
@@ -10,13 +10,13 @@ import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
public class OrdiniVendita implements IOrdiniVendita {
@Override
- public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
UtilityToast.showToast("Avviato metodo in BaseFeature");
ColliMagazzinoRESTConsumer.distribuisciCollo(mtbColt, SettingsManager.iDB().getDefaultCriterioDistribuzione(),
diff --git a/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
index e0adf794..048472d1 100644
--- a/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
@@ -10,13 +10,13 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityToast;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
public class OrdiniVendita implements IOrdiniVendita {
@Override
- public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
UtilityToast.showToast("Avviato metodo in BaseFeature");
ColliMagazzinoRESTConsumer.distribuisciCollo(mtbColt, SettingsManager.iDB().getDefaultCriterioDistribuzione(),
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
index 82cb0836..438ebcf9 100644
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
@@ -11,14 +11,14 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
public class OrdiniVendita implements IOrdiniVendita {
@Override
- public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
- String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep();
+ String codMdepOrder = testateOrdini.get(0).getCodMdep();
//Se il deposito del collo รจ diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente
//su un altro deposito