diff --git a/app/build.gradle b/app/build.gradle
index 52491f55..ffaa4f0d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,6 +41,13 @@ android {
versionName appVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
+
+ javaCompileOptions {
+ annotationProcessorOptions {
+ arguments += ["room.schemaLocation":
+ "$projectDir/schemas".toString()]
+ }
+ }
}
buildTypes {
@@ -59,8 +66,9 @@ android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
-
+ coreLibraryDesugaringEnabled true
}
+
productFlavors {
}
@@ -152,6 +160,8 @@ dependencies {
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
+ implementation "androidx.room:room-rxjava3:$room_version"
+ androidTestImplementation "androidx.room:room-testing:2.4.3"
//AppUpdate
implementation 'com.github.javiersantos:AppUpdater:2.7'
@@ -178,6 +188,9 @@ dependencies {
// RxJava is also required.
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
+
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.0'
+
}
repositories {
diff --git a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/11.json b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/11.json
new file mode 100644
index 00000000..5138adfb
--- /dev/null
+++ b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/11.json
@@ -0,0 +1,1150 @@
+{
+ "formatVersion": 1,
+ "database": {
+ "version": 11,
+ "identityHash": "6a7fc5a013080ef96827187ce0637459",
+ "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": {
+ "columnNames": [
+ "articolo_griglia_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "griglia_id"
+ ],
+ "autoGenerate": true
+ },
+ "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)",
+ "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
+ }
+ ],
+ "primaryKey": {
+ "columnNames": [
+ "ordine_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "articolo_ordine_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "id"
+ ],
+ "autoGenerate": true
+ },
+ "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, `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": "remoteSyncDate",
+ "columnName": "remote_sync_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "columnNames": [
+ "_id"
+ ],
+ "autoGenerate": true
+ },
+ "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 NOT NULL, `partita_mag` TEXT, `descrizione` TEXT, `qta` REAL NOT NULL DEFAULT 0, `num_cnf` REAL NOT NULL DEFAULT 0, `qta_cnf` REAL NOT NULL DEFAULT 0, `unt_mis` TEXT NOT NULL DEFAULT '0', `data_ora_inv` INTEGER, `scan_cod_barre` TEXT, `zona` TEXT, `remote_sync_date` INTEGER, FOREIGN KEY(`parent_id`) REFERENCES `inventari`(`_id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
+ "fields": [
+ {
+ "fieldPath": "id",
+ "columnName": "_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "parentId",
+ "columnName": "parent_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMart",
+ "columnName": "cod_mart",
+ "affinity": "TEXT",
+ "notNull": true
+ },
+ {
+ "fieldPath": "partitaMag",
+ "columnName": "partita_mag",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrizione",
+ "columnName": "descrizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qta",
+ "columnName": "qta",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "numConf",
+ "columnName": "num_cnf",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "qtaConf",
+ "columnName": "qta_cnf",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "untMis",
+ "columnName": "unt_mis",
+ "affinity": "TEXT",
+ "notNull": true,
+ "defaultValue": "'0'"
+ },
+ {
+ "fieldPath": "dataOraInv",
+ "columnName": "data_ora_inv",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "scanCodBarre",
+ "columnName": "scan_cod_barre",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "zona",
+ "columnName": "zona",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "remoteSyncDate",
+ "columnName": "remote_sync_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "columnNames": [
+ "_id"
+ ],
+ "autoGenerate": true
+ },
+ "indices": [
+ {
+ "name": "index_inventario_rows__id",
+ "unique": false,
+ "columnNames": [
+ "_id"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows__id` ON `${TABLE_NAME}` (`_id`)"
+ },
+ {
+ "name": "index_inventario_rows_parent_id",
+ "unique": false,
+ "columnNames": [
+ "parent_id"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows_parent_id` ON `${TABLE_NAME}` (`parent_id`)"
+ }
+ ],
+ "foreignKeys": [
+ {
+ "table": "inventari",
+ "onDelete": "NO ACTION",
+ "onUpdate": "NO ACTION",
+ "columns": [
+ "parent_id"
+ ],
+ "referencedColumns": [
+ "_id"
+ ]
+ }
+ ]
+ }
+ ],
+ "views": [],
+ "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, '6a7fc5a013080ef96827187ce0637459')"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/12.json b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/12.json
new file mode 100644
index 00000000..9e87fdb6
--- /dev/null
+++ b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/12.json
@@ -0,0 +1,1156 @@
+{
+ "formatVersion": 1,
+ "database": {
+ "version": 12,
+ "identityHash": "a3c4983a84b2d615e548dcceba15ecf0",
+ "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": {
+ "columnNames": [
+ "articolo_griglia_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "griglia_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "ordine_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "articolo_ordine_id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "id"
+ ],
+ "autoGenerate": true
+ },
+ "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": {
+ "columnNames": [
+ "id"
+ ],
+ "autoGenerate": true
+ },
+ "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, `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": "remoteSyncDate",
+ "columnName": "remote_sync_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "columnNames": [
+ "_id"
+ ],
+ "autoGenerate": true
+ },
+ "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 NOT NULL, `partita_mag` TEXT, `descrizione` TEXT, `qta` REAL NOT NULL DEFAULT 0, `num_cnf` REAL NOT NULL DEFAULT 0, `qta_cnf` REAL NOT NULL DEFAULT 0, `unt_mis` TEXT NOT NULL DEFAULT '0', `data_ora_inv` INTEGER, `scan_cod_barre` TEXT, `zona` TEXT, `remote_sync_date` INTEGER, FOREIGN KEY(`parent_id`) REFERENCES `inventari`(`_id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
+ "fields": [
+ {
+ "fieldPath": "id",
+ "columnName": "_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "parentId",
+ "columnName": "parent_id",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "codMart",
+ "columnName": "cod_mart",
+ "affinity": "TEXT",
+ "notNull": true
+ },
+ {
+ "fieldPath": "partitaMag",
+ "columnName": "partita_mag",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "descrizione",
+ "columnName": "descrizione",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "qta",
+ "columnName": "qta",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "numConf",
+ "columnName": "num_cnf",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "qtaConf",
+ "columnName": "qta_cnf",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
+ {
+ "fieldPath": "untMis",
+ "columnName": "unt_mis",
+ "affinity": "TEXT",
+ "notNull": true,
+ "defaultValue": "'0'"
+ },
+ {
+ "fieldPath": "dataOraInv",
+ "columnName": "data_ora_inv",
+ "affinity": "INTEGER",
+ "notNull": false
+ },
+ {
+ "fieldPath": "scanCodBarre",
+ "columnName": "scan_cod_barre",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "zona",
+ "columnName": "zona",
+ "affinity": "TEXT",
+ "notNull": false
+ },
+ {
+ "fieldPath": "remoteSyncDate",
+ "columnName": "remote_sync_date",
+ "affinity": "INTEGER",
+ "notNull": false
+ }
+ ],
+ "primaryKey": {
+ "columnNames": [
+ "_id"
+ ],
+ "autoGenerate": true
+ },
+ "indices": [
+ {
+ "name": "index_inventario_rows__id",
+ "unique": false,
+ "columnNames": [
+ "_id"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows__id` ON `${TABLE_NAME}` (`_id`)"
+ },
+ {
+ "name": "index_inventario_rows_parent_id",
+ "unique": false,
+ "columnNames": [
+ "parent_id"
+ ],
+ "orders": [],
+ "createSql": "CREATE INDEX IF NOT EXISTS `index_inventario_rows_parent_id` ON `${TABLE_NAME}` (`parent_id`)"
+ }
+ ],
+ "foreignKeys": [
+ {
+ "table": "inventari",
+ "onDelete": "NO ACTION",
+ "onUpdate": "NO ACTION",
+ "columns": [
+ "parent_id"
+ ],
+ "referencedColumns": [
+ "_id"
+ ]
+ }
+ ]
+ }
+ ],
+ "views": [],
+ "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, 'a3c4983a84b2d615e548dcceba15ecf0')"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 38e73666..836facd1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -74,6 +74,12 @@
android:label="@string/activity_contenuto_bancale_title"
android:screenOrientation="portrait"
android:theme="@style/Light" />
+
{
- if (permanentlyDenied) {
+ if (permanentlyDenied)
onError(new SpannableString(getText(R.string.permissions_permanently_denied)));
- } else {
- initPermissions(onComplete);
- }
+
+// else {
+// initPermissions(onComplete);
+// }
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
index 8e1c4763..48af157d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
@@ -4,6 +4,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
+import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
@@ -164,6 +165,14 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setDrawerIcon(R.drawable.ic_black_empty_box)
.setFragmentFactory(RettificaGiacenzeFragment::newInstance))
+ .addItem(new MenuItem()
+ .setID(R.id.nav_inventario)
+ .setCodMenu("MG062")
+ .setTitleText(R.string.inventario_fragment_title)
+ .setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze)
+ .setDrawerIcon(R.drawable.ic_black_empty_box)
+ .setFragmentFactory(ElencoInventariFragment::newInstance))
+
).addGroup(
new MenuGroup()
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 27a11b70..4b65e475 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
@@ -31,6 +31,9 @@ public class AppContext {
@Inject
AppDatabase mAppDatabase;
+ @Inject
+ SettingsManager mSettingsManager;
+
public AppContext(Context context) {
this.mApplicationContext = context;
@@ -53,7 +56,7 @@ public class AppContext {
private void initSettings() {
Stash.init(mApplicationContext);
- SettingsManager.init(mApplicationContext);
+ mSettingsManager.init();
}
private void initCrashlytics() {
@@ -80,7 +83,7 @@ public class AppContext {
Logger.addLogAdapter(new AndroidLogAdapter());
File logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
- int maxBytesSize = 5000;
+ int maxBytesSize = 5 * 1024 * 1024;
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
}
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 a56b35d2..9317a702 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
@@ -1,31 +1,76 @@
package it.integry.integrywmsnative.core.data_store.db;
+import android.content.Context;
+
import androidx.room.Database;
+import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
+import androidx.room.migration.Migration;
+import androidx.sqlite.db.SupportSQLiteDatabase;
+import it.integry.integrywmsnative.core.data_store.db.converter.AppDatabaseConverters;
import it.integry.integrywmsnative.core.data_store.db.converter.BigDecimalConverter;
import it.integry.integrywmsnative.core.data_store.db.converter.DateConverter;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioDao;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioRowDao;
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRoomDTO;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDTO;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 10, exportSchema = false)
+@Database(entities = {
+ ArticoloGriglia.class,
+ Griglia.class,
+ Ordine.class,
+ ArticoloOrdine.class,
+ SqlMtbColt.class,
+ SqlMtbColr.class,
+ InventarioRoomDTO.class,
+ InventarioRowRoomDTO.class
+},
+ version = 12,
+ exportSchema = true)
@TypeConverters({
DateConverter.class,
- BigDecimalConverter.class
+ BigDecimalConverter.class,
+ AppDatabaseConverters.class
})
public abstract class AppDatabase extends RoomDatabase {
+ /**
+ * The only instance
+ */
+ private static AppDatabase sInstance;
+
+ /**
+ * Gets the singleton instance of SampleDatabase.
+ *
+ * @param applicationContext The context.
+ * @return The singleton instance of SampleDatabase.
+ */
+ public static synchronized AppDatabase getInstance(Context applicationContext) {
+ if (sInstance == null) {
+ var builder = Room.databaseBuilder(applicationContext,
+ AppDatabase.class, "integry_wms")
+ .addMigrations(MIGRATION_10_11)
+ .addMigrations(MIGRATION_11_12);
+
+ sInstance = builder.build();
+ }
+ return sInstance;
+ }
+
public abstract ArticoloGrigliaDao articoloGrigliaDao();
public abstract GrigliaDao grigliaDao();
@@ -38,5 +83,32 @@ public abstract class AppDatabase extends RoomDatabase {
public abstract MtbColrDao mtbColrDao();
+ public abstract InventarioDao inventarioDao();
+ public abstract InventarioRowDao inventarioRowDao();
+
+
+ static final Migration MIGRATION_10_11 = new Migration(10, 11) {
+ @Override
+ public void migrate(SupportSQLiteDatabase database) {
+ database.execSQL("CREATE TABLE IF NOT EXISTS inventari (_id INTEGER PRIMARY KEY AUTOINCREMENT, id_inventario INTEGER, cod_mdep TEXT NOT NULL, zona TEXT, data_inventario INTEGER, data_reg INTEGER, data_ver INTEGER, filtro TEXT, flag_stato TEXT, flag_operazione TEXT, cod_anag TEXT, cod_dtip TEXT, inserito_da TEXT, registrato_da TEXT, verificato_da TEXT, data_ora_inizio INTEGER, data_ora_fine INTEGER, causale TEXT, remote_sync_date INTEGER)");
+ database.execSQL("CREATE INDEX IF NOT EXISTS index_inventari__id ON inventari (_id)");
+ database.execSQL("CREATE INDEX IF NOT EXISTS index_inventari_id_inventario ON inventari (id_inventario)");
+
+
+ database.execSQL("CREATE TABLE IF NOT EXISTS inventario_rows (_id INTEGER PRIMARY KEY AUTOINCREMENT, parent_id INTEGER, cod_mart TEXT NOT NULL, descrizione TEXT, partita_mag 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 )");
+ database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__id ON inventario_rows (_id)");
+ database.execSQL("CREATE INDEX IF NOT EXISTS index_inventario_rows__parent_id ON inventario_rows (parent_id)");
+ }
+ };
+ static final Migration MIGRATION_11_12 = new Migration(11, 12) {
+ @Override
+ public void migrate(SupportSQLiteDatabase database) {
+ database.execSQL("DROP TABLE IF EXISTS ordini_tmp;");
+ database.execSQL("CREATE TABLE ordini_tmp (ordine_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, data_ins INTEGER, annotazioni TEXT, transmitted INTEGER NOT NULL, transmission_date INTEGER, gestione TEXT, data_ord INTEGER, num_ord INTEGER, cod_mdep TEXT, id_griglia INTEGER NOT NULL, cod_alis TEXT NOT NULL);");
+ database.execSQL("INSERT INTO ordini_tmp(ordine_id,data_ins,annotazioni,transmitted,transmission_date,gestione,data_ord,num_ord,cod_mdep,id_griglia,cod_alis) SELECT ordini.ordine_id,ordini.data_ins,ordini.annotazioni,ordini.transmitted,ordini.transmission_date,ordini.gestione,ordini.data_ord,ordini.num_ord,ordini.cod_mdep,ordini.id_griglia,griglie.cod_alis from ordini left outer join griglie on ordini.id_griglia = griglie.griglia_id;");
+ database.execSQL("DROP TABLE ordini;");
+ database.execSQL("ALTER TABLE ordini_tmp RENAME TO ordini;");
+ }
+ };
}
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 b2577066..e9b8f6e8 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
@@ -1,8 +1,9 @@
package it.integry.integrywmsnative.core.data_store.db;
import android.app.Application;
+import android.os.Handler;
-import androidx.room.Room;
+import java.util.concurrent.ExecutorService;
import javax.inject.Singleton;
@@ -11,32 +12,38 @@ import dagger.Provides;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioDao;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioRowDao;
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
-import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository;
+import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliGrigliaDataSource;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliOrdineDataSource;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.GrigliaDataSource;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.SqlMtbColrDataSource;
-import it.integry.integrywmsnative.core.data_store.db.repository.implementations.SqlMtbColtDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.ArticoliGrigliaDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.ArticoliOrdineDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.GrigliaDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.OrdineDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.SqlMtbColrDataSource;
+import it.integry.integrywmsnative.core.data_store.db.repository.datasource.SqlMtbColtDataSource;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRepository;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRowRepository;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.data_source.InventarioLocalDataSource;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.data_source.InventarioRowLocalDataSource;
+import it.integry.integrywmsnative.core.mapper.InventarioMapper;
+import it.integry.integrywmsnative.core.mapper.InventarioRowMapper;
+import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
@Module
public class RoomModule {
private AppDatabase appDatabase;
- public RoomModule(Application application) {
- appDatabase = Room.databaseBuilder(application,
- AppDatabase.class, "integry_wms")
- .fallbackToDestructiveMigration()
- .build();
+ public RoomModule(Application applicationContext) {
+ appDatabase = AppDatabase.getInstance(applicationContext);
}
@Singleton
@@ -84,46 +91,109 @@ public class RoomModule {
return appDatabase.mtbColrDao();
}
-
-
-
-
-
-
@Singleton
@Provides
- ArticoloGrigliaRepository providesArticoloGrigliaRepository(ArticoloGrigliaDao articoloGrigliaDao) {
- return new ArticoliGrigliaDataSource(articoloGrigliaDao);
+ InventarioDao providesInventarioDao(AppDatabase appDatabase) {
+ return appDatabase.inventarioDao();
}
@Singleton
@Provides
- ArticoliOrdineRepository providesArticoliOrdineRepository(ArticoloOrdineDao articoloOrdineDao) {
- return new ArticoliOrdineDataSource(articoloOrdineDao);
+ InventarioRowDao providesInventarioRowDao(AppDatabase appDatabase) {
+ return appDatabase.inventarioRowDao();
+ }
+
+
+
+
+
+
+
+
+ @Singleton
+ @Provides
+ InventarioRowMapper providesInventarioRowMapper() {
+ return new InventarioRowMapper();
}
@Singleton
@Provides
- GrigliaRepository providesGrigliaRepository(GrigliaDao grigliaDao) {
- return new GrigliaDataSource(grigliaDao);
+ InventarioMapper providesInventarioMapper(InventarioRowMapper inventarioRowMapper) {
+ return new InventarioMapper(inventarioRowMapper);
+ }
+
+
+ @Singleton
+ @Provides
+ InventarioLocalDataSource providesInventarioLocalDataSource(ExecutorService executorService, InventarioDao inventarioDao) {
+ return new InventarioLocalDataSource(executorService, inventarioDao);
+ }
+
+
+ @Singleton
+ @Provides
+ InventarioRowLocalDataSource providesInventarioRowLocalDataSource(ExecutorService executorService, InventarioRowDao inventarioRowDao) {
+ return new InventarioRowLocalDataSource(executorService, inventarioRowDao);
+ }
+
+
+
+
+
+
+
+ @Singleton
+ @Provides
+ ArticoloGrigliaRepository providesArticoloGrigliaRepository(ExecutorService executorService, Handler handler, ArticoloGrigliaDao articoloGrigliaDao) {
+ return new ArticoliGrigliaDataSource(executorService, handler, articoloGrigliaDao);
}
@Singleton
@Provides
- OrdineRepository providesOrdineRepository(OrdineDao ordineDao) {
- return new OrdineDataSource(ordineDao);
+ ArticoliOrdineRepository providesArticoliOrdineRepository(ExecutorService executorService, Handler handler, ArticoloOrdineDao articoloOrdineDao) {
+ return new ArticoliOrdineDataSource(executorService, handler, articoloOrdineDao);
}
@Singleton
@Provides
- MtbColtRepository providesMtbColtRepository(MtbColtDao mtbColtDao) {
- return new SqlMtbColtDataSource(mtbColtDao);
+ GrigliaRepository providesGrigliaRepository(ExecutorService executorService, Handler handler, GrigliaDao grigliaDao) {
+ return new GrigliaDataSource(executorService, handler, grigliaDao);
}
@Singleton
@Provides
- MtbColrRepository providesMtbColrRepository(MtbColrDao mtbColrDao) {
- return new SqlMtbColrDataSource(mtbColrDao);
+ OrdineRepository providesOrdineRepository(ExecutorService executorService, Handler handler, OrdineDao ordineDao) {
+ return new OrdineDataSource(executorService, handler, ordineDao);
+ }
+
+ @Singleton
+ @Provides
+ MtbColtRepository providesMtbColtRepository(ExecutorService executorService, Handler handler, MtbColtDao mtbColtDao) {
+ return new SqlMtbColtDataSource(executorService, handler, mtbColtDao);
+ }
+
+ @Singleton
+ @Provides
+ MtbColrDataSource providesMtbColrRepository(ExecutorService executorService, Handler handler, MtbColrDao mtbColrDao) {
+ return new SqlMtbColrDataSource(executorService, handler, mtbColrDao);
+ }
+
+ @Singleton
+ @Provides
+ InventarioRepository providesInventarioRepository(ExecutorService executorService, Handler handler,
+ InventarioLocalDataSource inventarioLocalDataSource,
+ InventarioRESTConsumer inventarioRESTConsumer,
+ InventarioMapper inventarioMapper) {
+ return new InventarioRepository(inventarioLocalDataSource, inventarioRESTConsumer, inventarioMapper, handler);
+ }
+
+ @Singleton
+ @Provides
+ InventarioRowRepository providesInventarioRowRepository(ExecutorService executorService, Handler handler,
+ InventarioRowLocalDataSource inventarioRowLocalDataSource,
+ InventarioRESTConsumer inventarioRESTConsumer,
+ InventarioRowMapper inventarioRowMapper) {
+ return new InventarioRowRepository(inventarioRowLocalDataSource, inventarioRESTConsumer, inventarioRowMapper, handler);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/converter/AppDatabaseConverters.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/converter/AppDatabaseConverters.java
new file mode 100644
index 00000000..613bc37e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/converter/AppDatabaseConverters.java
@@ -0,0 +1,49 @@
+package it.integry.integrywmsnative.core.data_store.db.converter;
+
+import androidx.room.TypeConverter;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import java.lang.reflect.Type;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+
+public class AppDatabaseConverters {
+ @TypeConverter
+ public static LocalDateTime longToLocalDateTime(Long value) {
+ return value == null ? null : UtilityDate.timeToLocalDateTime(value, null);
+ }
+
+ @TypeConverter
+ public static Long localDateTimeToTimestamp(LocalDateTime date) {
+ return date == null ? null : UtilityDate.localDateTimeToTime(date, null);
+ }
+
+ @TypeConverter
+ public static LocalDate longToLocalDate(Long value) {
+ return value == null ? null : UtilityDate.timeToLocalDate(value, null);
+ }
+
+ @TypeConverter
+ public static Long localDateToTimestamp(LocalDate date) {
+ return date == null ? null : UtilityDate.localDateToTime(date);
+ }
+
+ @TypeConverter
+ public static ArrayList fromString(String value) {
+ Type listType = new TypeToken>() {}.getType();
+ return new Gson().fromJson(value, listType);
+ }
+
+ @TypeConverter
+ public static String fromArrayList(ArrayList list) {
+ Gson gson = new Gson();
+ String json = gson.toJson(list);
+ return json;
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloOrdineDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloOrdineDao.java
index e7b43b26..bde8bdae 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloOrdineDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloOrdineDao.java
@@ -9,7 +9,6 @@ import androidx.room.Update;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
@Dao
public interface ArticoloOrdineDao {
@@ -33,17 +32,10 @@ public interface ArticoloOrdineDao {
@Update
void update(ArticoloOrdine articolo);
- @Query("SELECT articoli_ordine.*," +
- "articoli_griglia.gg_scadenza," +
- "articoli_griglia.giacenza," +
- "articoli_griglia.qta_prevista_vendita," +
- "articoli_griglia.qta_proposta " +
+ @Query("SELECT *" +
"FROM articoli_ordine " +
- "INNER JOIN ordini on articoli_ordine.id_ordine = ordini.ordine_id " +
- "LEFT OUTER JOIN articoli_griglia " +
- "on articoli_ordine.cod_mart = articoli_griglia.cod_mart and ordini.id_griglia = articoli_griglia.id_griglia and articoli_ordine.bar_code = articoli_griglia.bar_code " +
"where id_ordine = :ordineId")
- List findArticoliByOrdine(int ordineId);
+ List findArticoliByOrdine(int ordineId);
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/GrigliaDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/GrigliaDao.java
index a3c33d80..7449a371 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/GrigliaDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/GrigliaDao.java
@@ -9,15 +9,14 @@ import androidx.room.Update;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
@Dao
public interface GrigliaDao {
@Query("SELECT * from griglie")
List getAll();
- @Query("SELECT griglie.*, COUNT(articoli_griglia.articolo_griglia_id) as countArticoli from griglie LEFT JOIN articoli_griglia ON (griglie.griglia_id = articoli_griglia.id_griglia) where cod_alis = :codAlis GROUP BY griglie.griglia_id")
- GrigliaWrapper findByCodAlis(String codAlis);
+ @Query("SELECT * from griglie where cod_alis = :codAlis")
+ Griglia findByCodAlis(String codAlis);
@Insert
long insert(Griglia griglia);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioDao.java
new file mode 100644
index 00000000..79d345d3
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioDao.java
@@ -0,0 +1,27 @@
+package it.integry.integrywmsnative.core.data_store.db.dao;
+
+import androidx.room.Dao;
+import androidx.room.Query;
+
+import java.util.List;
+
+import io.reactivex.rxjava3.core.Flowable;
+import it.integry.integrywmsnative.core.data_store.db.entity.BaseSyncDTO;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRoomDTO;
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityDaoInterface;
+
+@Dao
+public interface InventarioDao extends EntityDaoInterface {
+
+
+ @Query("SELECT * FROM " + InventarioRoomDTO.TABLE_NAME +
+ " WHERE ((:toBeSync = 1 AND " + BaseSyncDTO.Columns.COLUMN_REMOTE_SYNC_DATE + " IS NULL) OR (:toBeSync = 0))")
+ List selectAll(boolean toBeSync);
+
+
+ @Query("SELECT * FROM " + InventarioRoomDTO.TABLE_NAME +
+ " WHERE ((:toBeSync = 1 AND " + BaseSyncDTO.Columns.COLUMN_REMOTE_SYNC_DATE + " IS NULL) OR (:toBeSync = 0))" +
+ " ORDER BY " + InventarioRoomDTO.Columns.DATA_INVENTARIO + " DESC")
+ Flowable> selectAllFlowable(boolean toBeSync);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioRowDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioRowDao.java
new file mode 100644
index 00000000..dc698bbe
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/InventarioRowDao.java
@@ -0,0 +1,28 @@
+package it.integry.integrywmsnative.core.data_store.db.dao;
+
+import androidx.room.Dao;
+import androidx.room.Query;
+
+import java.util.List;
+
+import io.reactivex.rxjava3.core.Flowable;
+import it.integry.integrywmsnative.core.data_store.db.entity.BaseSyncDTO;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDTO;
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityDaoInterface;
+
+@Dao
+public interface InventarioRowDao extends EntityDaoInterface {
+
+ @Query("SELECT * FROM " + InventarioRowRoomDTO.TABLE_NAME +
+ " WHERE ((:toBeSync = 1 AND " + BaseSyncDTO.Columns.COLUMN_REMOTE_SYNC_DATE + " IS NULL) OR (:toBeSync = 0))")
+ List selectAll(boolean toBeSync);
+
+
+ @Query("SELECT * FROM " + InventarioRowRoomDTO.TABLE_NAME +
+ " WHERE ((:toBeSync = 1 AND " + BaseSyncDTO.Columns.COLUMN_REMOTE_SYNC_DATE + " IS NULL) OR (:toBeSync = 0))" +
+ " AND " + InventarioRowRoomDTO.Columns.PARENT_ID + " = :parentId " +
+ " ORDER BY " +
+ " CASE WHEN :reversed = 1 THEN " + BaseSyncDTO.Columns.ID + " END DESC," +
+ " CASE WHEN :reversed = 0 THEN " + BaseSyncDTO.Columns.ID + " END ASC")
+ Flowable> selectAllFlowable(long parentId, boolean reversed, boolean toBeSync);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java
index 6ab430fd..f5d16abf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java
@@ -9,7 +9,6 @@ import androidx.room.Update;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
-import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
@Dao
public interface MtbColrDao {
@@ -26,5 +25,5 @@ public interface MtbColrDao {
void delete(SqlMtbColr mtbColr);
@Query("SELECT * from mtb_colr where id_collo = :idDocument")
- List getDocumentRows(int idDocument);
+ List getDocumentRows(long idDocument);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColtDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColtDao.java
index 262cb324..ab0daf24 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColtDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColtDao.java
@@ -9,12 +9,9 @@ import androidx.room.Update;
import java.util.Date;
import java.util.List;
-import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
-
+
@Dao
public interface MtbColtDao {
@Query("SELECT * from mtb_colt")
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/OrdineDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/OrdineDao.java
index 22ae973d..840daa56 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/OrdineDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/OrdineDao.java
@@ -9,7 +9,6 @@ import androidx.room.Update;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
-import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
@Dao
@@ -17,11 +16,11 @@ public interface OrdineDao {
@Query("SELECT * from ordini ")
List getAll();
- @Query("SELECT ordini.*, griglie.* from ordini inner join griglie ON id_griglia = griglie.griglia_id where ordini.transmitted = 1")
- List getAllTrasnmitted();
+ @Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
+ List getAllTrasnmitted();
- @Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.id_griglia = :idGriglia group by ordini.ordine_id")
- List getAllOpenOrdersByGriglia(int idGriglia);
+ @Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.cod_alis = :codAlis group by ordini.ordine_id")
+ List getAllOpenOrdersByGriglia(String codAlis);
@Insert
Long insert(Ordine ordine);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
index 4602b8e2..a55f4582 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
@@ -6,13 +6,6 @@ import androidx.room.ForeignKey;
import androidx.room.Index;
import androidx.room.PrimaryKey;
-import org.json.JSONObject;
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-
@Entity(
tableName = "articoli_griglia",
indices = {
@@ -215,38 +208,4 @@ public class ArticoloGriglia {
public void setQtaOrd(float qtaOrd) {
this.qtaOrd = qtaOrd;
}
-
- public String generateSystemNote() {
- HashMap pairs = new HashMap<>();
- pairs.put("qta_proposta", String.valueOf(qtaProposta));
- pairs.put("giacenza", String.valueOf(giacenza));
-
- return new JSONObject(pairs).toString();
- }
-
- public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
- ArticoloOrdine articolo = new ArticoloOrdine();
-
- articolo.setIdOrdine(ordine.getOrdineId());
-
- articolo.setBarCode(this.getBarCode());
- articolo.setCodMart(this.getCodMart());
- articolo.setMediaSett(this.getMediaSett());
- articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
- articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
- articolo.setMerceDaRic(this.getMerceDaRic());
- articolo.setQtaCnf(this.getQtaCnf());
- articolo.setUntMis(this.getUntMis());
- articolo.setDescrizione(this.getDescrizione());
- articolo.setDataIns(UtilityDate.getDateInstance());
- articolo.setGgScadenza(this.getGgScadenza());
- articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
- articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
- articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
- articolo.setNewNoPromo(this.isNewNoPromo());
- articolo.setSystemNote(generateSystemNote());
- articolo.setQtaOrd(this.getQtaOrd());
-
- return articolo;
- }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseRoomDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseRoomDTO.java
new file mode 100644
index 00000000..2ec1b907
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseRoomDTO.java
@@ -0,0 +1,4 @@
+package it.integry.integrywmsnative.core.data_store.db.entity;
+
+public abstract class BaseRoomDTO {
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseSyncDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseSyncDTO.java
new file mode 100644
index 00000000..5d1030de
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/BaseSyncDTO.java
@@ -0,0 +1,45 @@
+package it.integry.integrywmsnative.core.data_store.db.entity;
+
+import android.provider.BaseColumns;
+
+import androidx.room.ColumnInfo;
+import androidx.room.PrimaryKey;
+
+import java.util.Date;
+
+public abstract class BaseSyncDTO extends BaseRoomDTO {
+
+
+ public static class Columns {
+ public static final String ID = BaseColumns._ID;
+ public static final String COLUMN_REMOTE_SYNC_DATE = "remote_sync_date";
+ }
+
+ /** The unique ID of the cheese. */
+ @PrimaryKey(autoGenerate = true)
+ @ColumnInfo(index = true, name = Columns.ID)
+ private Long id;
+
+ @ColumnInfo(name = Columns.COLUMN_REMOTE_SYNC_DATE)
+ private Date remoteSyncDate;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Date getRemoteSyncDate() {
+ return remoteSyncDate;
+ }
+
+ public void setRemoteSyncDate(Date remoteSyncDate) {
+ this.remoteSyncDate = remoteSyncDate;
+ }
+
+ public boolean isSyncronized() {
+ return getRemoteSyncDate() != null;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Griglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Griglia.java
index b056d387..7921b5df 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Griglia.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Griglia.java
@@ -2,11 +2,10 @@ package it.integry.integrywmsnative.core.data_store.db.entity;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
-import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
-@Entity(tableName ="griglie",
+@Entity(tableName = "griglie",
indices = {
@Index(value = "cod_alis", unique = true)
}
@@ -22,8 +21,6 @@ public class Griglia {
private String descrLisa;
@ColumnInfo(name = "descr_depo")
private String descrDepo;
- @Ignore
- private int countArticoli = 0;
public int getGrigliaId() {
@@ -58,11 +55,4 @@ public class Griglia {
this.descrDepo = descrDepo;
}
- public int getCountArticoli() {
- return countArticoli;
- }
-
- public void setCountArticoli(int countArticoli) {
- this.countArticoli = countArticoli;
- }
}
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
new file mode 100644
index 00000000..93a69d30
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRoomDTO.java
@@ -0,0 +1,245 @@
+package it.integry.integrywmsnative.core.data_store.db.entity;
+
+import androidx.annotation.NonNull;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import androidx.room.PrimaryKey;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityModelInterface;
+
+@Entity(tableName = InventarioRoomDTO.TABLE_NAME)
+public class InventarioRoomDTO extends BaseSyncDTO implements EntityModelInterface {
+
+ public static final String TABLE_NAME = "inventari";
+
+ public static class Columns {
+ public static final String ID_INVENTARIO = "id_inventario";
+ public static final String COD_MDEP = "cod_mdep";
+ public static final String DATA_INVENTARIO = "data_inventario";
+ public static final String DATA_REG = "data_reg";
+ public static final String DATA_VER = "data_ver";
+ public static final String FILTRO = "filtro";
+ public static final String FLAG_STATO = "flag_stato";
+ public static final String FLAG_OPERAZIONE = "flag_operazione";
+ public static final String COD_ANAG = "cod_anag";
+ public static final String COD_DTIP = "cod_dtip";
+ public static final String INSERITO_DA = "inserito_da";
+ public static final String REGISTRATO_DA = "registrato_da";
+ public static final String VERIFICATO_DA = "verificato_da";
+ public static final String DATA_ORA_INIZIO = "data_ora_inizio";
+ public static final String DATA_ORA_FINE = "data_ora_fine";
+ public static final String CAUSALE = "causale";
+ public static final String ZONA = "zona";
+ }
+
+ /** The unique ID of the cheese. */
+ @PrimaryKey(autoGenerate = true)
+ @ColumnInfo(index = true, name = BaseSyncDTO.Columns.ID)
+ private Long id;
+
+ /** The unique ID of the cheese. */
+ @ColumnInfo(index = true, name = Columns.ID_INVENTARIO)
+ private Long idInventario;
+
+ @NonNull
+ @ColumnInfo(name = Columns.COD_MDEP)
+ private String codMdep;
+
+ @ColumnInfo(name = Columns.DATA_INVENTARIO)
+ private LocalDate dataInventario;
+
+ @ColumnInfo(name = Columns.DATA_REG)
+ private LocalDateTime dataReg;
+
+ @ColumnInfo(name = Columns.DATA_VER)
+ private LocalDateTime dataVer;
+
+ @ColumnInfo(name = Columns.FILTRO)
+ private String filtro;
+
+ @ColumnInfo(name = Columns.FLAG_STATO)
+ private String flagStato;
+
+ @ColumnInfo(name = Columns.FLAG_OPERAZIONE)
+ private String flagOperazione;
+
+ @ColumnInfo(name = Columns.COD_ANAG)
+ private String codAnag;
+
+ @ColumnInfo(name = Columns.COD_DTIP)
+ private String codDtip;
+
+ @ColumnInfo(name = Columns.INSERITO_DA)
+ private String inseritoDa;
+
+ @ColumnInfo(name = Columns.REGISTRATO_DA)
+ private String registratoDa;
+
+ @ColumnInfo(name = Columns.VERIFICATO_DA)
+ private String verificatoDa;
+
+ @ColumnInfo(name = Columns.DATA_ORA_INIZIO)
+ private LocalDateTime dataOraInizio;
+
+ @ColumnInfo(name = Columns.DATA_ORA_FINE)
+ private LocalDateTime dataOraFine;
+
+ @ColumnInfo(name = Columns.CAUSALE)
+ private String causale;
+
+ @ColumnInfo(name = Columns.ZONA)
+ private String zona;
+
+ @Ignore
+ private List inventarioRowList;
+
+ public Long getIdInventario() {
+ return idInventario;
+ }
+
+ public void setIdInventario(Long idInventario) {
+ this.idInventario = idInventario;
+ }
+
+ @NonNull
+ public String getCodMdep() {
+ return codMdep;
+ }
+
+ public void setCodMdep(@NonNull String codMdep) {
+ this.codMdep = codMdep;
+ }
+
+ public LocalDate getDataInventario() {
+ return dataInventario;
+ }
+
+ public void setDataInventario(LocalDate dataInventario) {
+ this.dataInventario = dataInventario;
+ }
+
+ public LocalDateTime getDataReg() {
+ return dataReg;
+ }
+
+ public void setDataReg(LocalDateTime dataReg) {
+ this.dataReg = dataReg;
+ }
+
+ public LocalDateTime getDataVer() {
+ return dataVer;
+ }
+
+ public void setDataVer(LocalDateTime dataVer) {
+ this.dataVer = dataVer;
+ }
+
+ public String getFiltro() {
+ return filtro;
+ }
+
+ public void setFiltro(String filtro) {
+ this.filtro = filtro;
+ }
+
+ public String getFlagStato() {
+ return flagStato;
+ }
+
+ public void setFlagStato(String flagStato) {
+ this.flagStato = flagStato;
+ }
+
+ public String getFlagOperazione() {
+ return flagOperazione;
+ }
+
+ public void setFlagOperazione(String flagOperazione) {
+ this.flagOperazione = flagOperazione;
+ }
+
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public void setCodAnag(String codAnag) {
+ this.codAnag = codAnag;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public void setCodDtip(String codDtip) {
+ this.codDtip = codDtip;
+ }
+
+ public String getInseritoDa() {
+ return inseritoDa;
+ }
+
+ public void setInseritoDa(String inseritoDa) {
+ this.inseritoDa = inseritoDa;
+ }
+
+ public String getRegistratoDa() {
+ return registratoDa;
+ }
+
+ public void setRegistratoDa(String registratoDa) {
+ this.registratoDa = registratoDa;
+ }
+
+ public String getVerificatoDa() {
+ return verificatoDa;
+ }
+
+ public void setVerificatoDa(String verificatoDa) {
+ this.verificatoDa = verificatoDa;
+ }
+
+ public LocalDateTime getDataOraInizio() {
+ return dataOraInizio;
+ }
+
+ public void setDataOraInizio(LocalDateTime dataOraInizio) {
+ this.dataOraInizio = dataOraInizio;
+ }
+
+ public LocalDateTime getDataOraFine() {
+ return dataOraFine;
+ }
+
+ public void setDataOraFine(LocalDateTime dataOraFine) {
+ this.dataOraFine = dataOraFine;
+ }
+
+ public String getCausale() {
+ return causale;
+ }
+
+ public void setCausale(String causale) {
+ this.causale = causale;
+ }
+
+ public String getZona() {
+ return zona;
+ }
+
+ public void setZona(String zona) {
+ this.zona = zona;
+ }
+
+ public List getInventarioRowList() {
+ return inventarioRowList;
+ }
+
+ public void setInventarioRowList(List inventarioRowList) {
+ this.inventarioRowList = inventarioRowList;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRowRoomDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRowRoomDTO.java
new file mode 100644
index 00000000..a4c3c5eb
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/InventarioRowRoomDTO.java
@@ -0,0 +1,180 @@
+package it.integry.integrywmsnative.core.data_store.db.entity;
+
+import androidx.annotation.NonNull;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.ForeignKey;
+import androidx.room.PrimaryKey;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityModelInterface;
+
+@Entity(
+ tableName = InventarioRowRoomDTO.TABLE_NAME,
+ foreignKeys = {
+ @ForeignKey(
+ entity = InventarioRoomDTO.class,
+ parentColumns = {BaseSyncDTO.Columns.ID},
+ childColumns = {InventarioRowRoomDTO.Columns.PARENT_ID}
+ )
+ }
+)
+public class InventarioRowRoomDTO extends BaseSyncDTO implements EntityModelInterface {
+
+ public static final String TABLE_NAME = "inventario_rows";
+
+ public static class Columns {
+ public static final String PARENT_ID = "parent_id";
+ public static final String COD_MART = "cod_mart";
+ public static final String PARTITA_MAG = "partita_mag";
+ public static final String DESCRIZIONE = "descrizione";
+ public static final String QTA = "qta";
+ public static final String NUM_CNF = "num_cnf";
+ public static final String QTA_CNF = "qta_cnf";
+ public static final String UNT_MIS = "unt_mis";
+ public static final String DATA_ORA_INV = "data_ora_inv";
+ public static final String SCAN_COD_BARRE = "scan_cod_barre";
+ public static final String ZONA = "zona";
+ }
+
+ /**
+ * The unique ID
+ */
+ @PrimaryKey(autoGenerate = true)
+ @ColumnInfo(index = true, name = BaseSyncDTO.Columns.ID)
+ private Long id;
+
+ @ColumnInfo(index = true, name = Columns.PARENT_ID)
+ private Long parentId;
+
+ @NonNull
+ @ColumnInfo(name = Columns.COD_MART)
+ private String codMart;
+
+ @ColumnInfo(name = Columns.PARTITA_MAG)
+ private String partitaMag;
+
+ @ColumnInfo(name = Columns.DESCRIZIONE)
+ private String descrizione;
+
+ @NonNull
+ @ColumnInfo(name = Columns.QTA, defaultValue = "0")
+ private BigDecimal qta;
+
+ @NonNull
+ @ColumnInfo(name = Columns.NUM_CNF, defaultValue = "0")
+ private BigDecimal numConf;
+
+ @NonNull
+ @ColumnInfo(name = Columns.QTA_CNF, defaultValue = "0")
+ private BigDecimal qtaConf;
+
+ @NonNull
+ @ColumnInfo(name = Columns.UNT_MIS, defaultValue = "0")
+ private String untMis;
+
+ @ColumnInfo(name = Columns.DATA_ORA_INV)
+ private LocalDateTime dataOraInv;
+
+ @ColumnInfo(name = Columns.SCAN_COD_BARRE)
+ private String scanCodBarre;
+
+ @ColumnInfo(name = Columns.ZONA)
+ private String zona;
+
+
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
+
+ @NonNull
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public void setCodMart(@NonNull String codMart) {
+ this.codMart = codMart;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public void setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public void setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ }
+
+ @NonNull
+ public BigDecimal getQta() {
+ return qta;
+ }
+
+ public void setQta(@NonNull BigDecimal qta) {
+ this.qta = qta;
+ }
+
+ @NonNull
+ public BigDecimal getNumConf() {
+ return numConf;
+ }
+
+ public void setNumConf(@NonNull BigDecimal numConf) {
+ this.numConf = numConf;
+ }
+
+ @NonNull
+ public BigDecimal getQtaConf() {
+ return qtaConf;
+ }
+
+ public void setQtaConf(@NonNull BigDecimal qtaConf) {
+ this.qtaConf = qtaConf;
+ }
+
+ @NonNull
+ public String getUntMis() {
+ return untMis;
+ }
+
+ public void setUntMis(@NonNull String untMis) {
+ this.untMis = untMis;
+ }
+
+ public LocalDateTime getDataOraInv() {
+ return dataOraInv;
+ }
+
+ public void setDataOraInv(LocalDateTime dataOraInv) {
+ this.dataOraInv = dataOraInv;
+ }
+
+ public String getScanCodBarre() {
+ return scanCodBarre;
+ }
+
+ public void setScanCodBarre(String scanCodBarre) {
+ this.scanCodBarre = scanCodBarre;
+ }
+
+ public String getZona() {
+ return zona;
+ }
+
+ public void setZona(String zona) {
+ this.zona = zona;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java
index 5f7e35a5..1fa78020 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java
@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.core.data_store.db.entity;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
@@ -47,15 +48,16 @@ public class Ordine {
@Nullable
private String codMdep;
- @Ignore
- private int countArticoli = 0;
-
@Ignore
private boolean orderNewProducts = false;
@ColumnInfo(name = "id_griglia")
private int idGriglia;
+ @ColumnInfo(name = "cod_alis")
+ @NonNull
+ private String codAlis;
+
public int getOrdineId() {
return ordineId;
}
@@ -105,14 +107,6 @@ public class Ordine {
this.transmissionDate = transmissionDate;
}
- public int getCountArticoli() {
- return countArticoli;
- }
-
- public void setCountArticoli(int countArticoli) {
- this.countArticoli = countArticoli;
- }
-
@Nullable
public String getGestione() {
return gestione;
@@ -157,8 +151,15 @@ public class Ordine {
return orderNewProducts;
}
- public Ordine setOrderNewProducts(boolean orderNewProducts) {
+ public void setOrderNewProducts(boolean orderNewProducts) {
this.orderNewProducts = orderNewProducts;
- return this;
+ }
+
+ public String getCodAlis() {
+ return codAlis;
+ }
+
+ public void setCodAlis(String codAlis) {
+ this.codAlis = codAlis;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityDaoInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityDaoInterface.java
new file mode 100644
index 00000000..b273cc18
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityDaoInterface.java
@@ -0,0 +1,31 @@
+package it.integry.integrywmsnative.core.data_store.db.interfaces;
+
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.RawQuery;
+import androidx.room.Update;
+import androidx.sqlite.db.SupportSQLiteQuery;
+
+import java.util.List;
+
+public interface EntityDaoInterface {
+
+ @RawQuery()
+ List execRaw(SupportSQLiteQuery query);
+
+ @Insert
+ long insert(R objectToInsert);
+
+ @Insert
+ List insertAll(List objectToInsert);
+
+ @Delete
+ void delete(R objectToInsert);
+
+ @Update
+ void updateAll(List cheese);
+
+ @Update
+ int update(R cheese);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityModelInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityModelInterface.java
new file mode 100644
index 00000000..db6cc6b1
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/interfaces/EntityModelInterface.java
@@ -0,0 +1,9 @@
+package it.integry.integrywmsnative.core.data_store.db.interfaces;
+
+public interface EntityModelInterface {
+
+ void setId(Long id);
+
+ Long getId();
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java
index 707a1272..a5a190a9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java
@@ -3,16 +3,15 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public interface GrigliaRepository {
void selectAll(RunnableArgs> onSuccess, RunnableArgs onError);
- void findByCodAlis(String codAlis , RunnableArgs onSuccess, RunnableArgs onError);
+ void findByCodAlis(String codAlis, RunnableArgs onSuccess, RunnableArgs onError);
- void saveGriglia(Griglia griglia, RunnableArgs onSuccess,RunnableArgs onFail);
+ void saveGriglia(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onFail);
void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java
similarity index 79%
rename from app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java
rename to app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java
index 30741319..ee949079 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java
@@ -3,19 +3,18 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
-import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-public interface MtbColrRepository {
+public interface MtbColrDataSource {
void selectAll(RunnableArgs> onSuccess, RunnableArgs onError);
+ void selectAllByDocumentID(long documentID, RunnableArgs> onSuccess, RunnableArgs onError);
+
void insert(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError);
void update(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError);
void delete(SqlMtbColr mtbColr, Runnable onSuccess, RunnableArgs onError);
- void getDocumentRows(SqlMtbColt sqlMtbColt, RunnableArgs> onSuccess, RunnableArgs onError);
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColtRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColtRepository.java
index c5093ab3..abf4d080 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColtRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColtRepository.java
@@ -3,12 +3,8 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.Date;
import java.util.List;
-import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
-import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public interface MtbColtRepository {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java
index e42ae623..a77bb3f3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java
@@ -2,9 +2,7 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
-import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
-import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -12,9 +10,9 @@ public interface OrdineRepository {
void selectAll(RunnableArgs> onSuccess, RunnableArgs onError);
- void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError);
+ void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError);
- void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError);
+ void selectAllOpenOrders(String codAlis, RunnableArgs> onSuccess, RunnableArgs onError);
void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliGrigliaDataSource.java
similarity index 64%
rename from app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java
rename to app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliGrigliaDataSource.java
index da7ecbeb..8961e841 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliGrigliaDataSource.java
@@ -1,4 +1,6 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
import com.annimon.stream.Stream;
@@ -9,9 +11,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
-import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
@@ -21,24 +22,29 @@ import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.utility.UtilityHashMap;
-public class ArticoliGrigliaDataSource extends Repository implements ArticoloGrigliaRepository {
+public class ArticoliGrigliaDataSource extends BaseDataSource implements ArticoloGrigliaRepository {
private final ArticoloGrigliaDao mArticoloGrigliaDao;
@Inject
- public ArticoliGrigliaDataSource(ArticoloGrigliaDao articoloGrigliaDao) {
+ public ArticoliGrigliaDataSource(ExecutorService executorService,
+ Handler handler,
+ ArticoloGrigliaDao articoloGrigliaDao) {
+ super(executorService, handler);
this.mArticoloGrigliaDao = articoloGrigliaDao;
}
- public void saveArticoliToGriglia(List updatedArts, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- var tmp = calcItemsToInsertAndUpdate(updatedArts);
- var toInsert = (List) tmp.get("toInsert");
- var toUpdate = (List) tmp.get("toUpdate");
- var codMarts = (List) tmp.get("codMarts");
+ public void saveArticoliToGriglia(List updatedArts, Griglia griglia, Runnable onSuccess, RunnableArgs onError) {
+ try {
+ var tmp = calcItemsToInsertAndUpdate(updatedArts);
+ var toInsert = UtilityHashMap.>getValue(tmp, "toInsert");
+ var toUpdate = UtilityHashMap.>getValue(tmp, "toUpdate");
+ var codMarts = UtilityHashMap.>getValue(tmp, "codMarts");
+
+ executorService.execute(() -> {
mArticoloGrigliaDao.insertAll(toInsert);
mArticoloGrigliaDao.updateAll(toUpdate);
@@ -46,11 +52,12 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
List toDelete = Stream.of(articoliGriglia).filter(articolo -> !codMarts.contains(articolo.getCodMart())).toList();
mArticoloGrigliaDao.deleteList(toDelete);
- onSuccess.run();
- } catch (Exception e) {
- onFail.run(e);
- }
- });
+ handler.post(onSuccess);
+ });
+
+ } catch (Exception e) {
+ onError.run(e);
+ }
}
private HashMap calcItemsToInsertAndUpdate(List updatedArts) throws InterruptedException, ExecutionException {
@@ -58,12 +65,11 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
var toUpdate = new ArrayList();
var codMarts = new ArrayList();
- int cores = Runtime.getRuntime().availableProcessors();
- ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(cores);
List> calls = new ArrayList<>();
for (int i = 0; i < updatedArts.size(); i++) {
int finalI = i;
+
Callable callableTask = () -> {
var updatedArt = updatedArts.get(finalI);
Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(updatedArt.getIdGriglia(), updatedArt.getBarCode(), updatedArt.getCodMart());
@@ -78,7 +84,7 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
calls.add(callableTask);
}
- List> futures = executor.invokeAll(calls, Long.MAX_VALUE, TimeUnit.MILLISECONDS);
+ List> futures = executorService.invokeAll(calls, Long.MAX_VALUE, TimeUnit.MILLISECONDS);
for (Future future : futures) {
if (future.isDone()) {
@@ -99,51 +105,38 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
return tmp;
}
- public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- onSuccess.run(mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia));
- } catch (Exception e) {
- onFail.run(e);
- }
- });
+ public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia), onSuccess, onError);
}
- public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- onSuccess.run(mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia));
- } catch (Exception e) {
- onFail.run(e);
- }
- });
+ public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia), onSuccess, onError);
}
- public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
+ public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) {
+
+ executorService.execute(() -> {
try {
ArticoloGriglia articolo = mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(scan, idGriglia);
+
if (articolo == null) {
articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(scan, idGriglia);
- if (articolo == null) {
- String barcode = StringUtils.leftPad(scan, 13, "0");
- articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia);
- }
}
- onSuccess.run(articolo);
+
+ if (articolo == null) {
+ String barcode = StringUtils.leftPad(scan, 13, "0");
+ articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia);
+ }
+
+ final ArticoloGriglia finalArticolo = articolo;
+ handler.post(() -> onSuccess.run(finalArticolo));
} catch (Exception e) {
- onFail.run(e);
+ onError.run(e);
}
});
}
- public void findNewArticoliInGrigla(int idGriglia, RunnableArgs> onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- onSuccess.run(mArticoloGrigliaDao.getNewArticoliInGriglia(idGriglia));
- } catch (Exception e) {
- onFail.run(e);
- }
- });
+ public void findNewArticoliInGrigla(int idGriglia, RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloGrigliaDao.getNewArticoliInGriglia(idGriglia), onSuccess, onError);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java
new file mode 100644
index 00000000..188e3e9a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/ArticoliOrdineDataSource.java
@@ -0,0 +1,99 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
+import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
+import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public class ArticoliOrdineDataSource extends BaseDataSource implements ArticoliOrdineRepository {
+
+ private final ArticoloOrdineDao mArticoloOrdineDao;
+
+ @Inject
+ public ArticoliOrdineDataSource(ExecutorService executorService,
+ Handler handler,
+ ArticoloOrdineDao articoloOrdineDao) {
+ super(executorService, handler);
+ this.mArticoloOrdineDao = articoloOrdineDao;
+ }
+
+ public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ List toUpdate = new ArrayList<>();
+ List toInsert = new ArrayList<>();
+ for (ArticoloOrdine art : articoli) {
+ if (art.getArticoloOrdineId() != null && art.getArticoloOrdineId() > 0) {
+ toUpdate.add(art);
+ } else {
+ toInsert.add(art);
+ }
+ }
+ for (ArticoloOrdine newArt : toInsert) {
+ mArticoloOrdineDao.insert(newArt);
+ }
+ mArticoloOrdineDao.updateAll(toUpdate);
+ handler.post(onSuccess);
+
+ } catch (Exception e) {
+ onError.run(e);
+ }
+ });
+ }
+
+ public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onError) {
+ if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) {
+ execute(() -> mArticoloOrdineDao.update(articolo), onSuccess, onError);
+ } else {
+ execute(() -> mArticoloOrdineDao.insert(articolo), onSuccess, onError);
+ }
+ }
+
+ public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode), onSuccess, onError);
+ }
+
+ public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), barcode);
+
+ if (articolo == null) {
+ articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), barcode);
+ }
+
+ if (articolo == null) {
+ String scannedCode = StringUtils.leftPad(barcode, 13, '0');
+ articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
+ }
+
+ final ArticoloOrdine finalArticolo = articolo;
+ handler.post(() -> onSuccess.run(finalArticolo));
+ } catch (Exception e) {
+ onError.run(e);
+ }
+ });
+ }
+
+ public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()), onSuccess, onError);
+ }
+
+ public void deleteArticolo(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onError) {
+ execute(() -> mArticoloOrdineDao.delete(articolo),
+ onSuccess,
+ onError);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/BaseDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/BaseDataSource.java
new file mode 100644
index 00000000..3aa26405
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/BaseDataSource.java
@@ -0,0 +1,41 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import java.util.concurrent.ExecutorService;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.RunnableWithReturn;
+
+public class BaseDataSource {
+
+ protected final ExecutorService executorService;
+ protected final Handler handler;
+
+ protected BaseDataSource(ExecutorService executorService, Handler handler) {
+ this.executorService = executorService;
+ this.handler = handler;
+ }
+
+ protected void execute(RunnableWithReturn query, RunnableArgs onSuccess, RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ var data = query.run();
+ handler.post(() -> onSuccess.run(data));
+ } catch (Exception ex) {
+ handler.post(() -> onError.run(ex));
+ }
+ });
+ }
+
+ protected void execute(Runnable query, Runnable onSuccess, RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ query.run();
+ handler.post(onSuccess);
+ } catch (Exception ex) {
+ handler.post(() -> onError.run(ex));
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/GrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/GrigliaDataSource.java
new file mode 100644
index 00000000..71561436
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/GrigliaDataSource.java
@@ -0,0 +1,51 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
+import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public class GrigliaDataSource extends BaseDataSource implements GrigliaRepository {
+
+ private final GrigliaDao mGrigliaDao;
+
+ @Inject
+ public GrigliaDataSource(ExecutorService executorService,
+ Handler handler,
+ GrigliaDao grigliaDao) {
+ super(executorService, handler);
+ this.mGrigliaDao = grigliaDao;
+ }
+
+ public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(mGrigliaDao::getAll, onSuccess, onError);
+ }
+
+ public void findByCodAlis(String codAlis, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mGrigliaDao.findByCodAlis(codAlis), onSuccess, onError);
+ }
+
+
+ public void saveGriglia(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onFail) {
+ if (griglia.getGrigliaId() <= 0) {
+ execute(() -> (int) mGrigliaDao.insert(griglia), grigliaId -> {
+ griglia.setGrigliaId(grigliaId);
+ onSuccess.run(grigliaId);
+ }, onFail);
+ } else {
+ execute(() -> mGrigliaDao.update(griglia), () -> onSuccess.run(griglia.getGrigliaId()), onFail);
+ }
+
+ }
+
+ public void findGrigliaById(int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mGrigliaDao.findGrigliaById(idGriglia), onSuccess, onError);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/OrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/OrdineDataSource.java
new file mode 100644
index 00000000..1a1c0055
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/OrdineDataSource.java
@@ -0,0 +1,58 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
+import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
+import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public class OrdineDataSource extends BaseDataSource implements OrdineRepository {
+
+ private final OrdineDao mOrdineDao;
+
+ @Inject
+ public OrdineDataSource(ExecutorService executorService,
+ Handler handler,
+ OrdineDao ordineDao) {
+ super(executorService, handler);
+ this.mOrdineDao = ordineDao;
+ }
+
+ public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(mOrdineDao::getAll, onSuccess, onError);
+ }
+
+ public void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(mOrdineDao::getAllTrasnmitted, onSuccess, onError);
+ }
+
+ public void selectAllOpenOrders(String codAlis, RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(() -> mOrdineDao.getAllOpenOrdersByGriglia(codAlis), onSuccess, onError);
+ }
+
+ public void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mOrdineDao.insert(ordine),
+ ordineId -> onSuccess.run(ordineId.intValue()),
+ onError);
+ }
+
+
+ public void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mOrdineDao.update(ordine),
+ () -> onSuccess.run(ordine),
+ onError);
+ }
+
+ public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError) {
+ execute(() -> mOrdineDao.delete(ordine),
+ onSuccess,
+ onError);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColrDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColrDataSource.java
new file mode 100644
index 00000000..75a39c9f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColrDataSource.java
@@ -0,0 +1,53 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
+import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public class SqlMtbColrDataSource extends BaseDataSource implements MtbColrDataSource {
+
+ private final MtbColrDao mMtbColrDao;
+
+ @Inject
+ public SqlMtbColrDataSource(ExecutorService executorService,
+ Handler handler,
+ MtbColrDao mtbColrDao) {
+ super(executorService, handler);
+ this.mMtbColrDao = mtbColrDao;
+ }
+
+ public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(mMtbColrDao::getAll, onSuccess, onError);
+ }
+
+ public void selectAllByDocumentID(long documentId, RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColrDao.getDocumentRows(documentId), onSuccess, onError);
+ }
+
+ public void insert(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColrDao.insert(mtbColr),
+ mtbColrId -> onSuccess.run(mtbColrId.intValue()),
+ onError);
+ }
+
+
+ public void update(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColrDao.update(mtbColr),
+ () -> onSuccess.run(mtbColr),
+ onError);
+ }
+
+ public void delete(SqlMtbColr mtbColr, Runnable onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColrDao.delete(mtbColr),
+ onSuccess,
+ onError);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColtDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColtDataSource.java
new file mode 100644
index 00000000..b2eaac80
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/datasource/SqlMtbColtDataSource.java
@@ -0,0 +1,67 @@
+package it.integry.integrywmsnative.core.data_store.db.repository.datasource;
+
+import android.os.Handler;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
+import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
+import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public class SqlMtbColtDataSource extends BaseDataSource implements MtbColtRepository {
+
+ private final MtbColtDao mMtbColtDao;
+
+ @Inject
+ public SqlMtbColtDataSource(ExecutorService executorService,
+ Handler handler,
+ MtbColtDao mtbColtDao) {
+ super(executorService, handler);
+ this.mMtbColtDao = mtbColtDao;
+ }
+
+ public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(mMtbColtDao::getAll, onSuccess, onError);
+ }
+
+ public void insert(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColtDao.insert(mtbColt),
+ mtbColtId -> onSuccess.run(mtbColtId.intValue()),
+ onError);
+ }
+
+
+ public void update(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColtDao.update(mtbColt),
+ () -> onSuccess.run(mtbColt),
+ onError);
+ }
+
+ public void delete(SqlMtbColt mtbColt, Runnable onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColtDao.delete(mtbColt),
+ onSuccess,
+ onError);
+ }
+
+ @Override
+ public void getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc, RunnableArgs> onSuccess, RunnableArgs onError) {
+ execute(() -> mMtbColtDao.getLocalDocumentsByCodDtip(codDtip, codAnag, codVdes, dataDoc, numDoc),
+ onSuccess,
+ onError);
+ }
+
+ @Override
+ public void getNextNumCollo(RunnableArgs onSuccess, RunnableArgs onError) {
+ execute(mMtbColtDao::getNextNumCollo,
+ onSuccess,
+ onError);
+ }
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java
deleted file mode 100644
index cd1c3403..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-import com.annimon.stream.Stream;
-
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
-import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
-import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
-import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-
-public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository {
-
- private final ArticoloOrdineDao mArticoloOrdineDao;
-
- @Inject
- public ArticoliOrdineDataSource(ArticoloOrdineDao articoloOrdineDao) {
- this.mArticoloOrdineDao = articoloOrdineDao;
- }
-
- public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- List toUpdate = new ArrayList<>();
- List toInsert = new ArrayList<>();
- for (ArticoloOrdine art : articoli) {
- if (art.getArticoloOrdineId() != null && art.getArticoloOrdineId() > 0) {
- toUpdate.add(art);
- } else {
- toInsert.add(art);
- }
- }
- for (ArticoloOrdine newArt : toInsert) {
- mArticoloOrdineDao.insert(newArt);
- }
- mArticoloOrdineDao.updateAll(toUpdate);
- onSuccess.run();
-
-
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-
- public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) {
- mArticoloOrdineDao.update(articolo);
- } else {
- mArticoloOrdineDao.insert(articolo);
- }
- onSuccess.run();
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-
- public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode);
- onSuccess.run(articolo);
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-
- public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- String scannedCode = barcode;
- ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode);
- if (articolo == null) {
- articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
- if (articolo == null) {
- scannedCode = StringUtils.leftPad(scannedCode, 13, '0');
- articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
- }
- }
- onSuccess.run(articolo);
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-
- public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onLoad, RunnableArgs onError) {
- execute(() -> {
- try {
- List list = mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId());
- onLoad.run(Stream.of(list).map(x -> {
- ArticoloOrdine art = x.getArticoloOrdine();
- art.setGgScadenza(x.getGgScadenza());
- art.setGiacenza(x.getGiacenza());
- art.setQtaProposta(x.getQtaProposta());
- art.setQtaPrevistaVendita(x.getQtaPrevistaVendita());
- return art;
- }).toList());
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs onError) {
- execute(() -> {
- try {
- mArticoloOrdineDao.delete(articolo);
- onSave.run();
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java
deleted file mode 100644
index b73a9105..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
-import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
-import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-
-public class GrigliaDataSource extends Repository implements GrigliaRepository {
-
- private final GrigliaDao mGrigliaDao;
-
- @Inject
- public GrigliaDataSource(GrigliaDao grigliaDao) {
- this.mGrigliaDao = grigliaDao;
- }
-
- public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mGrigliaDao.getAll());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void findByCodAlis(String codAlis, RunnableArgs onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mGrigliaDao.findByCodAlis(codAlis));
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
-
- public void saveGriglia(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onFail) {
- execute(() -> {
- try {
- if (griglia.getGrigliaId() <= 0) {
- griglia.setGrigliaId((int) mGrigliaDao.insert(griglia));
- } else {
- mGrigliaDao.update(griglia);
- }
- onSuccess.run(griglia.getGrigliaId());
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-
- public void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail) {
- execute(() -> {
- try {
- onLoad.run(mGrigliaDao.findGrigliaById(idGriglia));
- } catch (Exception e) {
- onFail.run(e);
- }
- });
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java
deleted file mode 100644
index 93edfaee..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
-import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
-import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
-import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
-import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-
-public class OrdineDataSource extends Repository implements OrdineRepository {
-
- private OrdineDao mOrdineDao;
-
- @Inject
- public OrdineDataSource(OrdineDao ordineDao) {
- this.mOrdineDao = ordineDao;
- }
-
- public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mOrdineDao.getAll());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mOrdineDao.getAllTrasnmitted());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- Long id = mOrdineDao.insert(ordine);
- onSuccess.run(id.intValue());
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
-
- public void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mOrdineDao.update(ordine);
- onSuccess.run(ordine);
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mOrdineDao.delete(ordine);
- onSuccess.run();
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java
deleted file mode 100644
index 0637fde2..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-public class Repository {
-
-
- public void execute(Runnable query){
- new Thread(query).start();
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java
deleted file mode 100644
index 3ad66cbe..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao;
-import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
-import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-
-public class SqlMtbColrDataSource extends Repository implements MtbColrRepository {
-
- private MtbColrDao mMtbColrDao;
-
- @Inject
- public SqlMtbColrDataSource(MtbColrDao mtbColrDao) {
- this.mMtbColrDao = mtbColrDao;
- }
-
- public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mMtbColrDao.getAll());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void insert(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- Long id = mMtbColrDao.insert(mtbColr);
- onSuccess.run(id.intValue());
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
-
- public void update(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mMtbColrDao.update(mtbColr);
- onSuccess.run(mtbColr);
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- public void delete(SqlMtbColr mtbColr, Runnable onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mMtbColrDao.delete(mtbColr);
- onSuccess.run();
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- public void getDocumentRows(SqlMtbColt document, RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mMtbColrDao.getDocumentRows(document.getId()));
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java
deleted file mode 100644
index 307332be..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.core.data_store.db.dao.MtbColtDao;
-import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
-import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-
-public class SqlMtbColtDataSource extends Repository implements MtbColtRepository {
-
- private MtbColtDao mMtbColtDao;
-
- @Inject
- public SqlMtbColtDataSource(MtbColtDao mtbColtDao) {
- this.mMtbColtDao = mtbColtDao;
- }
-
- public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mMtbColtDao.getAll());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- public void insert(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- Long id = mMtbColtDao.insert(mtbColt);
- onSuccess.run(id.intValue());
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
-
- public void update(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mMtbColtDao.update(mtbColt);
- onSuccess.run(mtbColt);
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- public void delete(SqlMtbColt mtbColt, Runnable onSuccess, RunnableArgs onError) {
- execute(() -> {
- try {
- mMtbColtDao.delete(mtbColt);
- onSuccess.run();
- } catch (Exception e) {
- onError.run(e);
- }
- });
- }
-
- @Override
- public void getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc, RunnableArgs> onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mMtbColtDao.getLocalDocumentsByCodDtip(codDtip,codAnag,codVdes,dataDoc,numDoc));
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
- @Override
- public void getNextNumCollo(RunnableArgs onSuccess, RunnableArgs onError) {
- Runnable query = () -> {
- try {
- onSuccess.run(mMtbColtDao.getNextNumCollo());
- } catch (Exception e) {
- onError.run(e);
- }
- };
- execute(query);
- }
-
-
-}
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
new file mode 100644
index 00000000..bc729191
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
@@ -0,0 +1,67 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new;
+
+import android.os.Handler;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import io.reactivex.rxjava3.schedulers.Schedulers;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRoomDTO;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.data_source.InventarioLocalDataSource;
+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;
+
+public class InventarioRepository extends _BaseRepository {
+
+ private final Handler handler;
+
+ private final MutableLiveData> internalLiveData = new MutableLiveData<>();
+
+ @Inject
+ public InventarioRepository(InventarioLocalDataSource localDataSource,
+ InventarioRESTConsumer remoteDataSource,
+ InventarioMapper dataMapper,
+ Handler handler) {
+ super(dataMapper, localDataSource, remoteDataSource);
+ this.handler = handler;
+ }
+
+
+ public LiveData> retrieve() {
+ localDataSource.makeSynchronousRetrieveAllLive(false)
+ .observeOn(Schedulers.io())
+ .subscribe(internalLiveData::postValue);
+// refresh(onComplete, onError);
+
+ return internalLiveData;
+ }
+
+
+ public void insert(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs onError) {
+ localDataSource.makeInsertRequest(inventarioDTO, localResult -> {
+ if (onComplete != null) handler.post(onComplete);
+ }, onError);
+ }
+
+ public void export(InventarioRoomDTO inventarioDTO, Runnable onComplete, RunnableArgs onError) {
+ remoteDataSource.makeInsertRequest(dataMapper.mapRoomToRest(inventarioDTO), () -> {
+ inventarioDTO.setRemoteSyncDate(new Date());
+
+ localDataSource.makeUpdateRequest(inventarioDTO, (ignored) -> {
+ handler.post(onComplete);
+ }, onError);
+ }, 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/data_store/db/respository_new/InventarioRowRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRowRepository.java
new file mode 100644
index 00000000..62b0bfd5
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRowRepository.java
@@ -0,0 +1,64 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new;
+
+import android.os.Handler;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import io.reactivex.rxjava3.schedulers.Schedulers;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDTO;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.data_source.InventarioRowLocalDataSource;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.mapper.InventarioRowMapper;
+import it.integry.integrywmsnative.core.model.MtbInvenr;
+import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
+
+public class InventarioRowRepository extends _BaseRepository {
+
+ private final Handler handler;
+ private final MutableLiveData> internalLiveData = new MutableLiveData<>();
+
+ @Inject
+ public InventarioRowRepository(InventarioRowLocalDataSource localDataSource,
+ InventarioRESTConsumer remoteDataSource,
+ InventarioRowMapper dataMapper,
+ Handler handler) {
+ super(dataMapper, localDataSource, remoteDataSource);
+ this.handler = handler;
+ }
+
+
+ public LiveData> retrieve(long parentId) {
+ localDataSource.makeSynchronousRetrieveAllLive(parentId, true, false)
+ .observeOn(Schedulers.io())
+ .subscribe(internalLiveData::postValue);
+// refresh(onComplete, onError);
+
+ return internalLiveData;
+ }
+
+
+ public void insert(InventarioRowRoomDTO inventarioRowDTO, Runnable onComplete, RunnableArgs onError) {
+ localDataSource.makeInsertRequest(inventarioRowDTO, localResult -> {
+ if (onComplete != null) handler.post(onComplete);
+ }, onError);
+ }
+
+
+ public void delete(InventarioRowRoomDTO inventarioRowDTO, Runnable onComplete, RunnableArgs onError) {
+ localDataSource.makeDeleteRequest(inventarioRowDTO, onComplete, onError);
+ }
+
+
+ public void update(InventarioRowRoomDTO inventarioRowDTO, Runnable onComplete, RunnableArgs onError) {
+ inventarioRowDTO.setRemoteSyncDate(null);
+
+ localDataSource.makeUpdateRequest(inventarioRowDTO, localResult -> {
+ if (onComplete != null) handler.post(onComplete);
+ }, onError);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java
new file mode 100644
index 00000000..f5d52879
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java
@@ -0,0 +1,80 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import it.integry.integrywmsnative.core.data_store.db.entity.BaseSyncDTO;
+import it.integry.integrywmsnative.core.data_store.db.respository_new.data_source._BaseRoomDataSource;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.expansion.RunnableArgssWithReturn;
+import it.integry.integrywmsnative.core.mapper.BaseMapper;
+import it.integry.integrywmsnative.core.model.BaseRestDTO;
+import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
+
+public abstract class _BaseRepository<
+ A extends BaseRestDTO,
+ B extends BaseSyncDTO,
+ T extends BaseMapper,
+ U extends _BaseRoomDataSource,
+ V extends _BaseRESTConsumer> {
+
+ protected final T dataMapper;
+ protected final U localDataSource;
+ protected final V remoteDataSource;
+
+ public _BaseRepository(T dataMapper, U localDataSource, V remoteDataSource) {
+ this.dataMapper = dataMapper;
+ this.localDataSource = localDataSource;
+ this.remoteDataSource = remoteDataSource;
+ }
+
+ protected void resolveFetch(List remoteData,
+ List localData,
+ RunnableArgssWithReturn keyComparator,
+ RunnableArgss dataCopy,
+ Runnable onComplete,
+ RunnableArgs onError) {
+ List finalRemoteData = dataMapper.mapRestsToRooms(remoteData);
+
+ if (localData == null) localData = new ArrayList<>();
+ List finalLocalData = localData;
+
+ for (var x : finalRemoteData) {
+ var matched = finalLocalData.stream().filter(y -> keyComparator.run(y, x))
+ .findFirst()
+ .orElse(null);
+
+ if (matched != null) {
+ x.setId(matched.getId());
+ dataCopy.run(x, matched);
+ }
+ }
+
+
+ var dataToUpdate = finalRemoteData.stream()
+ .filter(x -> x.getId() != null && finalLocalData.stream().noneMatch(x::equals))
+ .collect(Collectors.toList());
+
+ var dataToDelete = finalLocalData.stream()
+ .filter(x -> x.isSyncronized() && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x)))
+ .collect(Collectors.toList());
+
+ var dataToInsert = finalRemoteData.stream()
+ .filter(x -> x.getId() == null)
+ .collect(Collectors.toList());
+
+
+ localDataSource.makeUpdateAllRequest(dataToUpdate, localUpdateResult -> {
+
+ localDataSource.makeDeleteAllRequest(dataToDelete, () -> {
+
+ localDataSource.makeInsertAllRequest(dataToInsert, onComplete, onError);
+
+ }, onError);
+
+ }, onError);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioLocalDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioLocalDataSource.java
new file mode 100644
index 00000000..4b9581e9
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioLocalDataSource.java
@@ -0,0 +1,32 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new.data_source;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import io.reactivex.rxjava3.core.Flowable;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRoomDTO;
+
+@Singleton
+public class InventarioLocalDataSource extends _BaseRoomDataSource {
+
+ @Inject
+ public InventarioLocalDataSource(ExecutorService executorService, InventarioDao entityDao) {
+ super(executorService, entityDao, InventarioRoomDTO.TABLE_NAME);
+ }
+
+ @Override
+ public List makeSynchronousRetrieveAllRequest(boolean onlyToBeSync) {
+ return entityDao
+ .selectAll(onlyToBeSync);
+ }
+
+ @Override
+ public Flowable> makeSynchronousRetrieveAllLive(boolean onlyToBeSync) {
+ return entityDao
+ .selectAllFlowable(onlyToBeSync);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioRowLocalDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioRowLocalDataSource.java
new file mode 100644
index 00000000..385ec16c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/InventarioRowLocalDataSource.java
@@ -0,0 +1,37 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new.data_source;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import io.reactivex.rxjava3.core.Flowable;
+import it.integry.integrywmsnative.core.data_store.db.dao.InventarioRowDao;
+import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDTO;
+
+@Singleton
+public class InventarioRowLocalDataSource extends _BaseRoomDataSource {
+
+ @Inject
+ public InventarioRowLocalDataSource(ExecutorService executorService, InventarioRowDao entityDao) {
+ super(executorService, entityDao, InventarioRowRoomDTO.TABLE_NAME);
+ }
+
+ @Override
+ public List makeSynchronousRetrieveAllRequest(boolean onlyToBeSync) {
+ return entityDao
+ .selectAll(onlyToBeSync);
+ }
+
+ @Override
+ public Flowable> makeSynchronousRetrieveAllLive(boolean onlyToBeSync) {
+ return entityDao
+ .selectAllFlowable(-1, false, onlyToBeSync);
+ }
+
+ public Flowable> makeSynchronousRetrieveAllLive(long parentId, boolean reversed, boolean onlyToBeSync) {
+ return entityDao
+ .selectAllFlowable(parentId, reversed, onlyToBeSync);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/_BaseRoomDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/_BaseRoomDataSource.java
new file mode 100644
index 00000000..a14ea1c4
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/data_source/_BaseRoomDataSource.java
@@ -0,0 +1,175 @@
+package it.integry.integrywmsnative.core.data_store.db.respository_new.data_source;
+
+import androidx.annotation.NonNull;
+import androidx.sqlite.db.SimpleSQLiteQuery;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+
+import io.reactivex.rxjava3.core.Flowable;
+import it.integry.integrywmsnative.core.data_store.db.entity.BaseSyncDTO;
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityDaoInterface;
+import it.integry.integrywmsnative.core.data_store.db.interfaces.EntityModelInterface;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+
+public abstract class _BaseRoomDataSource> {
+
+ protected final ExecutorService executorService;
+ protected final T entityDao;
+
+ protected final String TABLE_NAME;
+
+ public _BaseRoomDataSource(ExecutorService executorService, T entityDao, String tableName) {
+ this.executorService = executorService;
+ this.entityDao = entityDao;
+ this.TABLE_NAME = tableName;
+ }
+
+
+ public void makeRetrieveAllRequest(boolean onlyToBeSync, final RunnableArgs> onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ if (onComplete != null)
+ onComplete.run(makeSynchronousRetrieveAllRequest(onlyToBeSync));
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public abstract List makeSynchronousRetrieveAllRequest(boolean onlyToBeSync);
+
+ public abstract Flowable> makeSynchronousRetrieveAllLive(boolean onlyToBeSync);
+
+
+ public void makeInsertAllRequest(final List itemsToInsert, final Runnable onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ makeSynchronousInsertAllRequest(itemsToInsert);
+ if (onComplete != null) onComplete.run();
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public void makeSynchronousInsertAllRequest(final List itemsToInsert) {
+ if(itemsToInsert == null) return;
+
+ var ids = entityDao.insertAll(itemsToInsert);
+
+ for(int i = 0; i < itemsToInsert.size(); i++) {
+ var inputObject = itemsToInsert.get(i);
+
+ if (inputObject instanceof EntityModelInterface) {
+ ((EntityModelInterface) inputObject).setId(ids.get(i));
+ }
+ }
+ }
+
+
+ public void makeInsertRequest(final R itemToInsert, final RunnableArgs onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ makeSynchronousInsertRequest(itemToInsert);
+ if (onComplete != null) onComplete.run(itemToInsert);
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public void makeSynchronousInsertRequest(final R itemToInsert) {
+ var id = entityDao.insert(itemToInsert);
+
+ if (itemToInsert instanceof EntityModelInterface) {
+ ((EntityModelInterface) itemToInsert).setId(id);
+ }
+ }
+
+
+ public void makeUpdateRequest(final R itemToUpdate, final RunnableArgs onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ makeSynchronousUpdateRequest(itemToUpdate);
+ if (onComplete != null) onComplete.run(itemToUpdate);
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public void makeSynchronousUpdateRequest(final R itemToUpdate) {
+ var id = entityDao.update(itemToUpdate);
+ }
+
+
+ public void makeUpdateAllRequest(final List itemToUpdate, final RunnableArgs> onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ makeSynchronousUpdateAllRequest(itemToUpdate);
+ if (onComplete != null) onComplete.run(itemToUpdate);
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public void makeSynchronousUpdateAllRequest(final List itemsToUpdate) {
+ if(itemsToUpdate == null) return;
+ entityDao.updateAll(itemsToUpdate);
+ }
+
+
+ public void makeDeleteRequest(@NonNull final R itemToDelete, final Runnable onComplete, final RunnableArgs onError) {
+ executorService.execute(() -> {
+ try {
+ makeSynchronousDeleteRequest(itemToDelete);
+ if (onComplete != null) onComplete.run();
+ } catch (Exception ex) {
+ if (onError != null) onError.run(ex);
+ }
+ });
+ }
+
+ public void makeSynchronousDeleteRequest(@NonNull final R itemToDelete) {
+ entityDao.delete(itemToDelete);
+ }
+
+
+ public void makeDeleteAllRequest(@NonNull final List itemsToDelete, final Runnable onComplete, final RunnableArgs