diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index 1338d8bc..7cc9fb08 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -23,7 +23,7 @@
@@ -33,7 +33,7 @@
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 77923a7e..3316d15e 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d70e7d87..6d39ff28 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -28,6 +28,10 @@
android:name=".gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustNothing" />
+
@@ -38,7 +42,7 @@
+ android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
\ No newline at end of file
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
new file mode 100644
index 00000000..0e9e5ea1
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/FiltroOrdineDTO.java
@@ -0,0 +1,50 @@
+package it.integry.integrywmsnative.core.model;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class FiltroOrdineDTO {
+
+ private String gestioneOrd;
+ private String dataOrd;
+ private int numOrd;
+
+ public String getGestioneOrd() {
+ return gestioneOrd;
+ }
+
+ public FiltroOrdineDTO setGestioneOrd(String gestioneOrd) {
+ this.gestioneOrd = gestioneOrd;
+ return this;
+ }
+
+ public String getDataOrdS() {
+ return dataOrd;
+ }
+
+ public Date getDataOrdD() throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ return sdf.parse(getDataOrdS());
+ }
+
+ public FiltroOrdineDTO setDataOrd(String dataOrd) {
+ this.dataOrd = dataOrd;
+ return this;
+ }
+
+ public FiltroOrdineDTO setDataOrd(Date dataOrd) {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ this.dataOrd = sdf.format(dataOrd);
+ return this;
+ }
+
+ public int getNumOrd() {
+ return numOrd;
+ }
+
+ public FiltroOrdineDTO setNumOrd(int numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
index dbaed722..418878ac 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
@@ -4,12 +4,14 @@ import android.databinding.ObservableArrayList;
import android.os.Parcel;
import android.os.Parcelable;
+import com.annimon.stream.Stream;
+
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -618,5 +620,30 @@ public class MtbColt extends EntityBase implements Parcelable {
+ public void generaFiltroOrdineFromDTO(List filtroOrdineDtos) {
+
+ String xmlPrefix = "";
+ String xmlSuffix = "";
+
+ StringBuilder xmlContent = new StringBuilder();
+
+ if(filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
+
+ for(int i = 0; i < filtroOrdineDtos.size(); i++){
+ FiltroOrdineDTO x = filtroOrdineDtos.get(i);
+
+ try {
+ xmlContent.append("" + x.getGestioneOrd() + "" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "" + x.getNumOrd() + "");
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ this.filtroOrdini = xmlPrefix + xmlContent + xmlSuffix;
+ }
+
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
index d04b81bf..64519347 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
@@ -73,12 +73,15 @@ public class AccettazioneOrdineInevasoHelper {
if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
}
- Collections.sort(codArtForns, (str1, str2) -> {
- if(str1 != null && str2 != null) {
- return str1.compareToIgnoreCase(str2);
- }
- return 0;
- });
+ codArtForns = Stream.of(codArtForns)
+ .sortBy(x -> x).toList();
+
+// Collections.sort(codArtForns, (str1, str2) -> {
+// if(str1 != null && str2 != null) {
+// return str1.compareToIgnoreCase(str2);
+// }
+// return 0;
+// });
List> groupedRighe = new ArrayList<>();
for (String codArtForn : codArtForns) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/core/MainListListaColliAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/core/MainListListaColliAdapter.java
index e10624ee..24f09a27 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/core/MainListListaColliAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/core/MainListListaColliAdapter.java
@@ -19,6 +19,8 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter mDataset;
+ private View mEmptyView;
+
private IRecyclerItemClicked mOnItemClickListener;
public static class ViewHolder extends RecyclerView.ViewHolder {
@@ -36,12 +38,15 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter myDataset, IRecyclerItemClicked onItemClickListener) {
+ public MainListListaColliAdapter(Context context, ObservableArrayList myDataset, IRecyclerItemClicked onItemClickListener, View emptyView) {
mContext = context;
mDataset = myDataset;
+ mEmptyView = emptyView;
mOnItemClickListener = onItemClickListener;
myDataset.addOnListChangedCallback(onListChangedCallback);
+
+ checkIfEmpty();
}
@@ -78,33 +83,43 @@ public class MainListListaColliAdapter extends RecyclerView.Adapter>() {
@Override
public void onChanged(ObservableList sender) {
notifyDataSetChanged();
+ checkIfEmpty();
}
@Override
public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
notifyDataSetChanged();
+ checkIfEmpty();
}
@Override
public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
notifyDataSetChanged();
+ checkIfEmpty();
}
@Override
public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
notifyDataSetChanged();
+ checkIfEmpty();
}
@Override
public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
notifyDataSetChanged();
+ checkIfEmpty();
}
};
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
index 4a109ef2..c5477422 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
@@ -60,7 +60,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked {
mContext.bindings.listaColliMainList.addItemDecoration(itemDecorator);
- mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this);
+ mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView);
mContext.bindings.listaColliMainList.setAdapter(mAdapter);
mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
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 8edfefbf..deea11b3 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
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.vendita;
import android.app.ProgressDialog;
import android.content.Context;
+import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -25,6 +26,7 @@ import butterknife.OnClick;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment;
@@ -33,6 +35,7 @@ import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
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.view.dialogs.DialogSimpleMessageHelper;
public class MainVenditaFragment extends Fragment implements ITitledFragment {
@@ -123,9 +126,9 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
//Splitto gli ordini per codAnagOrd (Cliente)
Stream.of(ordini)
- .distinctBy(x -> x.codAnagOrd)
- .sortBy(x -> x.ragSocOrd)
- .map(x -> x.codAnagOrd + "#_#" + x.ragSocOrd)
+ .distinctBy(OrdineVenditaInevasoDTO::getCodAnagOrd)
+ .sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
+ .map(x -> x.getCodAnagOrd() + "#_#" + x.getRagSocOrd())
.forEach(anagOrd -> {
String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
@@ -140,42 +143,45 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
//Raggruppo gli ordini del singolo fornitore suddivisi per data, dataCons e numero
Stream.of(ordini)
- .filter(x -> x.codAnagOrd.equalsIgnoreCase(codAnagOrd))
- .distinctBy(x -> x.data + " - " + x.dataCons + " - " + x.numero)
+ .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd))
+ .distinctBy(x -> x.getDataOrdS() + " - " + x.getDataConsS() + " - " + x.getNumOrd())
.forEach(ord -> {
OrdineVenditaGroupedInevasoDTO.Ordine rigaOrdine = new OrdineVenditaGroupedInevasoDTO.Ordine();
- rigaOrdine.data = ord.data;
- rigaOrdine.numero = ord.numero;
- rigaOrdine.codAnagOrd = ord.codAnagOrd;
- rigaOrdine.ragSocOrd = ord.ragSocOrd;
- rigaOrdine.pesoTotale = ord.pesoTotale;
- rigaOrdine.barcode = ord.barcode;
- rigaOrdine.termCons = ord.termCons;
- rigaOrdine.dataCons = ord.dataCons;
- rigaOrdine.rifOrd = ord.rifOrd;
+ rigaOrdine
+ .setData(ord.getDataOrdS())
+ .setNumero(ord.getNumOrd())
+ .setCodAnagOrd(ord.getCodAnagOrd())
+ .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());
+
rigaOrdine.clienti = new ArrayList<>();
//Leggo tutti i clienti dell'ordine corrente
Stream.of(ordini)
- .filter(x -> x.codAnagOrd.equalsIgnoreCase(codAnagOrd) &&
- x.numero == ord.numero &&
- x.data.equalsIgnoreCase(ord.data) &&
- x.dataCons.equalsIgnoreCase(ord.dataCons))
- .distinctBy(x -> x.codJcom)
+ .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.codJcom;
- cliente.ragSocCom = ordCliente.ragSocCom;
- cliente.descrCom = ordCliente.descrizioneCom;
- cliente.dataCons = ordCliente.dataCons;
- cliente.numCnf = ordCliente.numCnf;
- cliente.rifOrd = ordCliente.rifOrd;
+ 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);
@@ -219,10 +225,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
for(OrdineVenditaGroupedInevasoDTO ordine : selectedOrders){
for(OrdineVenditaGroupedInevasoDTO.Ordine righeOrd : ordine.ordini){
- if(!barcodes.contains(righeOrd.barcode)) barcodes.add(righeOrd.barcode);
+ if(!barcodes.contains(righeOrd.getBarcode())) barcodes.add(righeOrd.getBarcode());
- if(dataCons == null) dataCons = righeOrd.dataCons;
- else if(!dataCons.equalsIgnoreCase(righeOrd.dataCons)) dataCons = "";
+ if(dataCons == null) dataCons = righeOrd.getDataConsS();
+ else if(!dataCons.equalsIgnoreCase(righeOrd.getDataConsS())) dataCons = "";
}
}
@@ -238,7 +244,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
progress.dismiss();
- List codMarts = Stream.of(ordini).distinctBy(x -> x.codMart).map(x -> x.codMart).toList();
+ List codMarts = Stream.of(ordini)
+ .distinctBy(PickingObjectDTO::getCodMart)
+ .map(PickingObjectDTO::getCodMart)
+ .toList();
int alreadyRegisteredUL = mtbColtList.size();
@@ -252,9 +261,11 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment {
null,
() -> {
-// Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
-// myIntent.putExtra("key", (ArrayList) ordini); //Optional parameters
-// getActivity().startActivity(myIntent);
+ Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
+ myIntent.putExtra("keyPickingList", (ArrayList) ordini); //Optional parameters
+ myIntent.putExtra("keyTestateOrdini", (ArrayList)selectedOrders);
+ myIntent.putExtra("keyColliRegistrati", (ArrayList)mtbColtList);
+ getActivity().startActivity(myIntent);
}).show();
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 e43b99c9..ee85308b 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
@@ -127,11 +127,11 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter clienti;
public boolean checkBox;
public List checkBoxCallback = new ArrayList<>();
+
+
+
public void setCheckbox(boolean newValue){
checkBox = newValue;
if(checkBoxCallback != null && checkBoxCallback.size() > 0) {
@@ -42,8 +49,6 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
}
}
- public List clienti;
-
public Date getData(){
try {
@@ -54,7 +59,70 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
return null;
}
- public Date getDataCons(){
+ 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 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) {
@@ -62,6 +130,52 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
}
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 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 Ordine(){}
protected Ordine(Parcel in) {
@@ -75,11 +189,12 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
dataCons = in.readString();
rifOrd = in.readString();
if (in.readByte() == 0x01) {
- clienti = new ArrayList();
+ clienti = new ArrayList<>();
in.readList(clienti, Cliente.class.getClassLoader());
} else {
clienti = null;
}
+ gestione = in.readString();
}
@Override
@@ -109,6 +224,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
dest.writeByte((byte) (0x01));
dest.writeList(clienti);
}
+ dest.writeString(gestione);
}
@SuppressWarnings("unused")
@@ -131,7 +247,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
public String ragSocCom;
public int idRiga;
public String dataCons;
- public Integer numCnf;
+ public Float numCnf;
public String descrCom;
public String rifOrd;
@@ -151,7 +267,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
ragSocCom = in.readString();
idRiga = in.readInt();
dataCons = in.readString();
- numCnf = in.readByte() == 0x00 ? null : in.readInt();
+ numCnf = in.readByte() == 0x00 ? null : in.readFloat();
descrCom = in.readString();
rifOrd = in.readString();
}
@@ -171,7 +287,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
dest.writeByte((byte) (0x00));
} else {
dest.writeByte((byte) (0x01));
- dest.writeInt(numCnf);
+ dest.writeFloat(numCnf);
}
dest.writeString(descrCom);
dest.writeString(rifOrd);
@@ -197,7 +313,7 @@ public class OrdineVenditaGroupedInevasoDTO implements Cloneable, Serializable,
codAnagClie = in.readString();
nomeCliente = in.readString();
if (in.readByte() == 0x01) {
- ordini = new ArrayList();
+ ordini = new ArrayList<>();
in.readList(ordini, Ordine.class.getClassLoader());
} else {
ordini = null;
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 5f80d7dd..17e49370 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
@@ -1,23 +1,444 @@
package it.integry.integrywmsnative.gest.vendita.dto;
-public class OrdineVenditaInevasoDTO {
- public String data;
- public int numero;
- public String termCons;
- public String codAuto;
- public String descrizioneAuto;
- public String rifOrd;
- public String codVvet;
- public String descrizioneVettore;
- public String dataInizTrasp;
- public String codJcom = "";
- public String descrizioneCom = "";
- public String codAnagOrd = "";
- public String ragSocOrd = "";
- public String ragSocCom = "";
- public Float pesoTotale;
- public Integer numCnf;
- public String dataCons;
- public String barcode;
+import android.os.Parcel;
+import android.os.Parcelable;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class OrdineVenditaInevasoDTO implements Parcelable {
+
+ private String data;
+ private Integer numero;
+ private String gestione;
+ private String listino;
+ private String termCons;
+ private String codAuto;
+ private String descrizioneAuto;
+ private String codVvet;
+ private String descrizioneVettore;
+ private String dataInizTrasp;
+ private String descrizionePaga;
+ private String rifOrd;
+ private String codAnagOrd;
+ private String codJcom;
+ private String descrizioneCom;
+ private String ragSocCom;
+ private String ragSocOrd;
+ private String destinatario;
+ private String citta;
+ private String provincia;
+ private String indirizzo;
+ private BigDecimal pesoTotale;
+ private BigDecimal numCnfdaEvadere;
+ private BigDecimal numCnfDisp;
+ private String dataCons;
+ private String barcode;
+ private Integer numRighe;
+ private Integer righeInPartenza;
+ private BigDecimal saldoContabile;
+ private String codVzon;
+ private String ragSocOrdV;
+
+
+ protected OrdineVenditaInevasoDTO(Parcel in) {
+ data = in.readString();
+ if (in.readByte() == 0) {
+ numero = null;
+ } else {
+ numero = in.readInt();
+ }
+ gestione = in.readString();
+ listino = in.readString();
+ termCons = in.readString();
+ codAuto = in.readString();
+ descrizioneAuto = in.readString();
+ codVvet = in.readString();
+ descrizioneVettore = in.readString();
+ dataInizTrasp = in.readString();
+ descrizionePaga = in.readString();
+ rifOrd = in.readString();
+ codAnagOrd = in.readString();
+ codJcom = in.readString();
+ descrizioneCom = in.readString();
+ ragSocCom = in.readString();
+ ragSocOrd = in.readString();
+ destinatario = in.readString();
+ citta = in.readString();
+ provincia = in.readString();
+ indirizzo = in.readString();
+ dataCons = in.readString();
+ barcode = in.readString();
+ if (in.readByte() == 0) {
+ numRighe = null;
+ } else {
+ numRighe = in.readInt();
+ }
+ if (in.readByte() == 0) {
+ righeInPartenza = null;
+ } else {
+ righeInPartenza = in.readInt();
+ }
+ codVzon = in.readString();
+ ragSocOrdV = in.readString();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeString(data);
+ if (numero == null) {
+ dest.writeByte((byte) 0);
+ } else {
+ dest.writeByte((byte) 1);
+ dest.writeInt(numero);
+ }
+ dest.writeString(gestione);
+ dest.writeString(listino);
+ dest.writeString(termCons);
+ dest.writeString(codAuto);
+ dest.writeString(descrizioneAuto);
+ dest.writeString(codVvet);
+ dest.writeString(descrizioneVettore);
+ dest.writeString(dataInizTrasp);
+ dest.writeString(descrizionePaga);
+ dest.writeString(rifOrd);
+ dest.writeString(codAnagOrd);
+ dest.writeString(codJcom);
+ dest.writeString(descrizioneCom);
+ dest.writeString(ragSocCom);
+ dest.writeString(ragSocOrd);
+ dest.writeString(destinatario);
+ dest.writeString(citta);
+ dest.writeString(provincia);
+ dest.writeString(indirizzo);
+ dest.writeString(dataCons);
+ dest.writeString(barcode);
+ if (numRighe == null) {
+ dest.writeByte((byte) 0);
+ } else {
+ dest.writeByte((byte) 1);
+ dest.writeInt(numRighe);
+ }
+ if (righeInPartenza == null) {
+ dest.writeByte((byte) 0);
+ } else {
+ dest.writeByte((byte) 1);
+ dest.writeInt(righeInPartenza);
+ }
+ dest.writeString(codVzon);
+ dest.writeString(ragSocOrdV);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public OrdineVenditaInevasoDTO createFromParcel(Parcel in) {
+ return new OrdineVenditaInevasoDTO(in);
+ }
+
+ @Override
+ public OrdineVenditaInevasoDTO[] newArray(int size) {
+ return new OrdineVenditaInevasoDTO[size];
+ }
+ };
+
+ public String getDataOrdS() {
+ return data;
+ }
+
+ public Date getDataOrdD() throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ return sdf.parse(getDataOrdS());
+ }
+
+ public OrdineVenditaInevasoDTO setData(String data) {
+ this.data = data;
+ return this;
+ }
+
+ public Integer getNumOrd() {
+ return numero;
+ }
+
+ public OrdineVenditaInevasoDTO setNumero(Integer numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public OrdineVenditaInevasoDTO setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+
+ public String getListino() {
+ return listino;
+ }
+
+ public OrdineVenditaInevasoDTO setListino(String listino) {
+ this.listino = listino;
+ return this;
+ }
+
+ public String getTermCons() {
+ return termCons;
+ }
+
+ public OrdineVenditaInevasoDTO setTermCons(String termCons) {
+ this.termCons = termCons;
+ return this;
+ }
+
+ public String getCodAuto() {
+ return codAuto;
+ }
+
+ public OrdineVenditaInevasoDTO setCodAuto(String codAuto) {
+ this.codAuto = codAuto;
+ return this;
+ }
+
+ public String getDescrizioneAuto() {
+ return descrizioneAuto;
+ }
+
+ public OrdineVenditaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
+ this.descrizioneAuto = descrizioneAuto;
+ return this;
+ }
+
+ public String getCodVvet() {
+ return codVvet;
+ }
+
+ public OrdineVenditaInevasoDTO setCodVvet(String codVvet) {
+ this.codVvet = codVvet;
+ return this;
+ }
+
+ public String getDescrizioneVettore() {
+ return descrizioneVettore;
+ }
+
+ public OrdineVenditaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
+ this.descrizioneVettore = descrizioneVettore;
+ return this;
+ }
+
+ public String getDataInizTraspS() {
+ return dataInizTrasp;
+ }
+
+ public Date getDataInizTraspD() throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ return sdf.parse(getDataInizTraspS());
+ }
+
+ public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
+ this.dataInizTrasp = dataInizTrasp;
+ return this;
+ }
+
+ public String getDescrizionePaga() {
+ return descrizionePaga;
+ }
+
+ public OrdineVenditaInevasoDTO setDescrizionePaga(String descrizionePaga) {
+ this.descrizionePaga = descrizionePaga;
+ return this;
+ }
+
+ public String getRifOrd() {
+ return rifOrd;
+ }
+
+ public OrdineVenditaInevasoDTO setRifOrd(String rifOrd) {
+ this.rifOrd = rifOrd;
+ return this;
+ }
+
+ public String getCodAnagOrd() {
+ return codAnagOrd;
+ }
+
+ public OrdineVenditaInevasoDTO setCodAnagOrd(String codAnagOrd) {
+ this.codAnagOrd = codAnagOrd;
+ return this;
+ }
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+
+ public OrdineVenditaInevasoDTO setCodJcom(String codJcom) {
+ this.codJcom = codJcom;
+ return this;
+ }
+
+ public String getDescrizioneCom() {
+ return descrizioneCom;
+ }
+
+ public OrdineVenditaInevasoDTO setDescrizioneCom(String descrizioneCom) {
+ this.descrizioneCom = descrizioneCom;
+ return this;
+ }
+
+ public String getRagSocCom() {
+ return ragSocCom;
+ }
+
+ public OrdineVenditaInevasoDTO setRagSocCom(String ragSocCom) {
+ this.ragSocCom = ragSocCom;
+ return this;
+ }
+
+ public String getRagSocOrd() {
+ return ragSocOrd;
+ }
+
+ public OrdineVenditaInevasoDTO setRagSocOrd(String ragSocOrd) {
+ this.ragSocOrd = ragSocOrd;
+ return this;
+ }
+
+ public String getDestinatario() {
+ return destinatario;
+ }
+
+ public OrdineVenditaInevasoDTO setDestinatario(String destinatario) {
+ this.destinatario = destinatario;
+ return this;
+ }
+
+ public String getCitta() {
+ return citta;
+ }
+
+ public OrdineVenditaInevasoDTO setCitta(String citta) {
+ this.citta = citta;
+ return this;
+ }
+
+ public String getProvincia() {
+ return provincia;
+ }
+
+ public OrdineVenditaInevasoDTO setProvincia(String provincia) {
+ this.provincia = provincia;
+ return this;
+ }
+
+ public String getIndirizzo() {
+ return indirizzo;
+ }
+
+ public OrdineVenditaInevasoDTO setIndirizzo(String indirizzo) {
+ this.indirizzo = indirizzo;
+ return this;
+ }
+
+ public BigDecimal getPesoTotale() {
+ return pesoTotale;
+ }
+
+ public OrdineVenditaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
+ this.pesoTotale = pesoTotale;
+ return this;
+ }
+
+ public BigDecimal getNumCnfdaEvadere() {
+ return numCnfdaEvadere;
+ }
+
+ public OrdineVenditaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
+ this.numCnfdaEvadere = numCnfdaEvadere;
+ return this;
+ }
+
+ public BigDecimal getNumCnfDisp() {
+ return numCnfDisp;
+ }
+
+ public OrdineVenditaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
+ this.numCnfDisp = numCnfDisp;
+ return this;
+ }
+
+ public String getDataConsS() {
+ return dataCons;
+ }
+
+ public Date getDataConsD() throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
+ return sdf.parse(getDataConsS());
+ }
+
+ public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
+
+ public String getBarcode() {
+ return barcode;
+ }
+
+ public OrdineVenditaInevasoDTO setBarcode(String barcode) {
+ this.barcode = barcode;
+ return this;
+ }
+
+ public Integer getNumRighe() {
+ return numRighe;
+ }
+
+ public OrdineVenditaInevasoDTO setNumRighe(Integer numRighe) {
+ this.numRighe = numRighe;
+ return this;
+ }
+
+ public Integer getRigheInPartenza() {
+ return righeInPartenza;
+ }
+
+ public OrdineVenditaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
+ this.righeInPartenza = righeInPartenza;
+ return this;
+ }
+
+ public BigDecimal getSaldoContabile() {
+ return saldoContabile;
+ }
+
+ public OrdineVenditaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
+ this.saldoContabile = saldoContabile;
+ return this;
+ }
+
+ public String getCodVzon() {
+ return codVzon;
+ }
+
+ public OrdineVenditaInevasoDTO setCodVzon(String codVzon) {
+ this.codVzon = codVzon;
+ return this;
+ }
+
+ public String getRagSocOrdV() {
+ return ragSocOrdV;
+ }
+
+ public OrdineVenditaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
+ this.ragSocOrdV = ragSocOrdV;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java
index 96576aea..e742e99d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java
@@ -1,32 +1,162 @@
package it.integry.integrywmsnative.gest.vendita.dto;
+import android.os.Parcel;
+import android.os.Parcelable;
+
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
-public class PickingObjectDTO {
+public class PickingObjectDTO implements Parcelable {
- public Integer numCollo;
- public String gestione;
- public String serCollo;
- public String descrizioneEstesa;
- public String codJcom;
- public String codMart;
- public String posizione;
- public BigDecimal qtaCollo;
- public String dataCollo;
- public Integer idViaggio;
- public String codTagl;
- public String codCol;
- public String dataScad;
- public String codArtFor;
- public String partitaMag;
- public BigDecimal qtaOrd;
- public BigDecimal numCnfCollo;
- public BigDecimal numCnf;
- public String codAlis;
- public BigDecimal colliPedana;
+ private Integer numCollo;
+ private String gestione;
+ private String serCollo;
+ private String descrizioneEstesa;
+ private String codJcom;
+ private String codMart;
+ private String posizione;
+ private BigDecimal qtaCollo;
+ private String dataCollo;
+ private Integer idViaggio;
+ private String codTagl;
+ private String codCol;
+ private String dataScad;
+ private String codArtFor;
+ private String partitaMag;
+ private BigDecimal qtaOrd;
+ private BigDecimal numCnfCollo;
+ private BigDecimal numCnf;
+ private String codAlis;
+ private BigDecimal colliPedana;
+
+ private Boolean hidden = null;
+
+ protected PickingObjectDTO(Parcel in) {
+ if (in.readByte() == 0) {
+ numCollo = null;
+ } else {
+ numCollo = in.readInt();
+ }
+ gestione = in.readString();
+ serCollo = in.readString();
+ descrizioneEstesa = in.readString();
+ codJcom = in.readString();
+ codMart = in.readString();
+ posizione = in.readString();
+ dataCollo = in.readString();
+ if (in.readByte() == 0) {
+ idViaggio = null;
+ } else {
+ idViaggio = in.readInt();
+ }
+ codTagl = in.readString();
+ codCol = in.readString();
+ dataScad = in.readString();
+ codArtFor = in.readString();
+ partitaMag = in.readString();
+ codAlis = in.readString();
+ hidden = in.readByte() == 0x00 ? null : in.readByte() != 0x00;
+
+ if (in.readByte() == 0) {
+ qtaCollo = null;
+ } else {
+ qtaCollo = new BigDecimal(in.readFloat());
+ }
+ if (in.readByte() == 0) {
+ qtaOrd = null;
+ } else {
+ qtaOrd = new BigDecimal(in.readFloat());
+ }
+ if (in.readByte() == 0) {
+ numCnf = null;
+ } else {
+ numCnf = new BigDecimal(in.readFloat());
+ }
+ if (in.readByte() == 0) {
+ numCnfCollo = null;
+ } else {
+ numCnfCollo = new BigDecimal(in.readFloat());
+ }
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ if (numCollo == null) {
+ dest.writeByte((byte) 0);
+ } else {
+ dest.writeByte((byte) 1);
+ dest.writeInt(numCollo);
+ }
+ dest.writeString(gestione);
+ dest.writeString(serCollo);
+ dest.writeString(descrizioneEstesa);
+ dest.writeString(codJcom);
+ dest.writeString(codMart);
+ dest.writeString(posizione);
+ dest.writeString(dataCollo);
+ if (idViaggio == null) {
+ dest.writeByte((byte) 0);
+ } else {
+ dest.writeByte((byte) 1);
+ dest.writeInt(idViaggio);
+ }
+ dest.writeString(codTagl);
+ dest.writeString(codCol);
+ dest.writeString(dataScad);
+ dest.writeString(codArtFor);
+ dest.writeString(partitaMag);
+ dest.writeString(codAlis);
+ if (hidden == null) {
+ dest.writeByte((byte) (0x00));
+ } else {
+ dest.writeByte((byte) (0x01));
+ dest.writeByte((byte) (hidden ? 0x01 : 0x00));
+ }
+
+ if (qtaCollo == null) {
+ dest.writeByte((byte) (0x00));
+ } else {
+ dest.writeByte((byte) (0x01));
+ dest.writeFloat(qtaCollo.floatValue());
+ }
+ if (qtaOrd == null) {
+ dest.writeByte((byte) (0x00));
+ } else {
+ dest.writeByte((byte) (0x01));
+ dest.writeFloat(qtaOrd.floatValue());
+ }
+ if (numCnf == null) {
+ dest.writeByte((byte) (0x00));
+ } else {
+ dest.writeByte((byte) (0x01));
+ dest.writeFloat(numCnf.floatValue());
+ }
+ if (numCnfCollo == null) {
+ dest.writeByte((byte) (0x00));
+ } else {
+ dest.writeByte((byte) (0x01));
+ dest.writeFloat(numCnfCollo.floatValue());
+ }
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public PickingObjectDTO createFromParcel(Parcel in) {
+ return new PickingObjectDTO(in);
+ }
+
+ @Override
+ public PickingObjectDTO[] newArray(int size) {
+ return new PickingObjectDTO[size];
+ }
+ };
public Integer getNumCollo() {
return numCollo;
@@ -217,4 +347,13 @@ public class PickingObjectDTO {
this.colliPedana = colliPedana;
return this;
}
+
+ public Boolean isHidden() {
+ return hidden;
+ }
+
+ public PickingObjectDTO setHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
}
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
new file mode 100644
index 00000000..4de603c9
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java
@@ -0,0 +1,108 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso;
+
+import android.content.Intent;
+import android.databinding.DataBindingUtil;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.model.MtbColt;
+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.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel;
+import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
+
+public class VenditaOrdineInevasoActivity extends AppCompatActivity {
+
+
+ public ActivityVenditaOrdineInevasoBinding bindings;
+ private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
+ private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
+
+
+ private static final int PICK_UL_REQUEST = 1; // The request code
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ bindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
+ FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
+ mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
+
+ List pickingList = (ArrayList)getIntent().getSerializableExtra("keyPickingList");
+ List testateOrdini = (ArrayList)getIntent().getSerializableExtra("keyTestateOrdini");
+ List colliRegistrati = (ArrayList) getIntent().getSerializableExtra("keyColliRegistrati");
+ mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
+ this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
+
+ setSupportActionBar(this.bindings.toolbar);
+
+ setTitle(R.string.activity_vendita_inevaso_title);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ }
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ onBackPressed();
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+ if(mArticoliInColloBottomSheetViewModel.isExpanded()){
+ mArticoliInColloBottomSheetViewModel.collapse();
+ } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
+ mArticoliInColloBottomSheetViewModel.closeCurrentUL();
+ } else super.onBackPressed();
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.activity_vendita_ordine_inevaso, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle item selection
+ switch (item.getItemId()) {
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+
+ public void startListaBancaliRegistratiActivity(ArrayList mtbColts){
+ Intent myIntent = new Intent(this, ListaBancaliActivity.class);
+ myIntent.putExtra("key", mtbColts); //Optional parameters
+ myIntent.putExtra(ListaBancaliActivity.Key.CanRecoverUL, true);
+ this.startActivityForResult(myIntent, PICK_UL_REQUEST);
+ }
+
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ // Check which request we're responding to
+ if (requestCode == PICK_UL_REQUEST) {
+ // Make sure the request was successful
+ if (resultCode == RESULT_OK) {
+
+ MtbColt recoveredMtbColt = data.getParcelableExtra("key");
+
+ mVenditaOrdineInevasoViewModel.recoverUL(recoveredMtbColt);
+ }
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java
new file mode 100644
index 00000000..9e7849f0
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java
@@ -0,0 +1,227 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
+
+import android.content.Context;
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
+import android.graphics.Color;
+import android.support.v4.util.Pools;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.annimon.stream.Stream;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.CommonConst;
+import it.integry.integrywmsnative.core.utility.UtilityNumber;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
+
+public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter {
+
+ protected Context mContext;
+ protected List mDataset;
+ protected ObservableArrayList mObservableDataset;
+ protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
+
+ private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
+
+ public static class ViewHolder extends RecyclerView.ViewHolder {
+ // each data item is just a string in this case
+ protected View mGroupTitle;
+ protected LinearLayout mLinearLayoutGroupItemContainer;
+
+ protected List pool = new ArrayList<>();
+
+ public ViewHolder(View v) {
+ super(v);
+ }
+ }
+
+ public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList myDataset) {
+ mContext = context;
+ mObservableDataset = myDataset;
+
+
+ mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
+ mObservableDataset.addOnListChangedCallback(onListChangedCallback);
+ }
+
+ public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
+ mOrdineRowDispatch = ordineRowDispatch;
+ }
+
+ private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback>() {
+ @Override
+ public void onChanged(ObservableList sender) {
+ refreshNotHiddenElements();
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
+ refreshNotHiddenElements();
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
+ refreshNotHiddenElements();
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
+ refreshNotHiddenElements();
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
+ refreshNotHiddenElements();
+ notifyDataSetChanged();
+ }
+
+ private void refreshNotHiddenElements() {
+ mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
+ }
+ };
+
+
+ @Override
+ public MainListOrdineVenditaInevasoAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ // create a new view
+ View v = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.vendita_ordine_inevaso_main_list_model, parent, false);
+
+
+ ViewHolder vh = new ViewHolder(v);
+
+ TextView descrizioneArtForn = v.findViewById(R.id.vendita_ordine_inevaso_main_list__descrizione_gruppo);
+ vh.mGroupTitle = descrizioneArtForn;
+
+ LinearLayout groupItemContainer = v.findViewById(R.id.vendita_ordine_inevaso_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(MainListOrdineVenditaInevasoAdapter.ViewHolder holder, int position) {
+ ((TextView)holder.mGroupTitle).setText(mDataset.get(position).descrizioneGroup);
+
+ List subset = mDataset.get(position).rows;
+
+ int visibleElementsCounter = 0;
+
+ for(int i = 0; i < subset.size(); i++) {
+
+ final VenditaOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
+
+ if(!rowItem.getOriginalModel().isHidden()) {
+ visibleElementsCounter++;
+
+ View groupModelViewPool = (View) sPool.acquire();
+ if (groupModelViewPool == null) {
+ groupModelViewPool = LayoutInflater.from(mContext)
+ .inflate(R.layout.vendita_ordine_inevaso_main_list_child_group_model, holder.mLinearLayoutGroupItemContainer, false);
+ }
+
+ View groupModelView = groupModelViewPool;
+ holder.pool.add(groupModelView);
+
+ if (rowItem.getQtaRiservata().subtract(rowItem.getQtaOrdinata()).floatValue() >= 0 ) {
+ groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
+ } else if (rowItem.getQtaRiservata().floatValue() > 0) {
+ groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
+ } else if (visibleElementsCounter % 2 == 1) {
+ groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
+ } else {
+ groupModelView.setBackgroundColor(Color.WHITE);
+ }
+
+ final TextView badge1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge1);
+ badge1.setText(rowItem.getBadge1());
+
+ final TextView badge2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge2);
+ badge2.setText(rowItem.getBadge2());
+ badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
+
+
+ final TextView descrizione = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_descrizione);
+
+ String descrizioneString = rowItem.getDescrizione();
+ int descrizioneColor = Color.BLACK;
+
+ if (UtilityString.isNullOrEmpty(descrizioneString)) {
+ descrizioneString = mContext.getString(R.string.no_description);
+ descrizioneColor = Color.GRAY;
+ } else if (descrizioneString.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) {
+ descrizioneString = mContext.getString(R.string.stock);
+ }
+
+ descrizione.setText(descrizioneString);
+ descrizione.setTextColor(descrizioneColor);
+
+ final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
+ qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
+
+ final TextView qtaTot = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_tot);
+ qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
+
+
+ groupModelView.setOnClickListener(view -> {
+ if (mOrdineRowDispatch != null) {
+ mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
+ }
+ });
+
+ holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
+
+ }
+
+ }
+
+ }
+
+
+
+ @Override
+ public void onViewRecycled(MainListOrdineVenditaInevasoAdapter.ViewHolder holder){
+ if(holder != null){
+ for(int i = 0; i < holder.pool.size(); i++){
+ ((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
+ sPool.release(holder.pool.get(i));
+ }
+
+ holder.pool.clear();
+ }
+
+ super.onViewRecycled(holder);
+ }
+
+
+
+ // Return the size of your dataset (invoked by the layout manager)
+ @Override
+ public int getItemCount() {
+ return mDataset.size();
+ }
+
+
+ public interface IOnOrdineRowDispatchCallback {
+
+ void onOrdineRowDispatch(PickingObjectDTO item);
+
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java
new file mode 100644
index 00000000..fcf2422a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java
@@ -0,0 +1,114 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
+
+import android.content.Context;
+import android.databinding.ObservableArrayList;
+
+import com.annimon.stream.Stream;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
+
+public class VenditaOrdineInevasoHelper {
+
+ private Context mContext;
+
+ private ObservableArrayList mListViewModels = new ObservableArrayList<>();
+
+ public VenditaOrdineInevasoHelper(Context context){
+ mContext = context;
+ }
+
+ public MainListOrdineVenditaInevasoAdapter getRightListAdapter() {
+ return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels);
+ }
+
+ public void updateListModel(List> mDataset, List mtbColrs) throws Exception {
+
+ mListViewModels.clear();
+
+ mListViewModels.addAll(getListViewModelPerPosizione(mDataset, mtbColrs));
+
+ }
+
+ public List> getPickingListRaggruppataPerPosizione(List mPickingList, boolean forceHiddenCheck){
+
+ List listOfKnownPositions = Stream.of(mPickingList)
+ .map(PickingObjectDTO::getPosizione)
+ .distinctBy(x -> x)
+ .withoutNulls()
+ .sortBy(x -> x)
+ .toList();
+
+ listOfKnownPositions.add(null);
+
+ List> groupedRighe = new ArrayList<>();
+ for (String position : listOfKnownPositions) {
+
+ List tmpList = Stream.of(mPickingList)
+ .filter(x -> (x.getPosizione() == null && position == null) ||
+ (x.getPosizione() != null && x.getPosizione().equalsIgnoreCase(position))).toList();
+
+ for(int i = 0; i < tmpList.size(); i++){
+ if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
+ if (tmpList.get(i).getQtaCollo().floatValue() <= 0) {
+ tmpList.get(i).setHidden(true);
+ } else tmpList.get(i).setHidden(false);
+ }
+ }
+
+ if(tmpList.size() > 0){
+ groupedRighe.add(tmpList);
+ }
+
+ }
+
+ return groupedRighe;
+ }
+
+
+ public List getListViewModelPerPosizione(List> groupedRighe, List mtbColrs) {
+
+ List listModel = new ArrayList<>();
+
+ for(int i = 0; i < groupedRighe.size(); i++) {
+ List currentGroup = groupedRighe.get(i);
+
+ VenditaOrdineInevasoListViewModel itemModel = new VenditaOrdineInevasoListViewModel();
+
+
+ String posizione = UtilityString.isNullOrEmpty(currentGroup.get(0).getPosizione()) ? "N.A." : currentGroup.get(0).getPosizione();
+ itemModel.descrizioneGroup = mContext.getResources().getText(R.string.position_text) + ": " + posizione;
+ itemModel.rows = new ArrayList<>();
+
+ for(int k = 0; k < currentGroup.size(); k++) {
+ final PickingObjectDTO currentItem = currentGroup.get(k);
+ final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
+
+ String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
+ rowModel.setBadge1(badge1);
+
+ rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());
+
+ rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
+
+ //TODO: Aggiungere la qta evasa
+ rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
+
+ rowModel.setOriginalModel(currentItem);
+
+ itemModel.rows.add(rowModel);
+ }
+ listModel.add(itemModel);
+ }
+
+ return listModel;
+
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java
new file mode 100644
index 00000000..3278bdf7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/dto/VenditaOrdineInevasoListViewModel.java
@@ -0,0 +1,85 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto;
+
+import com.annimon.stream.Stream;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
+
+public class VenditaOrdineInevasoListViewModel {
+ public String descrizioneGroup;
+ public List rows;
+
+ public boolean isHidden(){
+ if(rows == null || rows.size() == 0) return true;
+ return Stream.of(rows).filter(x -> x.originalModel.isHidden() != null && !x.originalModel.isHidden()).count() == 0;
+ }
+
+ public static class SubItem {
+
+ private String badge1;
+ private String badge2;
+
+ private String descrizione;
+ private BigDecimal qtaRiservata;
+ private BigDecimal qtaOrdinata;
+
+ private PickingObjectDTO originalModel;
+
+ public String getBadge1() {
+ return badge1;
+ }
+
+ public SubItem setBadge1(String badge1) {
+ this.badge1 = badge1;
+ return this;
+ }
+
+ public String getBadge2() {
+ return badge2;
+ }
+
+ public SubItem setBadge2(String badge2) {
+ this.badge2 = badge2;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public SubItem setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public BigDecimal getQtaRiservata() {
+ return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
+ }
+
+ public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
+ this.qtaRiservata = qtaRiservata;
+ return this;
+ }
+
+ public BigDecimal getQtaOrdinata() {
+ return qtaOrdinata == null ? BigDecimal.ZERO : qtaOrdinata;
+ }
+
+ public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
+ this.qtaOrdinata = qtaOrdinata;
+ return this;
+ }
+
+ public PickingObjectDTO getOriginalModel() {
+ return originalModel;
+ }
+
+ public SubItem setOriginalModel(PickingObjectDTO originalModel) {
+ this.originalModel = originalModel;
+ return this;
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/rest/OrdineVenditaInevasoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/rest/OrdineVenditaInevasoRESTConsumerService.java
new file mode 100644
index 00000000..19adc825
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/rest/OrdineVenditaInevasoRESTConsumerService.java
@@ -0,0 +1,4 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.rest;
+
+public interface OrdineVenditaInevasoRESTConsumerService {
+}
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
new file mode 100644
index 00000000..016860ce
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
@@ -0,0 +1,222 @@
+package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
+
+import android.app.ProgressDialog;
+import android.databinding.ObservableField;
+import android.support.v7.widget.LinearLayoutManager;
+
+import com.annimon.stream.Stream;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
+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.utility.UtilityExceptions;
+import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
+import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.VenditaOrdineInevasoHelper;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.MainListOrdineVenditaInevasoAdapter;
+import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.rest.OrdineVenditaInevasoRESTConsumerService;
+import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
+import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
+
+import it.integry.integrywmsnative.BR;
+
+public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
+
+ public ObservableField isFabVisible = new ObservableField<>();
+
+ private final VenditaOrdineInevasoActivity mActivity;
+ private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
+
+ private final List mPickingList;
+ private List> mGroupedPickingList;
+ private final List mTestateOrdini;
+ private final List mColliRegistrati;
+
+ private VenditaOrdineInevasoHelper mHelper;
+ private MainListOrdineVenditaInevasoAdapter mAdapter;
+
+ private GestioneEnum defaultGestioneOfUL = null;
+ private List defaultFiltroOrdine = null;
+
+ public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List pickingList, List orders, List colliRegistrati) {
+ this.mActivity = activity;
+ this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
+ this.mPickingList = pickingList;
+ this.mTestateOrdini = orders;
+ this.mColliRegistrati = colliRegistrati;
+
+ this.isFabVisible.set(true);
+
+ this.mActivity.bindings.setVariable(BR.viewmodel, this);
+
+ this.init();
+ this.initDatiPicking();
+ }
+
+ private void init(){
+ mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
+ mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(() -> this.refreshOrderBy(false));
+ mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(() -> this.refreshOrderBy(false));
+
+ mHelper = new VenditaOrdineInevasoHelper(mActivity);
+
+ initRecyclerView();
+ }
+
+ private void initRecyclerView(){
+ //RecyclerView setup
+ mActivity.bindings.venditaOrdineMainList.setHasFixedSize(true);
+
+ mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
+
+ mAdapter = mHelper.getRightListAdapter();
+
+ try {
+ this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
+ mHelper.updateListModel(this.mGroupedPickingList, null);
+ } catch (Exception e) {
+ UtilityExceptions.defaultException(mActivity, e);
+ }
+
+// mAdapter.setOnOrdineRowDispatchCallback(this);
+ mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
+ }
+
+ private void initDatiPicking() {
+ if(this.mTestateOrdini != null && this.mTestateOrdini.size() > 0){
+ boolean shouldBreak = false;
+
+ //Definizione della gestione collo di default
+ for(int i = 0; i < this.mTestateOrdini.size(); i++){
+
+ for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
+
+ OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
+
+ if(defaultGestioneOfUL == null) {
+ defaultGestioneOfUL = dto.getGestioneEnum();
+ }
+
+ if(dto.getGestioneEnum() != defaultGestioneOfUL){
+ //TODO: scrivere qui la gestione di default che deve avere il collo nel caso in cui ho fatto il pick di ordini L e V insieme
+ defaultGestioneOfUL = GestioneEnum.LAVORAZIONE;
+ shouldBreak = true;
+ break;
+ }
+ }
+
+ if(shouldBreak) {
+ break;
+ }
+ }
+
+ //Definizione del filtro ordine da applicare a tutti i colli generati
+ for(int i = 0; i < this.mTestateOrdini.size(); i++){
+
+ if(defaultFiltroOrdine == null) defaultFiltroOrdine = new ArrayList<>();
+
+ for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
+ OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
+
+ defaultFiltroOrdine.add(new FiltroOrdineDTO()
+ .setDataOrd(dto.getData())
+ .setNumOrd(dto.getNumero())
+ .setGestioneOrd(dto.getGestione()));
+
+ }
+ }
+ }
+ }
+
+ public void refreshOrderBy(boolean forceHiddenCheck){
+
+ try {
+ List mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null;
+
+ this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, forceHiddenCheck);
+ mHelper.updateListModel(this.mGroupedPickingList, mtbColrs);
+ } catch (Exception e) {
+ UtilityExceptions.defaultException(mActivity, e);
+ }
+ }
+
+ public void recoverUL(MtbColt recoveredMtbColt){
+
+ for(int i = 0; i < recoveredMtbColt.getMtbColr().size(); i++){
+
+ MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
+
+// List foundRows = Stream.of(groupedOrdini)
+// .filter(x -> x.getNumOrd() == currentMtbColr.getNumOrd() &&
+// x.getRigaOrd() == currentMtbColr.getRigaOrd()&&
+// x.getDataOrd().equals(currentMtbColr.getDataOrdD()))
+// .toList();
+//
+// if(foundRows != null && foundRows.size() > 0){
+// OrdineAccettazioneDTO.Riga currentRow = foundRows.get(0);
+//
+// currentRow.setHidden(false);
+// currentRow.setQtaRiservate(currentRow.getQtaRiservate().subtract(currentMtbColr.getQtaCol()));
+// }
+
+ }
+
+
+ setULToCurrentContext(recoveredMtbColt);
+ refreshOrderBy(false);
+ }
+
+ public void createNewUL() {
+
+ }
+
+ private void setULToCurrentContext(MtbColt mtbColt){
+ isFabVisible.set(false);
+ mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
+ }
+
+ public void showCreatedUL() {
+
+ mActivity.bindings.venditaOrdineInevasoFab.close(false);
+ mActivity.startListaBancaliRegistratiActivity((ArrayList) mColliRegistrati);
+ }
+
+ @Override
+ public void onColloClosed() {
+ if(thereIsAnOpenedUL()) {
+
+ if(thereIsAnyRowInUL()) {
+ printCollo();
+ } else {
+ deleteCollo();
+ }
+
+ }
+ }
+
+ private void printCollo() {
+
+ }
+
+ private void deleteCollo() {
+
+ }
+
+ public boolean thereIsAnOpenedUL() {
+ return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
+ }
+ public boolean thereIsAnyRowInUL() {
+ return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
+ mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
+ mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() > 0;
+ }
+
+
+}
diff --git a/app/src/main/res/drawable/ic_playlist_add_check_24dp.xml b/app/src/main/res/drawable/ic_playlist_add_check_24dp.xml
new file mode 100644
index 00000000..4f7a1c13
--- /dev/null
+++ b/app/src/main/res/drawable/ic_playlist_add_check_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_lista_bancali.xml b/app/src/main/res/layout/activity_lista_bancali.xml
index 484b69e7..827b3eff 100644
--- a/app/src/main/res/layout/activity_lista_bancali.xml
+++ b/app/src/main/res/layout/activity_lista_bancali.xml
@@ -12,7 +12,6 @@
android:orientation="vertical"
android:background="@color/full_white">
-
-
+ android:layout_height="match_parent">
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
new file mode 100644
index 00000000..57aad72d
--- /dev/null
+++ b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml
new file mode 100644
index 00000000..0d1b4961
--- /dev/null
+++ b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_model.xml b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_model.xml
new file mode 100644
index 00000000..802283f2
--- /dev/null
+++ b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_model.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_vendita_ordine_inevaso.xml b/app/src/main/res/menu/activity_vendita_ordine_inevaso.xml
new file mode 100644
index 00000000..fe187c0c
--- /dev/null
+++ b/app/src/main/res/menu/activity_vendita_ordine_inevaso.xml
@@ -0,0 +1,4 @@
+
+
\ 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 37f0629f..30534b14 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -112,6 +112,7 @@
Lista UL
Contenuto UL
+ Spedizione merce
Salta stampa
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fef1f7e5..06a275cc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -120,6 +120,7 @@
LU List
LU Content
+ Shipping goods
Skip print