bugfix e ottimizzazioni gestione ordini acquisto
This commit is contained in:
parent
f967514f97
commit
ae8db5791e
@ -2,7 +2,7 @@
|
|||||||
"formatVersion": 1,
|
"formatVersion": 1,
|
||||||
"database": {
|
"database": {
|
||||||
"version": 12,
|
"version": 12,
|
||||||
"identityHash": "1fbbe769d42f5fb33a56580bea8b11c6",
|
"identityHash": "a3c4983a84b2d615e548dcceba15ecf0",
|
||||||
"entities": [
|
"entities": [
|
||||||
{
|
{
|
||||||
"tableName": "articoli_griglia",
|
"tableName": "articoli_griglia",
|
||||||
@ -192,7 +192,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tableName": "ordini",
|
"tableName": "ordini",
|
||||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`ordine_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `data_ins` INTEGER, `annotazioni` TEXT, `transmitted` INTEGER NOT NULL, `transmission_date` INTEGER, `gestione` TEXT, `data_ord` INTEGER, `num_ord` INTEGER, `cod_mdep` TEXT, `id_griglia` INTEGER NOT NULL)",
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`ordine_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `data_ins` INTEGER, `annotazioni` TEXT, `transmitted` INTEGER NOT NULL, `transmission_date` INTEGER, `gestione` TEXT, `data_ord` INTEGER, `num_ord` INTEGER, `cod_mdep` TEXT, `id_griglia` INTEGER NOT NULL, `cod_alis` TEXT NOT NULL)",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"fieldPath": "ordineId",
|
"fieldPath": "ordineId",
|
||||||
@ -253,6 +253,12 @@
|
|||||||
"columnName": "id_griglia",
|
"columnName": "id_griglia",
|
||||||
"affinity": "INTEGER",
|
"affinity": "INTEGER",
|
||||||
"notNull": true
|
"notNull": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "codAlis",
|
||||||
|
"columnName": "cod_alis",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primaryKey": {
|
"primaryKey": {
|
||||||
@ -868,7 +874,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tableName": "inventari",
|
"tableName": "inventari",
|
||||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `id_inventario` INTEGER, `cod_mdep` TEXT NOT NULL, `data_inventario` INTEGER, `data_reg` INTEGER, `data_ver` INTEGER, `filtro` TEXT, `flag_stato` TEXT, `flag_operazione` TEXT, `cod_anag` TEXT, `cod_dtip` TEXT, `inserito_da` TEXT, `registrato_da` TEXT, `verificato_da` TEXT, `data_ora_inizio` INTEGER, `data_ora_fine` INTEGER, `causale` TEXT, `remote_sync_date` INTEGER)",
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `id_inventario` INTEGER, `cod_mdep` TEXT NOT NULL, `data_inventario` INTEGER, `data_reg` INTEGER, `data_ver` INTEGER, `filtro` TEXT, `flag_stato` TEXT, `flag_operazione` TEXT, `cod_anag` TEXT, `cod_dtip` TEXT, `inserito_da` TEXT, `registrato_da` TEXT, `verificato_da` TEXT, `data_ora_inizio` INTEGER, `data_ora_fine` INTEGER, `causale` TEXT, `zona` TEXT, `remote_sync_date` INTEGER)",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"fieldPath": "id",
|
"fieldPath": "id",
|
||||||
@ -972,6 +978,12 @@
|
|||||||
"affinity": "TEXT",
|
"affinity": "TEXT",
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "zona",
|
||||||
|
"columnName": "zona",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"fieldPath": "remoteSyncDate",
|
"fieldPath": "remoteSyncDate",
|
||||||
"columnName": "remote_sync_date",
|
"columnName": "remote_sync_date",
|
||||||
@ -1006,12 +1018,139 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"foreignKeys": []
|
"foreignKeys": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tableName": "inventario_rows",
|
||||||
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `parent_id` INTEGER, `cod_mart` TEXT NOT NULL, `partita_mag` TEXT, `descrizione` TEXT, `qta` REAL NOT NULL DEFAULT 0, `num_cnf` REAL NOT NULL DEFAULT 0, `qta_cnf` REAL NOT NULL DEFAULT 0, `unt_mis` TEXT NOT NULL DEFAULT '0', `data_ora_inv` INTEGER, `scan_cod_barre` TEXT, `zona` TEXT, `remote_sync_date` INTEGER, FOREIGN KEY(`parent_id`) REFERENCES `inventari`(`_id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldPath": "id",
|
||||||
|
"columnName": "_id",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "parentId",
|
||||||
|
"columnName": "parent_id",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "codMart",
|
||||||
|
"columnName": "cod_mart",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "partitaMag",
|
||||||
|
"columnName": "partita_mag",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "descrizione",
|
||||||
|
"columnName": "descrizione",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "qta",
|
||||||
|
"columnName": "qta",
|
||||||
|
"affinity": "REAL",
|
||||||
|
"notNull": true,
|
||||||
|
"defaultValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "numConf",
|
||||||
|
"columnName": "num_cnf",
|
||||||
|
"affinity": "REAL",
|
||||||
|
"notNull": true,
|
||||||
|
"defaultValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "qtaConf",
|
||||||
|
"columnName": "qta_cnf",
|
||||||
|
"affinity": "REAL",
|
||||||
|
"notNull": true,
|
||||||
|
"defaultValue": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "untMis",
|
||||||
|
"columnName": "unt_mis",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": true,
|
||||||
|
"defaultValue": "'0'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "dataOraInv",
|
||||||
|
"columnName": "data_ora_inv",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "scanCodBarre",
|
||||||
|
"columnName": "scan_cod_barre",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "zona",
|
||||||
|
"columnName": "zona",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "remoteSyncDate",
|
||||||
|
"columnName": "remote_sync_date",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"primaryKey": {
|
||||||
|
"columnNames": [
|
||||||
|
"_id"
|
||||||
|
],
|
||||||
|
"autoGenerate": true
|
||||||
|
},
|
||||||
|
"indices": [
|
||||||
|
{
|
||||||
|
"name": "index_inventario_rows__id",
|
||||||
|
"unique": false,
|
||||||
|
"columnNames": [
|
||||||
|
"_id"
|
||||||
|
],
|
||||||
|
"orders": [],
|
||||||
|
"createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows__id` ON `${TABLE_NAME}` (`_id`)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "index_inventario_rows_parent_id",
|
||||||
|
"unique": false,
|
||||||
|
"columnNames": [
|
||||||
|
"parent_id"
|
||||||
|
],
|
||||||
|
"orders": [],
|
||||||
|
"createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows_parent_id` ON `${TABLE_NAME}` (`parent_id`)"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"foreignKeys": [
|
||||||
|
{
|
||||||
|
"table": "inventari",
|
||||||
|
"onDelete": "NO ACTION",
|
||||||
|
"onUpdate": "NO ACTION",
|
||||||
|
"columns": [
|
||||||
|
"parent_id"
|
||||||
|
],
|
||||||
|
"referencedColumns": [
|
||||||
|
"_id"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"views": [],
|
"views": [],
|
||||||
"setupQueries": [
|
"setupQueries": [
|
||||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1fbbe769d42f5fb33a56580bea8b11c6')"
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'a3c4983a84b2d615e548dcceba15ecf0')"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -39,7 +39,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
|||||||
InventarioRoomDTO.class,
|
InventarioRoomDTO.class,
|
||||||
InventarioRowRoomDTO.class
|
InventarioRowRoomDTO.class
|
||||||
},
|
},
|
||||||
version = 11,
|
version = 12,
|
||||||
exportSchema = true)
|
exportSchema = true)
|
||||||
@TypeConverters({
|
@TypeConverters({
|
||||||
DateConverter.class,
|
DateConverter.class,
|
||||||
@ -63,7 +63,8 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
if (sInstance == null) {
|
if (sInstance == null) {
|
||||||
var builder = Room.databaseBuilder(applicationContext,
|
var builder = Room.databaseBuilder(applicationContext,
|
||||||
AppDatabase.class, "integry_wms")
|
AppDatabase.class, "integry_wms")
|
||||||
.addMigrations(MIGRATION_10_11);
|
.addMigrations(MIGRATION_10_11)
|
||||||
|
.addMigrations(MIGRATION_11_12);
|
||||||
|
|
||||||
sInstance = builder.build();
|
sInstance = builder.build();
|
||||||
}
|
}
|
||||||
@ -100,6 +101,14 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
|
database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
static final Migration MIGRATION_11_12 = new Migration(11, 12) {
|
||||||
|
@Override
|
||||||
|
public void migrate(SupportSQLiteDatabase database) {
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS ordini_tmp;");
|
||||||
|
database.execSQL("CREATE TABLE ordini_tmp (ordine_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, data_ins INTEGER, annotazioni TEXT, transmitted INTEGER NOT NULL, transmission_date INTEGER, gestione TEXT, data_ord INTEGER, num_ord INTEGER, cod_mdep TEXT, id_griglia INTEGER NOT NULL, cod_alis TEXT NOT NULL);");
|
||||||
|
database.execSQL("INSERT INTO ordini_tmp(ordine_id,data_ins,annotazioni,transmitted,transmission_date,gestione,data_ord,num_ord,cod_mdep,id_griglia,cod_alis) SELECT ordini.ordine_id,ordini.data_ins,ordini.annotazioni,ordini.transmitted,ordini.transmission_date,ordini.gestione,ordini.data_ord,ordini.num_ord,ordini.cod_mdep,ordini.id_griglia,griglie.cod_alis from ordini left outer join griglie on ordini.id_griglia = griglie.griglia_id;");
|
||||||
|
database.execSQL("DROP TABLE ordini;");
|
||||||
|
database.execSQL("ALTER TABLE ordini_tmp RENAME TO ordini;");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import androidx.room.Update;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
|
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface ArticoloOrdineDao {
|
public interface ArticoloOrdineDao {
|
||||||
@ -33,17 +32,10 @@ public interface ArticoloOrdineDao {
|
|||||||
@Update
|
@Update
|
||||||
void update(ArticoloOrdine articolo);
|
void update(ArticoloOrdine articolo);
|
||||||
|
|
||||||
@Query("SELECT articoli_ordine.*," +
|
@Query("SELECT *" +
|
||||||
"articoli_griglia.gg_scadenza," +
|
|
||||||
"articoli_griglia.giacenza," +
|
|
||||||
"articoli_griglia.qta_prevista_vendita," +
|
|
||||||
"articoli_griglia.qta_proposta " +
|
|
||||||
"FROM articoli_ordine " +
|
"FROM articoli_ordine " +
|
||||||
"INNER JOIN ordini on articoli_ordine.id_ordine = ordini.ordine_id " +
|
|
||||||
"LEFT OUTER JOIN articoli_griglia " +
|
|
||||||
"on articoli_ordine.cod_mart = articoli_griglia.cod_mart and ordini.id_griglia = articoli_griglia.id_griglia and articoli_ordine.bar_code = articoli_griglia.bar_code " +
|
|
||||||
"where id_ordine = :ordineId")
|
"where id_ordine = :ordineId")
|
||||||
List<ArticoloOrdineWrapper> findArticoliByOrdine(int ordineId);
|
List<ArticoloOrdine> findArticoliByOrdine(int ordineId);
|
||||||
|
|
||||||
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
||||||
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
||||||
|
|||||||
@ -9,15 +9,14 @@ import androidx.room.Update;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface GrigliaDao {
|
public interface GrigliaDao {
|
||||||
@Query("SELECT * from griglie")
|
@Query("SELECT * from griglie")
|
||||||
List<Griglia> getAll();
|
List<Griglia> getAll();
|
||||||
|
|
||||||
@Query("SELECT griglie.*, 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")
|
@Query("SELECT * from griglie where cod_alis = :codAlis")
|
||||||
GrigliaWrapper findByCodAlis(String codAlis);
|
Griglia findByCodAlis(String codAlis);
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
long insert(Griglia griglia);
|
long insert(Griglia griglia);
|
||||||
|
|||||||
@ -9,11 +9,8 @@ import androidx.room.Update;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface MtbColtDao {
|
public interface MtbColtDao {
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import androidx.room.Update;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
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.data_store.db.wrappers.OrdineWrapper;
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
@ -17,11 +16,11 @@ public interface OrdineDao {
|
|||||||
@Query("SELECT * from ordini ")
|
@Query("SELECT * from ordini ")
|
||||||
List<Ordine> getAll();
|
List<Ordine> getAll();
|
||||||
|
|
||||||
@Query("SELECT ordini.*, griglie.* from ordini inner join griglie ON id_griglia = griglie.griglia_id where ordini.transmitted = 1")
|
@Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
|
||||||
List<OrdineWithGriglia> getAllTrasnmitted();
|
List<Ordine> 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")
|
@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.cod_alis = :codAlis group by ordini.ordine_id")
|
||||||
List<OrdineWrapper> getAllOpenOrdersByGriglia(int idGriglia);
|
List<OrdineWrapper> getAllOpenOrdersByGriglia(String codAlis);
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
Long insert(Ordine ordine);
|
Long insert(Ordine ordine);
|
||||||
|
|||||||
@ -6,13 +6,6 @@ import androidx.room.ForeignKey;
|
|||||||
import androidx.room.Index;
|
import androidx.room.Index;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
|
|
||||||
@Entity(
|
@Entity(
|
||||||
tableName = "articoli_griglia",
|
tableName = "articoli_griglia",
|
||||||
indices = {
|
indices = {
|
||||||
@ -215,38 +208,4 @@ public class ArticoloGriglia {
|
|||||||
public void setQtaOrd(float qtaOrd) {
|
public void setQtaOrd(float qtaOrd) {
|
||||||
this.qtaOrd = qtaOrd;
|
this.qtaOrd = qtaOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String generateSystemNote() {
|
|
||||||
HashMap<String, String> pairs = new HashMap<>();
|
|
||||||
pairs.put("qta_proposta", String.valueOf(qtaProposta));
|
|
||||||
pairs.put("giacenza", String.valueOf(giacenza));
|
|
||||||
|
|
||||||
return new JSONObject(pairs).toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
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());
|
|
||||||
articolo.setDataIns(UtilityDate.getDateInstance());
|
|
||||||
articolo.setGgScadenza(this.getGgScadenza());
|
|
||||||
articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
|
|
||||||
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
|
||||||
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
|
||||||
articolo.setNewNoPromo(this.isNewNoPromo());
|
|
||||||
articolo.setSystemNote(generateSystemNote());
|
|
||||||
articolo.setQtaOrd(this.getQtaOrd());
|
|
||||||
|
|
||||||
return articolo;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,11 +2,10 @@ package it.integry.integrywmsnative.core.data_store.db.entity;
|
|||||||
|
|
||||||
import androidx.room.ColumnInfo;
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
import androidx.room.Ignore;
|
|
||||||
import androidx.room.Index;
|
import androidx.room.Index;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
@Entity(tableName ="griglie",
|
@Entity(tableName = "griglie",
|
||||||
indices = {
|
indices = {
|
||||||
@Index(value = "cod_alis", unique = true)
|
@Index(value = "cod_alis", unique = true)
|
||||||
}
|
}
|
||||||
@ -22,8 +21,6 @@ public class Griglia {
|
|||||||
private String descrLisa;
|
private String descrLisa;
|
||||||
@ColumnInfo(name = "descr_depo")
|
@ColumnInfo(name = "descr_depo")
|
||||||
private String descrDepo;
|
private String descrDepo;
|
||||||
@Ignore
|
|
||||||
private int countArticoli = 0;
|
|
||||||
|
|
||||||
|
|
||||||
public int getGrigliaId() {
|
public int getGrigliaId() {
|
||||||
@ -58,11 +55,4 @@ public class Griglia {
|
|||||||
this.descrDepo = descrDepo;
|
this.descrDepo = descrDepo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCountArticoli() {
|
|
||||||
return countArticoli;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountArticoli(int countArticoli) {
|
|
||||||
this.countArticoli = countArticoli;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.room.ColumnInfo;
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
@ -47,15 +48,16 @@ public class Ordine {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private String codMdep;
|
private String codMdep;
|
||||||
|
|
||||||
@Ignore
|
|
||||||
private int countArticoli = 0;
|
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private boolean orderNewProducts = false;
|
private boolean orderNewProducts = false;
|
||||||
|
|
||||||
@ColumnInfo(name = "id_griglia")
|
@ColumnInfo(name = "id_griglia")
|
||||||
private int idGriglia;
|
private int idGriglia;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "cod_alis")
|
||||||
|
@NonNull
|
||||||
|
private String codAlis;
|
||||||
|
|
||||||
public int getOrdineId() {
|
public int getOrdineId() {
|
||||||
return ordineId;
|
return ordineId;
|
||||||
}
|
}
|
||||||
@ -105,14 +107,6 @@ public class Ordine {
|
|||||||
this.transmissionDate = transmissionDate;
|
this.transmissionDate = transmissionDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCountArticoli() {
|
|
||||||
return countArticoli;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountArticoli(int countArticoli) {
|
|
||||||
this.countArticoli = countArticoli;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getGestione() {
|
public String getGestione() {
|
||||||
return gestione;
|
return gestione;
|
||||||
@ -157,8 +151,15 @@ public class Ordine {
|
|||||||
return orderNewProducts;
|
return orderNewProducts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Ordine setOrderNewProducts(boolean orderNewProducts) {
|
public void setOrderNewProducts(boolean orderNewProducts) {
|
||||||
this.orderNewProducts = orderNewProducts;
|
this.orderNewProducts = orderNewProducts;
|
||||||
return this;
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,16 +3,15 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
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.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public interface GrigliaRepository {
|
public interface GrigliaRepository {
|
||||||
|
|
||||||
void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError);
|
void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void findByCodAlis(String codAlis , RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError);
|
void findByCodAlis(String codAlis, RunnableArgs<Griglia> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess,RunnableArgs<Exception> onFail);
|
void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onFail);
|
||||||
|
|
||||||
void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail);
|
void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,12 +3,8 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
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.entity.SqlMtbColt;
|
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public interface MtbColtRepository {
|
public interface MtbColtRepository {
|
||||||
|
|||||||
@ -2,9 +2,7 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
|
|||||||
|
|
||||||
import java.util.List;
|
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.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.data_store.db.wrappers.OrdineWrapper;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
@ -12,9 +10,9 @@ public interface OrdineRepository {
|
|||||||
|
|
||||||
void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError);
|
void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError);
|
void selectAllTransmitted(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError);
|
void selectAllOpenOrders(String codAlis, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError);
|
void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError);
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,6 @@ package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
|
|||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -16,7 +14,6 @@ import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
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.data_store.db.entity.Ordine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public class ArticoliOrdineDataSource extends BaseDataSource implements ArticoliOrdineRepository {
|
public class ArticoliOrdineDataSource extends BaseDataSource implements ArticoliOrdineRepository {
|
||||||
@ -90,23 +87,7 @@ public class ArticoliOrdineDataSource extends BaseDataSource implements Articoli
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onSuccess, RunnableArgs<Exception> onError) {
|
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
executorService.execute(() -> {
|
execute(() -> mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()), onSuccess, onError);
|
||||||
try {
|
|
||||||
List<ArticoloOrdineWrapper> list = mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId());
|
|
||||||
var tmpList = Stream.of(list).map(x -> {
|
|
||||||
ArticoloOrdine art = x.getArticoloOrdine();
|
|
||||||
art.setGgScadenza(x.getGgScadenza());
|
|
||||||
art.setGiacenza(x.getGiacenza());
|
|
||||||
art.setQtaProposta(x.getQtaProposta());
|
|
||||||
art.setQtaPrevistaVendita(x.getQtaPrevistaVendita());
|
|
||||||
return art;
|
|
||||||
}).toList();
|
|
||||||
|
|
||||||
handler.post(() -> onSuccess.run(tmpList));
|
|
||||||
} catch (Exception e) {
|
|
||||||
onError.run(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteArticolo(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onError) {
|
public void deleteArticolo(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onError) {
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import javax.inject.Inject;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
|
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.entity.Griglia;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public class GrigliaDataSource extends BaseDataSource implements GrigliaRepository {
|
public class GrigliaDataSource extends BaseDataSource implements GrigliaRepository {
|
||||||
@ -29,7 +28,7 @@ public class GrigliaDataSource extends BaseDataSource implements GrigliaReposito
|
|||||||
execute(mGrigliaDao::getAll, onSuccess, onError);
|
execute(mGrigliaDao::getAll, onSuccess, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void findByCodAlis(String codAlis, RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError) {
|
public void findByCodAlis(String codAlis, RunnableArgs<Griglia> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
execute(() -> mGrigliaDao.findByCodAlis(codAlis), onSuccess, onError);
|
execute(() -> mGrigliaDao.findByCodAlis(codAlis), onSuccess, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,8 @@ import java.util.concurrent.ExecutorService;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
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.entity.Ordine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||||
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.data_store.db.wrappers.OrdineWrapper;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
@ -31,12 +29,12 @@ public class OrdineDataSource extends BaseDataSource implements OrdineRepository
|
|||||||
execute(mOrdineDao::getAll, onSuccess, onError);
|
execute(mOrdineDao::getAll, onSuccess, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
public void selectAllTransmitted(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
execute(mOrdineDao::getAllTrasnmitted, onSuccess, onError);
|
execute(mOrdineDao::getAllTrasnmitted, onSuccess, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError) {
|
public void selectAllOpenOrders(String codAlis, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
execute(() -> mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId()), onSuccess, onError);
|
execute(() -> mOrdineDao.getAllOpenOrdersByGriglia(codAlis), onSuccess, onError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError) {
|
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
|
|||||||
@ -1,6 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
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.utility.UtilityDate;
|
||||||
|
|
||||||
public class ArticoloDTO {
|
public class ArticoloDTO {
|
||||||
|
|
||||||
@ -161,24 +169,50 @@ public class ArticoloDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArticoloGriglia toArticoloGriglia() {
|
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
||||||
ArticoloGriglia result = new ArticoloGriglia();
|
ArticoloOrdine articolo = new ArticoloOrdine();
|
||||||
result.setBarCode(this.getBarCode());
|
|
||||||
result.setDescrizione(this.getDescrizione());
|
|
||||||
result.setCodMart(this.getCodMart());
|
|
||||||
result.setUntMis(this.getUntMis());
|
|
||||||
result.setQtaCnf(this.getQtaCnf());
|
|
||||||
result.setMerceDaRic(this.getMerceDaRic());
|
|
||||||
result.setMediaSett(this.getMediaSett());
|
|
||||||
result.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
|
||||||
result.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
|
||||||
result.setGgScadenza(this.ggScadenza);
|
|
||||||
result.setNewNoPromo(this.newNoPromo);
|
|
||||||
result.setQtaOrd(this.getQtaOrd());
|
|
||||||
result.setGiacenza(this.giacenza);
|
|
||||||
result.setQtaPrevistaVendita(this.qtaPrevistaVendita);
|
|
||||||
result.setQtaProposta(this.qtaProposta);
|
|
||||||
|
|
||||||
return result;
|
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());
|
||||||
|
articolo.setDataIns(UtilityDate.getDateInstance());
|
||||||
|
articolo.setGgScadenza(this.getGgScadenza());
|
||||||
|
articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
|
||||||
|
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
||||||
|
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
||||||
|
articolo.setNewNoPromo(this.isNewNoPromo());
|
||||||
|
articolo.setSystemNote(generateSystemNote());
|
||||||
|
articolo.setQtaOrd(this.getQtaOrd());
|
||||||
|
|
||||||
|
return articolo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String generateSystemNote() {
|
||||||
|
HashMap<String, String> pairs = new HashMap<>();
|
||||||
|
pairs.put("qta_proposta", String.valueOf(qtaProposta));
|
||||||
|
pairs.put("giacenza", String.valueOf(giacenza));
|
||||||
|
|
||||||
|
return new JSONObject(pairs).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getSortByBarcodeCondition(String barcode) {
|
||||||
|
if (codMart.equalsIgnoreCase(barcode))
|
||||||
|
return 1;
|
||||||
|
if (barcode != null) {
|
||||||
|
if (barcode.equalsIgnoreCase(barcode))
|
||||||
|
return 2;
|
||||||
|
if (StringUtils.leftPad(barcode, 13, "0").equalsIgnoreCase(barcode))
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
return 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
|
||||||
|
|
||||||
import androidx.room.ColumnInfo;
|
|
||||||
import androidx.room.Embedded;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
|
||||||
|
|
||||||
public class GrigliaWrapper {
|
|
||||||
@Embedded
|
|
||||||
private Griglia griglia;
|
|
||||||
|
|
||||||
@ColumnInfo(name = "countArticoli")
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
@ -9,6 +10,7 @@ import java.util.List;
|
|||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
@ -44,17 +46,43 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> void saveTerminalino(SaveDTO saveDTO, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed) {
|
public void saveOrdine(SaveDTO saveDTO, RunnableArgs<DtbOrdt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||||
service.<T>saveTerminalino(saveDTO)
|
service.saveOrdine(saveDTO)
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<T>> call, Response<ServiceRESTResponse<T>> response) {
|
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
||||||
analyzeAnswer(response, "saveTerminalino", onComplete, onFailed);
|
if (response.body() != null && response.body().size() > 0) {
|
||||||
|
analyzeListOfAnswers(response, "saveOrdine", dtoList -> {
|
||||||
|
if (dtoList.size() > 0) {
|
||||||
|
onComplete.run(dtoList.get(0));
|
||||||
|
} else {
|
||||||
|
onFailed.run(new Exception("Nessun ordine generato"));
|
||||||
|
}
|
||||||
|
}, onFailed);
|
||||||
|
} else {
|
||||||
|
onFailed.run(new Exception("Nessun ordine generato"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<T>> call, Throwable t) {
|
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveTerminalinoWMS(SaveDTO saveDTO, RunnableArgs<JsonObject> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||||
|
service.saveTerminalinoWMS(saveDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
|
analyzeAnswer(response, "saveTerminalinoWMS", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -9,6 +14,9 @@ import retrofit2.http.POST;
|
|||||||
public interface MagazzinoRESTConsumerService {
|
public interface MagazzinoRESTConsumerService {
|
||||||
|
|
||||||
@POST("SM2SaveTerminalinoWMS")
|
@POST("SM2SaveTerminalinoWMS")
|
||||||
<T> Call<ServiceRESTResponse<T>> saveTerminalino(@Body SaveDTO saveDTO);
|
Call<ServiceRESTResponse<JsonObject>> saveTerminalinoWMS(@Body SaveDTO saveDTO);
|
||||||
|
|
||||||
|
@POST("SM2SaveTerminalino")
|
||||||
|
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,12 +12,10 @@ import java.util.List;
|
|||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
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.entity.Ordine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
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.data_store.db.view_model.GrigliaDTO;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@ -41,7 +39,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
public void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
public void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class, 300);
|
||||||
ordiniARestService
|
ordiniARestService
|
||||||
.getArticoliListino(codAlis)
|
.getArticoliListino(codAlis)
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@ -87,7 +85,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveOrdine(Ordine ordine, List<ArticoloOrdine> articoli, Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onFailed) {
|
public void saveOrdine(Ordine ordine, List<ArticoloOrdine> articoli, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||||
SaveDTO saveDTO = new SaveDTO();
|
SaveDTO saveDTO = new SaveDTO();
|
||||||
OrdineDTO ordineDTO = new OrdineDTO();
|
OrdineDTO ordineDTO = new OrdineDTO();
|
||||||
List<ArtDTO> artRows = new ArrayList<>();
|
List<ArtDTO> artRows = new ArrayList<>();
|
||||||
@ -98,15 +96,15 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
artRows.add(convertArtToDTO(art, i));
|
artRows.add(convertArtToDTO(art, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
ordineDTO.setChiaveGriglia(ordine.getCodAlis());
|
||||||
ordineDTO.setDataCons(UtilityDate.getDateInstance());
|
ordineDTO.setDataCons(UtilityDate.getDateInstance());
|
||||||
ordineDTO.setArtRows(artRows);
|
ordineDTO.setArtRows(artRows);
|
||||||
saveDTO.setGestione("O");
|
saveDTO.setGestione("O");
|
||||||
saveDTO.setOrdineDTO(ordineDTO);
|
saveDTO.setOrdineDTO(ordineDTO);
|
||||||
|
|
||||||
|
|
||||||
magazzinoRESTConsumer.<DtbOrdt>saveTerminalino(saveDTO, data -> {
|
magazzinoRESTConsumer.saveOrdine(saveDTO, data -> {
|
||||||
if(data == null) {
|
if (data == null) {
|
||||||
onFailed.run(new Exception("Nessun ordine generato"));
|
onFailed.run(new Exception("Nessun ordine generato"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,11 +35,11 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneAdapter;
|
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneAdapter;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneClienteListModel;
|
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneClienteListModel;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneListModel;
|
import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneListModel;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
@ -86,12 +86,11 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
if(savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
|
if (savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
|
||||||
mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
|
mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
|
||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
|
||||||
@ -134,7 +133,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
|
|||||||
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), x->{
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), x -> {
|
||||||
this.refreshList(getFilteredList(mTextFilter));
|
this.refreshList(getFilteredList(mTextFilter));
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -198,7 +197,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
|
|||||||
|
|
||||||
listModel.setGroupTitle(x.getRagSocOrd());
|
listModel.setGroupTitle(x.getRagSocOrd());
|
||||||
|
|
||||||
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero().toString(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||||
|
|
||||||
List<MainListAccettazioneClienteListModel> clienti = Stream.of(dataList)
|
List<MainListAccettazioneClienteListModel> clienti = Stream.of(dataList)
|
||||||
.filter(y -> y.getBarcode().equals(x.getBarcode()))
|
.filter(y -> y.getBarcode().equals(x.getBarcode()))
|
||||||
@ -243,7 +242,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
|
|||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextChange(String newText) {
|
public boolean onQueryTextChange(String newText) {
|
||||||
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
||||||
if(originalList == null || originalList.isEmpty()) return false;
|
if (originalList == null || originalList.isEmpty()) return false;
|
||||||
mTextFilter = newText;
|
mTextFilter = newText;
|
||||||
List<OrdineAccettazioneInevasoDTO> filteredOrders = getFilteredList(newText);
|
List<OrdineAccettazioneInevasoDTO> filteredOrders = getFilteredList(newText);
|
||||||
|
|
||||||
@ -254,9 +253,9 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
|
|||||||
private List<OrdineAccettazioneInevasoDTO> getFilteredList(String newText) {
|
private List<OrdineAccettazioneInevasoDTO> getFilteredList(String newText) {
|
||||||
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
||||||
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
||||||
if(originalList == null || originalList.isEmpty() || newText == null) return originalList;
|
if (originalList == null || originalList.isEmpty() || newText == null) return originalList;
|
||||||
for(int i = 0; i < originalList.size(); i++){
|
for (int i = 0; i < originalList.size(); i++) {
|
||||||
if(originalList.get(i).getRagSocOrd().toLowerCase().contains(newText.toLowerCase())){
|
if (originalList.get(i).getRagSocOrd().toLowerCase().contains(newText.toLowerCase())) {
|
||||||
filteredOrders.add(originalList.get(i));
|
filteredOrders.add(originalList.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,9 +9,9 @@ import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaArticoliDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaArticoliDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
@ -42,7 +42,7 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
public void fetchProducts(String codDtip, String codMgrp, RunnableArgs<GrigliaArticoliDTO> onComplete, RunnableArgs<Exception> onFailed) {
|
public void fetchProducts(String codDtip, String codMgrp, RunnableArgs<GrigliaArticoliDTO> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class);
|
DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class);
|
||||||
service.retrieveProducts(codDtip,codMgrp,"L").enqueue(new Callback<>() {
|
service.retrieveProducts(codDtip, codMgrp, "L").enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<GrigliaArticoliDTO>> call, Response<ServiceRESTResponse<GrigliaArticoliDTO>> response) {
|
public void onResponse(Call<ServiceRESTResponse<GrigliaArticoliDTO>> call, Response<ServiceRESTResponse<GrigliaArticoliDTO>> response) {
|
||||||
analyzeAnswer(response, "fetchProducts", onComplete, onFailed);
|
analyzeAnswer(response, "fetchProducts", onComplete, onFailed);
|
||||||
@ -56,7 +56,7 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void saveDoc(SaveDTO saveDTO, RunnableArgs<JsonObject> onComplete, RunnableArgs<Exception> onFailed){
|
public void saveDoc(SaveDTO saveDTO, RunnableArgs<JsonObject> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
magazzinoRESTConsumer.saveTerminalino(saveDTO, onComplete, onFailed);
|
magazzinoRESTConsumer.saveTerminalinoWMS(saveDTO, onComplete, onFailed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -310,7 +310,7 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
|
|
||||||
listModel.setGroupTitle(x.getRagSocOrd());
|
listModel.setGroupTitle(x.getRagSocOrd());
|
||||||
|
|
||||||
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero().toString(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||||
|
|
||||||
List<MainListProdOrdineProduzioneElencoClienteListModel> clienti = Stream.of(dataList)
|
List<MainListProdOrdineProduzioneElencoClienteListModel> clienti = Stream.of(dataList)
|
||||||
.filter(y -> y.getBarcode().equals(x.getBarcode()))
|
.filter(y -> y.getBarcode().equals(x.getBarcode()))
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import android.text.SpannableString;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
@ -15,6 +16,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
import com.ravikoradiya.liveadapter.Type;
|
import com.ravikoradiya.liveadapter.Type;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
@ -26,6 +29,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
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.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -42,20 +46,19 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
|||||||
public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdineAcquistoEditViewModel.Listener {
|
public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdineAcquistoEditViewModel.Listener {
|
||||||
|
|
||||||
private static String DATA_KEY_ORDER = "keyOrdine";
|
private static String DATA_KEY_ORDER = "keyOrdine";
|
||||||
|
private static String DATA_LIST_ARTS = "listArts";
|
||||||
private Ordine mOrdine;
|
|
||||||
private ActivityPvOrdineAcquistoEditBinding mBinding;
|
private ActivityPvOrdineAcquistoEditBinding mBinding;
|
||||||
|
|
||||||
private int barcodeScannerIstanceID;
|
private int barcodeScannerIstanceID;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PVOrdineAcquistoEditViewModel mViewModel;
|
PVOrdineAcquistoEditViewModel mViewModel;
|
||||||
|
|
||||||
|
public static Intent newInstance(Context context, Ordine ordine, List<ArticoloDTO> listArts) {
|
||||||
public static Intent newInstance(Context context, Ordine ordine) {
|
|
||||||
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
|
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
|
||||||
String keyOrdine = DataCache.addItem(ordine);
|
String keyOrdine = DataCache.addItem(ordine);
|
||||||
|
String keyListArts = DataCache.addItem(listArts);
|
||||||
myIntent.putExtra(DATA_KEY_ORDER, keyOrdine);
|
myIntent.putExtra(DATA_KEY_ORDER, keyOrdine);
|
||||||
|
myIntent.putExtra(DATA_LIST_ARTS, keyListArts);
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,20 +74,24 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
|
|
||||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit);
|
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit);
|
||||||
mBinding.setViewModel(this);
|
mBinding.setViewModel(this);
|
||||||
mOrdine = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_ORDER));
|
Ordine ordine = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_ORDER));
|
||||||
setSupportActionBar(mBinding.toolbar);
|
setSupportActionBar(mBinding.toolbar);
|
||||||
mBinding.toolbar.setTitle(R.string.edit_order);
|
mBinding.toolbar.setTitle(R.string.edit_order);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
if (actionBar != null) {
|
||||||
|
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
if (mOrdine == null) {
|
if (ordine == null) {
|
||||||
|
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
||||||
|
close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ordine.isTransmitted()) {
|
||||||
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
if (mOrdine.isTransmitted()) {
|
String testataOrdString = String.format(this.getString(R.string.ord_acq_testata), ordine.getOrdineId(), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
String testataOrdString = String.format(this.getString(R.string.ord_acq_testata), String.valueOf(mOrdine.getOrdineId()), UtilityDate.formatDate(mOrdine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
mBinding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
mBinding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||||
FabMenuCustomAnimations.changeIconOnFocus(mBinding.closeActivityFab, R.drawable.ic_check_white_24dp, R.drawable.ic_close_24dp);
|
FabMenuCustomAnimations.changeIconOnFocus(mBinding.closeActivityFab, R.drawable.ic_check_white_24dp, R.drawable.ic_close_24dp);
|
||||||
|
|
||||||
@ -94,9 +101,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
|
|
||||||
this.mViewModel.setListener(this);
|
this.mViewModel.setListener(this);
|
||||||
|
|
||||||
this.mViewModel.getCurrentGriglia().observe(this, griglia -> {
|
mBinding.codAlis.setText(ordine.getCodAlis());
|
||||||
mBinding.codAlis.setText(griglia.getCodAlis());
|
|
||||||
});
|
|
||||||
|
|
||||||
this.mViewModel.getArticoli().observe(this, articoli -> {
|
this.mViewModel.getArticoli().observe(this, articoli -> {
|
||||||
mBinding.countArtOrd.setText(String.valueOf(articoli.size()));
|
mBinding.countArtOrd.setText(String.valueOf(articoli.size()));
|
||||||
@ -104,16 +109,16 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
mBinding.closeActivityFab.close(false);
|
mBinding.closeActivityFab.close(false);
|
||||||
mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE);
|
mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
if (mOrdine.isOrderNewProducts() && articoli.isEmpty() && isOrderNewProdsForced()) {
|
if (ordine.isOrderNewProducts() && articoli.isEmpty() && isOrderNewProdsForced()) {
|
||||||
this.mViewModel.orderNewProducts();
|
this.mViewModel.orderNewProducts();
|
||||||
mOrdine.setOrderNewProducts(false);
|
ordine.setOrderNewProducts(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
List<ArticoloDTO> articoliGriglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_LIST_ARTS));
|
||||||
|
|
||||||
this.mViewModel.init(mOrdine);
|
this.mViewModel.init(ordine, articoliGriglia);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onSupportNavigateUp() {
|
public boolean onSupportNavigateUp() {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
@ -148,7 +153,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
mBinding.articoliOrdineList.addItemDecoration(itemDecorator);
|
mBinding.articoliOrdineList.addItemDecoration(itemDecorator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void selectAction(ArticoloOrdine articoloOrdine) {
|
private void selectAction(ArticoloOrdine articoloOrdine) {
|
||||||
mBinding.closeActivityFab.close(false);
|
mBinding.closeActivityFab.close(false);
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
@ -156,7 +160,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
DialogAskActionView.newInstance(articoloOrdine.getDescrizione(),
|
DialogAskActionView.newInstance(articoloOrdine.getDescrizione(),
|
||||||
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
|
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
|
||||||
() -> {
|
() -> {
|
||||||
this.mViewModel.checkArticolo(mOrdine, articoloOrdine.getCodMart(),
|
this.mViewModel.checkArticolo(articoloOrdine.getCodMart(),
|
||||||
artOrd -> {
|
artOrd -> {
|
||||||
this.onItemDispatched(artOrd);
|
this.onItemDispatched(artOrd);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
@ -184,6 +188,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
mBinding.closeActivityFab.close(false);
|
mBinding.closeActivityFab.close(false);
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
|
this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
|
||||||
|
|
||||||
@ -191,19 +196,16 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemDispatched(ArticoloOrdine articoloOrdine) {
|
public void onItemDispatched(ArticoloOrdine articoloOrdine) {
|
||||||
|
BarcodeManager.disable();
|
||||||
DialogEditArticoloView
|
DialogEditArticoloView
|
||||||
.newInstance(articoloOrdine, articolo -> {
|
.newInstance(articoloOrdine, articolo -> {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
if (articolo != null) {
|
if (articolo != null) {
|
||||||
Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
this.mViewModel.refreshListArticoli();
|
||||||
this.mViewModel.saveArticolo(articolo);
|
|
||||||
});
|
});
|
||||||
}, () -> {
|
}, null).show(this.getSupportFragmentManager(), "tag");
|
||||||
|
|
||||||
}).show(this.getSupportFragmentManager(), "tag");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -211,7 +213,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
return getResources().getColor(resId);
|
return getResources().getColor(resId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void exportOrdine() {
|
public void exportOrdine() {
|
||||||
this.mViewModel.exportOrdine(() -> {
|
this.mViewModel.exportOrdine(() -> {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
@ -221,7 +222,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void close() {
|
public void close() {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
}
|
}
|
||||||
@ -236,7 +236,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> {
|
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> {
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
this.mViewModel.checkArticolo(mOrdine, codice,
|
this.mViewModel.checkArticolo(codice,
|
||||||
articoloOrdine -> {
|
articoloOrdine -> {
|
||||||
this.onItemDispatched(articoloOrdine);
|
this.onItemDispatched(articoloOrdine);
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
|
|||||||
@ -4,16 +4,16 @@ import androidx.lifecycle.MutableLiveData;
|
|||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
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.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
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.entity.Ordine;
|
||||||
@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineR
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
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.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.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||||
@ -49,7 +50,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
|
|
||||||
private final MutableLiveData<Griglia> mCurrentGriglia = new MutableLiveData<>();
|
private List<ArticoloDTO> mArticoliGriglia = new ArrayList<>();
|
||||||
private final MutableLiveData<List<ArticoloOrdine>> mArticoli = new MutableLiveData<>();
|
private final MutableLiveData<List<ArticoloOrdine>> mArticoli = new MutableLiveData<>();
|
||||||
|
|
||||||
|
|
||||||
@ -65,83 +66,52 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
this.pvOrdiniAcquistoRESTConsumer = pvOrdiniAcquistoRESTConsumer;
|
this.pvOrdiniAcquistoRESTConsumer = pvOrdiniAcquistoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(Ordine ordine) {
|
public void init(Ordine ordine, List<ArticoloDTO> articoliGriglia) {
|
||||||
this.mCurrentOrdine = ordine;
|
this.mCurrentOrdine = ordine;
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.loadGriglia(ordine.getIdGriglia(), griglia -> {
|
mArticoliGriglia.clear();
|
||||||
mCurrentGriglia.postValue(griglia);
|
mArticoliGriglia.addAll(articoliGriglia);
|
||||||
this.loadArticoli(mCurrentOrdine, articoli -> {
|
this.refreshListArticoli();
|
||||||
articoli = Stream.of(articoli).map(this::setBgTint).toList();
|
}
|
||||||
this.mArticoli.postValue(articoli);
|
|
||||||
this.sendOnLoadingEnded();
|
public void refreshListArticoli() {
|
||||||
});
|
this.loadArticoli(mCurrentOrdine, articoli -> {
|
||||||
|
articoli = Stream.of(articoli).map(this::completeDataArticoli).toList();
|
||||||
|
this.mArticoli.postValue(articoli);
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArticoloOrdine setBgTint(ArticoloOrdine art) {
|
private ArticoloOrdine completeDataArticoli(ArticoloOrdine art) {
|
||||||
int chk = art.checkQtaProposta();
|
art.setBgTint(getBgTint(art));
|
||||||
switch (chk) {
|
ArticoloDTO artGrid = Stream.of(mArticoliGriglia).filter(x -> art.getCodMart().equalsIgnoreCase(x.getCodMart())).findFirstOrElse(new ArticoloDTO());
|
||||||
case -1:
|
art.setGgScadenza(artGrid.getGgScadenza());
|
||||||
art.setBgTint(this.mListener.getColorFromResource(R.color.red_600));
|
art.setGiacenza(BigDecimal.valueOf(artGrid.getGiacenza()));
|
||||||
break;
|
art.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()));
|
||||||
case 1:
|
art.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()));
|
||||||
art.setBgTint(this.mListener.getColorFromResource(R.color.orange_600));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
art.setBgTint(this.mListener.getColorFromResource(R.color.colorPrimary));
|
|
||||||
}
|
|
||||||
return art;
|
return art;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableLiveData<Griglia> getCurrentGriglia() {
|
private int getBgTint(ArticoloOrdine art) {
|
||||||
return mCurrentGriglia;
|
int chk = art.checkQtaProposta();
|
||||||
|
switch (chk) {
|
||||||
|
case -1:
|
||||||
|
return this.mListener.getColorFromResource(R.color.red_600);
|
||||||
|
case 1:
|
||||||
|
return this.mListener.getColorFromResource(R.color.orange_600);
|
||||||
|
default:
|
||||||
|
return this.mListener.getColorFromResource(R.color.colorPrimary);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableLiveData<List<ArticoloOrdine>> getArticoli() {
|
public MutableLiveData<List<ArticoloOrdine>> getArticoli() {
|
||||||
return mArticoli;
|
return mArticoli;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveArticolo(ArticoloOrdine articolo) {
|
|
||||||
setBgTint(articolo);
|
|
||||||
var newList = this.mArticoli.getValue();
|
|
||||||
|
|
||||||
var alreadySavedItem = Stream.of(newList)
|
|
||||||
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
|
|
||||||
|
|
||||||
newList.add(articolo);
|
|
||||||
this.mArticoli.postValue(newList);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveArticoli(List<ArticoloOrdine> articoli) {
|
|
||||||
var newList = this.mArticoli.getValue();
|
|
||||||
if (newList == null) {
|
|
||||||
newList = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ArticoloOrdine articolo : articoli) {
|
|
||||||
setBgTint(articolo);
|
|
||||||
|
|
||||||
var alreadySavedItem = Stream.of(newList)
|
|
||||||
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
|
|
||||||
newList.add(articolo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
this.mArticoli.postValue(newList);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
this.checkArticolo(
|
this.checkArticolo(
|
||||||
mCurrentOrdine,
|
|
||||||
barcodeScanDTO.getStringValue(),
|
barcodeScanDTO.getStringValue(),
|
||||||
articoloOrdine -> {
|
articoloOrdine -> {
|
||||||
this.sendOnItemDispatched(articoloOrdine);
|
this.sendOnItemDispatched(articoloOrdine);
|
||||||
@ -151,7 +121,6 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void loadGriglia(int idGriglia, RunnableArgs<Griglia> onLoad) {
|
private void loadGriglia(int idGriglia, RunnableArgs<Griglia> onLoad) {
|
||||||
try {
|
try {
|
||||||
mGrigliaRepository.findGrigliaById(idGriglia, onLoad, this::sendError);
|
mGrigliaRepository.findGrigliaById(idGriglia, onLoad, this::sendError);
|
||||||
@ -168,42 +137,47 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
public void checkArticolo(String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||||
try {
|
try {
|
||||||
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
|
if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) {
|
||||||
if (artGrid != null) {
|
onFail.run(new Exception("Nessun articolo è presente nella griglia"));
|
||||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
|
return;
|
||||||
if (articolo != null) {
|
}
|
||||||
articolo
|
ArticoloDTO art = Stream.of(mArticoliGriglia).filter(articolo ->
|
||||||
.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()))
|
articolo.getCodMart().equalsIgnoreCase(barcode) ||
|
||||||
.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()))
|
articolo.getBarcode().equalsIgnoreCase(barcode) ||
|
||||||
.setGiacenza(BigDecimal.valueOf(artGrid.getGiacenza()))
|
articolo.getBarcode().equalsIgnoreCase(StringUtils.leftPad(barcode, 13, "0"))
|
||||||
.setMediaSett(artGrid.getMediaSett());
|
).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null);
|
||||||
|
|
||||||
articolo.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile());
|
if (art == null) {
|
||||||
articolo.setMerceDaRic(artGrid.getMerceDaRic());
|
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
|
||||||
articolo.setNewNoPromo(artGrid.isNewNoPromo());
|
return;
|
||||||
articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
|
}
|
||||||
articolo.setSystemNote(artGrid.generateSystemNote());
|
|
||||||
|
|
||||||
onSuccess.run(articolo);
|
mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.codMart, (articolo) -> {
|
||||||
} else {
|
|
||||||
ArticoloOrdine art = artGrid.convertToArticoloOrdine(ordine);
|
|
||||||
if (isAutoOrderOnScan()) {
|
|
||||||
art.setQtaOrd(art.getQtaCnf());
|
|
||||||
mArticoliOrdineRepository.saveArticoloToOrdine(art, () -> {
|
|
||||||
saveArticolo(art);
|
|
||||||
this.sendOnLoadingEnded();
|
|
||||||
|
|
||||||
}, this::sendError);
|
if (articolo != null) {
|
||||||
} else {
|
articolo
|
||||||
onSuccess.run(art);
|
.setQtaPrevistaVendita(BigDecimal.valueOf(art.getQtaPrevistaVendita()))
|
||||||
}
|
.setQtaProposta(BigDecimal.valueOf(art.getQtaProposta()))
|
||||||
}
|
.setGiacenza(BigDecimal.valueOf(art.getGiacenza()))
|
||||||
}, onFail);
|
.setMediaSett(art.getMediaSett());
|
||||||
|
|
||||||
|
articolo.setQtaMinOrdinabile(art.getQtaMinOrdinabile());
|
||||||
|
articolo.setMerceDaRic(art.getMerceDaRic());
|
||||||
|
articolo.setNewNoPromo(art.isNewNoPromo());
|
||||||
|
articolo.setFlagQtaMultipla(art.getFlagQtaMultipla());
|
||||||
|
articolo.setSystemNote(art.generateSystemNote());
|
||||||
|
|
||||||
|
onSuccess.run(articolo);
|
||||||
} else {
|
} else {
|
||||||
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
|
articolo = art.convertToArticoloOrdine(mCurrentOrdine);
|
||||||
|
if (isAutoOrderOnScan()) {
|
||||||
|
articolo.setQtaOrd(articolo.getQtaCnf());
|
||||||
|
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, this::refreshListArticoli, this::sendError);
|
||||||
|
} else {
|
||||||
|
onSuccess.run(articolo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, onFail);
|
}, onFail);
|
||||||
|
|
||||||
@ -217,43 +191,38 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
return SettingsManager.iDB().isFlagOrdinaArticoliOnScan();
|
return SettingsManager.iDB().isFlagOrdinaArticoliOnScan();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
private List<ArticoloDTO> getNewArticoli() {
|
||||||
mArticoloGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
|
return Stream.of(mArticoliGriglia).filter(x -> x.getQtaOrd() > 0f).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void orderNewProducts() {
|
public void orderNewProducts() {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.getNewArticoli(mCurrentOrdine.getIdGriglia(), articoli -> {
|
List<ArticoloDTO> newArts = getNewArticoli();
|
||||||
if (articoli != null && !articoli.isEmpty()) {
|
if (!newArts.isEmpty()) {
|
||||||
List<ArticoloOrdine> articoliToSave = new ArrayList<>();
|
List<ArticoloOrdine> articoliToSave = new ArrayList<>();
|
||||||
|
|
||||||
Stream.of(articoli).forEach(articolo -> {
|
Stream.of(newArts).forEach(articolo -> {
|
||||||
if (
|
if (
|
||||||
Stream.of(mArticoli.getValue())
|
Stream.of(mArticoli.getValue())
|
||||||
.filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart()))
|
.filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart()))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.isEmpty()
|
.isEmpty()
|
||||||
|
|
||||||
&& Stream.of(articoliToSave)
|
&& Stream.of(articoliToSave)
|
||||||
.filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart()))
|
.filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart()))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.isEmpty()
|
.isEmpty()
|
||||||
) {
|
) {
|
||||||
ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine);
|
ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine);
|
||||||
articoliToSave.add(dto);
|
articoliToSave.add(dto);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (!articoliToSave.isEmpty()) {
|
if (!articoliToSave.isEmpty()) {
|
||||||
mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, () -> {
|
mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, this::refreshListArticoli, this::sendError);
|
||||||
this.saveArticoli(articoliToSave);
|
|
||||||
this.sendOnLoadingEnded();
|
|
||||||
|
|
||||||
}, this::sendError);
|
|
||||||
|
|
||||||
} else this.sendOnLoadingEnded();
|
|
||||||
} else this.sendOnLoadingEnded();
|
} else this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
} else this.sendOnLoadingEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteArticolo(ArticoloOrdine articoloOrdine) {
|
public void deleteArticolo(ArticoloOrdine articoloOrdine) {
|
||||||
@ -265,7 +234,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
|
|
||||||
public void exportOrdine(Runnable onComplete) {
|
public void exportOrdine(Runnable onComplete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
pvOrdiniAcquistoRESTConsumer.saveOrdine(mCurrentOrdine, mArticoli.getValue(), mCurrentGriglia.getValue(), (ordine) -> {
|
pvOrdiniAcquistoRESTConsumer.saveOrdine(mCurrentOrdine, mArticoli.getValue(), (ordine) -> {
|
||||||
|
|
||||||
mOrdineRepository.updateOrder(ordine, ord -> {
|
mOrdineRepository.updateOrder(ordine, ord -> {
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|||||||
@ -24,6 +24,8 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
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_store.db.entity.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@ -46,6 +48,7 @@ public class DialogEditArticoloView extends BaseDialogFragment implements Dialog
|
|||||||
|
|
||||||
private DialogPvEditArticoloBinding mBindings;
|
private DialogPvEditArticoloBinding mBindings;
|
||||||
private boolean mEnableDataCallback = true;
|
private boolean mEnableDataCallback = true;
|
||||||
|
private int barcodeScannerIstanceID;
|
||||||
|
|
||||||
public static DialogEditArticoloView newInstance(ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onComplete, Runnable onAbort) {
|
public static DialogEditArticoloView newInstance(ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onComplete, Runnable onAbort) {
|
||||||
return new DialogEditArticoloView(articolo, onComplete, onAbort);
|
return new DialogEditArticoloView(articolo, onComplete, onAbort);
|
||||||
@ -96,6 +99,7 @@ public class DialogEditArticoloView extends BaseDialogFragment implements Dialog
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
initBarcodeReader();
|
||||||
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
|
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,10 +112,21 @@ public class DialogEditArticoloView extends BaseDialogFragment implements Dialog
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
this.mOnAbort.run();
|
if (this.mOnAbort != null) {
|
||||||
|
this.mOnAbort.run();
|
||||||
|
}
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initBarcodeReader() {
|
||||||
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessful((barcodeScanDTO) -> {
|
||||||
|
})
|
||||||
|
.setOnScanFailed(this::onError));
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
private void initBindings() {
|
private void initBindings() {
|
||||||
|
|
||||||
UtilityObservable.addPropertyChanged(this.currentNumCnf, (value) -> {
|
UtilityObservable.addPropertyChanged(this.currentNumCnf, (value) -> {
|
||||||
|
|||||||
@ -1,57 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper;
|
|
||||||
|
|
||||||
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;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
|
|
||||||
public class PVEditOrderHelper {
|
|
||||||
private final GrigliaRepository mGrigliaRepository;
|
|
||||||
private final ArticoliOrdineRepository mArticoliOrdineRepository;
|
|
||||||
private final ArticoloGrigliaRepository mArticoliGrigliaRepository;
|
|
||||||
|
|
||||||
public PVEditOrderHelper(GrigliaRepository grigliaRepository, ArticoliOrdineRepository articoliOrdineRepository, ArticoloGrigliaRepository articoloGrigliaRepository) {
|
|
||||||
mGrigliaRepository = grigliaRepository;
|
|
||||||
mArticoliOrdineRepository = articoliOrdineRepository;
|
|
||||||
mArticoliGrigliaRepository = articoloGrigliaRepository;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
|
||||||
try {
|
|
||||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(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 {
|
|
||||||
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
|
|
||||||
}
|
|
||||||
}, onFail);
|
|
||||||
}
|
|
||||||
}, onFail);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
onFail.run(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSave, RunnableArgs<Exception> onFail) {
|
|
||||||
mArticoliOrdineRepository.saveArticoliToOrdine(articoli, onSave, onFail);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void removeArticoloFromOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError) {
|
|
||||||
mArticoliOrdineRepository.deleteArticolo(articolo, onSave, onError);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
|
||||||
mArticoliGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -28,6 +28,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineR
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
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.repository.OrdineRepository;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
@ -41,7 +42,6 @@ import it.integry.integrywmsnative.gest.pv_ordini_acquisto.ui.OrdineAcquistoPvOp
|
|||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogAskActionView;
|
import it.integry.integrywmsnative.view.dialogs.DialogAskActionView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITitledFragment, IScrollableFragment {
|
public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITitledFragment, IScrollableFragment {
|
||||||
@ -49,8 +49,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
private FragmentPvOrdiniAcquistoBinding mBinding;
|
private FragmentPvOrdiniAcquistoBinding mBinding;
|
||||||
private Griglia mGriglia;
|
private Griglia mGriglia;
|
||||||
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
||||||
private DialogProgressView mCurrentProgress;
|
|
||||||
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||||
|
private final List<ArticoloDTO> mListArticoli = new ArrayList<>();
|
||||||
private boolean mRedirectToNewOrder = true;
|
private boolean mRedirectToNewOrder = true;
|
||||||
|
|
||||||
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
@ -99,11 +99,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
DialogScanGrigliaAcquistoView.newInstance(griglia -> {
|
DialogScanGrigliaAcquistoView.newInstance((griglia, listArticoli) -> {
|
||||||
if (griglia == null) {
|
if (griglia == null) {
|
||||||
((IPoppableActivity) requireActivity()).pop();
|
((IPoppableActivity) requireActivity()).pop();
|
||||||
} else {
|
} else {
|
||||||
setGriglia(griglia);
|
setGriglia(griglia, listArticoli);
|
||||||
}
|
}
|
||||||
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
|
||||||
@ -114,13 +114,15 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setGriglia(Griglia griglia) {
|
private void setGriglia(Griglia griglia, List<ArticoloDTO> listArticoli) {
|
||||||
mGriglia = griglia;
|
mGriglia = griglia;
|
||||||
|
mListArticoli.clear();
|
||||||
|
mListArticoli.addAll(listArticoli);
|
||||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||||
mBinding.codAlis.setText(griglia.getCodAlis());
|
mBinding.codAlis.setText(griglia.getCodAlis());
|
||||||
mBinding.descrLis.setText(griglia.getDescrLisa());
|
mBinding.descrLis.setText(griglia.getDescrLisa());
|
||||||
mBinding.descrDepo.setText(griglia.getDescrDepo());
|
mBinding.descrDepo.setText(griglia.getDescrDepo());
|
||||||
mBinding.countArtLis.setText(String.valueOf(griglia.getCountArticoli()));
|
mBinding.countArtLis.setText(String.valueOf(listArticoli.size()));
|
||||||
|
|
||||||
fetchOrders();
|
fetchOrders();
|
||||||
}
|
}
|
||||||
@ -128,9 +130,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
private void fetchOrders() {
|
private void fetchOrders() {
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
mOrdineRepository.selectAllOpenOrders(mGriglia, ordini -> {
|
mOrdineRepository.selectAllOpenOrders(mGriglia.getCodAlis(), ordini -> {
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
|
|
||||||
requireActivity().runOnUiThread(() -> {
|
requireActivity().runOnUiThread(() -> {
|
||||||
setOrdini(ordini);
|
setOrdini(ordini);
|
||||||
});
|
});
|
||||||
@ -149,9 +150,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Griglia getGriglia() {
|
|
||||||
return mGriglia;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
mBinding.ordiniAApertiMainList.setHasFixedSize(true);
|
mBinding.ordiniAApertiMainList.setHasFixedSize(true);
|
||||||
@ -165,13 +163,13 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void editOrdine(Ordine ordine) {
|
private void editOrdine(Ordine ordine) {
|
||||||
requireActivity().startActivity(PVOrdineAcquistoEditActivity.newInstance(requireActivity(), ordine));
|
requireActivity().startActivity(PVOrdineAcquistoEditActivity.newInstance(requireActivity(), ordine, mListArticoli));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void selectAction(Ordine ordine) {
|
private void selectAction(Ordine ordine) {
|
||||||
DialogAskActionView.newInstance(Html.fromHtml(String.format(this.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))).toString(),
|
DialogAskActionView.newInstance(Html.fromHtml(String.format(this.getString(R.string.ord_acq_testata), ordine.getOrdineId(), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))).toString(),
|
||||||
ordine.getCountArticoli() + " articoli",
|
mListArticoli.size() + " articoli",
|
||||||
() -> this.editOrdine(ordine),
|
() -> this.editOrdine(ordine),
|
||||||
() -> this.deleteOrdine(ordine))
|
() -> this.deleteOrdine(ordine))
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
|||||||
@ -33,6 +33,7 @@ public class PVOrdiniAcquistoGrigliaViewModel {
|
|||||||
Ordine ordine = new Ordine();
|
Ordine ordine = new Ordine();
|
||||||
ordine.setDataIns(UtilityDate.getDateInstance());
|
ordine.setDataIns(UtilityDate.getDateInstance());
|
||||||
ordine.setIdGriglia(griglia.getGrigliaId());
|
ordine.setIdGriglia(griglia.getGrigliaId());
|
||||||
|
ordine.setCodAlis(griglia.getCodAlis());
|
||||||
ordine.setOrderNewProducts(true);
|
ordine.setOrderNewProducts(true);
|
||||||
ordineRepository.insert(ordine, id -> {
|
ordineRepository.insert(ordine, id -> {
|
||||||
ordine.setOrdineId(id);
|
ordine.setOrdineId(id);
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import androidx.databinding.DataBindingUtil;
|
|||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@ -21,13 +20,11 @@ import it.integry.integrywmsnative.MainApplication;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
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.Griglia;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
|
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
|
||||||
|
|
||||||
@ -36,25 +33,20 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
private DialogScanCodiceGrigliaBinding mBinding;
|
private DialogScanCodiceGrigliaBinding mBinding;
|
||||||
private int mBarcodeScannerIstanceID;
|
private int mBarcodeScannerIstanceID;
|
||||||
|
|
||||||
private final RunnableArgs<Griglia> mOnDialogDismiss;
|
private final RunnableArgss<Griglia, List<ArticoloDTO>> mOnDialogDismiss;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer;
|
PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
|
||||||
ArticoloGrigliaRepository articoloGrigliaRepository;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
GrigliaRepository grigliaRepository;
|
|
||||||
|
|
||||||
private Griglia mGriglia;
|
private Griglia mGriglia;
|
||||||
|
private List<ArticoloDTO> mListArticoli;
|
||||||
|
|
||||||
|
|
||||||
public static DialogScanGrigliaAcquistoView newInstance(RunnableArgs<Griglia> onDialogDismiss) {
|
public static DialogScanGrigliaAcquistoView newInstance(RunnableArgss<Griglia, List<ArticoloDTO>> onDialogDismiss) {
|
||||||
return new DialogScanGrigliaAcquistoView(onDialogDismiss);
|
return new DialogScanGrigliaAcquistoView(onDialogDismiss);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogScanGrigliaAcquistoView(RunnableArgs<Griglia> onDialogDismiss) {
|
private DialogScanGrigliaAcquistoView(RunnableArgss<Griglia, List<ArticoloDTO>> onDialogDismiss) {
|
||||||
super();
|
super();
|
||||||
mOnDialogDismiss = onDialogDismiss;
|
mOnDialogDismiss = onDialogDismiss;
|
||||||
}
|
}
|
||||||
@ -93,75 +85,38 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||||
mOnDialogDismiss.run(mGriglia);
|
mOnDialogDismiss.run(mGriglia, mListArticoli);
|
||||||
|
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
this.onLoadingStarted();
|
|
||||||
|
|
||||||
RunnableArgs<Exception> mOnError = exception -> {
|
RunnableArgs<Exception> mOnError = exception -> {
|
||||||
this.onError(exception);
|
this.onError(exception);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
};
|
};
|
||||||
|
|
||||||
RunnableArgs<Griglia> onGrigliaAvailable = griglia -> {
|
fetchArticoli(data.getStringValue(), mOnError);
|
||||||
this.onLoadingEnded();
|
|
||||||
mGriglia = griglia;
|
|
||||||
dismiss();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
grigliaRepository.findByCodAlis(data.getStringValue(), grigliaWrapper -> {
|
|
||||||
if (grigliaWrapper != null) {
|
|
||||||
var griglia = grigliaWrapper.getGriglia();
|
|
||||||
|
|
||||||
griglia.setCountArticoli(grigliaWrapper.getCountArticoli());
|
|
||||||
updateGriglia(griglia, onGrigliaAvailable, mOnError);
|
|
||||||
} else {
|
|
||||||
downloadAndSaveLisA(data.getStringValue(), onGrigliaAvailable, mOnError);
|
|
||||||
}
|
|
||||||
}, mOnError);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public void fetchArticoli(String codAlis, RunnableArgs<Exception> onFailed) {
|
||||||
|
this.onLoadingStarted();
|
||||||
|
pvOrdiniAcquistoRESTConsumer.getArticoliListino(codAlis, dto -> {
|
||||||
|
this.onLoadingEnded();
|
||||||
public void downloadAndSaveLisA(String codAlis, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFailed) {
|
|
||||||
Griglia griglia = new Griglia();
|
|
||||||
griglia.setCodAlis(codAlis);
|
|
||||||
updateGriglia(griglia, onSave, onFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateGriglia(Griglia griglia, RunnableArgs<Griglia> onSaved, RunnableArgs<Exception> onFailed) {
|
|
||||||
pvOrdiniAcquistoRESTConsumer.getArticoliListino(griglia.getCodAlis(), dto -> {
|
|
||||||
|
|
||||||
if (dto.getGrigliaAcquistiChild().size() <= 0) {
|
if (dto.getGrigliaAcquistiChild().size() <= 0) {
|
||||||
onFailed.run(new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli"));
|
onFailed.run(new Exception("La griglia selezionata (" + codAlis + ") non esiste o non presenta articoli"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
griglia.setDescrLisa(dto.getDescrLisa());
|
mGriglia = new Griglia();
|
||||||
griglia.setDescrDepo(dto.getDescrDepo());
|
mGriglia.setCodAlis(codAlis);
|
||||||
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
|
mGriglia.setDescrLisa(dto.getDescrLisa());
|
||||||
|
mGriglia.setDescrDepo(dto.getDescrDepo());
|
||||||
grigliaRepository.saveGriglia(griglia, id -> {
|
mListArticoli = dto.getGrigliaAcquistiChild();
|
||||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSaved, onFailed);
|
this.dismiss();
|
||||||
}, onFailed);
|
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
|
||||||
toSave.setIdGriglia(griglia.getGrigliaId());
|
|
||||||
articoliGriglia.add(toSave);
|
|
||||||
}
|
|
||||||
|
|
||||||
articoloGrigliaRepository.saveArticoliToGriglia(articoliGriglia, griglia, () -> onSave.run(griglia), onFail);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,7 +101,7 @@ public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapte
|
|||||||
final OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder holder = h;
|
final OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder holder = h;
|
||||||
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), ordine.getOrdineId(), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
|
||||||
holder.binding.numArts.setText(Html.fromHtml(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli()))));
|
holder.binding.numArts.setText(Html.fromHtml(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli()))));
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
<string name="loading">Caricamento</string>
|
<string name="loading">Caricamento</string>
|
||||||
<string name="completed">Completato</string>
|
<string name="completed">Completato</string>
|
||||||
<string name="success">Successo</string>
|
<string name="success">Successo</string>
|
||||||
<string name="ord_acq_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_acq_testata"><![CDATA[N° <b>%d</b> del <b>%s</b>]]></string>
|
||||||
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
<string name="ord_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
<string name="doc_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="doc_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
<string name="search">Search…</string>
|
<string name="search">Search…</string>
|
||||||
<string name="login">Login</string>
|
<string name="login">Login</string>
|
||||||
<string name="permission_request_message">Permissions are required for app to work properly</string>
|
<string name="permission_request_message">Permissions are required for app to work properly</string>
|
||||||
<string name="ord_acq_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
<string name="ord_acq_testata"><![CDATA[#<b>%d</b> of <b>%s</b>]]></string>
|
||||||
<string name="ord_ven_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
<string name="ord_ven_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
||||||
<string name="ord_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
<string name="ord_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
||||||
<string name="doc_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
<string name="doc_testata"><![CDATA[#<b>%s</b> of <b>%s</b>]]></string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user