modifiche sapori veri
This commit is contained in:
@@ -51,19 +51,23 @@ public class MainApplication extends Application {
|
||||
|
||||
|
||||
// DATABASE REPOSITORY FUNCTIONS
|
||||
public static GrigliaDao getGrigliaRepository(){
|
||||
public static GrigliaDao getGrigliaRepository() {
|
||||
return appDb.grigliaDao();
|
||||
}
|
||||
|
||||
public static ArticoloGrigliaDao getArticoliGrigliaRepository(){
|
||||
public static ArticoloGrigliaDao getArticoliGrigliaRepository() {
|
||||
return appDb.articoloGrigliaDao();
|
||||
}
|
||||
|
||||
public static OrdineDao getOrdiniRepository(){
|
||||
public static OrdineDao getOrdiniRepository() {
|
||||
return appDb.ordineDao();
|
||||
}
|
||||
|
||||
public static ArticoloOrdineDao getArticoliOrdineRepository(){
|
||||
public static ArticoloOrdineDao getArticoliOrdineRepository() {
|
||||
return appDb.articoloOrdineDao();
|
||||
}
|
||||
|
||||
public static void clearDB() {
|
||||
new Thread(() -> appDb.clearAllTables()).start();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class}, version = 3, exportSchema = false)
|
||||
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class}, version = 2, exportSchema = false)
|
||||
@TypeConverters({
|
||||
DateConverter.class
|
||||
})
|
||||
|
||||
@@ -24,4 +24,13 @@ public interface ArticoloGrigliaDao {
|
||||
void updateAll(List<ArticoloGriglia> articoli);
|
||||
@Update
|
||||
void update(ArticoloGriglia articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE bar_code = :barcode AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByBarcodeAndGriglia(String barcode, int idGriglia);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE cod_mart = :codMart AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByCodMartAndGriglia(String codMart, int idGriglia);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE (cod_mart = :scan OR bar_code =:scan )AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByScanAndGriglia(String scan, int idGriglia);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,50 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
@Dao
|
||||
public interface ArticoloOrdineDao {
|
||||
|
||||
@Query("SELECT * from articoli_ordine")
|
||||
List<ArticoloOrdine> getAll();
|
||||
|
||||
@Insert
|
||||
void insertAll(List<ArticoloOrdine> toInsert);
|
||||
|
||||
@Insert
|
||||
void insert(ArticoloOrdine articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_ordine where bar_code = :barcode and id_ordine = :ordine LIMIT 1")
|
||||
ArticoloOrdine findArticoloByOrdineAndBarcode(int ordine, String barcode);
|
||||
|
||||
@Query( " SELECT articoli_ordine.* " +
|
||||
" FROM articoli_ordine " +
|
||||
" LEFT OUTER JOIN articoli_griglia on articoli_ordine.cod_mart = articoli_griglia.cod_mart " +
|
||||
" WHERE " +
|
||||
" (" +
|
||||
" articoli_ordine.cod_mart = :scan" +
|
||||
" OR articoli_ordine.bar_code = :scan" +
|
||||
" OR articoli_griglia.bar_code = :scan" +
|
||||
" )" +
|
||||
" AND articoli_ordine.id_ordine = :ordine " +
|
||||
" LIMIT 1")
|
||||
ArticoloOrdine findArticoloByScanAndGriglia(int ordine, String scan);
|
||||
|
||||
@Update
|
||||
void updateAll(List<ArticoloOrdine> toUpdate);
|
||||
|
||||
@Update
|
||||
void update(ArticoloOrdine articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_ordine where id_ordine = :ordineId")
|
||||
List<ArticoloOrdine> findArticoliByOrdine(int ordineId);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
||||
|
||||
@Dao
|
||||
public interface GrigliaDao {
|
||||
@@ -17,7 +18,7 @@ public interface GrigliaDao {
|
||||
List<Griglia> getAll();
|
||||
|
||||
@Query("SELECT *, COUNT(articoli_griglia.articolo_griglia_id) as countArticoli from griglie LEFT JOIN articoli_griglia ON (griglie.griglia_id = articoli_griglia.id_griglia) where cod_alis = :codAlis GROUP BY griglie.griglia_id")
|
||||
Griglia findByCodAlis(String codAlis);
|
||||
GrigliaWrapper findByCodAlis(String codAlis);
|
||||
|
||||
@Insert
|
||||
long insert(Griglia griglia);
|
||||
@@ -33,4 +34,7 @@ public interface GrigliaDao {
|
||||
|
||||
@Delete
|
||||
void delete(Griglia griglia);
|
||||
|
||||
@Query("SELECT * from griglie where griglia_id = :idGriglia")
|
||||
Griglia findGrigliaById(int idGriglia);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,26 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
|
||||
@Dao
|
||||
public interface OrdineDao {
|
||||
@Query("SELECT * from ordini ")
|
||||
List<Ordine> getAll();
|
||||
|
||||
@Query("SELECT ordini.*, griglie.* from ordini inner join griglie ON id_griglia = griglie.griglia_id")
|
||||
@Query("SELECT ordini.*, griglie.* from ordini inner join griglie ON id_griglia = griglie.griglia_id where ordini.transmitted = 1")
|
||||
List<OrdineWithGriglia> getAllTrasnmitted();
|
||||
|
||||
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.id_griglia = :idGriglia group by ordini.ordine_id")
|
||||
List<OrdineWrapper> getAllOpenOrdersByGriglia(int idGriglia);
|
||||
|
||||
@Insert
|
||||
Long insert(Ordine ordine);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import androidx.room.PrimaryKey;
|
||||
onDelete = ForeignKey.CASCADE
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
public class ArticoloGriglia {
|
||||
@PrimaryKey(autoGenerate = true)
|
||||
@ColumnInfo(name = "articolo_griglia_id")
|
||||
@@ -41,7 +41,7 @@ public class ArticoloGriglia {
|
||||
private String barCode;
|
||||
|
||||
@ColumnInfo(name = "merce_da_ric")
|
||||
private int merceDaRic;
|
||||
private float merceDaRic;
|
||||
|
||||
@ColumnInfo(name = "media_sett")
|
||||
private float mediaSett;
|
||||
@@ -50,7 +50,7 @@ public class ArticoloGriglia {
|
||||
private String flagQtaMultipla;
|
||||
|
||||
@ColumnInfo(name = "qta_min_ordinabile")
|
||||
private int qtaMinOrdinabile;
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
@ColumnInfo(name = "id_griglia")
|
||||
private int idGriglia;
|
||||
@@ -103,11 +103,11 @@ public class ArticoloGriglia {
|
||||
this.barCode = barCode;
|
||||
}
|
||||
|
||||
public int getMerceDaRic() {
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(int merceDaRic) {
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
@@ -127,11 +127,11 @@ public class ArticoloGriglia {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public int getQtaMinOrdinabile() {
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(int qtaMinOrdinabile) {
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
@@ -142,4 +142,22 @@ public class ArticoloGriglia {
|
||||
public void setIdGriglia(int idGriglia) {
|
||||
this.idGriglia = idGriglia;
|
||||
}
|
||||
|
||||
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
||||
ArticoloOrdine articolo = new ArticoloOrdine();
|
||||
|
||||
articolo.setIdOrdine(ordine.getOrdineId());
|
||||
|
||||
articolo.setBarCode(this.getBarCode());
|
||||
articolo.setCodMart(this.getCodMart());
|
||||
articolo.setMediaSett(this.getMediaSett());
|
||||
articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
||||
articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
||||
articolo.setMerceDaRic(this.getMerceDaRic());
|
||||
articolo.setQtaCnf(this.getQtaCnf());
|
||||
articolo.setUntMis(this.getUntMis());
|
||||
articolo.setDescrizione(this.getDescrizione());
|
||||
|
||||
return articolo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ import androidx.room.PrimaryKey;
|
||||
@Entity(
|
||||
tableName = "articoli_ordine",
|
||||
indices = {
|
||||
@Index(value = "id_ordine")
|
||||
@Index(value = "id_ordine"),
|
||||
@Index(value = {"id_ordine","cod_mart"}, unique = true)
|
||||
},
|
||||
foreignKeys = {
|
||||
@ForeignKey(
|
||||
@@ -41,7 +42,7 @@ public class ArticoloOrdine {
|
||||
private String barCode;
|
||||
|
||||
@ColumnInfo(name = "merce_da_ric")
|
||||
private int merceDaRic;
|
||||
private float merceDaRic;
|
||||
|
||||
@ColumnInfo(name = "media_sett")
|
||||
private float mediaSett;
|
||||
@@ -50,11 +51,14 @@ public class ArticoloOrdine {
|
||||
private String flagQtaMultipla;
|
||||
|
||||
@ColumnInfo(name = "qta_min_ordinabile")
|
||||
private int qtaMinOrdinabile;
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
@ColumnInfo(name = "id_ordine")
|
||||
private int idOrdine;
|
||||
|
||||
@ColumnInfo(name = "qta_ord")
|
||||
private float qtaOtd;
|
||||
|
||||
public int getArticoloOrdineId() {
|
||||
return articoloOrdineId;
|
||||
}
|
||||
@@ -103,11 +107,11 @@ public class ArticoloOrdine {
|
||||
this.barCode = barCode;
|
||||
}
|
||||
|
||||
public int getMerceDaRic() {
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(int merceDaRic) {
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
@@ -127,11 +131,11 @@ public class ArticoloOrdine {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public int getQtaMinOrdinabile() {
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(int qtaMinOrdinabile) {
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
@@ -142,4 +146,12 @@ public class ArticoloOrdine {
|
||||
public void setIdOrdine(int idOrdine) {
|
||||
this.idOrdine = idOrdine;
|
||||
}
|
||||
|
||||
public float getQtaOtd() {
|
||||
return qtaOtd;
|
||||
}
|
||||
|
||||
public void setQtaOtd(float qtaOtd) {
|
||||
this.qtaOtd = qtaOtd;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,8 @@ package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.room.ColumnInfo;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.Ignore;
|
||||
import androidx.room.PrimaryKey;
|
||||
import androidx.room.TypeConverter;
|
||||
import androidx.room.TypeConverters;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@@ -30,6 +29,9 @@ public class Ordine {
|
||||
@Nullable
|
||||
private Date transmissionDate;
|
||||
|
||||
@Ignore
|
||||
private int countArticoli = 0;
|
||||
|
||||
@ColumnInfo(name = "id_griglia")
|
||||
private int idGriglia;
|
||||
|
||||
@@ -81,4 +83,12 @@ public class Ordine {
|
||||
public void setTransmissionDate(@Nullable Date transmissionDate) {
|
||||
this.transmissionDate = transmissionDate;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ public class ArticoliGrigliaRepository extends Repository{
|
||||
List<ArticoloGriglia> toUpdate = new ArrayList<>();
|
||||
List<ArticoloGriglia> toInsert = new ArrayList<>();
|
||||
for (ArticoloGriglia art : articoli){
|
||||
|
||||
Integer id = mRepository.getIdArticoloByGrigliaAndCodMart(art.getIdGriglia(),art.getCodMart());
|
||||
if (id != null){
|
||||
art.setArticoloGrigliaId(id);
|
||||
@@ -37,8 +36,34 @@ public class ArticoliGrigliaRepository extends Repository{
|
||||
mRepository.insertAll(toInsert);
|
||||
mRepository.updateAll(toUpdate);
|
||||
onSuccess.run();
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findArticoloByBarcodeAndGriglia(barcode, idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findArticoloByCodMartAndGriglia(codMart, idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByScanAndGriglia(String scan, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findArticoloByScanAndGriglia(scan, idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class ArticoliOrdineRepository extends Repository {
|
||||
|
||||
ArticoloOrdineDao mRepository;
|
||||
|
||||
public ArticoliOrdineRepository() {
|
||||
this.mRepository = MainApplication.getArticoliOrdineRepository();
|
||||
}
|
||||
|
||||
public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
List<ArticoloOrdine> toUpdate = new ArrayList<>();
|
||||
List<ArticoloOrdine> toInsert = new ArrayList<>();
|
||||
for (ArticoloOrdine art : articoli) {
|
||||
if (art.getArticoloOrdineId() > 0) {
|
||||
toUpdate.add(art);
|
||||
} else {
|
||||
toInsert.add(art);
|
||||
}
|
||||
}
|
||||
mRepository.insertAll(toInsert);
|
||||
mRepository.updateAll(toUpdate);
|
||||
onSuccess.run();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
ArticoloOrdine articolo = mRepository.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode);
|
||||
onSuccess.run(articolo);
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByScanAndGriglia(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
ArticoloOrdine articolo = mRepository.findArticoloByScanAndGriglia(ordine.getOrdineId(), barcode);
|
||||
onSuccess.run(articolo);
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
|
||||
execute(() -> {
|
||||
try {
|
||||
onLoad.run(mRepository.findArticoliByOrdine(ordine.getOrdineId()));
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import java.util.List;
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class GrigliaRepository extends Repository{
|
||||
@@ -26,7 +28,7 @@ public class GrigliaRepository extends Repository{
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void findByCodAlis(String codAlis ,RunnableArgs<Griglia> onSuccess, RunnableArgs<Exception> onError){
|
||||
public void findByCodAlis(String codAlis , RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findByCodAlis(codAlis));
|
||||
@@ -52,4 +54,14 @@ public class GrigliaRepository extends Repository{
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail) {
|
||||
execute(()->{
|
||||
try{
|
||||
onLoad.run(mRepository.findGrigliaById(idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,15 @@ import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class OrdineRepository extends Repository{
|
||||
|
||||
OrdineDao mRepository;
|
||||
private OrdineDao mRepository;
|
||||
|
||||
public OrdineRepository() {
|
||||
this.mRepository = MainApplication.getOrdiniRepository();
|
||||
@@ -37,5 +39,27 @@ public class OrdineRepository extends Repository{
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError){
|
||||
execute(()->{
|
||||
try{
|
||||
Long id = mRepository.insert(ordine);
|
||||
onSuccess.run(id.intValue());
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class ArticoloDTO {
|
||||
private String barcode;
|
||||
|
||||
|
||||
private int merceDaRic;
|
||||
private float merceDaRic;
|
||||
|
||||
|
||||
private float mediaSett;
|
||||
@@ -27,7 +27,7 @@ public class ArticoloDTO {
|
||||
|
||||
private String flagQtaMultipla;
|
||||
|
||||
private int qtaMinOrdinabile;
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
@@ -69,11 +69,11 @@ public class ArticoloDTO {
|
||||
this.barcode = barCode;
|
||||
}
|
||||
|
||||
public int getMerceDaRic() {
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(int merceDaRic) {
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
@@ -93,11 +93,11 @@ public class ArticoloDTO {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public int getQtaMinOrdinabile() {
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(int qtaMinOrdinabile) {
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,12 +14,6 @@ public class OrdineWithGriglia {
|
||||
@Embedded
|
||||
private Griglia griglia;
|
||||
|
||||
@Ignore
|
||||
public BindableBoolean selected;
|
||||
|
||||
public OrdineWithGriglia() {
|
||||
this.selected = new BindableBoolean(false);
|
||||
}
|
||||
|
||||
public Ordine getOrdine() {
|
||||
return ordine;
|
||||
@@ -36,13 +30,4 @@ public class OrdineWithGriglia {
|
||||
public void setGriglia(Griglia griglia) {
|
||||
this.griglia = griglia;
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return selected.get();
|
||||
}
|
||||
|
||||
public OrdineWithGriglia setSelected(boolean selected) {
|
||||
this.selected.set(selected);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
||||
|
||||
import androidx.room.Embedded;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
|
||||
public class GrigliaWrapper {
|
||||
@Embedded
|
||||
private Griglia griglia;
|
||||
|
||||
private int countArticoli = 0;
|
||||
|
||||
public Griglia getGriglia() {
|
||||
return griglia;
|
||||
}
|
||||
|
||||
public void setGriglia(Griglia griglia) {
|
||||
this.griglia = griglia;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
||||
|
||||
import androidx.room.Embedded;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
public class OrdineWrapper {
|
||||
|
||||
@Embedded
|
||||
private Ordine ordine;
|
||||
|
||||
private int countArticoli = 0;
|
||||
|
||||
public Ordine getOrdine() {
|
||||
return ordine;
|
||||
}
|
||||
|
||||
public void setOrdine(Ordine ordine) {
|
||||
this.ordine = ordine;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,13 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
@@ -18,14 +25,34 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
|
||||
public static void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
||||
ordiniARestService
|
||||
.getArticoliListino(codAlis, SettingsManager.i().userSession.profileDB, SettingsManager.i().user.username, SettingsManager.i().user.password)
|
||||
.enqueue(new Callback<ServiceRESTResponse<GrigliaDTO>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<GrigliaDTO>> call, Response<ServiceRESTResponse<GrigliaDTO>> response) {
|
||||
analyzeAnswer(response,"getArticoliListino",onSuccess,onFailed);
|
||||
analyzeAnswer(response, "getArticoliListino", griglia -> {
|
||||
|
||||
List<ArticoloDTO> listaArticoli = new ArrayList<>();
|
||||
Stream.of(griglia.getGrigliaAcquistiChild())
|
||||
.map(ArticoloDTO::getCodMart)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.forEach(art -> {
|
||||
List<ArticoloDTO> inList = Stream.of(griglia.getGrigliaAcquistiChild()).filter(x -> x.getCodMart().equalsIgnoreCase(art)).toList();
|
||||
if (inList.size() > 1){
|
||||
for (ArticoloDTO articolo : inList){
|
||||
if (!articolo.getBarCode().endsWith(articolo.getCodMart())){
|
||||
listaArticoli.add(articolo);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
listaArticoli.add(inList.get(0));
|
||||
}
|
||||
});
|
||||
griglia.setGrigliaAcquistiChild(listaArticoli);
|
||||
onSuccess.run(griglia);
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,6 +20,11 @@ public class UtilityProgress {
|
||||
progress.show();
|
||||
return progress;
|
||||
}
|
||||
public static Dialog createDefaultProgressDialog(Context mContext,String subtitle) {
|
||||
Dialog progress = DialogProgress.make(mContext,subtitle);
|
||||
progress.show();
|
||||
return progress;
|
||||
}
|
||||
|
||||
|
||||
public static Thread makeProgressBarIndeterminate(ProgressBar progressBar) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsModel;
|
||||
|
||||
@@ -9,7 +10,7 @@ public class UtilitySettings {
|
||||
public static void logout(){
|
||||
SettingsManager.i().user = null;
|
||||
SettingsManager.i().userSession = null;
|
||||
|
||||
MainApplication.clearDB();
|
||||
SettingsManager.update();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,35 +1,60 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_acquisto_pv;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
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.FragmentPvOrdiniAcquistoBinding;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.core.OrdiniAcquistoElencoHelper;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.core.OrdineAcquistoPvOpenListAdapter;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.dialogs.DialogScanLisA;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.helper.OrdineAcquistoPvHelper;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
|
||||
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.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment {
|
||||
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||
|
||||
private FragmentPvOrdiniAcquistoBinding mBinding;
|
||||
private OrdiniAcquistoElencoHelper mHelper;
|
||||
private OrdineAcquistoPvHelper mHelper;
|
||||
private Griglia mGriglia;
|
||||
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
||||
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||
|
||||
|
||||
public PVOrdiniAcquistoGrigliaFragment() {
|
||||
mHelper = new OrdineAcquistoPvHelper(getActivity());
|
||||
}
|
||||
|
||||
public static PVOrdiniAcquistoGrigliaFragment newInstance() {
|
||||
@@ -40,12 +65,14 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_acquisto, container, false);
|
||||
mBinding.setViewmodel(this);
|
||||
|
||||
init();
|
||||
initRecyclerView();
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -53,7 +80,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
|
||||
BarcodeManager.enable();
|
||||
DialogScanLisA.make(getActivity(), griglia -> {
|
||||
if(griglia == null) {
|
||||
if (griglia == null) {
|
||||
((IPoppableActivity) getActivity()).pop();
|
||||
} else {
|
||||
setGriglia(griglia);
|
||||
@@ -67,7 +94,84 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||
}
|
||||
|
||||
private void setGriglia(Griglia griglia){
|
||||
private void setGriglia(Griglia griglia) {
|
||||
mGriglia = griglia;
|
||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||
mBinding.codAlis.setText(griglia.getCodAlis());
|
||||
mBinding.descrLis.setText(griglia.getDescrLisa());
|
||||
mBinding.countArtLis.setText(String.valueOf(griglia.getCountArticoli()));
|
||||
|
||||
fetchOrders();
|
||||
}
|
||||
|
||||
private void fetchOrders() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
|
||||
OrdineRepository repository = new OrdineRepository();
|
||||
repository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> {
|
||||
progress.dismiss();
|
||||
setOrdini(ordini);
|
||||
}), (e) -> {
|
||||
progress.dismiss();
|
||||
String errorMessage = e.getMessage();
|
||||
getActivity().runOnUiThread(() -> DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show());
|
||||
});
|
||||
}
|
||||
|
||||
private void setOrdini(List<OrdineWrapper> ordini) {
|
||||
mBinding.ordiniAApertiMainList.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
mBinding.ordiniAEmptyView.setVisibility(ordini == null || ordini.size() <= 0 ? View.VISIBLE : View.GONE);
|
||||
refreshRenderedOrdini(ordini);
|
||||
mAdapter.updateItems(mRenderedOrderList);
|
||||
}
|
||||
|
||||
public Griglia getGriglia() {
|
||||
return mGriglia;
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBinding.ordiniAApertiMainList.setHasFixedSize(true);
|
||||
|
||||
mBinding.ordiniAApertiMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
|
||||
mBinding.ordiniAApertiMainList.addItemDecoration(itemDecorator);
|
||||
mAdapter = new OrdineAcquistoPvOpenListAdapter(getActivity(), mRenderedOrderList, selectOrdine);
|
||||
mBinding.ordiniAApertiMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private RunnableArgs<Ordine> selectOrdine = ordine -> {
|
||||
|
||||
Intent myIntent = new Intent(getActivity(), PVOrdineAcquistoEditActivity.class);
|
||||
|
||||
String keyOrdine = DataCache.addItem(ordine);
|
||||
myIntent.putExtra("keyOrdine", keyOrdine);
|
||||
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
};
|
||||
|
||||
private void refreshRenderedOrdini(List<OrdineWrapper> ordini) {
|
||||
mRenderedOrderList.clear();
|
||||
if (ordini != null) mRenderedOrderList.addAll(ordini);
|
||||
}
|
||||
|
||||
public void createNewOrder() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
|
||||
mHelper.createNewOrder(mGriglia, order -> {
|
||||
progress.dismiss();
|
||||
getActivity().runOnUiThread(this::fetchOrders);
|
||||
|
||||
}, e -> getActivity().runOnUiThread(() -> UtilityExceptions.defaultException(getActivity(), e, progress)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniATrasmessiElencoBinding;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.core.OrdineAcquistoPvTransmittedListAdapter;
|
||||
import it.integry.integrywmsnative.gest.ordini_acquisto_pv.core.OrdiniAcquistoElencoHelper;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
@@ -32,15 +31,11 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||
|
||||
private FragmentPvOrdiniATrasmessiElencoBinding mBinding;
|
||||
private OrdiniAcquistoElencoHelper mHelper;
|
||||
private ElevatedToolbar mToolbar;
|
||||
private OrdineAcquistoPvTransmittedListAdapter mAdapter;
|
||||
|
||||
private List<OrdineWithGriglia> mOriginalOrderList;
|
||||
private List<OrdineWithGriglia> mRenderedOrderList = new ArrayList<>();
|
||||
|
||||
private AppCompatTextView mAppBarTitle;
|
||||
|
||||
private DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||
|
||||
public PVOrdiniAcquistoTransmittedListFragment() {
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_acquisto_pv.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.FragmentOrdineAPvTransmittedListModelBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentOrdiniAPvListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListHeaderBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoPvOpenListAdapter.SubheaderHolder, OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<OrdineWrapper> mDataset;
|
||||
RunnableArgs<Ordine> mOnItemSelect;
|
||||
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding;
|
||||
|
||||
SubheaderHolder(FragmentPvOrdiniAcquistoListHeaderBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvOrdiniAcquistoListSingleItemBinding binding;
|
||||
|
||||
SingleItemViewHolder(FragmentPvOrdiniAcquistoListSingleItemBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public OrdineAcquistoPvOpenListAdapter(Context context, List<OrdineWrapper> myDataset, RunnableArgs<Ordine> onItemSelect) {
|
||||
mContext = context;
|
||||
mDataset = orderItems(myDataset);
|
||||
mOnItemSelect = onItemSelect;
|
||||
}
|
||||
|
||||
public void updateItems(List<OrdineWrapper> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(orderItems(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<OrdineWrapper> orderItems(List<OrdineWrapper> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(OrdineWrapper::getOrdine)
|
||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataOrd(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||
.toList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_ordini_acquisto__list_header, parent, false);
|
||||
return new SubheaderHolder(binding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvOrdiniAcquistoListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_ordini_acquisto__list_single_item, parent, false);
|
||||
return new SingleItemViewHolder(binding);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(OrdineAcquistoPvOpenListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.title.setText(mContext.getString(R.string.ordini_a_aperti));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindItemViewHolder(OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder h, int itemPosition) {
|
||||
final OrdineWrapper ordineWrapper = mDataset.get(itemPosition);
|
||||
final Ordine ordine = ordineWrapper.getOrdine();
|
||||
final OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder holder = h;
|
||||
|
||||
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataOrd(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
holder.binding.numArts.setText(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli())));
|
||||
|
||||
holder.binding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||
|
||||
holder.binding.getRoot().setOnClickListener(v -> {
|
||||
mOnItemSelect.run(ordine);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemSize() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_acquisto_pv.core;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
public class OrdiniAcquistoElencoHelper {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public OrdiniAcquistoElencoHelper(Context context) {
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_acquisto_pv.dialogs;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
@@ -14,6 +16,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
@@ -23,7 +26,7 @@ import it.integry.integrywmsnative.gest.ordini_acquisto_pv.helper.OrdineAcquisto
|
||||
|
||||
public class DialogScanLisA {
|
||||
|
||||
private Context mContext;
|
||||
private Activity mContext;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
@@ -32,34 +35,28 @@ public class DialogScanLisA {
|
||||
private RunnableArgs<Griglia> mOnDialogDismiss;
|
||||
|
||||
private OrdineAcquistoPvHelper mHelper;
|
||||
private Griglia mGriglia;
|
||||
|
||||
private DialogScanLisA(Context context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
private DialogScanLisA(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
mOnDialogDismiss = null;
|
||||
mContext = context;
|
||||
mHelper = new OrdineAcquistoPvHelper(context);
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
|
||||
mGriglia = null;
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_codice_griglia, null, false);
|
||||
|
||||
mDialog = new BaseDialog(context);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
mDialog.setCanceledOnTouchOutside(false);
|
||||
// mDialog.setCancelable(false);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
init(onDialogDismiss);
|
||||
mOnDialogDismiss = onDialogDismiss;
|
||||
initBarcode();
|
||||
}
|
||||
|
||||
public static Dialog make(Context context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
public static Dialog make(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
return new DialogScanLisA(context, onDialogDismiss).mDialog;
|
||||
}
|
||||
|
||||
|
||||
private void init(RunnableArgs<Griglia> onDialogDismiss) {
|
||||
mOnDialogDismiss = onDialogDismiss;
|
||||
}
|
||||
|
||||
private void initBarcode() {
|
||||
|
||||
int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
@@ -69,34 +66,44 @@ public class DialogScanLisA {
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
BarcodeManager.removeCallback(barcodeIstanceID);
|
||||
BarcodeManager.enable();
|
||||
mOnDialogDismiss.run(null);
|
||||
mOnDialogDismiss.run(mGriglia);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||
BarcodeManager.disable();
|
||||
|
||||
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
Context context = mContext;
|
||||
RunnableArgs<Exception> mOnError = exception -> {
|
||||
UtilityExceptions.defaultException(mContext,exception,progressDialog);
|
||||
BarcodeManager.enable();
|
||||
mContext.runOnUiThread(()->{
|
||||
progressDialog.dismiss();
|
||||
UtilityExceptions.defaultException(context,exception);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
};
|
||||
|
||||
RunnableArgs<Griglia> onGrigliaAvaialable = griglia->{
|
||||
mContext.runOnUiThread(()->{
|
||||
progressDialog.dismiss();
|
||||
mGriglia = griglia;
|
||||
mDialog.dismiss();
|
||||
});
|
||||
};
|
||||
|
||||
GrigliaRepository repository = new GrigliaRepository();
|
||||
|
||||
repository.findByCodAlis(data.getStringValue(),griglia->{
|
||||
if (griglia != null){
|
||||
griglia.getGriglia().setCountArticoli(griglia.getCountArticoli());
|
||||
if (griglia.getCountArticoli() >0){
|
||||
mOnDialogDismiss.run(griglia);
|
||||
onGrigliaAvaialable.run(griglia.getGriglia());
|
||||
}else{
|
||||
mHelper.updateGriglia(griglia,(grigliaEntity)->{
|
||||
progressDialog.dismiss();
|
||||
mOnDialogDismiss.run(grigliaEntity);
|
||||
},mOnError);
|
||||
mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvaialable,mOnError);
|
||||
}
|
||||
}else{
|
||||
mHelper.downloadAndSaveLisA(data.getStringValue(),(grigliaEntity)->{
|
||||
progressDialog.dismiss();
|
||||
mOnDialogDismiss.run(grigliaEntity);
|
||||
},mOnError);
|
||||
mHelper.downloadAndSaveLisA(data.getStringValue(), onGrigliaAvaialable,mOnError);
|
||||
}
|
||||
},mOnError);
|
||||
|
||||
|
||||
@@ -3,12 +3,15 @@ package it.integry.integrywmsnative.gest.ordini_acquisto_pv.helper;
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||
@@ -18,11 +21,13 @@ public class OrdineAcquistoPvHelper {
|
||||
private Context mContext;
|
||||
private GrigliaRepository mGrigliaRepository;
|
||||
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
|
||||
|
||||
private OrdineRepository mOrdineRepository;
|
||||
public OrdineAcquistoPvHelper(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
this.mGrigliaRepository = new GrigliaRepository();
|
||||
this.mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
|
||||
this.mOrdineRepository = new OrdineRepository();
|
||||
|
||||
}
|
||||
|
||||
public void downloadAndSaveLisA(String codAlis, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
@@ -40,6 +45,7 @@ public class OrdineAcquistoPvHelper {
|
||||
}
|
||||
griglia.setDescrLisa(dto.getDescrLisa());
|
||||
griglia.setDescrDepo(dto.getDescrDepo());
|
||||
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
|
||||
mGrigliaRepository.saveGriglia(griglia, id -> {
|
||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail);
|
||||
}, onFail);
|
||||
@@ -47,7 +53,7 @@ public class OrdineAcquistoPvHelper {
|
||||
}, onFail);
|
||||
}
|
||||
|
||||
public void saveLisAToGriglia(List<ArticoloDTO> articoli, Griglia griglia, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
private void saveLisAToGriglia(List<ArticoloDTO> articoli, Griglia griglia, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
List<ArticoloGriglia> articoliGriglia = new ArrayList<>();
|
||||
for (ArticoloDTO articolo : articoli) {
|
||||
ArticoloGriglia toSave = articolo.toArticoloGriglia();
|
||||
@@ -56,4 +62,14 @@ public class OrdineAcquistoPvHelper {
|
||||
}
|
||||
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, () -> onSave.run(griglia), onFail);
|
||||
}
|
||||
|
||||
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||
Ordine ordine = new Ordine();
|
||||
ordine.setDataOrd(new Date());
|
||||
ordine.setIdGriglia(griglia.getGrigliaId());
|
||||
mOrdineRepository.insert(ordine,id->{
|
||||
ordine.setOrdineId(id);
|
||||
onSuccess.run(ordine);
|
||||
},onError);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.R;
|
||||
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.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPvordineAcquistoEditBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
|
||||
public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
|
||||
private Ordine mOrdine;
|
||||
private Griglia mGriglia;
|
||||
private List<ArticoloOrdine> mArticoli;
|
||||
private PVEditOrderHelper mhelper;
|
||||
private ActivityPvordineAcquistoEditBinding mBinding;
|
||||
private int mBarcodeScannerIstanceID;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mhelper = new PVEditOrderHelper(this);
|
||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pvordine_acquisto_edit);
|
||||
mBinding.setViewModel(this);
|
||||
mOrdine = DataCache.retrieveItem(getIntent().getStringExtra("keyOrdine"));
|
||||
setTitle("aaaa");
|
||||
fetchDetails();
|
||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(this::onScanSuccessful)
|
||||
.setOnScanFailed(this::handleException));
|
||||
|
||||
}
|
||||
|
||||
private void handleException(Exception ex) {
|
||||
runOnUiThread(()->{
|
||||
BarcodeManager.enable();
|
||||
UtilityExceptions.defaultException(this, ex, false);
|
||||
});
|
||||
}
|
||||
|
||||
private void onScanSuccessful(BarcodeScanDTO dto) {
|
||||
BarcodeManager.disable();
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.checkArticolo(
|
||||
mOrdine,
|
||||
dto.getStringValue(),
|
||||
articoloOrdine -> {
|
||||
progress.dismiss();
|
||||
addArticolo(articoloOrdine);
|
||||
},
|
||||
e -> {
|
||||
progress.dismiss();
|
||||
handleException(e);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private void addArticolo(ArticoloOrdine articoloOrdine) {
|
||||
runOnUiThread(()->{
|
||||
EditArticoloDialog.make(this, articoloOrdine, articolo -> {
|
||||
BarcodeManager.enable();
|
||||
if (articolo == null) {
|
||||
Toast.makeText(this, "Inserimento articolo annullato", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Toast.makeText(this, "Articolo inserito", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}).show();
|
||||
});
|
||||
}
|
||||
|
||||
private void fetchDetails() {
|
||||
fetchGriglia();
|
||||
fetchArticoli();
|
||||
}
|
||||
|
||||
private void fetchGriglia() {
|
||||
mhelper.loadGriglia(mOrdine.getIdGriglia(), griglia -> {
|
||||
runOnUiThread(()->{
|
||||
mGriglia = griglia;
|
||||
mBinding.codAlis.setText(mGriglia.getCodAlis());
|
||||
});
|
||||
}, this::handleException);
|
||||
}
|
||||
|
||||
private void fetchArticoli() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.loadArticoli(mOrdine, articoli -> {
|
||||
progress.dismiss();
|
||||
mArticoli = articoli;
|
||||
runOnUiThread(()->{
|
||||
mBinding.countArtOrd.setText(String.valueOf(mArticoli.size()));
|
||||
mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
});
|
||||
}, this::handleException);
|
||||
}
|
||||
|
||||
|
||||
public void addArticoloToOrdine(ArticoloOrdine articolo) {
|
||||
|
||||
}
|
||||
|
||||
public void closeEdit() {
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
public void exportOrdine() {
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
|
||||
public class EditArticoloDialog {
|
||||
|
||||
private Activity mContext;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
private DialogPvEditArticoloBinding mBinding;
|
||||
|
||||
private PVEditOrderHelper mHelper;
|
||||
|
||||
private ArticoloOrdine mArticolo;
|
||||
|
||||
private ArticoloOrdine mSavedArt;
|
||||
|
||||
private boolean mLockedInput = false;
|
||||
|
||||
private EditArticoloDialog(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
|
||||
mContext = context;
|
||||
mArticolo = articolo;
|
||||
mHelper = new PVEditOrderHelper(context);
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_pv_edit_articolo, null, false);
|
||||
mBinding.setViewmodel(this);
|
||||
mDialog = new BaseDialog(context);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
mSavedArt = null;
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
onDialogDismiss.run(mSavedArt);
|
||||
});
|
||||
setListeners();
|
||||
}
|
||||
|
||||
private void setListeners() {
|
||||
mBinding.qtaTot.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (mLockedInput){
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
mLockedInput = true;
|
||||
float qtaTot = Float.parseFloat(s.toString());
|
||||
float qtaCnf = qtaTot * mArticolo.getQtaCnf();
|
||||
mBinding.qtaCnf.setText(String.valueOf(qtaCnf));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
}
|
||||
});
|
||||
mBinding.qtaCnf.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (mLockedInput){
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
mLockedInput = true;
|
||||
float qtaCnf = Float.parseFloat(s.toString());
|
||||
float qtaTot = qtaCnf / mArticolo.getQtaCnf();
|
||||
mBinding.qtaTot.setText(String.valueOf(qtaTot));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static Dialog make(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
|
||||
return new EditArticoloDialog(context, articolo, onDialogDismiss).mDialog;
|
||||
}
|
||||
|
||||
public void saveAndExit(){
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
mHelper.saveArticoloToOrdine(mArticolo, ()->{
|
||||
mSavedArt = mArticolo;
|
||||
progress.dismiss();
|
||||
mDialog.dismiss();
|
||||
});
|
||||
}
|
||||
|
||||
public ArticoloOrdine getArticolo() {
|
||||
return mArticolo;
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
mArticolo = null;
|
||||
mDialog.dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class PVEditOrderHelper {
|
||||
private Context mContext;
|
||||
private GrigliaRepository mGrigliaRepository;
|
||||
private ArticoliOrdineRepository mArticoliOrdineRepository;
|
||||
private ArticoliGrigliaRepository mArticoliGrigliaRepository ;
|
||||
|
||||
public PVEditOrderHelper(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
mGrigliaRepository = new GrigliaRepository();
|
||||
mArticoliOrdineRepository = new ArticoliOrdineRepository();
|
||||
mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
|
||||
}
|
||||
|
||||
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail){
|
||||
try{
|
||||
mArticoliOrdineRepository.findArticoloByScanAndGriglia(ordine,barcode,(articolo)->{
|
||||
if (articolo != null) {
|
||||
onSuccess.run(articolo);
|
||||
}else{
|
||||
mArticoliGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(),artGrid->{
|
||||
if (artGrid != null){
|
||||
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
|
||||
}else{
|
||||
if (barcode.length() < 13){
|
||||
String newbarcode = StringUtils.leftPad(barcode,13,'0');
|
||||
mArticoliGrigliaRepository.findArticoloByScanAndGriglia(newbarcode, ordine.getIdGriglia(),aartGrid->{
|
||||
if (aartGrid != null){
|
||||
onSuccess.run(aartGrid.convertToArticoloOrdine(ordine));
|
||||
}else{
|
||||
onFail.run(new Exception("L' articolo ( "+barcode+" ) non è presente nella griglia"));
|
||||
}
|
||||
},onFail);
|
||||
}else{
|
||||
onFail.run(new Exception("L' articolo ( "+barcode+" ) non è presente nella griglia"));
|
||||
}
|
||||
}
|
||||
},onFail);
|
||||
}
|
||||
},onFail);
|
||||
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadGriglia(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onError) {
|
||||
try{
|
||||
mGrigliaRepository.findGrigliaById(idGriglia,onLoad,onError);
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
}
|
||||
public void loadArticoli(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError){
|
||||
try{
|
||||
mArticoliOrdineRepository.findArticoliByOrdine(ordine,onLoad,onError);
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSsve) {
|
||||
onSsve.run();
|
||||
}
|
||||
}
|
||||
@@ -22,13 +22,19 @@ public class DialogProgress {
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
public static Dialog make(Context context,String subtitle) {
|
||||
DialogProgress progress = new DialogProgress(context);
|
||||
progress.setSubtitle(subtitle);
|
||||
return progress.mDialog;
|
||||
}
|
||||
|
||||
public static Dialog make(Context context) {
|
||||
return new DialogProgress(context).mDialog;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public DialogProgress(Context context) {
|
||||
private DialogProgress(Context context) {
|
||||
mContext = context;
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
@@ -52,8 +58,8 @@ public class DialogProgress {
|
||||
});
|
||||
}
|
||||
|
||||
public void setSubtitle(String subtitle){
|
||||
mBinding.setSubtitle(subtitle);
|
||||
private void setSubtitle(String subtitle){
|
||||
mBinding.subtitleText.setText(subtitle);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user