diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 7842948d..c8aba17a 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/build.gradle b/app/build.gradle
index 5e2d8c36..a1bf0ed8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -84,10 +84,6 @@ android {
}
dynamicFeatures = [":dynamic__base",":dynamic_vgalimenti",":dynamic_ime"]
-
-
-
-
}
dependencies {
@@ -97,17 +93,17 @@ dependencies {
})
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.orhanobut:logger:2.2.0'
- implementation 'com.google.firebase:firebase-core:17.0.0'
+ implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.google.firebase:firebase-crash:16.2.1'
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-rc01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'com.google.android.material:material:1.1.0-alpha07'
+ implementation 'com.google.android.material:material:1.1.0-alpha08'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha06'
- implementation 'androidx.preference:preference:1.1.0-beta01'
+ implementation 'androidx.recyclerview:recyclerview:1.1.0-beta01'
+ implementation 'androidx.preference:preference:1.1.0-rc01'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c16498b9..0248de72 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,18 +16,22 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
- android:usesCleartextTraffic="true"
- android:theme="@style/AppTheme">
+ android:theme="@style/AppTheme"
+ android:usesCleartextTraffic="true">
+
-
-
+
-
+
-
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
index 210bd5f2..2a24b26b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
@@ -1,7 +1,12 @@
package it.integry.integrywmsnative.core.REST;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import java.sql.Date;
import java.util.concurrent.TimeUnit;
+import it.integry.integrywmsnative.core.REST.deserializer.DateDeserializer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
@@ -47,10 +52,16 @@ public class RESTBuilder {
String endpoint = "http://" + host + ":" + port + "/" + (addEmsApi ? "ems-api/" : "");
+ Gson gson = new GsonBuilder()
+ .registerTypeAdapter(Date.class, new DateDeserializer())
+ .create();
+
+
+
Retrofit retrofit = new Retrofit.Builder()
+ .addConverterFactory(GsonConverterFactory.create(gson))
.baseUrl(endpoint)
.client(client)
- .addConverterFactory(GsonConverterFactory.create())
.build();
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/deserializer/DateDeserializer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/deserializer/DateDeserializer.java
new file mode 100644
index 00000000..8906bd8a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/deserializer/DateDeserializer.java
@@ -0,0 +1,24 @@
+package it.integry.integrywmsnative.core.REST.deserializer;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+
+import java.lang.reflect.Type;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+
+public class DateDeserializer implements JsonDeserializer {
+
+ @Override
+ public Date deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
+ String date = element.getAsString();
+
+ return UtilityDate.recognizeDateWithExceptionHandler(date);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
index ecc4e5ea..1711f29f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
@@ -11,28 +11,21 @@ public class MenuConfiguration extends BaseMenuConfiguration {
this
.addGroup(
new MenuGroup()
- .setGroupText(R.string.general)
+ .setGroupText(R.string.purchase)
.addItem(new MenuItem()
.setID(R.id.nav_accettazione)
.setTitleText(R.string.accettazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_accettazione))
+ ).addGroup(
+ new MenuGroup()
+ .setGroupText(R.string.checkout)
.addItem(new MenuItem()
.setID(R.id.nav_spedizione)
.setTitleText(R.string.vendita_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione))
- .addItem(new MenuItem()
- .setID(R.id.nav_rettifica_giacenze)
- .setTitleText(R.string.rettifica_giacenze_fragment_title)
- .setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze))
-
- .addItem(new MenuItem()
- .setID(R.id.nav_versamento_merce)
- .setTitleText(R.string.versamento_merce_fragment_title)
- .setTitleIcon(R.drawable.ic_dashboard_versamento_merce))
-
.addItem(new MenuItem()
.setID(R.id.nav_free_picking)
.setTitleText(R.string.free_picking)
@@ -42,10 +35,8 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setID(R.id.nav_resi_cliente)
.setTitleText(R.string.fragment_ultime_consegne_cliente_title)
.setTitleIcon(R.drawable.ic_latest_delivery))
- )
- .addGroup(
- new MenuGroup()
- .setGroupText(R.string.production)
+ ).addGroup(new MenuGroup()
+ .setGroupText(R.string.manufacture)
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_produzione)
@@ -66,6 +57,22 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setID(R.id.nav_prod_recupero_materiale)
.setTitleText(R.string.prod_recupero_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale))
+ )
+ .addGroup(
+ new MenuGroup()
+ .setGroupText(R.string.internal_handling)
+
+ .addItem(new MenuItem()
+ .setID(R.id.nav_versamento_merce)
+ .setTitleText(R.string.versamento_merce_fragment_title)
+ .setTitleIcon(R.drawable.ic_dashboard_versamento_merce))
+
+ .addItem(new MenuItem()
+ .setID(R.id.nav_rettifica_giacenze)
+ .setTitleText(R.string.rettifica_giacenze_fragment_title)
+ .setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze))
+
+
);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java
new file mode 100644
index 00000000..57a14c49
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java
@@ -0,0 +1,739 @@
+package it.integry.integrywmsnative.core.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+
+public class DtbDocr {
+
+ private String codAnag;
+
+ private String codDtip;
+
+ private String dataDoc;
+
+ private Integer idRiga;
+
+ private Integer numDoc;
+
+ private String serDoc;
+
+ private String codAliq;
+
+ private String codAnagComp;
+
+ private String codArtFor;
+
+ private String codCol;
+
+ private String codDtipComp;
+
+ private String codJcom;
+
+ private String codMart;
+
+ private String codMdep;
+
+ private String codPromo;
+
+ private String codTagl;
+
+ private BigDecimal costoUnt;
+
+ private String dataDocComp;
+
+ private String dataOrd;
+
+ private String descrizione;
+
+ private String descrizioneEstesa;
+
+ private String flagEvasoForzato;
+
+ private BigDecimal importoRiga;
+
+ private BigDecimal numCnf;
+
+ private Integer numDocComp;
+
+ private Integer numOrd;
+
+ private String partitaMag;
+
+ private BigDecimal percGest;
+
+ private BigDecimal percIspe;
+
+ private BigDecimal percOneri;
+
+ private BigDecimal percPromo;
+
+ private BigDecimal percProv;
+
+ private BigDecimal percProv2;
+
+ private BigDecimal pesoLordo;
+
+ private String posizione;
+
+ private BigDecimal qtaCnf;
+
+ private BigDecimal qtaDoc;
+
+ private BigDecimal qtaDoc2;
+
+ private BigDecimal qtaDoc3;
+
+ private BigDecimal rapConv;
+
+ private Integer rigaOrd;
+
+ private BigDecimal sconto5;
+
+ private BigDecimal sconto6;
+
+ private BigDecimal sconto7;
+
+ private BigDecimal sconto8;
+
+ private String serDocComp;
+
+ private String untDoc;
+
+ private String untDoc2;
+
+ private String untDoc3;
+
+ private BigDecimal valGest;
+
+ private BigDecimal valIspe;
+
+ private BigDecimal valOneri;
+
+ private BigDecimal valPromo;
+
+ private BigDecimal valProv;
+
+ private BigDecimal valProv2;
+
+ private BigDecimal valUnt;
+
+ private BigDecimal valUntIva;
+
+ private String codMtip;
+
+ private String matricola;
+
+ private String dataInizComp;
+
+ private String dataFineComp;
+
+ private String codKit;
+
+ private String codAlis;
+
+ private String dataInsRow;
+
+ private String note;
+
+ private int rigaKit;
+
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public DtbDocr setCodAnag(String codAnag) {
+ this.codAnag = codAnag;
+ return this;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public DtbDocr setCodDtip(String codDtip) {
+ this.codDtip = codDtip;
+ return this;
+ }
+
+ public String getDataDocS() {
+ return dataDoc;
+ }
+
+ public Date getDataDocD() {
+ return UtilityDate.recognizeDateWithExceptionHandler(getDataDocS());
+ }
+
+ public DtbDocr setDataDoc(String dataDoc) {
+ this.dataDoc = dataDoc;
+ return this;
+ }
+
+ public Integer getIdRiga() {
+ return idRiga;
+ }
+
+ public DtbDocr setIdRiga(Integer idRiga) {
+ this.idRiga = idRiga;
+ return this;
+ }
+
+ public Integer getNumDoc() {
+ return numDoc;
+ }
+
+ public DtbDocr setNumDoc(Integer numDoc) {
+ this.numDoc = numDoc;
+ return this;
+ }
+
+ public String getSerDoc() {
+ return serDoc;
+ }
+
+ public DtbDocr setSerDoc(String serDoc) {
+ this.serDoc = serDoc;
+ return this;
+ }
+
+ public String getCodAliq() {
+ return codAliq;
+ }
+
+ public DtbDocr setCodAliq(String codAliq) {
+ this.codAliq = codAliq;
+ return this;
+ }
+
+ public String getCodAnagComp() {
+ return codAnagComp;
+ }
+
+ public DtbDocr setCodAnagComp(String codAnagComp) {
+ this.codAnagComp = codAnagComp;
+ return this;
+ }
+
+ public String getCodArtFor() {
+ return codArtFor;
+ }
+
+ public DtbDocr setCodArtFor(String codArtFor) {
+ this.codArtFor = codArtFor;
+ return this;
+ }
+
+ public String getCodCol() {
+ return codCol;
+ }
+
+ public DtbDocr setCodCol(String codCol) {
+ this.codCol = codCol;
+ return this;
+ }
+
+ public String getCodDtipComp() {
+ return codDtipComp;
+ }
+
+ public DtbDocr setCodDtipComp(String codDtipComp) {
+ this.codDtipComp = codDtipComp;
+ return this;
+ }
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+
+ public DtbDocr setCodJcom(String codJcom) {
+ this.codJcom = codJcom;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public DtbDocr setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getCodMdep() {
+ return codMdep;
+ }
+
+ public DtbDocr setCodMdep(String codMdep) {
+ this.codMdep = codMdep;
+ return this;
+ }
+
+ public String getCodPromo() {
+ return codPromo;
+ }
+
+ public DtbDocr setCodPromo(String codPromo) {
+ this.codPromo = codPromo;
+ return this;
+ }
+
+ public String getCodTagl() {
+ return codTagl;
+ }
+
+ public DtbDocr setCodTagl(String codTagl) {
+ this.codTagl = codTagl;
+ return this;
+ }
+
+ public BigDecimal getCostoUnt() {
+ return costoUnt;
+ }
+
+ public DtbDocr setCostoUnt(BigDecimal costoUnt) {
+ this.costoUnt = costoUnt;
+ return this;
+ }
+
+ public String getDataDocComp() {
+ return dataDocComp;
+ }
+
+ public DtbDocr setDataDocComp(String dataDocComp) {
+ this.dataDocComp = dataDocComp;
+ return this;
+ }
+
+ public String getDataOrd() {
+ return dataOrd;
+ }
+
+ public DtbDocr setDataOrd(String dataOrd) {
+ this.dataOrd = dataOrd;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public DtbDocr setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public String getDescrizioneEstesa() {
+ return descrizioneEstesa;
+ }
+
+ public DtbDocr setDescrizioneEstesa(String descrizioneEstesa) {
+ this.descrizioneEstesa = descrizioneEstesa;
+ return this;
+ }
+
+ public String getFlagEvasoForzato() {
+ return flagEvasoForzato;
+ }
+
+ public DtbDocr setFlagEvasoForzato(String flagEvasoForzato) {
+ this.flagEvasoForzato = flagEvasoForzato;
+ return this;
+ }
+
+ public BigDecimal getImportoRiga() {
+ return importoRiga;
+ }
+
+ public DtbDocr setImportoRiga(BigDecimal importoRiga) {
+ this.importoRiga = importoRiga;
+ return this;
+ }
+
+ public BigDecimal getNumCnf() {
+ return numCnf;
+ }
+
+ public DtbDocr setNumCnf(BigDecimal numCnf) {
+ this.numCnf = numCnf;
+ return this;
+ }
+
+ public Integer getNumDocComp() {
+ return numDocComp;
+ }
+
+ public DtbDocr setNumDocComp(Integer numDocComp) {
+ this.numDocComp = numDocComp;
+ return this;
+ }
+
+ public Integer getNumOrd() {
+ return numOrd;
+ }
+
+ public DtbDocr setNumOrd(Integer numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public DtbDocr setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ return this;
+ }
+
+ public BigDecimal getPercGest() {
+ return percGest;
+ }
+
+ public DtbDocr setPercGest(BigDecimal percGest) {
+ this.percGest = percGest;
+ return this;
+ }
+
+ public BigDecimal getPercIspe() {
+ return percIspe;
+ }
+
+ public DtbDocr setPercIspe(BigDecimal percIspe) {
+ this.percIspe = percIspe;
+ return this;
+ }
+
+ public BigDecimal getPercOneri() {
+ return percOneri;
+ }
+
+ public DtbDocr setPercOneri(BigDecimal percOneri) {
+ this.percOneri = percOneri;
+ return this;
+ }
+
+ public BigDecimal getPercPromo() {
+ return percPromo;
+ }
+
+ public DtbDocr setPercPromo(BigDecimal percPromo) {
+ this.percPromo = percPromo;
+ return this;
+ }
+
+ public BigDecimal getPercProv() {
+ return percProv;
+ }
+
+ public DtbDocr setPercProv(BigDecimal percProv) {
+ this.percProv = percProv;
+ return this;
+ }
+
+ public BigDecimal getPercProv2() {
+ return percProv2;
+ }
+
+ public DtbDocr setPercProv2(BigDecimal percProv2) {
+ this.percProv2 = percProv2;
+ return this;
+ }
+
+ public BigDecimal getPesoLordo() {
+ return pesoLordo;
+ }
+
+ public DtbDocr setPesoLordo(BigDecimal pesoLordo) {
+ this.pesoLordo = pesoLordo;
+ return this;
+ }
+
+ public String getPosizione() {
+ return posizione;
+ }
+
+ public DtbDocr setPosizione(String posizione) {
+ this.posizione = posizione;
+ return this;
+ }
+
+ public BigDecimal getQtaCnf() {
+ return qtaCnf;
+ }
+
+ public DtbDocr setQtaCnf(BigDecimal qtaCnf) {
+ this.qtaCnf = qtaCnf;
+ return this;
+ }
+
+ public BigDecimal getQtaDoc() {
+ return qtaDoc;
+ }
+
+ public DtbDocr setQtaDoc(BigDecimal qtaDoc) {
+ this.qtaDoc = qtaDoc;
+ return this;
+ }
+
+ public BigDecimal getQtaDoc2() {
+ return qtaDoc2;
+ }
+
+ public DtbDocr setQtaDoc2(BigDecimal qtaDoc2) {
+ this.qtaDoc2 = qtaDoc2;
+ return this;
+ }
+
+ public BigDecimal getQtaDoc3() {
+ return qtaDoc3;
+ }
+
+ public DtbDocr setQtaDoc3(BigDecimal qtaDoc3) {
+ this.qtaDoc3 = qtaDoc3;
+ return this;
+ }
+
+ public BigDecimal getRapConv() {
+ return rapConv;
+ }
+
+ public DtbDocr setRapConv(BigDecimal rapConv) {
+ this.rapConv = rapConv;
+ return this;
+ }
+
+ public Integer getRigaOrd() {
+ return rigaOrd;
+ }
+
+ public DtbDocr setRigaOrd(Integer rigaOrd) {
+ this.rigaOrd = rigaOrd;
+ return this;
+ }
+
+ public BigDecimal getSconto5() {
+ return sconto5;
+ }
+
+ public DtbDocr setSconto5(BigDecimal sconto5) {
+ this.sconto5 = sconto5;
+ return this;
+ }
+
+ public BigDecimal getSconto6() {
+ return sconto6;
+ }
+
+ public DtbDocr setSconto6(BigDecimal sconto6) {
+ this.sconto6 = sconto6;
+ return this;
+ }
+
+ public BigDecimal getSconto7() {
+ return sconto7;
+ }
+
+ public DtbDocr setSconto7(BigDecimal sconto7) {
+ this.sconto7 = sconto7;
+ return this;
+ }
+
+ public BigDecimal getSconto8() {
+ return sconto8;
+ }
+
+ public DtbDocr setSconto8(BigDecimal sconto8) {
+ this.sconto8 = sconto8;
+ return this;
+ }
+
+ public String getSerDocComp() {
+ return serDocComp;
+ }
+
+ public DtbDocr setSerDocComp(String serDocComp) {
+ this.serDocComp = serDocComp;
+ return this;
+ }
+
+ public String getUntDoc() {
+ return untDoc;
+ }
+
+ public DtbDocr setUntDoc(String untDoc) {
+ this.untDoc = untDoc;
+ return this;
+ }
+
+ public String getUntDoc2() {
+ return untDoc2;
+ }
+
+ public DtbDocr setUntDoc2(String untDoc2) {
+ this.untDoc2 = untDoc2;
+ return this;
+ }
+
+ public String getUntDoc3() {
+ return untDoc3;
+ }
+
+ public DtbDocr setUntDoc3(String untDoc3) {
+ this.untDoc3 = untDoc3;
+ return this;
+ }
+
+ public BigDecimal getValGest() {
+ return valGest;
+ }
+
+ public DtbDocr setValGest(BigDecimal valGest) {
+ this.valGest = valGest;
+ return this;
+ }
+
+ public BigDecimal getValIspe() {
+ return valIspe;
+ }
+
+ public DtbDocr setValIspe(BigDecimal valIspe) {
+ this.valIspe = valIspe;
+ return this;
+ }
+
+ public BigDecimal getValOneri() {
+ return valOneri;
+ }
+
+ public DtbDocr setValOneri(BigDecimal valOneri) {
+ this.valOneri = valOneri;
+ return this;
+ }
+
+ public BigDecimal getValPromo() {
+ return valPromo;
+ }
+
+ public DtbDocr setValPromo(BigDecimal valPromo) {
+ this.valPromo = valPromo;
+ return this;
+ }
+
+ public BigDecimal getValProv() {
+ return valProv;
+ }
+
+ public DtbDocr setValProv(BigDecimal valProv) {
+ this.valProv = valProv;
+ return this;
+ }
+
+ public BigDecimal getValProv2() {
+ return valProv2;
+ }
+
+ public DtbDocr setValProv2(BigDecimal valProv2) {
+ this.valProv2 = valProv2;
+ return this;
+ }
+
+ public BigDecimal getValUnt() {
+ return valUnt;
+ }
+
+ public DtbDocr setValUnt(BigDecimal valUnt) {
+ this.valUnt = valUnt;
+ return this;
+ }
+
+ public BigDecimal getValUntIva() {
+ return valUntIva;
+ }
+
+ public DtbDocr setValUntIva(BigDecimal valUntIva) {
+ this.valUntIva = valUntIva;
+ return this;
+ }
+
+ public String getCodMtip() {
+ return codMtip;
+ }
+
+ public DtbDocr setCodMtip(String codMtip) {
+ this.codMtip = codMtip;
+ return this;
+ }
+
+ public String getMatricola() {
+ return matricola;
+ }
+
+ public DtbDocr setMatricola(String matricola) {
+ this.matricola = matricola;
+ return this;
+ }
+
+ public String getDataInizComp() {
+ return dataInizComp;
+ }
+
+ public DtbDocr setDataInizComp(String dataInizComp) {
+ this.dataInizComp = dataInizComp;
+ return this;
+ }
+
+ public String getDataFineComp() {
+ return dataFineComp;
+ }
+
+ public DtbDocr setDataFineComp(String dataFineComp) {
+ this.dataFineComp = dataFineComp;
+ return this;
+ }
+
+ public String getCodKit() {
+ return codKit;
+ }
+
+ public DtbDocr setCodKit(String codKit) {
+ this.codKit = codKit;
+ return this;
+ }
+
+ public String getCodAlis() {
+ return codAlis;
+ }
+
+ public DtbDocr setCodAlis(String codAlis) {
+ this.codAlis = codAlis;
+ return this;
+ }
+
+ public String getDataInsRow() {
+ return dataInsRow;
+ }
+
+ public DtbDocr setDataInsRow(String dataInsRow) {
+ this.dataInsRow = dataInsRow;
+ return this;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public DtbDocr setNote(String note) {
+ this.note = note;
+ return this;
+ }
+
+ public int getRigaKit() {
+ return rigaKit;
+ }
+
+ public DtbDocr setRigaKit(int rigaKit) {
+ this.rigaKit = rigaKit;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dto/CheckableConsegnaClienteDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dto/CheckableConsegnaClienteDTO.java
deleted file mode 100644
index c85fff50..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dto/CheckableConsegnaClienteDTO.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package it.integry.integrywmsnative.gest.ultime_consegne_cliente.dto;
-
-import androidx.databinding.Observable;
-
-import it.integry.integrywmsnative.core.di.BindableBoolean;
-import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
-
-public class CheckableConsegnaClienteDTO {
-
- private ConsegnaClienteDTO mItem;
- private BindableBoolean checked = new BindableBoolean(false);
-
- public CheckableConsegnaClienteDTO(ConsegnaClienteDTO item) {
- this.mItem = item;
- }
-
- public ConsegnaClienteDTO getItem() {
- return mItem;
- }
-
- public CheckableConsegnaClienteDTO setItem(ConsegnaClienteDTO item) {
- this.mItem = item;
- return this;
- }
-
- public BindableBoolean getChecked() {
- return checked;
- }
-
- public boolean isChecked() {
- return checked.get();
- }
-
- public CheckableConsegnaClienteDTO setChecked(BindableBoolean checked) {
- this.checked = checked;
- return this;
- }
-
- public CheckableConsegnaClienteDTO setCheckedValue(boolean value) {
- this.checked.set(value);
- return this;
- }
-
- public void toggleCheck() {
- this.checked.set(!this.checked.get());
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
index 0f80c12a..79640073 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
@@ -9,7 +9,9 @@ import java.util.List;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.utility.UtilityDB;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
@@ -48,4 +50,46 @@ public class UltimeConsegneClienteRESTConsumer {
}
+
+ public static void loadDocRowFromConsegna(List consegne, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ StringBuilder sbWhereCond = new StringBuilder();
+
+ for(int i = 0; i < consegne.size(); i++) {
+ sbWhereCond.append(String.format("(data_doc = '%s' AND num_doc = %d AND ser_doc = '%s' AND cod_anag = '%s' AND cod_dtip = '%s')",
+ UtilityDate.formatDate(consegne.get(i).getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH),
+ consegne.get(i).getNumDoc(),
+ consegne.get(i).getSerDoc(),
+ consegne.get(i).getCodAnag(),
+ consegne.get(i).getCodDtip()));
+
+ if(i < consegne.size()-1) sbWhereCond.append(" OR ");
+ }
+
+ String sql = "SELECT dtb_docr.* " +
+ "FROM dtb_docr " +
+ "INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart " +
+ "LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " +
+ "LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " +
+ "WHERE " +
+ " (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
+ " ( " +
+ sbWhereCond.toString() +
+ " ) " +
+ "ORDER BY cod_mart";
+
+
+ Type typeOfObjectsList = new TypeToken>() {}.getType();
+ SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
+ @Override
+ public void onSuccess(ArrayList value) {
+ if(onComplete != null) onComplete.run(value);
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ if(onFailed != null) onFailed.run(ex);
+ }
+ });
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java
index 39b48f86..9cfc4e24 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java
@@ -2,11 +2,11 @@ package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
import android.app.ProgressDialog;
import android.content.Context;
-import android.widget.Toast;
-import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
+import com.annimon.stream.Stream;
+
import java.util.ArrayList;
import java.util.List;
@@ -15,6 +15,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.UltimeConsegneClientePickingActivity;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
public class UltimeConsegneClienteViewModel {
@@ -22,11 +23,18 @@ public class UltimeConsegneClienteViewModel {
private Context mContext;
private FragmentMainUltimeConsegneClienteBinding mBinding;
+ private List mItems;
+
public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
this.mContext = context;
this.mBinding = binding;
this.initList();
+
+ this.mBinding.mainFab.hide();
+ this.mBinding.mainFab.setOnClickListener(v -> {
+ dispatchConsegne();
+ });
}
@@ -39,6 +47,7 @@ public class UltimeConsegneClienteViewModel {
null,
null,
consegne -> {
+ this.mItems = consegne;
this.initDataAdapter(consegne);
progressDialog.dismiss();
@@ -49,19 +58,45 @@ public class UltimeConsegneClienteViewModel {
private void initDataAdapter(ArrayList dataset) {
UltimeConsegneMainListAdapter adapter = new UltimeConsegneMainListAdapter(mContext, dataset);
- adapter.setOnItemClickListener(consegna -> {
- Toast.makeText(mContext, String.format("Selezionato doc n° %d del %s", consegna.getNumDoc(), consegna.getDataDocS()), Toast.LENGTH_SHORT).show();
- });
+ adapter.setOnSelectionChanged(this::onSingleSelectionChanged);
mBinding.recyclerView.setHasFixedSize(true);
-
mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-
mBinding.recyclerView.setAdapter(adapter);
-
mBinding.fastscroll.setRecyclerView(mBinding.recyclerView);
}
+ private void onSingleSelectionChanged(ConsegnaClienteDTO dto) {
+ List selectedOrders = getSelectedItems();
+
+ if(dto.isSelected()) {
+ Stream.of(selectedOrders)
+ .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc()))
+ .forEach(x -> x.setSelected(false));
+ }
+
+ if(selectedOrders != null && selectedOrders.size() > 0) {
+ mBinding.mainFab.show();
+ }
+ else {
+ mBinding.mainFab.hide();
+ }
+ }
+
+ private List getSelectedItems() {
+ return Stream.of(this.mItems)
+ .filter(ConsegnaClienteDTO::isSelected)
+ .toList();
+ }
+
+
+ private void dispatchConsegne() {
+ List selectedConsegne = getSelectedItems();
+
+ UltimeConsegneClientePickingActivity.startActivity(mContext, selectedConsegne);
+ }
+
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java
index 044befce..5aa3e53a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java
@@ -16,17 +16,16 @@ import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding;
-import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dto.CheckableConsegnaClienteDTO;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
@@ -36,7 +35,7 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
private List mDataset;
private ArrayList mSectionTitleItems;
- private OnItemClickListener onItemClickListener;
+ private RunnableArgs mOnSelectionChanged;
private TextDrawable.IShapeBuilder smallIconBuilder;
private TextDrawable.IShapeBuilder mediumIconBuilder;
@@ -48,11 +47,6 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
}
- public interface OnItemClickListener {
- void onItemClicked(ConsegnaClienteDTO consegna);
- }
-
-
static class SubheaderHolder extends RecyclerView.ViewHolder {
FragmentMainUltimeConsegneClienteListHeaderBinding mBinding;
@@ -150,6 +144,8 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
final ConsegnaClienteDTO consegna = this.mDataset.get(position);
+ holder.mBinding.setConsegna(consegna);
+
holder.mBinding.descriptionMain.setText(UtilityString.isNullOrEmpty(consegna.getIndirizzo()) ? "" : consegna.getIndirizzo());
if(consegna.getDataInizTraspD() != null) {
@@ -188,9 +184,13 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
UtilityExceptions.defaultException(mContext, ex);
}
- holder.mBinding.getRoot().setOnClickListener(l -> {
- if(onItemClickListener != null) onItemClickListener.onItemClicked(consegna);
+
+ holder.mBinding.getRoot().setOnClickListener(v -> {
+ consegna.setSelected(!consegna.isSelected());
+
+ if(this.mOnSelectionChanged != null) mOnSelectionChanged.run(consegna);
});
+
}
@Override
@@ -214,8 +214,8 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
}
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.onItemClickListener = onItemClickListener;
+ public void setOnSelectionChanged(RunnableArgs mSelectionChanged) {
+ this.mOnSelectionChanged = mSelectionChanged;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/UltimeConsegneClientePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/UltimeConsegneClientePickingActivity.java
new file mode 100644
index 00000000..6efac956
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/UltimeConsegneClientePickingActivity.java
@@ -0,0 +1,194 @@
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableArrayList;
+import androidx.databinding.ObservableField;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+
+import com.tfb.fbtoast.FBToast;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.data_cache.DataCache;
+import it.integry.integrywmsnative.core.model.CommonModelConsts;
+import it.integry.integrywmsnative.core.model.DtbDocr;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
+import it.integry.integrywmsnative.core.utility.UtilityProgress;
+import it.integry.integrywmsnative.databinding.ActivityUltimeConsegneClientePickingBinding;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.core.UltimeConsegneClientePickingListAdapter;
+import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
+import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
+
+public class UltimeConsegneClientePickingActivity extends AppCompatActivity {
+
+ private List consegneToPick;
+ private List mDtbDocrList;
+
+ private ActivityUltimeConsegneClientePickingBinding mBinding;
+
+ public ObservableField currentMtbColt;
+
+ private int barcodeScannerIstanceID = -1;
+
+ public static void startActivity(Context context, List consegnaClienteDTOList) {
+ String consegneCacheKey = DataCache.addItem(consegnaClienteDTOList);
+
+ Intent intent = new Intent(context, UltimeConsegneClientePickingActivity.class);
+ intent.putExtra("key", consegneCacheKey);
+ context.startActivity(intent);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mBinding = DataBindingUtil.setContentView(this, R.layout.activity_ultime_consegne_cliente_picking);
+ mBinding.setViewmodel(this);
+
+ consegneToPick = DataCache.retrieveItem(getIntent().getStringExtra("key"));
+
+ this.initView();
+
+ this.initDatiPicking();
+
+
+ }
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ onBackPressed();
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+// if(mArticoliInColloBottomSheetViewModel.isExpanded()){
+// mArticoliInColloBottomSheetViewModel.collapse();
+// } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
+// mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
+// BarcodeManager.removeCallback(barcodeScannerIstanceID);
+// super.onBackPressed();
+// });
+//
+// } else {
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+ super.onBackPressed();
+// }
+ }
+
+ private void initView() {
+ barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessfull(this::onScanSuccessful)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
+
+
+ setSupportActionBar(this.mBinding.toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ this.mBinding.elevatedToolbar.setRecyclerView(this.mBinding.mainList);
+
+ ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
+ UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(consegneToPick, dtbDocrToPick -> {
+ progressDialog.dismiss();
+ this.initList(dtbDocrToPick);
+ }, ex -> {
+ UtilityExceptions.defaultException(this, ex, progressDialog);
+ });
+ }
+
+ private void initList(List dtbDocrList) {
+ this.mDtbDocrList = dtbDocrList;
+
+ UltimeConsegneClientePickingListAdapter adapter = new UltimeConsegneClientePickingListAdapter(this, dtbDocrList);
+
+ this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
+ this.mBinding.mainList.setAdapter(adapter);
+ }
+
+ private void initDatiPicking() {
+
+ }
+
+
+
+
+ private void onScanSuccessful(BarcodeScanDTO data) {
+
+ }
+
+ public void createNewUL() {
+ this.createNewUL(null, null, null, false, true, null);
+ }
+
+ public void createNewUL(Integer customNumCollo, String customSerCollo, ProgressDialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) {
+ this.mBinding.mainFab.close(true);
+
+ if (progress == null){
+ progress = UtilityProgress.createDefaultProgressDialog(this);
+ }
+
+ MtbColt mtbColt = new MtbColt();
+ mtbColt.initDefaultFields();
+// mtbColt .setGestione(defaultGestioneOfUL)
+// .setSegno(-1)
+// .setRifOrd(defaultRifOrdOfUL)
+// .setNumOrd(defaultNumOrdOfUL)
+// .setDataOrdD(defaultDataOrdOfUL)
+// .setCodAnag(defaultCodAnagOfUL)
+// .setCodMdep(defaultCodMdepOfUL)
+// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+//
+// if(defaultGestioneOfUL == GestioneEnum.LAVORAZIONE) {
+// mtbColt.setPosizione(defaultCodJFasOfUL);
+// }
+//
+// if(customNumCollo != null) {
+// mtbColt.setNumCollo(customNumCollo);
+// }
+//
+// if(!UtilityString.isNullOrEmpty(customSerCollo)) {
+// mtbColt.setSerCollo(customSerCollo);
+// }
+//
+// mtbColt.generaFiltroOrdineFromDTO(defaultFiltroOrdine);
+//
+// ProgressDialog finalProgress = progress;
+// ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
+//
+// mtbColt
+// .setNumCollo(value.getNumCollo())
+// .setDataCollo(value.getDataColloS());
+// mtbColtSessionID = ColliDataRecover.startNewSession(mtbColt);
+//
+// value
+// .setDisablePrint(disablePrint)
+// .setMtbColr(new ObservableArrayList<>());
+//
+// setULToCurrentContext(value);
+//
+// if(closeProgress) finalProgress.dismiss();
+//
+// FBToast.successToast(this, getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
+//
+// if(onComplete != null) onComplete.run();
+//
+// }, ex -> {
+// UtilityExceptions.defaultException(mActivity, ex, finalProgress);
+// });
+
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/core/UltimeConsegneClientePickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/core/UltimeConsegneClientePickingListAdapter.java
new file mode 100644
index 00000000..4c74c88f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente_picking/core/UltimeConsegneClientePickingListAdapter.java
@@ -0,0 +1,117 @@
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.core;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.annimon.stream.Stream;
+import com.google.android.gms.common.internal.service.Common;
+import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.CommonConst;
+import it.integry.integrywmsnative.core.model.DtbDocr;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.core.utility.UtilityNumber;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
+import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
+
+public class UltimeConsegneClientePickingListAdapter extends SectionedRecyclerViewAdapter {
+
+
+ private Context mContext;
+
+ private List mDataset;
+ private LayoutInflater mInflater;
+
+
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
+
+ UltimeConsegneMainListItemHeaderBinding mBinding;
+
+ SubheaderHolder(UltimeConsegneMainListItemHeaderBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ UltimeConsegneMainListItemBinding mBinding;
+
+ SingleItemViewHolder(UltimeConsegneMainListItemBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+
+ public UltimeConsegneClientePickingListAdapter(Context context, List data) {
+ this.mContext = context;
+ this.mInflater = LayoutInflater.from(context);
+ this.mDataset = Stream.of(data)
+ .sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag())
+ .toList();
+ }
+
+ @Override
+ public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ UltimeConsegneMainListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.ultime_consegne_main_list__item, parent, false);
+ return new SingleItemViewHolder(binding);
+ }
+
+ @Override
+ public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ UltimeConsegneMainListItemHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.ultime_consegne_main_list__item_header, parent, false);
+ return new SubheaderHolder(binding);
+ }
+
+ @Override
+ public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
+ final DtbDocr dtbDocr = this.mDataset.get(position);
+
+ holder.mBinding.badge1.setText(dtbDocr.getCodMart());
+ holder.mBinding.qtaEvasa.setText(String.valueOf(0));
+ holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
+ holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
+
+ }
+
+ @Override
+ public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
+ DtbDocr nextDtbDocr = this.mDataset.get(nextItemPosition);
+ subheaderHolder.mBinding.descrizione.setText(nextDtbDocr.getCodDtip() + " - N° " + nextDtbDocr.getNumDoc() + " del " + UtilityDate.formatDate(nextDtbDocr.getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.DM_HUMAN));
+ }
+
+ @Override
+ public boolean onPlaceSubheaderBetweenItems(int position) {
+
+ DtbDocr compare1 = this.mDataset.get(position);
+ DtbDocr compare2 = this.mDataset.get(position + 1);
+
+ if( !compare1.getDataDocS().equalsIgnoreCase(compare2.getDataDocS()) ||
+ !compare1.getSerDoc().equalsIgnoreCase(compare2.getSerDoc()) ||
+ !compare1.getNumDoc().equals(compare2.getNumDoc()) ||
+ !compare1.getCodAnag().equalsIgnoreCase(compare2.getCodAnag()) ||
+ !compare1.getCodDtip().equalsIgnoreCase(compare2.getCodDtip())) {
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public int getItemSize() {
+ return this.mDataset.size();
+ }
+
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java
index c6331a23..66457a4e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java
@@ -4,6 +4,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -23,8 +24,17 @@ public class ConsegnaClienteDTO {
private String compilatoDa;
private String rifOrd;
private String dataOrd;
+ private Integer numOrd;
private String dataInizTrasp;
+
+ public BindableBoolean selected;
+
+ public ConsegnaClienteDTO() {
+ this.selected = new BindableBoolean(false);
+ }
+
+
public String getCodAnag() {
return codAnag;
}
@@ -142,6 +152,15 @@ public class ConsegnaClienteDTO {
return this;
}
+ public Integer getNumOrd() {
+ return numOrd;
+ }
+
+ public ConsegnaClienteDTO setNumOrd(Integer numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+
public String getDataInizTraspS() {
return dataInizTrasp;
}
@@ -154,4 +173,17 @@ public class ConsegnaClienteDTO {
this.dataInizTrasp = dataInizTrasp;
return this;
}
+
+ public BindableBoolean getSelected() {
+ return this.selected;
+ }
+
+ public boolean isSelected() {
+ return this.selected.get();
+ }
+
+ public ConsegnaClienteDTO setSelected(boolean selected) {
+ this.selected.set(selected);
+ return this;
+ }
}
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 343337dc..3de66558 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
@@ -854,19 +854,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
if(closeProgress) finalProgress.dismiss();
- FBToast.successToast(mActivity,mActivity.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
-
-
-// new StatusBarAlert.Builder(mActivity)
-// .autoHide(true)
-// .withDuration(2500)
-// .showProgress(false)
-// .withText(R.string.data_saved)
-// .withAlertColor(R.color.mainGreen)
-// .build();
+ FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
if(onComplete != null) onComplete.run();
-
}
@Override
diff --git a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
index db6918f8..72371844 100644
--- a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
+++ b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
@@ -181,8 +181,8 @@
fab:menu_animationDelayPerItem="50"
fab:menu_backgroundColor="@color/white_bg_alpha"
fab:menu_buttonSpacing="0dp"
- fab:menu_colorNormal="@color/colorPrimary"
- fab:menu_colorPressed="@color/colorPrimaryDark"
+ fab:menu_colorNormal="@color/colorSecondary"
+ fab:menu_colorPressed="@color/colorSecondaryDark"
fab:menu_fab_size="normal"
fab:menu_labels_colorNormal="@color/white"
fab:menu_labels_colorPressed="@color/white_pressed"
diff --git a/app/src/main/res/layout/activity_contenuto_bancale.xml b/app/src/main/res/layout/activity_contenuto_bancale.xml
index 1ff6db11..0bd81acb 100644
--- a/app/src/main/res/layout/activity_contenuto_bancale.xml
+++ b/app/src/main/res/layout/activity_contenuto_bancale.xml
@@ -197,8 +197,8 @@
fab:menu_animationDelayPerItem="50"
fab:menu_backgroundColor="@color/white_bg_alpha"
fab:menu_buttonSpacing="0dp"
- fab:menu_colorNormal="@color/colorPrimary"
- fab:menu_colorPressed="@color/colorPrimaryDark"
+ fab:menu_colorNormal="@color/colorSecondary"
+ fab:menu_colorPressed="@color/colorSecondaryDark"
fab:menu_fab_size="normal"
fab:menu_labels_colorNormal="@color/white"
fab:menu_labels_colorPressed="@color/white_pressed"
diff --git a/app/src/main/res/layout/activity_ultime_consegne_cliente_picking.xml b/app/src/main/res/layout/activity_ultime_consegne_cliente_picking.xml
new file mode 100644
index 00000000..09cacaec
--- /dev/null
+++ b/app/src/main/res/layout/activity_ultime_consegne_cliente_picking.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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
index 54fc744d..d3400632 100644
--- a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
+++ b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml
@@ -21,8 +21,7 @@
+ android:layout_height="match_parent">
-
+
+
+
+
+
+
+ android:text="@string/app_name"
+ android:visibility="gone"
+ android:layout_centerVertical="true"
+ android:gravity="left"
+ style="@style/AppTheme.NewMaterial.Text.ToolbarTitle"/>
-
+
+
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/fragment_main_accettazione.xml b/app/src/main/res/layout/fragment_main_accettazione.xml
index 5a851576..615296d2 100644
--- a/app/src/main/res/layout/fragment_main_accettazione.xml
+++ b/app/src/main/res/layout/fragment_main_accettazione.xml
@@ -88,6 +88,7 @@
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:tint="@android:color/white"
+ style="@style/Widget.MaterialComponents.FloatingActionButton"
app:srcCompat="@drawable/ic_check_black_24dp" />
diff --git a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml
index a4f1b772..87c1191c 100644
--- a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml
+++ b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml
@@ -277,6 +277,7 @@
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:tint="@android:color/white"
+ style="@style/Widget.MaterialComponents.FloatingActionButton"
app:srcCompat="@drawable/ic_check_black_24dp"
android:onClick="@{() -> viewmodel.closeLU(true, true)}"
android:visibility="@{viewmodel.isFabVisible.get() ? View.VISIBLE : View.GONE}"
diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
index 68c337f8..bfada5c2 100644
--- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
+++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
@@ -10,28 +10,47 @@
-
-
+ android:layout_height="match_parent">
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:layout_margin="@dimen/fab_margin"
+ android:tint="@android:color/white"
+ style="@style/Widget.MaterialComponents.FloatingActionButton"
+ app:srcCompat="@drawable/ic_check_black_24dp" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_header.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_header.xml
index b0fcd552..d77f0a29 100644
--- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_header.xml
+++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_header.xml
@@ -18,38 +18,51 @@
-
-
+ android:layout_marginStart="6dp"
+ android:layout_marginEnd="6dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginBottom="8dp"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="4dp">
-
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:background="@color/colorAccent">
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml
index 5ce391c2..1d003715 100644
--- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml
+++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml
@@ -4,8 +4,8 @@
+ name="consegna"
+ type="it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO" />
+ android:orientation="horizontal"
+ android:background="@drawable/bg_checked_layout"
+ app:backgroundTintResID="@{consegna.selected.get() ? R.color.bg_checked_layout : android.R.color.transparent}" >
\ No newline at end of file
diff --git a/app/src/main/res/layout/lista_bancali_list_model.xml b/app/src/main/res/layout/lista_bancali_list_model.xml
index 5e30a8d6..17f9fabe 100644
--- a/app/src/main/res/layout/lista_bancali_list_model.xml
+++ b/app/src/main/res/layout/lista_bancali_list_model.xml
@@ -1,5 +1,5 @@
-
+
@@ -27,6 +27,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/ultime_consegne_main_list__item_header.xml b/app/src/main/res/layout/ultime_consegne_main_list__item_header.xml
new file mode 100644
index 00000000..efda0d5e
--- /dev/null
+++ b/app/src/main/res/layout/ultime_consegne_main_list__item_header.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
\ 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 dab7bf70..345ac748 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -145,6 +145,7 @@
Lista UL
Contenuto UL
Spedizione merce
+ Ultime consegne
%d - %s]]>
@@ -228,7 +229,11 @@
Seleziona tutto
Generale
+ Acquisti
+ Vendita
+ Lavorazione
Produzione
+ Movimentazione interna
Accettazione da produzione
Picking per lavorazione
Versamento materiale
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e166eb5b..258995a6 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -2,6 +2,8 @@
#1A73E8
#0049b4
+ #4db6ac
+ #459B90
#387ef5
#3f3f51b5
#757575
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7c6689b8..935f0718 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -146,6 +146,7 @@
LU List
LU Content
Shipping goods
+ Latest deliveries
%d - %s]]>
@@ -232,7 +233,11 @@
Select all
General
+ Purchase
+ Check out
+ Manufacture
Production
+ Internal handling
Production picking
Manufacture picking
Deposit raw material
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6bc83c19..bd5dfdd5 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -28,6 +28,14 @@
- @color/gray_600
- 14sp
+
+
@@ -135,7 +143,16 @@
+
+
+
+