diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 00000000..2b8a50fc
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/app_base.xml b/.idea/runConfigurations/app.xml
similarity index 85%
rename from .idea/runConfigurations/app_base.xml
rename to .idea/runConfigurations/app.xml
index f55876a3..80d18a58 100644
--- a/.idea/runConfigurations/app_base.xml
+++ b/.idea/runConfigurations/app.xml
@@ -1,6 +1,6 @@
-
-
+
+
@@ -8,13 +8,12 @@
-
+
+
-
-
-
-
+
+
@@ -46,7 +45,7 @@
-
+
diff --git a/.idea/runConfigurations/app_vglimenti.xml b/.idea/runConfigurations/app_vglimenti.xml
deleted file mode 100644
index 9ed66857..00000000
--- a/.idea/runConfigurations/app_vglimenti.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e232b11f..1635ee61 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 330
- def appVersionName = '1.30.12'
+ def appVersionCode = 336
+ def appVersionName = '1.31.2'
signingConfigs {
release {
@@ -62,11 +62,12 @@ android {
}
android.buildFeatures.dataBinding true
+ android.buildFeatures.buildConfig true
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
- //coreLibraryDesugaringEnabled true
+ coreLibraryDesugaringEnabled true
}
productFlavors {
@@ -85,9 +86,6 @@ android {
options.compilerArgs << "-Xmaxerrs" << "10000"
}
}
-
-
- dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
lint {
abortOnError false
}
@@ -97,6 +95,7 @@ android {
}
dependencies {
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
exclude group: 'com.android.support', module: 'support-annotations'
@@ -115,7 +114,7 @@ dependencies {
implementation 'com.google.android.gms:play-services-basement:18.1.0'
- implementation 'androidx.appcompat:appcompat:1.6.0'
+ implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
@@ -188,7 +187,6 @@ dependencies {
// RxJava is also required.
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
-
}
repositories {
diff --git a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/13.json b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/13.json
index 960fed8f..4aeb2ff1 100644
--- a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/13.json
+++ b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/13.json
@@ -2,7 +2,7 @@
"formatVersion": 1,
"database": {
"version": 13,
- "identityHash": "bc3841159bac7a7731fe39a5fa4f0f4e",
+ "identityHash": "bef89b513f0a4d5ecd9c2111e2e614a4",
"entities": [
{
"tableName": "articoli_griglia",
@@ -112,10 +112,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"articolo_griglia_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -172,10 +172,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"griglia_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -262,10 +262,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"ordine_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [],
"foreignKeys": []
@@ -366,10 +366,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"articolo_ordine_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -580,10 +580,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -829,10 +829,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -874,7 +874,7 @@
},
{
"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, `zona` 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, `new` INTEGER, `remote_sync_date` INTEGER)",
"fields": [
{
"fieldPath": "id",
@@ -984,6 +984,12 @@
"affinity": "TEXT",
"notNull": false
},
+ {
+ "fieldPath": "isNew",
+ "columnName": "new",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
{
"fieldPath": "remoteSyncDate",
"columnName": "remote_sync_date",
@@ -992,10 +998,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -1107,10 +1113,10 @@
}
],
"primaryKey": {
+ "autoGenerate": true,
"columnNames": [
"_id"
- ],
- "autoGenerate": true
+ ]
},
"indices": [
{
@@ -1150,7 +1156,7 @@
"views": [],
"setupQueries": [
"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, 'bc3841159bac7a7731fe39a5fa4f0f4e')"
+ "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'bef89b513f0a4d5ecd9c2111e2e614a4')"
]
}
}
\ No newline at end of file
diff --git a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/14.json b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/14.json
new file mode 100644
index 00000000..7efee603
--- /dev/null
+++ b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/14.json
@@ -0,0 +1,1162 @@
+{
+ "formatVersion": 1,
+ "database": {
+ "version": 14,
+ "identityHash": "bef89b513f0a4d5ecd9c2111e2e614a4",
+ "entities": [
+ {
+ "tableName": "articoli_griglia",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`articolo_griglia_id` INTEGER PRIMARY KEY AUTOINCREMENT, `cod_mart` TEXT, `descrizione` TEXT, `unt_mis` TEXT, `qta_cnf` REAL NOT NULL, `bar_code` TEXT, `merce_da_ric` REAL NOT NULL, `media_sett` REAL NOT NULL, `flag_qta_multipla` TEXT, `qta_min_ordinabile` REAL NOT NULL, `gg_scadenza` INTEGER NOT NULL, `giacenza` REAL NOT NULL, `qta_prevista_vendita` REAL NOT NULL, `qta_proposta` REAL NOT NULL, `qta_ord` REAL NOT NULL, `id_griglia` INTEGER NOT NULL, `new_no_promo` INTEGER NOT NULL, FOREIGN KEY(`id_griglia`) REFERENCES `griglie`(`griglia_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
+ "fields": [
+ {
+ "fieldPath": "articoloGrigliaId",
+ "columnName": "articolo_griglia_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMart",
+ "columnName": "cod_mart",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrizione",
+ "columnName": "descrizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "untMis",
+ "columnName": "unt_mis",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaCnf",
+ "columnName": "qta_cnf",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "barCode",
+ "columnName": "bar_code",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "merceDaRic",
+ "columnName": "merce_da_ric",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "mediaSett",
+ "columnName": "media_sett",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "flagQtaMultipla",
+ "columnName": "flag_qta_multipla",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaMinOrdinabile",
+ "columnName": "qta_min_ordinabile",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "ggScadenza",
+ "columnName": "gg_scadenza",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "giacenza",
+ "columnName": "giacenza",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "qtaPrevistaVendita",
+ "columnName": "qta_prevista_vendita",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "qtaProposta",
+ "columnName": "qta_proposta",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "qtaOrd",
+ "columnName": "qta_ord",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "idGriglia",
+ "columnName": "id_griglia",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "newNoPromo",
+ "columnName": "new_no_promo",
+ "affinity": "INTEGER",
+ "notNull": true
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "articolo_griglia_id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_articoli_griglia_id_griglia",
+ "unique": false,
+ "columnNames": [
+ "id_griglia"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_articoli_griglia_id_griglia` ON `${TABLE_NAME}` (`id_griglia`)"
+ }
+ ],
+ "foreignKeys": [
+ {
+ "table": "griglie",
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION",
+ "columns": [
+ "id_griglia"
+ ],
+ "referencedColumns": [
+ "griglia_id"
+ ]
+ }
+ ]
+ },
+ {
+ "tableName": "griglie",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`griglia_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `cod_alis` TEXT, `descr_lisa` TEXT, `descr_depo` TEXT)",
+ "fields": [
+ {
+ "fieldPath": "grigliaId",
+ "columnName": "griglia_id",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "codAlis",
+ "columnName": "cod_alis",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrLisa",
+ "columnName": "descr_lisa",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrDepo",
+ "columnName": "descr_depo",
+ "affinity": "TEXT",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "griglia_id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_griglie_cod_alis",
+ "unique": true,
+ "columnNames": [
+ "cod_alis"
+ ],
+ "orders": [],
+ "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_griglie_cod_alis` ON `${TABLE_NAME}` (`cod_alis`)"
+ }
+ ],
+ "foreignKeys": []
+ },
+ {
+ "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, `cod_alis` TEXT NOT NULL)",
+ "fields": [
+ {
+ "fieldPath": "ordineId",
+ "columnName": "ordine_id",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "dataIns",
+ "columnName": "data_ins",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "annotazioni",
+ "columnName": "annotazioni",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "transmitted",
+ "columnName": "transmitted",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "transmissionDate",
+ "columnName": "transmission_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "gestione",
+ "columnName": "gestione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataOrd",
+ "columnName": "data_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numOrd",
+ "columnName": "num_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMdep",
+ "columnName": "cod_mdep",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "idGriglia",
+ "columnName": "id_griglia",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "codAlis",
+ "columnName": "cod_alis",
+ "affinity": "TEXT",
+ "notNull": true
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "ordine_id"
+ ]
+ },
+ "indices": [],
+ "foreignKeys": []
+ },
+ {
+ "tableName": "articoli_ordine",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`articolo_ordine_id` INTEGER PRIMARY KEY AUTOINCREMENT, `cod_mart` TEXT, `descrizione` TEXT, `unt_mis` TEXT, `qta_cnf` REAL NOT NULL, `bar_code` TEXT, `merce_da_ric` REAL NOT NULL, `media_sett` REAL NOT NULL, `flag_qta_multipla` TEXT, `qta_min_ordinabile` REAL NOT NULL, `id_ordine` INTEGER NOT NULL, `qta_ord` REAL NOT NULL, `data_ins` INTEGER, `new_no_promo` INTEGER NOT NULL, `system_note` TEXT, FOREIGN KEY(`id_ordine`) REFERENCES `ordini`(`ordine_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
+ "fields": [
+ {
+ "fieldPath": "articoloOrdineId",
+ "columnName": "articolo_ordine_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMart",
+ "columnName": "cod_mart",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrizione",
+ "columnName": "descrizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "untMis",
+ "columnName": "unt_mis",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaCnf",
+ "columnName": "qta_cnf",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "barCode",
+ "columnName": "bar_code",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "merceDaRic",
+ "columnName": "merce_da_ric",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "mediaSett",
+ "columnName": "media_sett",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "flagQtaMultipla",
+ "columnName": "flag_qta_multipla",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaMinOrdinabile",
+ "columnName": "qta_min_ordinabile",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "idOrdine",
+ "columnName": "id_ordine",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "qtaOrd",
+ "columnName": "qta_ord",
+ "affinity": "REAL",
+ "notNull": true
+ },
+ {
+ "fieldPath": "dataIns",
+ "columnName": "data_ins",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "newNoPromo",
+ "columnName": "new_no_promo",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "systemNote",
+ "columnName": "system_note",
+ "affinity": "TEXT",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "articolo_ordine_id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_articoli_ordine_id_ordine",
+ "unique": false,
+ "columnNames": [
+ "id_ordine"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_articoli_ordine_id_ordine` ON `${TABLE_NAME}` (`id_ordine`)"
+ },
+ {
+ "name": "index_articoli_ordine_id_ordine_cod_mart",
+ "unique": true,
+ "columnNames": [
+ "id_ordine",
+ "cod_mart"
+ ],
+ "orders": [],
+ "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_articoli_ordine_id_ordine_cod_mart` ON `${TABLE_NAME}` (`id_ordine`, `cod_mart`)"
+ }
+ ],
+ "foreignKeys": [
+ {
+ "table": "ordini",
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION",
+ "columns": [
+ "id_ordine"
+ ],
+ "referencedColumns": [
+ "ordine_id"
+ ]
+ }
+ ]
+ },
+ {
+ "tableName": "mtb_colt",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `username` TEXT, `gestione` TEXT, `data_collo` INTEGER, `ser_collo` TEXT, `num_collo` INTEGER, `rif_ord` TEXT, `cod_anag` TEXT, `cod_vdes` TEXT, `cod_mdep` TEXT, `cod_vlis` TEXT, `cod_dtip` TEXT, `cod_tcol` TEXT, `ser_doc` TEXT, `annotazioni` TEXT, `posizione` TEXT, `cod_dtip_provv` TEXT, `ser_doc_provv` TEXT, `cod_jfas` TEXT, `data_ord` INTEGER, `data_doc` INTEGER, `data_doc_provv` INTEGER, `cod_mgrp` TEXT, `data_vers` INTEGER, `segno` INTEGER, `num_ord` INTEGER, `num_doc` INTEGER, `num_doc_provv` INTEGER)",
+ "fields": [
+ {
+ "fieldPath": "id",
+ "columnName": "id",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "username",
+ "columnName": "username",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "gestione",
+ "columnName": "gestione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataCollo",
+ "columnName": "data_collo",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serCollo",
+ "columnName": "ser_collo",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numCollo",
+ "columnName": "num_collo",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "rifOrd",
+ "columnName": "rif_ord",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codAnag",
+ "columnName": "cod_anag",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codVdes",
+ "columnName": "cod_vdes",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMdep",
+ "columnName": "cod_mdep",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codVlis",
+ "columnName": "cod_vlis",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codDtip",
+ "columnName": "cod_dtip",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codTcol",
+ "columnName": "cod_tcol",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serDoc",
+ "columnName": "ser_doc",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "annotazioni",
+ "columnName": "annotazioni",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "posizione",
+ "columnName": "posizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codDtipProvv",
+ "columnName": "cod_dtip_provv",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serDocProvv",
+ "columnName": "ser_doc_provv",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codJfas",
+ "columnName": "cod_jfas",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataOrd",
+ "columnName": "data_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataDoc",
+ "columnName": "data_doc",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataDocProvv",
+ "columnName": "data_doc_provv",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMgrp",
+ "columnName": "cod_mgrp",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataVers",
+ "columnName": "data_vers",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "segno",
+ "columnName": "segno",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numOrd",
+ "columnName": "num_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numDoc",
+ "columnName": "num_doc",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numDocProvv",
+ "columnName": "num_doc_provv",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_mtb_colt_data_collo_ser_collo_num_collo_gestione",
+ "unique": true,
+ "columnNames": [
+ "data_collo",
+ "ser_collo",
+ "num_collo",
+ "gestione"
+ ],
+ "orders": [],
+ "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_mtb_colt_data_collo_ser_collo_num_collo_gestione` ON `${TABLE_NAME}` (`data_collo`, `ser_collo`, `num_collo`, `gestione`)"
+ }
+ ],
+ "foreignKeys": []
+ },
+ {
+ "tableName": "mtb_colr",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `id_collo` INTEGER NOT NULL, `data_collo` INTEGER, `gestione` TEXT, `ser_collo` TEXT, `descrizione` TEXT, `num_collo` INTEGER, `riga` INTEGER, `riga_ord` INTEGER, `cod_mart` TEXT, `cod_barre` TEXT, `cod_col` TEXT, `cod_tagl` TEXT, `partita_mag` TEXT, `gestione_rif` TEXT, `ser_collo_rif` TEXT, `note` TEXT, `data_ord` INTEGER, `data_collo_rif` INTEGER, `qta_cnf` REAL, `qta_col` REAL, `num_ord` INTEGER, `num_etich` INTEGER, `num_collo_rif` INTEGER, `datetime_row` INTEGER, `cod_jcom` TEXT, `num_cnf` REAL, `causale` TEXT, `utente` TEXT, `cod_anag_doc` TEXT, `cod_dtip_doc` TEXT, `data_doc` INTEGER, `ser_doc` TEXT, `num_doc` INTEGER, `id_riga_doc` INTEGER, `unt_mis` TEXT, `data_scad` INTEGER, FOREIGN KEY(`id_collo`) REFERENCES `mtb_colt`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
+ "fields": [
+ {
+ "fieldPath": "id",
+ "columnName": "id",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "idCollo",
+ "columnName": "id_collo",
+ "affinity": "INTEGER",
+ "notNull": true
+ },
+ {
+ "fieldPath": "dataCollo",
+ "columnName": "data_collo",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "gestione",
+ "columnName": "gestione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serCollo",
+ "columnName": "ser_collo",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrizione",
+ "columnName": "descrizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numCollo",
+ "columnName": "num_collo",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "riga",
+ "columnName": "riga",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "rigaOrd",
+ "columnName": "riga_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMart",
+ "columnName": "cod_mart",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codBarre",
+ "columnName": "cod_barre",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codCol",
+ "columnName": "cod_col",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codTagl",
+ "columnName": "cod_tagl",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "partitaMag",
+ "columnName": "partita_mag",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "gestioneRif",
+ "columnName": "gestione_rif",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serColloRif",
+ "columnName": "ser_collo_rif",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "note",
+ "columnName": "note",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataOrd",
+ "columnName": "data_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataColloRif",
+ "columnName": "data_collo_rif",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaCnf",
+ "columnName": "qta_cnf",
+ "affinity": "REAL",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qtaCol",
+ "columnName": "qta_col",
+ "affinity": "REAL",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numOrd",
+ "columnName": "num_ord",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numEtich",
+ "columnName": "num_etich",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numColloRif",
+ "columnName": "num_collo_rif",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "datetimeRow",
+ "columnName": "datetime_row",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codJcom",
+ "columnName": "cod_jcom",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numCnf",
+ "columnName": "num_cnf",
+ "affinity": "REAL",
+ "notNull": false
+ },
+ {
+ "fieldPath": "causale",
+ "columnName": "causale",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "utente",
+ "columnName": "utente",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codAnagDoc",
+ "columnName": "cod_anag_doc",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codDtipDoc",
+ "columnName": "cod_dtip_doc",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataDoc",
+ "columnName": "data_doc",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "serDoc",
+ "columnName": "ser_doc",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "numDoc",
+ "columnName": "num_doc",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "idRigaDoc",
+ "columnName": "id_riga_doc",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "untMis",
+ "columnName": "unt_mis",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataScad",
+ "columnName": "data_scad",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_mtb_colr_data_collo_ser_collo_num_collo_gestione_riga",
+ "unique": true,
+ "columnNames": [
+ "data_collo",
+ "ser_collo",
+ "num_collo",
+ "gestione",
+ "riga"
+ ],
+ "orders": [],
+ "createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_mtb_colr_data_collo_ser_collo_num_collo_gestione_riga` ON `${TABLE_NAME}` (`data_collo`, `ser_collo`, `num_collo`, `gestione`, `riga`)"
+ },
+ {
+ "name": "index_mtb_colr_id_collo",
+ "unique": false,
+ "columnNames": [
+ "id_collo"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_mtb_colr_id_collo` ON `${TABLE_NAME}` (`id_collo`)"
+ }
+ ],
+ "foreignKeys": [
+ {
+ "table": "mtb_colt",
+ "onDelete": "CASCADE",
+ "onUpdate": "NO ACTION",
+ "columns": [
+ "id_collo"
+ ],
+ "referencedColumns": [
+ "id"
+ ]
+ }
+ ]
+ },
+ {
+ "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, `zona` TEXT, `new` INTEGER, `remote_sync_date` INTEGER)",
+ "fields": [
+ {
+ "fieldPath": "id",
+ "columnName": "_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "idInventario",
+ "columnName": "id_inventario",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMdep",
+ "columnName": "cod_mdep",
+ "affinity": "TEXT",
+ "notNull": true
+ },
+ {
+ "fieldPath": "dataInventario",
+ "columnName": "data_inventario",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataReg",
+ "columnName": "data_reg",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataVer",
+ "columnName": "data_ver",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "filtro",
+ "columnName": "filtro",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "flagStato",
+ "columnName": "flag_stato",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "flagOperazione",
+ "columnName": "flag_operazione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codAnag",
+ "columnName": "cod_anag",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codDtip",
+ "columnName": "cod_dtip",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "inseritoDa",
+ "columnName": "inserito_da",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "registratoDa",
+ "columnName": "registrato_da",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "verificatoDa",
+ "columnName": "verificato_da",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataOraInizio",
+ "columnName": "data_ora_inizio",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "dataOraFine",
+ "columnName": "data_ora_fine",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "causale",
+ "columnName": "causale",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "zona",
+ "columnName": "zona",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "isNew",
+ "columnName": "new",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "remoteSyncDate",
+ "columnName": "remote_sync_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "autoGenerate": true,
+ "columnNames": [
+ "_id"
+ ]
+ },
+ "indices": [
+ {
+ "name": "index_inventari__id",
+ "unique": false,
+ "columnNames": [
+ "_id"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventari__id` ON `${TABLE_NAME}` (`_id`)"
+ },
+ {
+ "name": "index_inventari_id_inventario",
+ "unique": false,
+ "columnNames": [
+ "id_inventario"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventari_id_inventario` ON `${TABLE_NAME}` (`id_inventario`)"
+ }
+ ],
+ "foreignKeys": []
+ },
+ {
+ "tableName": "inventario_rows",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `parent_id` INTEGER, `cod_mart` TEXT, `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": false
+ },
+ {
+ "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": {
+ "autoGenerate": true,
+ "columnNames": [
+ "_id"
+ ]
+ },
+ "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": [],
+ "setupQueries": [
+ "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, 'bef89b513f0a4d5ecd9c2111e2e614a4')"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
index b7ea2ff2..a8b35d2f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
@@ -3,11 +3,13 @@ package it.integry.integrywmsnative;
import android.app.Application;
import android.content.res.Configuration;
import android.content.res.Resources;
+import android.util.Log;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
+import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class MainApplication extends Application {
@@ -19,6 +21,8 @@ public class MainApplication extends Application {
public static MainApplicationModule appModule;
public static RoomModule roomModule;
+ private Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler;
+
@Inject
AppContext appContext;
@@ -40,6 +44,9 @@ public class MainApplication extends Application {
appComponent.inject(this);
res = getResources();
+
+ defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
+ Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
// Called by the system when the device configuration changes while your component is running.
@@ -61,4 +68,22 @@ public class MainApplication extends Application {
System.exit(0);
}
+
+ // handler listener
+ private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler =
+ new Thread.UncaughtExceptionHandler() {
+ @Override
+ public void uncaughtException(Thread thread, Throwable ex) {
+ try {
+ UtilityLogger.error(new Exception(ex));
+ } catch (Exception e) {
+ Log.e("Uncaught error", "Exception Logger failed!", e);
+ //MainApplication.exit();
+ }
+
+ // re-throw critical exception further to the os (important)
+ defaultUncaughtExceptionHandler.uncaughtException(thread, ex);
+ }
+ };
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index b96c0bc9..3e0cfb94 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -74,6 +74,8 @@ import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigl
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoComponent;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
+import it.integry.integrywmsnative.gest.settings.MainSettingsComponent;
+import it.integry.integrywmsnative.gest.settings.MainSettingsModule;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListComponent;
@@ -169,6 +171,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
BottomSheetInventarioRowActionsModule.class,
BottomSheetMtbColrEditModalModule.class,
DialogChooseArtsFromMtbAartListModule.class,
+ MainSettingsModule.class,
})
public interface MainApplicationComponent {
@@ -285,6 +288,8 @@ public interface MainApplicationComponent {
DialogChooseArtsFromMtbAartListComponent.Factory dialogDialogDialogChooseArtsFromMtbAartListViewComponent();
+ MainSettingsComponent.Factory mainSettingsFragmentComponent();
+
void inject(MainApplication mainApplication);
void inject(AppContext mainApplication);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java b/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
index bdfaa248..dfb86ddf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
@@ -5,8 +5,9 @@ public class CommonConst {
public static class Login {
public static class Azienda {
+ public static String protocol = "https";
public static String host = "www2.studioml.it";
- public static int port = 80;
+ public static int port = 443;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java
deleted file mode 100644
index 77b5ef00..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package it.integry.integrywmsnative.core.class_router;
-
-import java.util.HashMap;
-
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
-import it.integry.integrywmsnative.core.utility.UtilityHashMap;
-
-public class BaseCustomConfiguration implements ICustomConfiguration {
-
-
- public static class Keys {
- public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
- public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
- public static int FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC = 3;
- }
-
- protected HashMap configurations = new HashMap<>() {{
- put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true);
- put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, false);
- }};
-
-
-
- @Override
- public T getConfig(int key) {
- return UtilityHashMap.getValue(configurations, key);
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java
deleted file mode 100644
index d234cebb..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package it.integry.integrywmsnative.core.class_router;
-
-import android.content.Context;
-import android.util.Pair;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ClassRouter {
-
- public enum PATH {
- FILTRO_ORDINI_VENDITA,
- ORDINI_VENDITA,
- CUSTOM_CONFIGURATION,
- BARCODE_CUSTOMIZATION
- }
-
- private static Context context;
-
- private static List> mRouteClasses = new ArrayList<>();
-
- public static void init() {
-// ClassRouter.context = context;
- }
-
- private static boolean checkIClassExists(PATH path) {
- boolean methodAlreadyDeclared = false;
-
- for(int i = 0; i < mRouteClasses.size() && !methodAlreadyDeclared; i++) {
- if(mRouteClasses.get(i).first == path) methodAlreadyDeclared = true;
- }
-
- return methodAlreadyDeclared;
- }
-
-
- private static int getClassIndex(PATH path) {
- for(int i = 0; i < mRouteClasses.size(); i++) {
- if(mRouteClasses.get(i).first == path) return i;
- }
-
- return -1;
- }
-
- public static void registerPath(PATH path, Class clazz) {
- if(checkIClassExists(path)) {
- //throw new MethodPathAlreadyDeclaredException(path);
- }
-
- try {
- mRouteClasses.add(new Pair<>(path, clazz.newInstance()));
- } catch (IllegalAccessException | InstantiationException e) {
- e.printStackTrace();
- }
- }
-
- public static void deregisterPath(PATH path) {
- if(checkIClassExists(path)) {
- mRouteClasses.remove(getClassIndex(path));
- }
- }
-
-
- public static T getInstance(PATH path) {
- try {
-
- if (!checkIClassExists(path)) {
-// throw new MethodPathNotRegisteredException(path);
- }
-
- Object instance = mRouteClasses.get(getClassIndex(path)).second;
-
- return (T)instance;
-
- } catch (Exception ex) {
-// UtilityExceptions.defaultException(null, ex, true);
- }
-
- return null;
- }
-
-
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/exceptions/MethodPathNotRegisteredException.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/exceptions/MethodPathNotRegisteredException.java
deleted file mode 100644
index 41e5df02..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/exceptions/MethodPathNotRegisteredException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.exceptions;
-
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-
-public class MethodPathNotRegisteredException extends Exception {
-
- public MethodPathNotRegisteredException(ClassRouter.PATH path) {
- super(String.format("Path %s is not registered", path.toString()));
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IBarcodeCustomization.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IBarcodeCustomization.java
deleted file mode 100644
index 21a8c92c..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IBarcodeCustomization.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.interfaces;
-
-public interface IBarcodeCustomization {
-
- boolean shouldForceToEan13(String barcode);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/ICustomConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/ICustomConfiguration.java
deleted file mode 100644
index b306be95..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/ICustomConfiguration.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.interfaces;
-
-public interface ICustomConfiguration {
-
- T getConfig(int key);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IFiltroOrdiniVendita.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IFiltroOrdiniVendita.java
deleted file mode 100644
index 8b27b4ad..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IFiltroOrdiniVendita.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.interfaces;
-
-public interface IFiltroOrdiniVendita {
-
- boolean shoudShowCodMdepFilter();
-
- boolean shoudShowIdViaggioFilter();
-
- boolean shoudShowAgenteFilter();
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java
deleted file mode 100644
index 00a7c5f9..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.interfaces;
-
-import java.util.List;
-
-import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
-
-public interface OrdiniVenditaInterface {
-
- boolean isTrasfOrder(List testateOrdini);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
index 4b65e475..bf8f6438 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
@@ -34,6 +34,8 @@ public class AppContext {
@Inject
SettingsManager mSettingsManager;
+ private File logsFolder;
+
public AppContext(Context context) {
this.mApplicationContext = context;
@@ -53,6 +55,10 @@ public class AppContext {
this.initLogger();
}
+ public File getLogFilePath() {
+ return logsFolder;
+ }
+
private void initSettings() {
Stash.init(mApplicationContext);
@@ -82,10 +88,9 @@ public class AppContext {
private void initLogger() {
Logger.addLogAdapter(new AndroidLogAdapter());
- File logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
+ logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
int maxBytesSize = 5 * 1024 * 1024;
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
-
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
index a43fc1cd..af1314a3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
@@ -6,13 +6,11 @@ import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
-import java.lang.reflect.Method;
import java.net.ConnectException;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.menu.MenuService;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
@@ -44,8 +42,7 @@ public class MainContext {
this.initDBData(() -> {
this.initMenu(() -> {
-
- this.initReflections();
+
if (mListener != null) mListener.onContextInitialized();
});
});
@@ -103,30 +100,6 @@ public class MainContext {
});
}
- private void initReflections() {
- ClassRouter.init();
-
- try {
- String initMethod = "init";
-
- Class dynamicContextClass = Class.forName("it.integry.wms.dynamic_customization.DynamicContext");
-
- Method[] methods = dynamicContextClass.getMethods();
- for (Method m : methods) {
- if (initMethod.equals(m.getName())) {
- // for static methods we can use null as instance of class
- final Object newInstance = dynamicContextClass.newInstance();
-
- m.invoke(newInstance, applicationContext);
- break;
- }
- }
-
- } catch (Exception e) {
-// UtilityExceptions.defaultException(mContext, e, true);
- }
- }
-
public MainContext setListener(Listener listener) {
this.mListener = listener;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
index 661fbdb9..f2f5d5e9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
@@ -40,7 +40,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
InventarioRoomDTO.class,
InventarioRowRoomDTO.class
},
- version = 13,
+ version = 14,
exportSchema = true)
@TypeConverters({
DateConverter.class,
@@ -66,7 +66,8 @@ public abstract class AppDatabase extends RoomDatabase {
AppDatabase.class, "integry_wms")
.addMigrations(MIGRATION_10_11)
.addMigrations(MIGRATION_11_12)
- .addMigrations(MIGRATION_12_13);
+ .addMigrations(MIGRATION_12_13)
+ .addMigrations(MIGRATION_13_14);
sInstance = builder.build();
}
@@ -126,4 +127,12 @@ public abstract class AppDatabase extends RoomDatabase {
database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
}
};
+
+ static final Migration MIGRATION_13_14 = new Migration(13, 14) {
+ @Override
+ public void migrate(@NonNull SupportSQLiteDatabase database) {
+ database.execSQL("ALTER TABLE inventari"
+ + " ADD COLUMN new INTEGER");
+ }
+ };
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java
index e9b8f6e8..cebe960b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java
@@ -184,7 +184,7 @@ public class RoomModule {
InventarioLocalDataSource inventarioLocalDataSource,
InventarioRESTConsumer inventarioRESTConsumer,
InventarioMapper inventarioMapper) {
- return new InventarioRepository(inventarioLocalDataSource, inventarioRESTConsumer, inventarioMapper, handler);
+ return new InventarioRepository(inventarioLocalDataSource, inventarioRESTConsumer, inventarioMapper, handler, executorService);
}
@Singleton
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRoomDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRoomDTO.java
index 93a69d30..cb8c25bc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRoomDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRoomDTO.java
@@ -35,6 +35,7 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
public static final String DATA_ORA_FINE = "data_ora_fine";
public static final String CAUSALE = "causale";
public static final String ZONA = "zona";
+ public static final String IS_NEW = "new";
}
/** The unique ID of the cheese. */
@@ -95,6 +96,9 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
@ColumnInfo(name = Columns.ZONA)
private String zona;
+ @ColumnInfo(name = Columns.IS_NEW)
+ private Boolean isNew;
+
@Ignore
private List inventarioRowList;
@@ -235,6 +239,14 @@ public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterfa
this.zona = zona;
}
+ public Boolean isNew() {
+ return isNew;
+ }
+
+ public void setNew(Boolean aNew) {
+ isNew = aNew;
+ }
+
public List getInventarioRowList() {
return inventarioRowList;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
index bc729191..416b99b3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
@@ -1,12 +1,16 @@
package it.integry.integrywmsnative.core.data_store.db.respository_new;
import android.os.Handler;
+import android.util.Log;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.ExecutorService;
import javax.inject.Inject;
@@ -17,9 +21,12 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.mapper.InventarioMapper;
import it.integry.integrywmsnative.core.model.MtbInvent;
import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
+import it.integry.integrywmsnative.core.utility.UtilityLiveData;
public class InventarioRepository extends _BaseRepository {
+ private final ExecutorService executorService;
+
private final Handler handler;
private final MutableLiveData> internalLiveData = new MutableLiveData<>();
@@ -28,22 +35,49 @@ public class InventarioRepository extends _BaseRepository> retrieve() {
+ public LiveData> retrieve(Runnable onComplete, RunnableArgs onError) {
localDataSource.makeSynchronousRetrieveAllLive(false)
.observeOn(Schedulers.io())
.subscribe(internalLiveData::postValue);
-// refresh(onComplete, onError);
+
+ UtilityLiveData.observeOnce(internalLiveData, inventories -> {
+ refresh(onComplete, onError);
+ });
+
return internalLiveData;
}
+ public void refresh(Runnable onComplete, RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ var startRetrieve = new Date();
+ var remoteData = remoteDataSource.makeSynchronousRetrieveRequest();
+ Log.d("Timing [INVENTORIES RETRIEVE]", ((new Date().getTime() - startRetrieve.getTime()) / 1000) + " secs");
+
+ if (remoteData == null) remoteData = new ArrayList<>();
+
+ resolveFetch(remoteData, internalLiveData.getValue(),
+ (remoteItem, localItem) -> Objects.equals(remoteItem.getIdInventario(), localItem.getIdInventario()),
+ (remoteItem, localItem) -> {
+ remoteItem.setNew(true);
+ }, onComplete, onError);
+
+ } catch (Exception e) {
+ onError.run(e);
+ }
+ });
+ }
+
public void insert(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs onError) {
localDataSource.makeInsertRequest(inventarioDTO, localResult -> {
if (onComplete != null) handler.post(onComplete);
@@ -60,7 +94,7 @@ public class InventarioRepository extends _BaseRepository onError){
+ public void delete(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs onError) {
localDataSource.makeDeleteRequest(inventarioDTO, onComplete, onError);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java
deleted file mode 100644
index a6310fe4..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package it.integry.integrywmsnative.core.exception;
-
-import android.app.Activity;
-import android.os.Environment;
-import android.os.Looper;
-import android.util.Log;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-
-import it.integry.integrywmsnative.MainApplication;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.view.dialogs.exception.DialogException;
-
-public class ExceptionsHandler implements Thread.UncaughtExceptionHandler {
-
- private final static String TAG = ExceptionsHandler.class.getSimpleName();
-
- private final Activity context;
-
- public static void init(Activity context) {
- new ExceptionsHandler(context);
- }
-
- private ExceptionsHandler(Activity context) {
- this.context = context;
-
- //if (!BuildConfig.DEBUG) {
- Thread.setDefaultUncaughtExceptionHandler(this);
-
-
- //}
-
- }
-
- @Override
- public void uncaughtException(final Thread thread, final Throwable ex) {
- try {
- UtilityLogger.error(new Exception(ex));
- } catch (Exception e) {
- Log.e(TAG, "Exception Logger failed!", e);
- MainApplication.exit();
- }
-
- appendToFile(new Exception(ex));
- new Thread() {
- @Override
- public void run() {
- Looper.prepare();
- DialogException.make(context, context::finish).show();
- Looper.loop();
- }
- }.start();
-
-
-
- }
-
- public void appendToFile(Exception e) {
- try {
- File yourFile = new File(Environment.getExternalStorageDirectory(), "log.txt");
-
- FileWriter fstream = new FileWriter(yourFile.getPath(), true);
- BufferedWriter out = new BufferedWriter(fstream);
- PrintWriter pWriter = new PrintWriter(out, true);
- e.printStackTrace(pWriter);
- }
- catch (Exception ie) {
- throw new RuntimeException("Could not write Exception to file", ie);
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/menu/MenuRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/menu/MenuRESTConsumer.java
index 6ed857c3..3d773ddf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/menu/MenuRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/menu/MenuRESTConsumer.java
@@ -19,9 +19,7 @@ public class MenuRESTConsumer extends _BaseRESTConsumer {
menuRESTConsumerService.retrieveMenuConfig(rootCodOpz).enqueue(new Callback<>() {
@Override
public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "retrieveMenu", (m) -> {
- onComplete.run(response.body().getEntity());
- }, onFailed);
+ analyzeAnswer(response, "retrieveMenu", onComplete, onFailed);
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java
index 3def3811..6f5aee50 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/RESTBuilder.java
@@ -4,10 +4,16 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.lang.reflect.Modifier;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.concurrent.TimeUnit;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
@@ -26,25 +32,25 @@ public class RESTBuilder {
private static final boolean ADD_LOGGER_INTERCEPTOR = false;
public static T getService(final Class service) {
- return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true);
+ return getService(service, SettingsManager.i().getServer().getProtocol(), SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true);
}
public static T getService(final Class service, int timeout) {
- return getService(service, SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true, true, timeout);
+ return getService(service, SettingsManager.i().getServer().getProtocol(), SettingsManager.i().getServer().getHost(), SettingsManager.i().getServer().getPort(), true, true, timeout);
}
- public static T getService(final Class service, String host, int port, boolean addInterceptors) {
- return getService(service, host, port, addInterceptors, true, 60);
+ public static T getService(final Class service, String protocol, String host, int port, boolean addInterceptors) {
+ return getService(service, protocol, host, port, addInterceptors, true, 60);
}
- public static T getService(final Class service, String host, int port, boolean addInterceptors, boolean addEmsApi) {
- return getService(service, host, port, addInterceptors, addEmsApi, 60);
+ public static T getService(final Class service, String protocol, String host, int port, boolean addInterceptors, boolean addEmsApi) {
+ return getService(service, protocol, host, port, addInterceptors, addEmsApi, 60);
}
- public static T getService(final Class service, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout) {
- OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
+ public static T getService(final Class service, String protocol, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout) {
+ OkHttpClient.Builder clientBuilder = getDefaultHttpClient();
clientBuilder.connectTimeout(timeout, TimeUnit.SECONDS);
clientBuilder.readTimeout(timeout, TimeUnit.SECONDS);
@@ -57,22 +63,19 @@ public class RESTBuilder {
OkHttpClient client = clientBuilder.build();
- String endpoint = "http://" + host + ":" + port + "/" + (addEmsApi ? "ems-api/" : "");
+ String endpoint = protocol + "://" + host + ":" + port + "/" + (addEmsApi ? "ems-api/" : "");
+
Gson gson = new GsonBuilder()
.setDateFormat("dd/MM/yyyy HH:mm:ss")
+ .excludeFieldsWithModifiers(Modifier.TRANSIENT)
.registerTypeAdapter(LocalDate.class, new LocalDateDeserializer())
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
- .excludeFieldsWithModifiers(Modifier.TRANSIENT)
.create();
- Retrofit retrofit = new Retrofit.Builder()
- .addConverterFactory(GsonConverterFactory.create(gson))
- .baseUrl(endpoint)
- .client(client)
- .build();
+ Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(endpoint).client(client).build();
return retrofit.create(service);
}
@@ -85,4 +88,39 @@ public class RESTBuilder {
public static int getDefaultPort() {
return SettingsManager.i().getServer().getPort();
}
+
+
+ public static OkHttpClient.Builder getDefaultHttpClient() {
+ TrustManager[] trustAllCerts = new TrustManager[]{
+ new X509TrustManager() {
+ @Override
+ public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
+ }
+
+ @Override
+ public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
+ }
+
+ @Override
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return new java.security.cert.X509Certificate[]{};
+ }
+ }
+ };
+
+ SSLContext sslContext = null;
+ try {
+ sslContext = SSLContext.getInstance("SSL");
+ sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
+ throw new RuntimeException(e);
+ }
+
+
+ OkHttpClient.Builder client = new OkHttpClient.Builder()
+ .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0])
+ .hostnameVerifier((hostname, session) -> true);
+
+ return client;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/BarcodeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/BarcodeRESTConsumer.java
index 47a675c0..f6e5bacf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/BarcodeRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/BarcodeRESTConsumer.java
@@ -3,8 +3,6 @@ package it.integry.integrywmsnative.core.rest.consumers;
import javax.inject.Singleton;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.IBarcodeCustomization;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
@@ -18,15 +16,6 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
public void decodeEan128(BarcodeScanDTO barcodeObj, RunnableArgs onComplete, RunnableArgs onFailed) {
- IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION);
-
- if (barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())) {
- Ean128Model ean128Model = new Ean128Model();
- ean128Model.Gtin = barcodeObj.getStringValue();
- onComplete.run(ean128Model);
- return;
- }
-
String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|");
BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
index 1f32a985..ba96d4fc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
@@ -1,12 +1,9 @@
package it.integry.integrywmsnative.core.rest.consumers;
-import com.google.gson.JsonObject;
-
import java.util.List;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.rest.model.RettificaULDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.SpostaArtsTraULRequestDTO;
@@ -19,9 +16,6 @@ import retrofit2.http.Query;
public interface ColliMagazzinoRESTConsumerService {
- @POST("wms/distribuzioneRigheCollo")
- Call> distribuisciCollo(@Body DistribuzioneColloDTO distribuzioneCollo);
-
@POST("getColloByBarcode")
Call> getColloByBarcode(@Query("codBarreCollo") String sscc, @Query("onlyResiduo") boolean onlyResiduo, @Query("throwExcIfNull") boolean throwExcIfNull);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
index acd1f047..58b6bc72 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
@@ -20,12 +20,10 @@ import retrofit2.Response;
public class GestSetupRESTConsumer extends _BaseRESTConsumer {
public void getValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
- getValueStatic(gestName, sectionName, keySection, onComplete, onFailed);
- }
-
- public static void getValueStatic(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
- service.getGestSetupValue(gestName, sectionName, keySection).enqueue(new Callback>() {
+
+ service.getGestSetupValue(gestName, sectionName, keySection)
+ .enqueue(new Callback<>() {
@Override
public void onResponse(Call> call, Response> response) {
analyzeAnswer(response, "GestSetup", onComplete, onFailed);
@@ -40,8 +38,8 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
});
}
- public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
- getValueStatic(gestName, sectionName, keySection, value -> {
+ public void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
+ getValue(gestName, sectionName, keySection, value -> {
if (value != null) {
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
@@ -50,7 +48,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
});
}
- public static void getValueStatic(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
+ public void getValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValue(gestName, sectionName, keySection, codMdep).enqueue(new Callback>() {
@Override
@@ -67,8 +65,8 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
});
}
- public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
- getValueStatic(gestName, sectionName, keySection, codMdep, value -> {
+ public void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
+ getValue(gestName, sectionName, keySection, codMdep, value -> {
if (value != null) {
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
index 4c2daeb9..e63950eb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.rest.consumers;
import androidx.annotation.NonNull;
+import java.util.List;
+
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -52,6 +54,16 @@ public class InventarioRESTConsumer extends _BaseRESTConsumer {
});
}
+ public List makeSynchronousRetrieveRequest() throws Exception {
+ var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 120);
+
+ var response = inventarioRESTConsumerService.retrieve()
+ .execute();
+
+ var data = analyzeAnswer(response, "retrieveInventario");
+ return data.getInventories();
+ }
+
public void makeInsertRequest(MtbInvent inventarioToInsert, final Runnable onComplete, final RunnableArgs onFailed) {
var request = new InsertInventarioRequestDTO()
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumerService.java
index 5054be1a..d2d8cb23 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumerService.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.inventario.InsertInventarioRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventariResponseDTO;
import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventarioArtsResponseDTO;
import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventarioResponseDTO;
import retrofit2.Call;
@@ -12,6 +13,9 @@ import retrofit2.http.Path;
public interface InventarioRESTConsumerService {
+ @GET("wms/inventario/")
+ Call> retrieve();
+
@GET("wms/inventario/{inventoryId}")
Call> retrieve(
@Path("inventoryId") long inventoryId);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java
index f9d81216..b1c0045d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java
@@ -101,12 +101,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
}
- public static void sendErrorLogMail(String message) {
- sendErrorLogMail(message, null, null);
- }
-
-
- public static void sendErrorLogMail(String message, Runnable onComplete, RunnableArgs onFailed) {
+ public void sendErrorLogMail(String message, Runnable onComplete, RunnableArgs onFailed) {
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().getUserSession().getProfileDB()) ? "" : " [" + SettingsManager.i().getUserSession().getProfileDB() + "]";
@@ -135,10 +130,10 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
}
- public static void sendMail(MailRequestDTO mailDTO, Runnable onComplete, RunnableArgs onFailed) {
+ public void sendMail(MailRequestDTO mailDTO, Runnable onComplete, RunnableArgs onFailed) {
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
- service.sendMail(mailDTO).enqueue(new Callback>() {
+ service.sendMail(mailDTO).enqueue(new Callback<>() {
@Override
public void onResponse(Call> call, Response> response) {
if (onComplete != null) onComplete.run();
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
index eace9e55..1166cc28 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
@@ -15,41 +15,48 @@ import retrofit2.Response;
public abstract class _BaseRESTConsumer {
- public static void analyzeAnswer(Response> response, String logTitle, RunnableArgs onComplete, RunnableArgs onFailed) {
+ public static T analyzeAnswer(Response> response, String logTitle) throws Exception {
if (response.isSuccessful()) {
if (response.body() != null) {
if (response.body().getEsito() == EsitoType.OK) {
if (!UtilityString.isNullOrEmpty(response.body().getErrorMessage())) {
- onFailed.run(new Exception(response.body().getErrorMessage()));
+ throw new Exception(response.body().getErrorMessage());
} else {
T dataObj = response.body().getDto() != null ?
response.body().getDto() :
response.body().getEntity();
- onComplete.run(dataObj);
+ return dataObj;
}
} else {
String errorMessage = UtilityString.isNull(response.body().getErrorMessage(), "Empty message");
Log.e(logTitle, errorMessage);
- onFailed.run(CommonRESTException.tryRecognizeException(errorMessage));
+ throw CommonRESTException.tryRecognizeException(errorMessage);
}
} else {
Log.e(logTitle, response.message());
- onFailed.run(new Exception(response.message()));
+ throw new Exception(response.message());
}
} else {
if (response.code() == 404) {
- Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata (" + response.raw().request().url().toString() + ")");
- onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
+ Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata (" + response.raw().request().url() + ")");
+ throw new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")");
} else if (response.code() == 550)
- onFailed.run(new InvalidLicenseException());
+ throw new InvalidLicenseException();
else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message());
- onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
+ throw new Exception("Status " + response.code() + ": " + response.message());
}
+ }
+ }
-
+ public static void analyzeAnswer(Response> response, String logTitle, RunnableArgs onComplete, RunnableArgs onFailed) {
+ try {
+ var data = analyzeAnswer(response, logTitle);
+ onComplete.run(data);
+ } catch (Exception e) {
+ onFailed.run(e);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/DistribuzioneColloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/DistribuzioneColloDTO.java
deleted file mode 100644
index 2166bc46..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/DistribuzioneColloDTO.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package it.integry.integrywmsnative.core.rest.model;
-
-public class DistribuzioneColloDTO {
-
- private String gestione;
- private String dataCollo;
- private Integer numCollo;
- private String serCollo;
- private String criterioDistribuzione;
-
- public String getGestione() {
- return gestione;
- }
-
- public DistribuzioneColloDTO setGestione(String gestione) {
- this.gestione = gestione;
- return this;
- }
-
- public String getDataCollo() {
- return dataCollo;
- }
-
- public DistribuzioneColloDTO setDataCollo(String dataCollo) {
- this.dataCollo = dataCollo;
- return this;
- }
-
- public Integer getNumCollo() {
- return numCollo;
- }
-
- public DistribuzioneColloDTO setNumCollo(Integer numCollo) {
- this.numCollo = numCollo;
- return this;
- }
-
- public String getSerCollo() {
- return serCollo;
- }
-
- public DistribuzioneColloDTO setSerCollo(String serCollo) {
- this.serCollo = serCollo;
- return this;
- }
-
- public String getCriterioDistribuzione() {
- return criterioDistribuzione;
- }
-
- public CriterioDistribuzione getCriterioDistribuzioneEnum() {
- return CriterioDistribuzione.fromString(criterioDistribuzione);
- }
-
- public DistribuzioneColloDTO setCriterioDistribuzione(String criterioDistribuzione) {
- this.criterioDistribuzione = criterioDistribuzione;
- return this;
- }
-
- public DistribuzioneColloDTO setCriterioDistribuzione(CriterioDistribuzione criterioDistribuzione) {
- this.criterioDistribuzione = criterioDistribuzione != null ? criterioDistribuzione.getText() : null;
- return this;
- }
-
- public enum CriterioDistribuzione {
- UPDATE("U"), //UPDATE COLLO GIA' ESISTENTE
- SPLIT_ORDINE("O"); //UPDATE COLLO GIA' ESISTENTE
-
- private String text;
- CriterioDistribuzione(String text) {
- this.text = text;
- }
- public String getText() {
- return this.text;
- }
-
- public static CriterioDistribuzione fromString(String text) {
- for (CriterioDistribuzione b : CriterioDistribuzione.values()) {
- if (b.text.equalsIgnoreCase(text)) return b;
- }
- return null;
- }
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailAttachmentDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailAttachmentDTO.java
new file mode 100644
index 00000000..2f5cdfdd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailAttachmentDTO.java
@@ -0,0 +1,25 @@
+package it.integry.integrywmsnative.core.rest.model;
+
+public class MailAttachmentDTO {
+
+ private String fileName;
+ private String fileb64Content;
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public MailAttachmentDTO setFileName(String fileName) {
+ this.fileName = fileName;
+ return this;
+ }
+
+ public String getFileb64Content() {
+ return fileb64Content;
+ }
+
+ public MailAttachmentDTO setFileb64Content(String fileb64Content) {
+ this.fileb64Content = fileb64Content;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailRequestDTO.java
index ed282c3b..d71b3928 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailRequestDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/MailRequestDTO.java
@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.core.rest.model;
+import java.util.List;
+
public class MailRequestDTO {
private String from;
@@ -11,6 +13,7 @@ public class MailRequestDTO {
private String ccn;
private String subject;
private String msgText;
+ private List attachments;
private boolean isHtml = false;
private boolean isDebug = false;
@@ -95,6 +98,15 @@ public class MailRequestDTO {
return this;
}
+ public List getAttachments() {
+ return attachments;
+ }
+
+ public MailRequestDTO setAttachments(List attachments) {
+ this.attachments = attachments;
+ return this;
+ }
+
public boolean isHtml() {
return isHtml;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/ServiceRESTResponse.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/ServiceRESTResponse.java
index 0f06e9af..511f2450 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/ServiceRESTResponse.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/ServiceRESTResponse.java
@@ -1,10 +1,7 @@
package it.integry.integrywmsnative.core.rest.model;
-import java.util.Date;
import java.util.List;
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-
/**
* Created by GiuseppeS on 06/03/2018.
*/
@@ -12,7 +9,6 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
public class ServiceRESTResponse {
private int esito;
- private String execDate;
private String profileDB;
private String errorMessage;
@@ -24,9 +20,6 @@ public class ServiceRESTResponse {
return EsitoType.fromIntValue(esito);
}
- public Date getExecDate() {
- return UtilityDate.recognizeDateWithExceptionHandler(execDate);
- }
public String getProfileDB() {
return profileDB;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/inventario/RetrieveInventariResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/inventario/RetrieveInventariResponseDTO.java
new file mode 100644
index 00000000..2beab604
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/inventario/RetrieveInventariResponseDTO.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.core.rest.model.inventario;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbInvent;
+
+public class RetrieveInventariResponseDTO {
+
+ private List inventories;
+
+ public List getInventories() {
+ return inventories;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java
index e88cbc5e..f53ca7ea 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java
@@ -5,7 +5,6 @@ import it.integry.integrywmsnative.core.model.MtbColt;
public class CloseUDSRequestDTO {
private boolean printSSCC;
- private boolean enableTransferLogic;
private String orderCodMdep;
private MtbColt mtbColt;
@@ -18,15 +17,6 @@ public class CloseUDSRequestDTO {
return this;
}
- public boolean isEnableTransferLogic() {
- return enableTransferLogic;
- }
-
- public CloseUDSRequestDTO setEnableTransferLogic(boolean enableTransferLogic) {
- this.enableTransferLogic = enableTransferLogic;
- return this;
- }
-
public String getOrderCodMdep() {
return orderCodMdep;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
index aa7a5e85..8a9daacb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
@@ -32,6 +32,7 @@ public class ServerStatusChecker {
public void run() {
if (shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().getServer().getHost())) {
UtilityServer.isEmsApiAvailable(
+ SettingsManager.i().getServer().getProtocol(),
SettingsManager.i().getServer().getHost(),
SettingsManager.i().getServer().getPort(),
() -> mInternalCallback.run(true),
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
index 7964bdb1..a978779a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
@@ -7,7 +7,6 @@ import it.integry.integrywmsnative.core.model.Azienda;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
-import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
public class DBSettingsModel {
@@ -22,7 +21,6 @@ public class DBSettingsModel {
private boolean flagMultiClienteOrdV;
private boolean flagUseCodAnagAziendale;
private String defaultCausaleRettificaGiacenze;
- private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
private boolean flagAskClienteInPickingLibero;
private boolean flagPickLiberoAllowEmptyCliente;
@@ -53,6 +51,9 @@ public class DBSettingsModel {
private String codDtipOrdTrasfV;
private boolean notifyLotStatus = false;
+ private boolean groupShippingByCommodityGroup = true;
+ private boolean showCodFornSpedizione = true;
+
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
}
@@ -133,15 +134,6 @@ public class DBSettingsModel {
return this;
}
- public DistribuzioneColloDTO.CriterioDistribuzione getDefaultCriterioDistribuzione() {
- return defaultCriterioDistribuzione;
- }
-
- public DBSettingsModel setDefaultCriterioDistribuzione(String defaultCriterioDistribuzione) {
- this.defaultCriterioDistribuzione = DistribuzioneColloDTO.CriterioDistribuzione.fromString(defaultCriterioDistribuzione);
- return this;
- }
-
public boolean isFlagAskClienteInPickingLibero() {
return flagAskClienteInPickingLibero;
}
@@ -386,4 +378,22 @@ public class DBSettingsModel {
this.notifyLotStatus = notifyLotStatus;
return this;
}
+
+ public boolean isGroupShippingByCommodityGroup() {
+ return groupShippingByCommodityGroup;
+ }
+
+ public DBSettingsModel setGroupShippingByCommodityGroup(boolean groupShippingByCommodityGroup) {
+ this.groupShippingByCommodityGroup = groupShippingByCommodityGroup;
+ return this;
+ }
+
+ public boolean isShowCodFornSpedizione() {
+ return showCodFornSpedizione;
+ }
+
+ public DBSettingsModel setShowCodFornSpedizione(boolean showCodFornSpedizione) {
+ this.showCodFornSpedizione = showCodFornSpedizione;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index 02938dfd..8d598288 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -341,13 +341,20 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_NOTIFICA_STATO_PARTITA"));
+ stbGestSetupList.add(new StbGestSetup()
+ .setGestName("PICKING")
+ .setSection("SPEDIZIONE")
+ .setKeySection("FLAG_SHOW_COD_FORN"));
+ stbGestSetupList.add(new StbGestSetup()
+ .setGestName("PICKING")
+ .setSection("SPEDIZIONE")
+ .setKeySection("FLAG_GROUP_BY_GRP_MERC"));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class));
dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class));
dbSettingsModelIstance.setFlagUseCodAnagAziendale(getValueFromList(list, "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE", Boolean.class));
- dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyCliente(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class));
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
@@ -372,6 +379,8 @@ public class SettingsManager {
dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class));
dbSettingsModelIstance.setCodDtipOrdTrasfV(getValueFromList(list, "SPEDIZIONE", "COD_DTIP_ORD_TRASF", String.class));
dbSettingsModelIstance.setNotifyLotStatus(getValueFromList(list, "SPEDIZIONE", "FLAG_NOTIFICA_STATO_PARTITA", Boolean.class));
+ dbSettingsModelIstance.setShowCodFornSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_SHOW_COD_FORN", Boolean.class, Boolean.TRUE));
+ dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null)
@@ -392,6 +401,10 @@ public class SettingsManager {
public static T getValueFromList(List stbGestSetupList, String section, String keySectionName, Class clazz) {
+ return getValueFromList(stbGestSetupList, section, keySectionName, clazz, null);
+ }
+
+ public static T getValueFromList(List stbGestSetupList, String section, String keySectionName, Class clazz, T defaultValue) {
StbGestSetup value = Stream.of(stbGestSetupList)
.filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName))
@@ -403,7 +416,7 @@ public class SettingsManager {
return clazz.cast("S".equalsIgnoreCase(value.getValue()));
} else if (clazz == Integer.class && value.getValue() != null) {
return clazz.cast(Integer.parseInt(value.getValue()));
- } else return null;
+ } else return defaultValue;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
index cf6fafe1..1d29a0fb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
@@ -20,6 +20,7 @@ public class SettingsModel {
public static class Server {
private String codAzienda;
+ private String protocol;
private String host;
private int port;
@@ -32,6 +33,15 @@ public class SettingsModel {
return this;
}
+ public String getProtocol() {
+ return protocol;
+ }
+
+ public Server setProtocol(String protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
public String getHost() {
return host;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java
index 02e7c1e8..2cec4cc8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java
@@ -15,9 +15,6 @@ import java.io.File;
import javax.inject.Singleton;
-import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.FileDownloader;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
@@ -30,19 +27,9 @@ public class UpdatesManager {
public void init(AppCompatActivity activityContext) {
this.mContext = activityContext;
- String suffix;
- ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
- try {
- suffix = customConfiguration.getConfig(BaseCustomConfiguration.Keys.CUSTOM_DYNAMIC_VERSION_PATH);
- if (suffix == null) {
- suffix = "";
- }
- } catch (Exception e) {
- suffix = "";
- }
String currentVersionUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/currentVersion";
- String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release" + suffix + ".apk";
+ String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release.apk";
AppUpdater appUpdater = new AppUpdater(mContext)
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
index d5130ea0..634378ed 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
@@ -43,10 +43,10 @@ public class UtilityDate {
public static final String DMY_HUMAN_LONG = "dd MMMM yyyy";
}
- public static Date recognizeDateWithExceptionHandler(String dateString) {
- try{
+ public static Date recognizeDateWithExceptionHandler(String dateString) {
+ try {
return UtilityDate.recognizeDate(dateString);
- } catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){
+ } catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex) {
UtilityLogger.error(pex);
return null;
}
@@ -64,9 +64,9 @@ public class UtilityDate {
char dateSeparator;
String onlyDateSubstring = dateString.substring(0, 10);
- if(onlyDateSubstring.contains("/")) dateSeparator = '/';
- else if(onlyDateSubstring.contains("-")) dateSeparator = '-';
- else if(onlyDateSubstring.contains(".")) dateSeparator = '.';
+ if (onlyDateSubstring.contains("/")) dateSeparator = '/';
+ else if (onlyDateSubstring.contains("-")) dateSeparator = '-';
+ else if (onlyDateSubstring.contains(".")) dateSeparator = '.';
else throw new DateNotRecognizedException(dateString);
String dateFormatString = (dateString.charAt(2) == dateSeparator)
@@ -74,13 +74,13 @@ public class UtilityDate {
: "yyyy" + dateSeparator + "MM" + dateSeparator + "dd";
- if(dateString.length() > 10){
+ if (dateString.length() > 10) {
char timeSeparator;
String onlyTimeSubstring = dateString.substring(10, 14);
- if(onlyTimeSubstring.contains("-")) timeSeparator = '-';
- else if(onlyTimeSubstring.contains(":")) timeSeparator = ':';
+ if (onlyTimeSubstring.contains("-")) timeSeparator = '-';
+ else if (onlyTimeSubstring.contains(":")) timeSeparator = ':';
else throw new TimeNotRecognizedException(dateString);
String timeFormatString = "HH" + timeSeparator + "mm" + timeSeparator + "ss";
@@ -99,12 +99,11 @@ public class UtilityDate {
public static String formatDate(Date dateToFormat, String format) {
- if(dateToFormat != null) {
+ if (dateToFormat != null) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
return sdf.format(dateToFormat);
- }
- else return null;
+ } else return null;
}
@@ -116,7 +115,7 @@ public class UtilityDate {
public static Date getDateInstance(boolean removeTime) {
var calendar = getCalendarInstance();
- if(removeTime) {
+ if (removeTime) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
@@ -131,8 +130,6 @@ public class UtilityDate {
}
-
-
public static String formatDate(LocalDate dateToFormat, String format) {
if (dateToFormat != null) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
@@ -185,7 +182,6 @@ public class UtilityDate {
}
-
public static LocalDate getNow() {
return Instant.now()
.atZone(currentZone)
@@ -197,6 +193,7 @@ public class UtilityDate {
.atZone(currentZone)
.toLocalDateTime();
}
+
public static LocalDate timeToLocalDate(long time, @Nullable String timezone) {
return Instant.ofEpochSecond(time)
.atZone(timezone == null ? currentZone : ZoneId.of(timezone))
@@ -210,7 +207,6 @@ public class UtilityDate {
}
-
public static long localDateTimeToTime(LocalDateTime localDateTime, @Nullable String timezone) {
return localDateTime
.atZone(timezone == null ? currentZone : ZoneId.of(timezone))
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
index 3ffe676b..63b09593 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
@@ -7,8 +7,8 @@ import java.net.SocketAddress;
import it.integry.integrywmsnative.core.exception.InvalidLicenseException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.gest.login.exception.ServerNotReachableException;
-import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
@@ -38,16 +38,18 @@ public class UtilityServer {
}).start();
}
- public static void isEmsApiAvailable(final String serverAddress, final int serverTCPport, final Runnable onComplete, final RunnableArgs onFailed) {
+ public static void isEmsApiAvailable(final String protocol, final String serverAddress, final int serverTCPport, final Runnable onComplete, final RunnableArgs onFailed) {
new Thread(() -> {
- OkHttpClient client = new OkHttpClient();
+
Request request = new Request.Builder()
- .url(String.format("http://%s:%d/ems-api/system/ok", serverAddress, serverTCPport))
+ .url(String.format("%s://%s:%d/ems-api/system/ok", protocol, serverAddress, serverTCPport))
.build();
try {
- Response response = client.newCall(request).execute();
+ Response response = RESTBuilder.getDefaultHttpClient().build()
+ .newCall(request)
+ .execute();
response.close();
if (response.code() == 200) onComplete.run();
@@ -55,7 +57,8 @@ public class UtilityServer {
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, null));
else if (response.code() == 550)
onFailed.run(new InvalidLicenseException());
- else onFailed.run(new Exception("Errore non identificato (STATUS: " + response.code() + ")"));
+ else
+ onFailed.run(new Exception("Errore non identificato (STATUS: " + response.code() + ")"));
} catch (IOException e) {
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, e));
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
index 3641df5d..b7509dec 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
@@ -335,13 +335,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
- switch (item.getItemId()) {
- case R.id.action_filter:
- showOrderByDialog();
- return true;
- default:
- return super.onOptionsItemSelected(item);
+ if (item.getItemId() == R.id.action_filter) {
+ showOrderByDialog();
+ return true;
}
+ return super.onOptionsItemSelected(item);
}
private void initVars() {
@@ -752,11 +750,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.onLoadingEnded();
DialogSimpleMessageView.makeErrorDialog(
- new SpannableString(ex.getMessage()),
- null,
- null,
- R.string.button_ignore_print,
- onComplete)
+ new SpannableString(ex.getMessage()),
+ null,
+ null,
+ R.string.button_ignore_print,
+ onComplete)
.show(getSupportFragmentManager(), "tag");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariFragment.java
index c73848f1..77a0306a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariFragment.java
@@ -70,6 +70,11 @@ public class ElencoInventariFragment extends BaseFragment implements ITitledFrag
mBinding.setLifecycleOwner(this);
mBinding.setViewmodel(mViewModel);
+ mBinding.swiperefresh.setRefreshing(true);
+ mBinding.swiperefresh.setOnRefreshListener(() -> {
+ mViewModel.loadData();
+ });
+
mViewModel.loadData();
this.initRecyclerView();
@@ -143,6 +148,22 @@ public class ElencoInventariFragment extends BaseFragment implements ITitledFrag
startPicking(inventarioRoomDTO, listaArts);
}
+ @Override
+ public void onInventoriesLoadingStarted() {
+ mBinding.swiperefresh.setRefreshing(true);
+ }
+
+ @Override
+ public void onInventoriesLoadingEnded() {
+ mBinding.swiperefresh.setRefreshing(false);
+ }
+
+ @Override
+ public void onInventoriesLoadingError(Exception ex) {
+ mBinding.swiperefresh.setRefreshing(false);
+ this.onError(ex);
+ }
+
private void startPicking(InventarioRoomDTO inventarioRoomDTO, List listArts) {
PickingInventarioActivity.startActivity(requireContext(), inventarioRoomDTO, listArts);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java
index 70c36d60..9d0463d1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java
@@ -40,7 +40,10 @@ public class ElencoInventariViewModel {
}
public void loadData() {
- inventarioList = inventarioRepository.retrieve();
+ inventarioList = inventarioRepository.retrieve(
+ this::sendOnInventoriesLoadingEnded,
+ this::sendOnInventoriesLoadingError
+ );
}
public void destroyData() {
@@ -146,16 +149,34 @@ public class ElencoInventariViewModel {
if (this.listener != null) listener.onLoadingEnded();
}
+ private void sendOnInventoriesLoadingStarted() {
+ if (this.listener != null) listener.onInventoriesLoadingStarted();
+ }
+
+ private void sendOnInventoriesLoadingEnded() {
+ if (this.listener != null) listener.onInventoriesLoadingEnded();
+ }
+
private void sendOnError(Exception ex) {
if (this.listener != null) listener.onError(ex);
}
+ private void sendOnInventoriesLoadingError(Exception ex) {
+ if (this.listener != null) listener.onInventoriesLoadingError(ex);
+ }
+
public interface Listener extends ILoadingListener {
void onInventarioInfoRequest(RunnableArgss onComplete);
void onInventarioLoaded(InventarioRoomDTO inventarioRoomDTO, List listaArts);
+ void onInventoriesLoadingStarted();
+
+ void onInventoriesLoadingEnded();
+
+ void onInventoriesLoadingError(Exception ex);
+
void onCreateInventarioRequest(long inventoryId, String zone);
void onError(Exception ex);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
index 6a10bbf6..6f54e867 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
@@ -98,14 +98,14 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
}
@Override
- public void onLoginCompleted(String host, int port, String fullName, List availableProfiles) {
+ public void onLoginCompleted(String protocol, String host, int port, String fullName, List availableProfiles) {
this.onLoadingEnded();
runOnUiThread(() -> DialogSimpleMessageView.makeSuccessDialog(
"Benvenuto",
Html.fromHtml("Ciao " + fullName + ", la Integry le augura di svolgere al meglio il suo lavoro"),
null,
- () -> showProfileDBSelectionDialog(host, port, availableProfiles))
+ () -> showProfileDBSelectionDialog(protocol, host, port, availableProfiles))
.show(getSupportFragmentManager(), "tag"));
}
@@ -117,7 +117,7 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
loginButtonEnabled.set(true);
}
- private void showProfileDBSelectionDialog(final String host, final int port, final List availableProfiles) {
+ private void showProfileDBSelectionDialog(final String protocol, final String host, final int port, final List availableProfiles) {
Runnable onComplete = () -> {
SettingsManager.update();
@@ -129,7 +129,7 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
if (availableProfiles != null && availableProfiles.size() == 1) {
SettingsManager.i().getUserSession().setProfileDB(availableProfiles.get(0));
- mViewmodel.loadDepo(codAzienda.get(), host, port, username.get(), password.get(), onComplete);
+ mViewmodel.loadDepo(codAzienda.get(), protocol, host, port, username.get(), password.get(), onComplete);
} else {
// setup the alert builder
@@ -144,7 +144,7 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
builder.setItems(profiles, (dialog, which) -> {
SettingsManager.i().getUserSession().setProfileDB(availableProfiles.get(which));
- mViewmodel.loadDepo(codAzienda.get(), host, port, username.get(), password.get(), onComplete);
+ mViewmodel.loadDepo(codAzienda.get(), protocol, host, port, username.get(), password.get(), onComplete);
});
// create and show the alert dialog
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginDTO.java
deleted file mode 100644
index 952c9853..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginDTO.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package it.integry.integrywmsnative.gest.login.dto;
-
-import java.util.List;
-
-public class LoginDTO {
-
- private String full_name;
- private List availableProfiles;
-
- public String getFull_name() {
- return full_name;
- }
-
- public LoginDTO setFull_name(String full_name) {
- this.full_name = full_name;
- return this;
- }
-
- public List getAvailableProfiles() {
- return availableProfiles;
- }
-
- public LoginDTO setAvailableProfiles(List availableProfiles) {
- this.availableProfiles = availableProfiles;
- return this;
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginRequestDTO.java
new file mode 100644
index 00000000..440dbdc1
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginRequestDTO.java
@@ -0,0 +1,25 @@
+package it.integry.integrywmsnative.gest.login.dto;
+
+public class LoginRequestDTO {
+
+ private String username;
+ private String password;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public LoginRequestDTO setUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public LoginRequestDTO setPassword(String password) {
+ this.password = password;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginResponseDTO.java
new file mode 100644
index 00000000..c8dae711
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/dto/LoginResponseDTO.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.gest.login.dto;
+
+import java.util.List;
+
+public class LoginResponseDTO {
+
+ private String fullName;
+ private List availableProfiles;
+
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public List getAvailableProfiles() {
+ return availableProfiles;
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumer.java
index 4693e2ea..67a9070e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumer.java
@@ -10,7 +10,8 @@ import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO;
-import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
+import it.integry.integrywmsnative.gest.login.dto.LoginResponseDTO;
+import it.integry.integrywmsnative.gest.login.dto.LoginRequestDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -19,12 +20,13 @@ import retrofit2.Response;
public class LoginRESTConsumer extends _BaseRESTConsumer {
- public void retrieveServerData(String codAzienda, RunnableArgs onComplete, RunnableArgs onFailed){
+ public void retrieveServerData(String codAzienda, RunnableArgs onComplete, RunnableArgs onFailed) {
+ String protocol = CommonConst.Login.Azienda.protocol;
String host = CommonConst.Login.Azienda.host;
int port = CommonConst.Login.Azienda.port;
- LoginRESTConsumerService service = RESTBuilder.getService(LoginRESTConsumerService.class, host, port, false, true);
+ LoginRESTConsumerService service = RESTBuilder.getService(LoginRESTConsumerService.class, protocol, host, port, false, true);
service.loginAzienda(codAzienda).enqueue(new Callback<>() {
@Override
public void onResponse(Call> call, Response> response) {
@@ -40,17 +42,22 @@ public class LoginRESTConsumer extends _BaseRESTConsumer {
}
- public void authenticate(String host, int port, String username, String password, RunnableArgs onComplete, RunnableArgs onFailed){
- LoginRESTConsumerService service = RESTBuilder.getService(LoginRESTConsumerService.class, host, port, false);
- service.login(username, password).enqueue(new Callback<>() {
+ public void authenticate(String protocol, String host, int port, String username, String password, RunnableArgs onComplete, RunnableArgs onFailed) {
+ LoginRESTConsumerService service = RESTBuilder.getService(LoginRESTConsumerService.class, protocol, host, port, false);
+
+ LoginRequestDTO loginRequestDTO = new LoginRequestDTO()
+ .setUsername(username)
+ .setPassword(password);
+
+ service.login(loginRequestDTO).enqueue(new Callback<>() {
@Override
- public void onResponse(Call> call, Response> response) {
+ public void onResponse(Call> call, Response> response) {
analyzeAnswer(response, "Login", onComplete, onFailed);
}
@Override
- public void onFailure(Call> call, final Throwable t) {
+ public void onFailure(Call> call, final Throwable t) {
Log.e("Login", t.toString());
onFailed.run(new Exception(t));
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumerService.java
index 3b4a601e..f2cfb277 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/rest/LoginRESTConsumerService.java
@@ -3,8 +3,10 @@ package it.integry.integrywmsnative.gest.login.rest;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO;
-import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
+import it.integry.integrywmsnative.gest.login.dto.LoginResponseDTO;
+import it.integry.integrywmsnative.gest.login.dto.LoginRequestDTO;
import retrofit2.Call;
+import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
@@ -16,6 +18,6 @@ public interface LoginRESTConsumerService {
Call> loginAzienda(@Query("codHash") String codHash);
@POST("loginWeb")
- Call> login(@Query("username") String username, @Query("password") String password);
+ Call> login(@Body LoginRequestDTO loginRequestDTO);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
index 7771456a..32e2709c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
@@ -48,15 +48,16 @@ public class LoginViewModel {
return;
}
+ final String protocol = u.getProtocol();
final String host = u.getHost();
final int port = u.getPort();
- UtilityServer.isEmsApiAvailable(host, port, () -> {
+ UtilityServer.isEmsApiAvailable(protocol, host, port, () -> {
- mLoginRESTConsumer.authenticate(host, port, username, password, loginDTO -> {
+ mLoginRESTConsumer.authenticate(protocol, host, port, username, password, loginDTO -> {
SettingsManager.i().createUserSession();
- SettingsManager.i().getUser().setFullname(!UtilityString.isNullOrEmpty(loginDTO.getFull_name()) ? loginDTO.getFull_name() : username);
+ SettingsManager.i().getUser().setFullname(!UtilityString.isNullOrEmpty(loginDTO.getFullName()) ? loginDTO.getFullName() : username);
List availableProfiles = null;
if(loginDTO.getAvailableProfiles() != null && !loginDTO.getAvailableProfiles().isEmpty()) {
@@ -65,7 +66,7 @@ public class LoginViewModel {
.toList();
}
- this.sendOnLoginCompleted(host, port, loginDTO.getFull_name(), availableProfiles);
+ this.sendOnLoginCompleted(protocol, host, port, loginDTO.getFullName(), availableProfiles);
}, this::sendError);
@@ -76,9 +77,10 @@ public class LoginViewModel {
}
- public void loadDepo(String codAzienda, String host, int port, String username, String password, Runnable onComplete) {
+ public void loadDepo(String codAzienda, String protocol, String host, int port, String username, String password, Runnable onComplete) {
SettingsManager.i().getServer().setCodAzienda(codAzienda);
+ SettingsManager.i().getServer().setProtocol(protocol);
SettingsManager.i().getServer().setHost(host);
SettingsManager.i().getServer().setPort(port);
@@ -109,9 +111,9 @@ public class LoginViewModel {
if (this.mListener != null) mListener.onLoadingEnded();
}
- private void sendOnLoginCompleted(String host, int port, String fullName, List availableProfiles) {
+ private void sendOnLoginCompleted(String protocol, String host, int port, String fullName, List availableProfiles) {
if (this.mListener != null)
- mListener.onLoginCompleted(host, port, fullName, availableProfiles);
+ mListener.onLoginCompleted(protocol, host, port, fullName, availableProfiles);
}
private void sendError(Exception ex) {
@@ -126,7 +128,7 @@ public class LoginViewModel {
public interface Listener extends ILoadingListener {
void onError(Exception ex);
- void onLoginCompleted(String host, int port, String fullName, List availableProfiles);
+ void onLoginCompleted(String protocol, String host, int port, String fullName, List availableProfiles);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainActivity.java
index d3e84641..64941217 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainActivity.java
@@ -27,10 +27,8 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.context.MainContext;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
@@ -181,23 +179,16 @@ public class MainActivity extends BaseActivity
fragment = menuItem.getFragmentFactory().run();
this.adaptViewToFragment(fragment);
} else {
- switch (id) {
- case R.id.nav_home:
- this.pop();
- break;
-
- case R.id.nav_settings:
- fragment = new MainSettingsFragment();
- this.adaptViewToFragment(fragment);
- break;
-
- case R.id.nav_logout:
- ServerStatusChecker.dispose();
- this.mainContext.logout(() -> {
- startLoginActivity();
- });
-
- break;
+ if (id == R.id.nav_home) {
+ this.pop();
+ } else if (id == R.id.nav_settings) {
+ fragment = new MainSettingsFragment();
+ this.adaptViewToFragment(fragment);
+ } else if (id == R.id.nav_logout) {
+ ServerStatusChecker.dispose();
+ this.mainContext.logout(() -> {
+ startLoginActivity();
+ });
}
}
@@ -226,7 +217,7 @@ public class MainActivity extends BaseActivity
for (MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
- if(menuService.isItemEnabled(menuItem)) {
+ if (menuService.isItemEnabled(menuItem)) {
subMenu
.add(menuGroup.getGroupId(), menuItem.getID(), 0, menuItem.getTitleText())
.setIcon(menuItem.getDrawerIcon());
@@ -248,7 +239,6 @@ public class MainActivity extends BaseActivity
}
private MenuConfiguration.MenuItem getMenuItem(@IdRes int menuId) {
- ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
BaseMenuConfiguration menuConfiguration = new MenuConfiguration();
List menuGroups = menuConfiguration.getGroups();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
index 78674f6b..fbe5fc50 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
@@ -27,10 +27,8 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
-import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverDTO;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -212,14 +210,10 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
(recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA ||
recoveredMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE)) {
- OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
- boolean isTransferLogicEnabled = ordiniVendita != null && ordiniVendita.isTrasfOrder(recoveredMtbColtDto.getTestateOrdini());
-
var closeUDSRequestDto = new CloseUDSRequestDTO()
.setMtbColt(recoveredMtbColt)
//.setPrintSSCC(shouldPrint)
- .setOrderCodMdep(recoveredMtbColtDto.getTestateOrdini().get(0).getCodMdep())
- .setEnableTransferLogic(isTransferLogicEnabled);
+ .setOrderCodMdep(recoveredMtbColtDto.getTestateOrdini().get(0).getCodMdep());
RunnableArgs onRequestComplete = closeUDSResponseDto -> {
colliDataRecoverService.closeSession(recoveredMtbColtID);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
index 76225e60..44b3b696 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
@@ -915,8 +915,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
-
-
private void initJtbComtCache(Runnable onComplete) {
if (this.mViewModel.getOrderList().getValue() == null) {
this.jtbComtCache = new ArrayList<>();
@@ -925,8 +923,15 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue()))
.flatMap(x -> Stream.of(x.getCodJcom()))
+ .distinct().withoutNulls()
.toList();
+ if (jtbComts.isEmpty()) {
+ this.jtbComtCache = new ArrayList<>();
+ onComplete.run();
+ return;
+ }
+
this.mCommessaRESTConsumer.getJtbComts(jtbComts, jtbComtCache -> {
this.jtbComtCache = jtbComtCache;
onComplete.run();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java
deleted file mode 100644
index 12faa6c2..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoView.java
+++ /dev/null
@@ -1,459 +0,0 @@
-package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
-
-import android.app.DatePickerDialog;
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.ArrayAdapter;
-import android.widget.MultiAutoCompleteTextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.databinding.DataBindingUtil;
-
-import com.annimon.stream.Stream;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Objects;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
-import it.integry.integrywmsnative.core.di.BindableString;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
-import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
-
-
-public class DialogVenditaFiltroAvanzatoView {
-
-
- private final AlertDialog currentAlert;
- private final Context currentContext;
-
- private final RunnableArgs currentOnFilterDone;
-
-
-
- public BindableString deposito = new BindableString();
- public BindableString idViaggio = new BindableString();
- public BindableString numOrds = new BindableString();
- public BindableString cliente = new BindableString();
- public BindableString dataConsegna = new BindableString();
- public BindableString terminiConsegna = new BindableString();
- public BindableString agente = new BindableString();
- public BindableString vettore = new BindableString();
- public BindableString automezzo = new BindableString();
- public BindableString paese = new BindableString();
-
- public Date dataConsegnaDate;
-
- private ArrayAdapter arrayAdapterCodMdep;
- private ArrayAdapter arrayAdapterIdViaggio;
- private ArrayAdapter arrayAdapterNumOrds;
- private ArrayAdapter arrayAdapterCliente;
- private ArrayAdapter arrayAdapterTermCons;
- private ArrayAdapter arrayAdapterVettore;
- private ArrayAdapter arrayAdapterAgente;
- private ArrayAdapter arrayAdapterAutomezzo;
- private ArrayAdapter arrayAdapterPaese;
-
- private final DialogVenditaFiltroAvanzatoViewModel viewModel;
-
- public static AlertDialog make(final Context context,
- final List ordersList,
- DialogVenditaFiltroAvanzatoViewModel baseViewModel,
- RunnableArgs onDismiss) {
- return new DialogVenditaFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
- }
-
- private DialogVenditaFiltroAvanzatoView(final Context context, final List ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgs onDismiss) {
- currentContext = context;
- currentOnFilterDone = onDismiss;
-
- viewModel = baseViewModel != null ? baseViewModel : new DialogVenditaFiltroAvanzatoViewModel();
- viewModel.init(ordersList);
-
- LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
-
- DialogVenditaFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
-
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(binding.getRoot());
-
- binding.setView(this);
- binding.setViewmodel(viewModel);
- initViewModel(viewModel);
- initView(binding);
-
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
-
- currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
- currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
- binding.positiveBtn.setOnClickListener(view -> {
- currentAlert.dismiss();
- });
-
- binding.neutralBtn.setOnClickListener(view -> {
- resetAll();
- });
-
-
- currentAlert.setOnDismissListener(dialogInterface -> {
- if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel);
- });
-
- }
-
- private void initView(DialogVenditaFiltroAvanzatoBinding bindings) {
- IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getInstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
-
-// bindings.filledExposedDropdownDataCons.setOnFocusChangeListener((v, hasFocus) -> {
-// bindings.filledExposedDropdownDataCons.callOnClick();
-// });
-
- bindings.filledExposedDropdownDataCons.setOnClickListener(view -> {
- Calendar c = UtilityDate.getCalendarInstance();
-
- if(dataConsegnaDate != null) {
- c.setTime(dataConsegnaDate);
- }
-
- int mYear = c.get(Calendar.YEAR);
- int mMonth = c.get(Calendar.MONTH);
- int mDay = c.get(Calendar.DAY_OF_MONTH);
-
- DatePickerDialog datePickerDialog = new DatePickerDialog(currentContext,
- (view2, year, month, day) -> {
-
- dataConsegnaDate = new GregorianCalendar(year, month, day).getTime();
- dataConsegna.set(UtilityDate.formatDate(dataConsegnaDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
-
- }, mYear, mMonth, mDay);
- datePickerDialog.show();
- });
-
-
- arrayAdapterCodMdep = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterCodMdep.addAll(getAvailableCodMdeps(false));
- bindings.inputCodMdepNew.setVisibility(filtroOrdiniVendita.shoudShowCodMdepFilter() ? View.VISIBLE : View.GONE);
- bindings.filledExposedDropdownCodMdep.setAdapter(arrayAdapterCodMdep);
-
- arrayAdapterIdViaggio = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(false));
- bindings.inputIdViaggio.setVisibility(filtroOrdiniVendita.shoudShowIdViaggioFilter() ? View.VISIBLE : View.GONE);
- bindings.filledExposedDropdownIdViaggio.setAdapter(arrayAdapterIdViaggio);
-
- arrayAdapterAgente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterAgente.addAll(getAvailableAgente(false));
- bindings.inputAgente.setVisibility(filtroOrdiniVendita.shoudShowAgenteFilter() ? View.VISIBLE : View.GONE);
- bindings.filledExposedDropdownAgente.setAdapter(arrayAdapterAgente);
-
- arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
- bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
- bindings.filledExposedDropdownNumOrds.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
-
- arrayAdapterCliente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterCliente.addAll(getAvailableCliente(false));
- bindings.filledExposedDropdownCliente.setAdapter(arrayAdapterCliente);
-
- arrayAdapterTermCons = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterTermCons.addAll(getAvailableTermCons(false));
- bindings.filledExposedDropdownTermCons.setAdapter(arrayAdapterTermCons);
-
- arrayAdapterVettore = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterVettore.addAll(getAvailableVettori(false));
- bindings.filledExposedDropdownVettore.setAdapter(arrayAdapterVettore);
-
- arrayAdapterAutomezzo = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(false));
- bindings.filledExposedDropdownAutomezzo.setAdapter(arrayAdapterAutomezzo);
-
- arrayAdapterPaese = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterPaese.addAll(getAvailablePaesi(false));
- bindings.filledExposedDropdownPaese.setAdapter(arrayAdapterPaese);
-
-
- refreshAll();
- }
-
- private void initViewModel(DialogVenditaFiltroAvanzatoViewModel viewModel) {
- viewModel.applyAllTests();
-
- BindableString.registerListener(idViaggio, value -> {
- viewModel.setIDViaggioFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(deposito, value -> {
- viewModel.setDepositoFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(numOrds, value -> {
- viewModel.setNumOrdFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(cliente, value -> {
- viewModel.setClienteFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(terminiConsegna, value -> {
- viewModel.setTerminiConsegnaFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(vettore, value -> {
- viewModel.setVettoreFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.registerListener(automezzo, value -> {
- viewModel.setAutomezzoFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- });
-
- BindableString.resetListeners(dataConsegna);
- BindableString.registerListener(dataConsegna, value -> {
- viewModel.setDataConsegnaFilter(dataConsegnaDate);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- });
-
- BindableString.resetListeners(agente);
- BindableString.registerListener(agente, value -> {
- viewModel.setAgenteFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- });
-
- BindableString.resetListeners(paese);
- BindableString.registerListener(paese, value -> {
- viewModel.setPaeseFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
- refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
- refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
- refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
- refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
- refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
- });
-
- }
-
-
- private void refreshArrayAdapter(ArrayAdapter arrayAdapter, List inputList) {
- arrayAdapter.clear();
- arrayAdapter.addAll(inputList);
- arrayAdapter.notifyDataSetChanged();
- }
-
-
- private List getAvailableIdViaggio(boolean skipRecalc) {
- return Stream
- .of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .filter(x -> x.getIdViaggio() != null)
- .sortBy(x -> -x.getIdViaggio())
- .map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
- .distinct()
- .toList();
- }
-
- private List getAvailableAgente(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getNomeAgente)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableCodMdeps(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getCodMdep)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableCliente(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getRagSocOrd)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableNumOrds(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(x -> x.getNumOrd().toString())
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableTermCons(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getTermCons)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableVettori(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .filter(x -> x.getCodVvet() != null)
- .map(x -> x.getCodVvet() + " - " + x.getDescrizioneVettore())
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailableAutomezzi(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getDescrizioneAuto)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
- private List getAvailablePaesi(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdiniUscitaElencoDTO::getCitta)
- .withoutNulls()
- .distinct()
- .sorted()
- .toList();
- }
-
-
- public void refreshAll() {
- deposito.refresh();
- idViaggio.refresh();
- numOrds.refresh();
- cliente.refresh();
- terminiConsegna.refresh();
- vettore.refresh();
- automezzo.refresh();
- dataConsegna.refresh();
- agente.refresh();
- paese.refresh();
- }
-
-
- public void resetAll() {
- deposito.set(null);
- idViaggio.set(null);
- numOrds.set(null);
- cliente.set(null);
- dataConsegna.set(null);
- terminiConsegna.set(null);
- vettore.set(null);
- automezzo.set(null);
- agente.set(null);
- paese.set(null);
- }
-
-
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoViewModel.java
deleted file mode 100644
index b1e7a3bb..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/dialogs/DialogVenditaFiltroAvanzatoViewModel.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
-
-import androidx.lifecycle.MutableLiveData;
-
-import com.annimon.stream.Stream;
-import com.annimon.stream.function.Predicate;
-
-import java.util.Date;
-import java.util.List;
-
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
-
-public class DialogVenditaFiltroAvanzatoViewModel {
-
- private Predicate currentDepositoPredicate = null;
- private Predicate currentIdViaggioPredicate = null;
- private Predicate currentNumOrdsPredicate = null;
- private Predicate currentClientePredicate = null;
- private Predicate currentDataConsPredicate = null;
- private Predicate currentTermConsPredicate = null;
- private Predicate currentVettorePredicate = null;
- private Predicate currentAgentePredicate = null;
- private Predicate currentAutomezzoPredicate = null;
- private Predicate currentPaesePredicate = null;
-
-
- private List initialOrderList;
- private final MutableLiveData> currentFilteredOrderList = new MutableLiveData<>();
-
- public void init(List initialList) {
- this.initialOrderList = initialList;
- this.currentFilteredOrderList.setValue(this.initialOrderList);
- }
-
- public MutableLiveData> getMutableFilteredOrderList() {
- return this.currentFilteredOrderList;
- }
-
- public void setIDViaggioFilter(String idViaggio) {
- if(UtilityString.isNullOrEmpty(idViaggio)) currentIdViaggioPredicate = null;
- else {
- String[] idViaggiSplitted = idViaggio.split("[,\\ ]");
-
- try{
- List idViaggiInteger = Stream.of(idViaggiSplitted)
- .filter(x -> !UtilityString.isNullOrEmpty(x))
- .map(Integer::parseInt).toList();
-
- currentIdViaggioPredicate = o -> idViaggiInteger.contains(o.getIdViaggio());
- } catch (NumberFormatException ex) {
- currentIdViaggioPredicate = null;
- }
- }
- }
-
- public void setDepositoFilter(String deposito) {
- if(UtilityString.isNullOrEmpty(deposito)) currentDepositoPredicate = null;
- else {
- currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(deposito);
- }
- }
-
- public void setNumOrdFilter(String numOrds) {
- if(UtilityString.isNullOrEmpty(numOrds)) currentNumOrdsPredicate = null;
- else {
- String[] numOrdsSplitted = numOrds.split("[,\\ ]");
-
- try{
- List numOrdsInteger = Stream.of(numOrdsSplitted)
- .filter(x -> !UtilityString.isNullOrEmpty(x))
- .map(Integer::parseInt).toList();
-
- currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
- } catch (NumberFormatException ex) {
- currentNumOrdsPredicate = null;
- }
- }
- }
-
- public void setClienteFilter(String cliente) {
- if(UtilityString.isNullOrEmpty(cliente)) currentClientePredicate = null;
- else {
- currentClientePredicate = o -> o.getRagSocOrd().toLowerCase().contains(cliente.toLowerCase());
- }
- }
-
- public void setTerminiConsegnaFilter(String terminiConsegna) {
- if(UtilityString.isNullOrEmpty(terminiConsegna)) currentTermConsPredicate = null;
- else {
- currentTermConsPredicate = o -> !UtilityString.isNullOrEmpty(o.getTermCons()) && o.getTermCons().equalsIgnoreCase(terminiConsegna);
- }
- }
-
- public void setVettoreFilter(String vettore) {
- if(UtilityString.isNullOrEmpty(vettore)) currentVettorePredicate = null;
- else {
- currentVettorePredicate = o -> (o.getCodVvet() + " - " + o.getDescrizioneVettore()).equalsIgnoreCase(vettore);
- }
- }
-
- public void setAutomezzoFilter(String automezzo) {
- if(UtilityString.isNullOrEmpty(automezzo)) currentAutomezzoPredicate = null;
- else {
- currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && (o.getDescrizioneAuto().toLowerCase().contains(automezzo) || o.getDescrizioneAuto().equalsIgnoreCase(automezzo));
- }
- }
-
- public void setDataConsegnaFilter(Date dataConsegna) {
- if(dataConsegna == null) currentDataConsPredicate = null;
- else {
- currentDataConsPredicate = o -> o.getDataConsD().equals(dataConsegna);
- }
- }
-
- public void setAgenteFilter(String agente) {
- if(UtilityString.isNullOrEmpty(agente)) currentAgentePredicate = null;
- else {
- currentAgentePredicate = o -> !UtilityString.isNullOrEmpty(o.getNomeAgente()) && (o.getNomeAgente().toLowerCase().contains(agente) || o.getNomeAgente().equalsIgnoreCase(agente));
- }
- }
-
- public void setPaeseFilter(String paese) {
- if(UtilityString.isNullOrEmpty(paese)) currentPaesePredicate = null;
- else {
- currentPaesePredicate = o -> !UtilityString.isNullOrEmpty(o.getCitta()) && (o.getCitta().toLowerCase().contains(paese) || o.getCitta().equalsIgnoreCase(paese));
- }
- }
-
- public void applyAllTests() {
-
- List returnList = null;
-
- if (currentNumOrdsPredicate == null &&
- currentClientePredicate == null &&
- currentDataConsPredicate == null &&
- currentTermConsPredicate == null &&
- currentVettorePredicate == null &&
- currentAutomezzoPredicate == null &&
- currentDepositoPredicate == null &&
- currentIdViaggioPredicate == null &&
- currentAgentePredicate == null &&
- currentPaesePredicate == null
- ) {
- returnList = this.initialOrderList;
- } else {
- Stream tmpStream = Stream.of(this.initialOrderList)
- .filter(x ->
- (currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
- (currentClientePredicate == null || (currentClientePredicate.test(x))) &&
- (currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
- (currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
- (currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
- (currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
- (currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
- (currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
- (currentAgentePredicate == null || (currentAgentePredicate.test(x))) &&
- (currentPaesePredicate == null || (currentPaesePredicate.test(x)))
- );
-
- returnList = tmpStream.toList();
- }
-
- this.currentFilteredOrderList.setValue(returnList);
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
index 63798bcc..70e8f03f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
@@ -316,7 +316,8 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
.filter(y -> y.getBarcode().equals(x.getBarcode()))
.map(y -> new MainListProdOrdineProduzioneElencoClienteListModel()
.setPrimaryText(y.getRifOrd())
- .setRightText(y.getCodJcom()))
+ .setRightText(y.getCodJcom())
+ .setOriginalModel(y))
.toList();
listModel.setClientiListModel(clienti);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoView.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoView.java
deleted file mode 100644
index 092e2982..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoView.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.view.LayoutInflater;
-import android.view.WindowManager;
-import android.widget.ArrayAdapter;
-import android.widget.MultiAutoCompleteTextView;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.databinding.DataBindingUtil;
-
-import com.annimon.stream.Stream;
-
-import java.util.List;
-import java.util.Objects;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.di.BindableString;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.databinding.DialogOrdineProduzioneFiltroAvanzatoBinding;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-
-public class DialogOrdineProduzioneFiltroAvanzatoView {
-
-
- private AlertDialog currentAlert;
- private Context currentContext;
-
- private RunnableArgs currentOnFilterDone;
-
- public BindableString numOrds = new BindableString();
- public BindableString codJcoms = new BindableString();
-
- private ArrayAdapter arrayAdapterNumOrds;
- private ArrayAdapter arrayAdapterCodJcoms;
-
- private DialogOrdineProduzioneFiltroAvanzatoViewModel mViewModel;
-
-
-
- public static AlertDialog make(final Context context,
- final List ordersList,
- DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel,
- RunnableArgs onDismiss) {
- return new DialogOrdineProduzioneFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
- }
-
-
- private DialogOrdineProduzioneFiltroAvanzatoView(final Context context, final List ordersList, DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel, RunnableArgs onDismiss) {
- currentContext = context;
- currentOnFilterDone = onDismiss;
-
- mViewModel = baseViewModel != null ? baseViewModel : new DialogOrdineProduzioneFiltroAvanzatoViewModel();
- mViewModel.init(ordersList);
-
- LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- DialogOrdineProduzioneFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_ordine_produzione_filtro_avanzato, null, false);
-
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(binding.getRoot());
-
- binding.setView(this);
- binding.setViewmodel(mViewModel);
- initViewModel(mViewModel);
- initView(binding);
-
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
-
- currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
- currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
- binding.positiveBtn.setOnClickListener(view -> {
- currentAlert.dismiss();
- });
-
- binding.neutralBtn.setOnClickListener(view -> {
- resetAll();
- });
-
-
- currentAlert.setOnDismissListener(dialogInterface -> {
- if(currentOnFilterDone != null) currentOnFilterDone.run(mViewModel);
- });
- }
-
- private void initView(DialogOrdineProduzioneFiltroAvanzatoBinding bindings) {
-
- arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
- bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
- bindings.filledExposedDropdownNumOrds.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
-
- arrayAdapterCodJcoms = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
- arrayAdapterCodJcoms.addAll(getAvailableCodJcoms(false));
- bindings.filledExposedDropdownCodJcoms.setAdapter(arrayAdapterCodJcoms);
- bindings.filledExposedDropdownCodJcoms.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
-
-
- refreshAll();
- }
-
-
- private void initViewModel(DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel) {
- viewModel.applyAllTests();
-
- BindableString.registerListener(numOrds, value -> {
- viewModel.setNumOrdFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterCodJcoms, getAvailableCodJcoms(true));
- });
-
- BindableString.registerListener(codJcoms, value -> {
- viewModel.setCodJcomFilter(value);
- viewModel.applyAllTests();
-
- refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
- });
-
- }
-
-
- private void refreshArrayAdapter(ArrayAdapter arrayAdapter, List inputList) {
- arrayAdapter.clear();
- arrayAdapter.addAll(inputList);
- arrayAdapter.notifyDataSetChanged();
- }
-
-
- private List getAvailableNumOrds(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(mViewModel.getMutableFilteredOrderList().getValue()))
- .map(x -> x.getNumero().toString())
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
-
- private List getAvailableCodJcoms(boolean skipRecalc) {
- return Stream.of(Objects.requireNonNull(mViewModel.getMutableFilteredOrderList().getValue()))
- .map(OrdineAccettazioneInevasoDTO::getCodJcom)
- .distinct()
- .withoutNulls()
- .sorted()
- .toList();
- }
-
-
- public void refreshAll() {
- numOrds.refresh();
- codJcoms.refresh();
- }
-
-
- public void resetAll() {
- numOrds.set(null);
- codJcoms.set(null);
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoViewModel.java
deleted file mode 100644
index 900fc91d..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/dialog/DialogOrdineProduzioneFiltroAvanzatoViewModel.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
-
-import androidx.lifecycle.MutableLiveData;
-
-import com.annimon.stream.Stream;
-import com.annimon.stream.function.Predicate;
-
-import java.util.List;
-
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-
-public class DialogOrdineProduzioneFiltroAvanzatoViewModel {
-
-
- private Predicate currentNumOrdsPredicate = null;
- private Predicate currentCodJcomsPredicate = null;
-
- private List initialOrderList;
- private final MutableLiveData> currentFilteredOrderList = new MutableLiveData<>();
-
- public void init(List initialList) {
- this.initialOrderList = initialList;
- this.currentFilteredOrderList.setValue(this.initialOrderList);
- }
-
- public MutableLiveData> getMutableFilteredOrderList() {
- return this.currentFilteredOrderList;
- }
-
- public void setNumOrdFilter(String numOrds) {
- if(UtilityString.isNullOrEmpty(numOrds)) currentNumOrdsPredicate = null;
- else {
- String[] numOrdsSplitted = numOrds.split("[,\\ ]");
-
- try{
- List numOrdsInteger = Stream.of(numOrdsSplitted)
- .filter(x -> !UtilityString.isNullOrEmpty(x))
- .map(Integer::parseInt).toList();
-
- currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumero());
- } catch (NumberFormatException ex) {
- currentNumOrdsPredicate = null;
- }
- }
- }
-
- public void setCodJcomFilter(String codJcom) {
- if(UtilityString.isNullOrEmpty(codJcom)) currentCodJcomsPredicate = null;
- else {
- currentCodJcomsPredicate = o -> o.getCodJcom().toLowerCase().equalsIgnoreCase(codJcom);
- }
- }
-
- public void applyAllTests() {
-
- List returnList = null;
-
- if (currentNumOrdsPredicate == null &&
- currentCodJcomsPredicate == null
- ) {
- returnList = this.initialOrderList;
- } else {
- Stream tmpStream = Stream.of(this.initialOrderList)
- .filter(x ->
- (currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
- (currentCodJcomsPredicate == null || (currentCodJcomsPredicate.test(x)))
- );
-
- returnList = tmpStream.toList();
- }
-
- this.currentFilteredOrderList.setValue(returnList);
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ui/MainListProdOrdineProduzioneElencoClienteListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ui/MainListProdOrdineProduzioneElencoClienteListModel.java
index 8fb00900..5aa2af93 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ui/MainListProdOrdineProduzioneElencoClienteListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ui/MainListProdOrdineProduzioneElencoClienteListModel.java
@@ -1,9 +1,13 @@
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui;
+import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+
public class MainListProdOrdineProduzioneElencoClienteListModel {
private String primaryText;
private String rightText;
+ private OrdineAccettazioneInevasoDTO originalModel;
+
public String getPrimaryText() {
return primaryText;
@@ -22,4 +26,13 @@ public class MainListProdOrdineProduzioneElencoClienteListModel {
this.rightText = rightText;
return this;
}
+
+ public OrdineAccettazioneInevasoDTO getOriginalModel() {
+ return originalModel;
+ }
+
+ public MainListProdOrdineProduzioneElencoClienteListModel setOriginalModel(OrdineAccettazioneInevasoDTO originalModel) {
+ this.originalModel = originalModel;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsComponent.java
new file mode 100644
index 00000000..26c4dc60
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsComponent.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.gest.settings;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface MainSettingsComponent {
+
+
+ @Subcomponent.Factory
+ interface Factory {
+
+ MainSettingsComponent create();
+ }
+
+ void inject(MainSettingsFragment mainSettingsFragment);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java
index 02ca2557..d9fccf32 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java
@@ -3,9 +3,14 @@ package it.integry.integrywmsnative.gest.settings;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.os.Bundle;
+import android.text.Html;
+import android.text.SpannableString;
+import android.util.Base64;
+import android.util.Base64OutputStream;
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
@@ -15,25 +20,58 @@ import androidx.preference.PreferenceFragmentCompat;
import com.annimon.stream.Stream;
import com.harrysoft.androidbluetoothserial.BluetoothManager;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Collection;
+import javax.inject.Inject;
+
import it.integry.barcode_base_android_library.model.BarcodeSetting;
+import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.MailAttachmentDTO;
+import it.integry.integrywmsnative.core.rest.model.MailRequestDTO;
import it.integry.integrywmsnative.core.utility.UtilityResources;
+import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
+import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNoView;
public class MainSettingsFragment extends PreferenceFragmentCompat implements ITitledFragment, Preference.OnPreferenceChangeListener {
+ @Inject
+ public AppContext appContext;
+ @Inject
+ public SystemRESTConsumer systemRESTConsumer;
+ @Inject
+ public DialogProgressView mCurrentProgress;
+ private boolean progressOpened;
+
private final ArrayList onPreDestroyList = new ArrayList<>();
public static final String KEY_PALLET_BT_DEVICE = "pallet_scale_bt_device";
public static final String KEY_TRIGGER_SCAN_MODE = "TRIG_SCAN_MODE";
public static final String KEY_TRIGGER_SCAN_DELAY = "TRIG_SCAN_DELAY";
+ public static final String KEY_BUTTON_EXPORT_LOG = "EXPORT_LOG";
private Collection btPairedDevices;
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ MainApplication
+ .appComponent
+ .mainSettingsFragmentComponent()
+ .create()
+ .inject(this);
+ }
+
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
titleText.setText(context.getText(R.string.settings_category).toString());
@@ -55,6 +93,13 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
loadScanModePreferences();
triggerScanModeListPref.setOnPreferenceChangeListener(this);
triggerScanModeListPref.setSummary(triggerScanModeListPref.getValue());
+
+ Preference button = findPreference(KEY_BUTTON_EXPORT_LOG);
+ button.setOnPreferenceClickListener(preference -> {
+ exportLog();
+ return true;
+ });
+
}
@@ -164,4 +209,74 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
listPref.setSummary(btDeviceName);
}
+
+ private void exportLog() {
+ DialogYesNoView.newInstance("Esportazione log", "Vuoi inviare il log degli eventi al supporto?", result -> {
+ this.openProgress();
+
+ File yourFile = appContext.getLogFilePath();
+ var files = yourFile.listFiles();
+
+ var fileToShare = Stream.of(files)
+ .sortBy(x -> -1 * x.lastModified())
+ .findFirstOrElse(null);
+ try {
+ FileInputStream fis = new FileInputStream(fileToShare);
+
+ byte[] buffer = new byte[fis.available()];//specify the size to allow
+ int bytesRead;
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT);
+
+ while ((bytesRead = fis.read(buffer)) != -1) {
+ output64.write(buffer, 0, bytesRead);
+ }
+
+ output64.close();
+
+ var attachment = new MailAttachmentDTO()
+ .setFileName("wms_log.log")
+ .setFileb64Content(output.toString());
+
+ var mailRequest = new MailRequestDTO()
+ .setTo("developer@integry.it")
+ .setMsgText("Questo è una mail che contiene il log del WMS")
+ .setSubject("U vuemmeess")
+ .setAttachments(new ArrayList<>());
+
+ mailRequest.getAttachments().add(attachment);
+
+ systemRESTConsumer.sendMail(mailRequest, this::closeProgress, ex -> {
+ this.closeProgress();
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
+ .show(requireActivity().getSupportFragmentManager(), "tag");
+ });
+ } catch (Exception ex) {
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
+ .show(requireActivity().getSupportFragmentManager(), "tag");
+ }
+ })
+ .show(getParentFragmentManager(), "tag");
+ }
+
+
+ private void openProgress() {
+ if (!progressOpened && !this.mCurrentProgress.isAdded()) {
+ this.progressOpened = true;
+ requireActivity().runOnUiThread(() -> {
+ this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
+ });
+ }
+ }
+
+ private void closeProgress() {
+ if (progressOpened) {
+ this.progressOpened = false;
+ requireActivity().runOnUiThread(() -> {
+ mCurrentProgress.dismiss();
+ });
+ }
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsModule.java
new file mode 100644
index 00000000..05ec439d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsModule.java
@@ -0,0 +1,8 @@
+package it.integry.integrywmsnative.gest.settings;
+
+import dagger.Module;
+
+@Module(subcomponents = MainSettingsComponent.class)
+public class MainSettingsModule {
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
index 96e8123d..91bad773 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
@@ -29,9 +29,6 @@ import it.integry.integrywmsnative.MainApplication;
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.class_router.BaseCustomConfiguration;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
@@ -178,10 +175,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
setSupportActionBar(mBindings.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
- mFlagShowCodForn = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE) : true;
- mDivideByGrpMerc = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC) : false;
+
+ mFlagShowCodForn = SettingsManager.iDB().isShowCodFornSpedizione();
+ mDivideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
index b1b73eee..97c01ac9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
@@ -13,14 +13,11 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
-import java.util.stream.Collectors;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.CommonConst;
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.exception.EmptyLUException;
import it.integry.integrywmsnative.core.exception.InvalidLUException;
@@ -590,7 +587,7 @@ public class SpedizioneViewModel {
private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
var magazzinoAutomaticoPickableArts = Stream.of(Objects.requireNonNull(this.mPickingList.getValue()))
- .filter(x -> Stream.of(x.getMtbColts()).anyMatch(y -> y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())))
+ .filter(x -> Stream.of(x.getMtbColts()).anyMatch(y -> y.getPosizione() != null && y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())))
.toList();
var mtbAarts = Stream.of(magazzinoAutomaticoPickableArts)
@@ -1515,8 +1512,7 @@ public class SpedizioneViewModel {
var closeUDSRequestDto = new CloseUDSRequestDTO()
.setMtbColt(this.mCurrentMtbColt)
//.setPrintSSCC(shouldPrint)
- .setOrderCodMdep(mTestateOrdini.get(0).getCodMdep())
- .setEnableTransferLogic(isTrasfOrderLogicEnabled());
+ .setOrderCodMdep(mTestateOrdini.get(0).getCodMdep());
this.mColliSpedizioneRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> {
@@ -1549,11 +1545,6 @@ public class SpedizioneViewModel {
onComplete, this::sendError);
}
- private boolean isTrasfOrderLogicEnabled() {
- OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
- return ordiniVendita != null && ordiniVendita.isTrasfOrder(mTestateOrdini);
- }
-
private void askPeso(Runnable onComplete) {
if (mDefaultSegnoCol != -1 || !mShouldAskPesoLU) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/expandablelayout/ExpandableLayout.java b/app/src/main/java/it/integry/integrywmsnative/ui/expandablelayout/ExpandableLayout.java
index 68642696..000f42f8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/ui/expandablelayout/ExpandableLayout.java
+++ b/app/src/main/java/it/integry/integrywmsnative/ui/expandablelayout/ExpandableLayout.java
@@ -19,8 +19,6 @@ import android.view.animation.Interpolator;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
-import it.integry.integrywmsnative.R;
-
public class ExpandableLayout extends FrameLayout {
public interface State {
int COLLAPSED = 0;
@@ -56,11 +54,11 @@ public class ExpandableLayout extends FrameLayout {
super(context, attrs);
if (attrs != null) {
- TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ExpandableLayout);
- duration = a.getInt(R.styleable.ExpandableLayout_el_duration, DEFAULT_DURATION);
- expansion = a.getBoolean(R.styleable.ExpandableLayout_el_expanded, false) ? 1 : 0;
- orientation = a.getInt(R.styleable.ExpandableLayout_android_orientation, VERTICAL);
- parallax = a.getFloat(R.styleable.ExpandableLayout_el_parallax, 1);
+ TypedArray a = getContext().obtainStyledAttributes(attrs, net.cachapa.expandablelayout.R.styleable.ExpandableLayout);
+ duration = a.getInt(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_duration, DEFAULT_DURATION);
+ expansion = a.getBoolean(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_expanded, false) ? 1 : 0;
+ orientation = a.getInt(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_android_orientation, VERTICAL);
+ parallax = a.getFloat(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_parallax, 1);
a.recycle();
state = expansion == 0 ? COLLAPSED : EXPANDED;
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
index 7d870f63..ccbfd2bb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
@@ -217,15 +217,15 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
switch (statoPartitaMag) {
case SCADUTO:
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
- this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.warn_color)));
+ this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
break;
case IN_SCADENZA:
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
- this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.error_color)));
+ this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
break;
default:
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
- this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.success_color)));
+ this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNoView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNoView.java
index 62891bbe..7151f400 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNoView.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNoView.java
@@ -11,7 +11,6 @@ import androidx.fragment.app.DialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogYesNoBinding;
@@ -42,13 +41,13 @@ public class DialogYesNoView extends DialogFragment {
var binding = DialogYesNoBinding.inflate(LayoutInflater.from(requireContext()));
binding.executePendingBindings();
- if(UtilityString.isNullOrEmpty(title)) {
+ if (UtilityString.isNullOrEmpty(title)) {
binding.titleText.setVisibility(View.GONE);
- binding.descriptionText.setTextAppearance(requireContext(), R.style.TextAppearance_Material3_BodyLarge);
+ binding.descriptionText.setTextAppearance(requireContext(), com.google.android.material.R.style.TextAppearance_Material3_BodyLarge);
} else {
binding.titleText.setText(title);
binding.titleText.setVisibility(View.VISIBLE);
- binding.descriptionText.setTextAppearance(requireContext(), R.style.TextAppearance_Material3_BodyMedium);
+ binding.descriptionText.setTextAppearance(requireContext(), com.google.android.material.R.style.TextAppearance_Material3_BodyMedium);
}
binding.descriptionText.setText(description);
diff --git a/app/src/main/res/layout/dialog_input_peso_lu.xml b/app/src/main/res/layout/dialog_input_peso_lu.xml
index 654b5440..e126c856 100644
--- a/app/src/main/res/layout/dialog_input_peso_lu.xml
+++ b/app/src/main/res/layout/dialog_input_peso_lu.xml
@@ -85,7 +85,6 @@
android:ellipsize="end"
android:imeOptions="actionNext"
android:inputType="textNoSuggestions"
- android:nextFocusForward="@id/filled_exposed_dropdown_vettore"
android:singleLine="true"
app:binding="@{view.codTcol}" />
diff --git a/app/src/main/res/layout/dialog_ordine_produzione_filtro_avanzato.xml b/app/src/main/res/layout/dialog_ordine_produzione_filtro_avanzato.xml
deleted file mode 100644
index c421a0e4..00000000
--- a/app/src/main/res/layout/dialog_ordine_produzione_filtro_avanzato.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml b/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml
deleted file mode 100644
index db13d298..00000000
--- a/app/src/main/res/layout/dialog_vendita_filtro_avanzato.xml
+++ /dev/null
@@ -1,314 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_elenco_inventario.xml b/app/src/main/res/layout/fragment_elenco_inventario.xml
index 730607a2..71f2b237 100644
--- a/app/src/main/res/layout/fragment_elenco_inventario.xml
+++ b/app/src/main/res/layout/fragment_elenco_inventario.xml
@@ -70,28 +70,34 @@
-
-
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
+
+
+
+ app:srcCompat="@drawable/ic_add_24dp" />
diff --git a/app/src/main/res/layout/fragment_elenco_inventario_list_single_item.xml b/app/src/main/res/layout/fragment_elenco_inventario_list_single_item.xml
index 66c0e900..166fc407 100644
--- a/app/src/main/res/layout/fragment_elenco_inventario_list_single_item.xml
+++ b/app/src/main/res/layout/fragment_elenco_inventario_list_single_item.xml
@@ -53,7 +53,7 @@
android:layout_toEndOf="@+id/badge1"
android:text="@string/new_item"
android:textColor="@android:color/white"
- android:visibility="gone"
+ android:visibility="@{item.isNew() ? View.VISIBLE : View.GONE}"
android:textStyle="bold" />
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 1b14c809..673ed822 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -421,6 +421,9 @@
Stampa etichetta spedizione
Stampa etichetta lavorazione
Impostazioni scanner
+ Svilupppo
+ Esporta log
+ Esporta il log degli eventi
Ritardo scansione
Imposta un ritardo di lettura per la scansione
Modalità scansione
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8be3c0ad..c0f6948b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -427,6 +427,9 @@
Print shipping label
Print production label
Scanner settings
+ Developer settings
+ Esporta log
+ Esporta il log degli eventi
Scan delay
Set reading scanner delay
Modalità scansione
diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml
index 7ec23d6c..ea9d0a23 100644
--- a/app/src/main/res/xml/app_preferences.xml
+++ b/app/src/main/res/xml/app_preferences.xml
@@ -62,6 +62,19 @@
app:title="@string/scanner_settings_scanner_delay_title" />
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index eb7b1b5a..f5506849 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,6 +3,7 @@
buildscript {
ext {
kotlin_version = '1.8.0'
+ agp_version = '8.1.0-alpha05'
}
repositories {
@@ -10,7 +11,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.4.1'
+ classpath "com.android.tools.build:gradle:$agp_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.15'
@@ -43,128 +44,4 @@ task clean(type: Delete) {
delete rootProject.buildDir
}
-task buildBase() {
- doFirst {
- copy {
- from 'dynamic__base/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/_base'
- }
- }
-}
-
-task buildFrudis() {
- doFirst {
- copy {
- from 'dynamic_frudis/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/frudis'
- }
- }
-}
-
-task buildGramm() {
- doFirst {
- copy {
- from 'dynamic_gramm/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/gramm'
- }
- }
-}
-
-task buildIme() {
- doFirst {
- copy {
- from 'dynamic_ime/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/ime'
- }
- }
-}
-
-task buildSaporiVeriPV() {
- doFirst {
- copy {
- from 'dynamic_saporiveri_pv/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/saporiveri_pv'
- }
- }
-}
-
-task buildSaporiVeri() {
- doFirst {
- copy {
- from 'dynamic_saporiveri/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/saporiveri'
- }
- }
-}
-
-task buildVGAlimenti() {
- doFirst {
- copy {
- from 'dynamic_vgalimenti/src/main/java/it/integry'
- into 'app/src/main/java/it/integry'
- }
- }
-
- dependsOn "app:build"
-
- doLast {
- copy {
- from 'app/build/outputs/apk/release'
- into 'dist/release/vgalimenti'
- }
- }
-}
\ No newline at end of file
diff --git a/build_all.bat b/build_all.bat
deleted file mode 100644
index 94ac1622..00000000
--- a/build_all.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-call build_azienda.bat _base
-call build_azienda.bat vgalimenti
\ No newline at end of file
diff --git a/build_azienda.bat b/build_azienda.bat
deleted file mode 100644
index 95dd2cd6..00000000
--- a/build_azienda.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-
-SET nome_azienda=%1
-
-XCOPY dynamic_%nome_azienda%\src\main\java\it\integry app\src\main\java\it\integry\ /E /Y
-CALL gradlew app:build --stacktrace
-
-RMDIR app\src\main\java\it\integry\wms\ /S /Q
-
-MKDIR dist
-MKDIR dist\release
-MKDIR dist\release\%nome_azienda%
-
-MOVE app\build\outputs\apk\release\*.apk dist\release\%nome_azienda%\
-MOVE app\build\outputs\apk\release\*.txt dist\release\%nome_azienda%\
diff --git a/dynamic__base/.gitignore b/dynamic__base/.gitignore
deleted file mode 100644
index 796b96d1..00000000
--- a/dynamic__base/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/dynamic__base/build.gradle b/dynamic__base/build.gradle
deleted file mode 100644
index db54af84..00000000
--- a/dynamic__base/build.gradle
+++ /dev/null
@@ -1,26 +0,0 @@
-plugins {
- id 'com.android.dynamic-feature'
-}
-
-android {
- compileSdkVersion 33
-
- defaultConfig {
- minSdkVersion 21
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
- lint {
- abortOnError false
- }
- namespace 'it.integry.wms.dynamic__base'
-
-}
-
-dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation project(':app')
-}
diff --git a/dynamic__base/src/main/AndroidManifest.xml b/dynamic__base/src/main/AndroidManifest.xml
deleted file mode 100644
index c1b3be0b..00000000
--- a/dynamic__base/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
diff --git a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java
deleted file mode 100644
index a1ebb716..00000000
--- a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package it.integry.wms.dynamic_customization;
-
-import android.content.Context;
-import android.util.Log;
-
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.wms.dynamic_customization.extensions.CustomConfiguration;
-import it.integry.wms.dynamic_customization.extensions.FiltroOrdiniVendita;
-import it.integry.wms.dynamic_customization.extensions.OrdiniVendita;
-
-public class DynamicContext {
-
- public void init(Context context) {
- Log.d("DynamicContext", "Caricamento personalizzazioni per Azienda BASE");
-
- try {
- ClassRouter.registerPath(ClassRouter.PATH.FILTRO_ORDINI_VENDITA, FiltroOrdiniVendita.class);
- ClassRouter.registerPath(ClassRouter.PATH.ORDINI_VENDITA, OrdiniVendita.class);
- ClassRouter.registerPath(ClassRouter.PATH.CUSTOM_CONFIGURATION, CustomConfiguration.class);
- } catch (Exception ex) {
- UtilityExceptions.defaultException(context, ex);
- }
-
- Log.d("DynamicContext", "Caricamento personalizzazioni per Azienda BASE COMPLETATO");
-
- }
-
-}
diff --git a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java
deleted file mode 100644
index 5c3ab3cd..00000000
--- a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
-
-public class CustomConfiguration extends BaseCustomConfiguration implements ICustomConfiguration {
-
- public CustomConfiguration() {
- }
-
-}
diff --git a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java
deleted file mode 100644
index 77adb537..00000000
--- a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
-
-public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
-
- @Override
- public boolean shoudShowCodMdepFilter() {
- return false;
- }
-
- @Override
- public boolean shoudShowIdViaggioFilter() {
- return false;
- }
-
- @Override
- public boolean shoudShowAgenteFilter() {
- return false;
- }
-}
diff --git a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
deleted file mode 100644
index 62bafe5e..00000000
--- a/dynamic__base/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import java.util.List;
-
-import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
-import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
-
-public class OrdiniVendita implements OrdiniVenditaInterface {
-
-
- @Override
- public boolean isTrasfOrder(List testateOrdini) {
- return false;
- }
-
-}
diff --git a/dynamic_vgalimenti/.gitignore b/dynamic_vgalimenti/.gitignore
deleted file mode 100644
index 796b96d1..00000000
--- a/dynamic_vgalimenti/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/dynamic_vgalimenti/Integry.jks b/dynamic_vgalimenti/Integry.jks
deleted file mode 100644
index 1b30e196..00000000
Binary files a/dynamic_vgalimenti/Integry.jks and /dev/null differ
diff --git a/dynamic_vgalimenti/build.gradle b/dynamic_vgalimenti/build.gradle
deleted file mode 100644
index ef4a43c0..00000000
--- a/dynamic_vgalimenti/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-plugins {
- id 'com.android.dynamic-feature'
-}
-
-android {
- compileSdkVersion 31
- defaultConfig {
- minSdkVersion 21
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
- namespace 'it.integry.wms.dynamic_customization'
-}
-
-dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation project(':app')
-
- implementation 'androidx.appcompat:appcompat:1.6.0'
-}
diff --git a/dynamic_vgalimenti/src/main/AndroidManifest.xml b/dynamic_vgalimenti/src/main/AndroidManifest.xml
deleted file mode 100644
index 642480b0..00000000
--- a/dynamic_vgalimenti/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java
deleted file mode 100644
index 55507696..00000000
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package it.integry.wms.dynamic_customization;
-
-import android.content.Context;
-import android.util.Log;
-
-import it.integry.integrywmsnative.core.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.wms.dynamic_customization.extensions.CustomConfiguration;
-import it.integry.wms.dynamic_customization.extensions.FiltroOrdiniVendita;
-import it.integry.wms.dynamic_customization.extensions.OrdiniVendita;
-
-public class DynamicContext {
-
- public void init(Context context) {
- Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti");
-
- try {
- ClassRouter.registerPath(ClassRouter.PATH.FILTRO_ORDINI_VENDITA, FiltroOrdiniVendita.class);
- ClassRouter.registerPath(ClassRouter.PATH.ORDINI_VENDITA, OrdiniVendita.class);
- ClassRouter.registerPath(ClassRouter.PATH.CUSTOM_CONFIGURATION, CustomConfiguration.class);
- } catch (Exception ex) {
- UtilityExceptions.defaultException(context, ex);
- }
-
- Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti COMPLETATO");
-
- }
-
-}
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java
deleted file mode 100644
index a345ec30..00000000
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
-import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
-
-public class CustomConfiguration extends BaseCustomConfiguration implements ICustomConfiguration {
-
- public CustomConfiguration() {
- configurations.put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, false);
- configurations.put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, true);
- }
-
-}
\ No newline at end of file
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java
deleted file mode 100644
index 12b5a5c9..00000000
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
-
-public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
-
-
- @Override
- public boolean shoudShowCodMdepFilter() {
- return true;
- }
-
- @Override
- public boolean shoudShowIdViaggioFilter() {
- return true;
- }
-
- @Override
- public boolean shoudShowAgenteFilter() {
- return true;
- }
-}
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
deleted file mode 100644
index 825a141b..00000000
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package it.integry.wms.dynamic_customization.extensions;
-
-import java.util.List;
-
-import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
-import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-
-public class OrdiniVendita implements OrdiniVenditaInterface {
-
- @Override
- public boolean isTrasfOrder(List testateOrdini) {
- // Se il deposito del collo è diverso dal deposito dell'utente allora sto "evadendo"
- // la merce per una vendita presente su un altro deposito
-
- String codMdepOrder = testateOrdini.get(0).getCodMdep();
- return !UtilityString.isNullOrEmpty(codMdepOrder) &&
- !codMdepOrder.equalsIgnoreCase(SettingsManager.i().getUserSession().getDepo().getCodMdep());
- }
-}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5cda5fac..4c8dc7c7 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Oct 14 10:44:19 CEST 2020
+#Mon Feb 13 15:14:43 CET 2023
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+zipStoreBase=GRADLE_USER_HOME
diff --git a/settings.gradle b/settings.gradle
index cdf935ee..52bb1c22 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,2 @@
-include ':app', ':pointmobilescannerlibrary', ':dynamic_vgalimenti', ':dynamic__base', ':zebrascannerlibrary', ':honeywellsdk', ':honeywellscannerlibrary', ':keyobardemulatorscannerlibrary', ':barcode_base_android_library'
+include ':app', ':pointmobilescannerlibrary', ':zebrascannerlibrary', ':honeywellsdk', ':honeywellscannerlibrary', ':keyobardemulatorscannerlibrary', ':barcode_base_android_library'