diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 00000000..4a53bee8
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/18.json b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/18.json
index cab85d70..f62dface 100644
--- a/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/18.json
+++ b/app/schemas/it.integry.integrywmsnative.core.data_store.db.AppDatabase/18.json
@@ -2,7 +2,7 @@
"formatVersion": 1,
"database": {
"version": 18,
- "identityHash": "68c96a8a7f0f544255553297d0206576",
+ "identityHash": "720c67adcc3f947a0c0ce04d4d04fbe9",
"entities": [
{
"tableName": "articoli_griglia",
@@ -1208,7 +1208,7 @@
},
{
"tableName": "verifica_giacenze_rows",
- "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`parent_id` INTEGER, `created_at` INTEGER DEFAULT CURRENT_TIMESTAMP, `cod_mart` TEXT, `partita_mag` TEXT, `descrizione` TEXT, `qta` REAL NOT NULL DEFAULT 0, `num_cnf` REAL NOT NULL DEFAULT 0, `qta_cnf` REAL NOT NULL DEFAULT 0, `scan_cod_barre` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remote_sync_date` INTEGER, FOREIGN KEY(`parent_id`) REFERENCES `verifica_giacenze`(`_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
+ "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`parent_id` INTEGER, `created_at` INTEGER DEFAULT CURRENT_TIMESTAMP, `cod_mart` TEXT, `partita_mag` TEXT, `descrizione` TEXT, `qta_in_giacenza` REAL NOT NULL DEFAULT 0, `qta` REAL NOT NULL DEFAULT 0, `num_cnf` REAL NOT NULL DEFAULT 0, `qta_cnf` REAL NOT NULL DEFAULT 0, `scan_cod_barre` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT, `remote_sync_date` INTEGER, FOREIGN KEY(`parent_id`) REFERENCES `verifica_giacenze`(`_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields": [
{
"fieldPath": "parentId",
@@ -1241,6 +1241,13 @@
"affinity": "TEXT",
"notNull": false
},
+ {
+ "fieldPath": "qtaInGiacenza",
+ "columnName": "qta_in_giacenza",
+ "affinity": "REAL",
+ "notNull": true,
+ "defaultValue": "0"
+ },
{
"fieldPath": "qta",
"columnName": "qta",
@@ -1325,7 +1332,7 @@
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
- "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '68c96a8a7f0f544255553297d0206576')"
+ "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '720c67adcc3f947a0c0ce04d4d04fbe9')"
]
}
}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
index 36812bd0..42d3fe1b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
@@ -49,14 +49,14 @@ public class MainContext {
//this.initAuthSession(() -> {
- this.initDeviceId(() -> {
+// this.initDeviceId(() -> {
this.initDBData(() -> {
this.initMenu(() -> {
if (mListener != null) mListener.onContextInitialized();
});
});
- });
+// });
//});
@@ -96,9 +96,9 @@ public class MainContext {
SettingsManager.i().getUserSession().setDeviceId(fid.getResult());
SettingsManager.update();
- systemRESTConsumer.registerDevice(onComplete, ex -> {
- if (mListener != null) mListener.onError(new SpannedString(ex.getMessage()));
- });
+// systemRESTConsumer.registerDevice(onComplete, ex -> {
+// if (mListener != null) mListener.onError(new SpannedString(ex.getMessage()));
+// });
});
}
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 a01de563..f95d568b 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
@@ -206,6 +206,7 @@ public abstract class AppDatabase extends RoomDatabase {
"cod_mart TEXT, " +
"partita_mag TEXT, " +
"descrizione TEXT, " +
+ "qta_in_giacenza REAL NOT NULL DEFAULT 0, " +
"qta REAL NOT NULL DEFAULT 0, " +
"num_cnf REAL NOT NULL DEFAULT 0, " +
"qta_cnf REAL NOT NULL DEFAULT 0, " +
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/VerificaGiacenzeRowEntity.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/VerificaGiacenzeRowEntity.java
index 0ed5d576..4267420b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/VerificaGiacenzeRowEntity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/VerificaGiacenzeRowEntity.java
@@ -33,6 +33,7 @@ public class VerificaGiacenzeRowEntity extends BaseSyncDTO implements EntityMode
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_IN_GIACENZA = "qta_in_giacenza";
public static final String QTA = "qta";
public static final String NUM_CNF = "num_cnf";
public static final String QTA_CNF = "qta_cnf";
@@ -54,6 +55,10 @@ public class VerificaGiacenzeRowEntity extends BaseSyncDTO implements EntityMode
@ColumnInfo(name = Columns.DESCRIZIONE)
private String descrizione;
+ @NonNull
+ @ColumnInfo(name = Columns.QTA_IN_GIACENZA, defaultValue = "0")
+ private BigDecimal qtaInGiacenza;
+
@NonNull
@ColumnInfo(name = Columns.QTA, defaultValue = "0")
private BigDecimal qta;
@@ -110,6 +115,15 @@ public class VerificaGiacenzeRowEntity extends BaseSyncDTO implements EntityMode
this.descrizione = descrizione;
}
+ @NonNull
+ public BigDecimal getQtaInGiacenza() {
+ return qtaInGiacenza;
+ }
+
+ public void setQtaInGiacenza(@NonNull BigDecimal qtaInGiacenza) {
+ this.qtaInGiacenza = qtaInGiacenza;
+ }
+
@NonNull
public BigDecimal getQta() {
return qta;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/mapper/VerificaGiacenzeRowMapper.java b/app/src/main/java/it/integry/integrywmsnative/core/mapper/VerificaGiacenzeRowMapper.java
index 5540fc17..dccfad7d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/mapper/VerificaGiacenzeRowMapper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/mapper/VerificaGiacenzeRowMapper.java
@@ -15,6 +15,7 @@ public class VerificaGiacenzeRowMapper extends BaseMapper onFailed) {
- RegisterDeviceRequestDTO registerDeviceRequestDTO = new RegisterDeviceRequestDTO()
- .setApp("WMS");
-
- SystemRESTConsumerService systemRESTConsumerService = restBuilder.getService(SystemRESTConsumerService.class);
- systemRESTConsumerService.registerDevice(registerDeviceRequestDTO)
- .enqueue(new ManagedErrorCallback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "device/register", Void -> onSuccess.run(), onFailed);
- }
-
- @Override
- public void onFailure(Call> call, @NonNull final Exception e) {
- onFailed.run(e);
- }
- });
-
- }
-
public T processSqlSynchronized(String nativeSql, final Type clazz) throws Exception {
NativeSqlRequestDTO nativeSqlDTO = new NativeSqlRequestDTO()
.setNativeSql(nativeSql);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumerService.java
index 97e88112..bafaed7a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumerService.java
@@ -7,7 +7,6 @@ import it.integry.integrywmsnative.core.rest.model.MailRequestDTO;
import it.integry.integrywmsnative.core.rest.model.NativeSqlRequestDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.system.LatestAppVersionInfoDTO;
-import it.integry.integrywmsnative.core.rest.model.system.RegisterDeviceRequestDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
@@ -19,9 +18,6 @@ public interface SystemRESTConsumerService {
@GET("wms/currentVersion")
Call retrieveUpdatesInfo(@Query("suffix") String suffix);
- @POST("device/register")
- Call> registerDevice(@Body RegisterDeviceRequestDTO registerDeviceRequestDTO);
-
@POST("processSql")
Call> processSql(@Body NativeSqlRequestDTO nativeSqlDTO);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/pv/VerificaGiacenzeRowDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/pv/VerificaGiacenzeRowDTO.java
index 3a045797..be97510a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/pv/VerificaGiacenzeRowDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/pv/VerificaGiacenzeRowDTO.java
@@ -8,6 +8,7 @@ public class VerificaGiacenzeRowDTO extends BaseRestDTO {
private String codMart;
private String partitaMag;
+ private BigDecimal qtaInGiacenza;
private BigDecimal qta;
private BigDecimal qtaCnf;
private BigDecimal numCnf;
@@ -31,6 +32,14 @@ public class VerificaGiacenzeRowDTO extends BaseRestDTO {
return this;
}
+ public BigDecimal getQtaInGiacenza() {
+ return qtaInGiacenza;
+ }
+
+ public void setQtaInGiacenza(BigDecimal qtaInGiacenza) {
+ this.qtaInGiacenza = qtaInGiacenza;
+ }
+
public BigDecimal getQta() {
return qta;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/system/RegisterDeviceRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/system/RegisterDeviceRequestDTO.java
deleted file mode 100644
index c7b75a62..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/system/RegisterDeviceRequestDTO.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.core.rest.model.system;
-
-public class RegisterDeviceRequestDTO {
-
- private String app;
-
- public String getApp() {
- return app;
- }
-
- public RegisterDeviceRequestDTO setApp(String app) {
- this.app = app;
- return this;
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java
index 0a1562ec..5b2c6f19 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeFragment.java
@@ -141,6 +141,13 @@ public class VerificaGiacenzeFragment extends BaseFragment implements ITitledFra
this.initRecyclerView();
this.initBarcodeReader();
+
+
+ this.onLoadingStarted();
+ executorService.execute(() -> {
+ mViewModel.randomizeElements(2000);
+ this.onLoadingEnded();
+ });
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java
index 11d6b7f7..7433c52b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java
@@ -114,6 +114,40 @@ public class VerificaGiacenzeViewModel {
currentLoadedAnagrafiche.forEach(x -> x.setFlagTracciabilita("N"));
}
+ public void randomizeElements(int elementsCount) {
+
+ for(int i = 0; i < elementsCount; i++) {
+ var randomIndex = (int) (Math.random() * currentLoadedAnagrafiche.size());
+ var randomAnagrafica = currentLoadedAnagrafiche.get(randomIndex);
+
+ var foundGiacenza = currentLoadedGiacenza.parallelStream()
+ .filter(x -> x.getCodMart().equalsIgnoreCase(randomAnagrafica.getCodMart()))
+ .findFirst()
+ .orElse(null);
+ var qtaGiacenza = foundGiacenza != null ? foundGiacenza.getQtaInv() : BigDecimal.ZERO;
+
+ var rowToInsert = new VerificaGiacenzeRowEntity();
+ rowToInsert.setParentId(currentVerifica.getValue().getId());
+ rowToInsert.setCodMart(randomAnagrafica.getCodMart());
+ rowToInsert.setDescrizione(randomAnagrafica.getDescrizione());
+ rowToInsert.setScanCodBarre(randomAnagrafica.getBarCode());
+ rowToInsert.setNumConf(BigDecimal.valueOf((int) (Math.random() * 100)));
+ rowToInsert.setQtaConf(randomAnagrafica.getQtaCnf());
+ rowToInsert.setQta(UtilityBigDecimal.multiply(rowToInsert.getNumConf(), randomAnagrafica.getQtaCnf()));
+ rowToInsert.setQtaInGiacenza(qtaGiacenza);
+
+
+ insertRow(rowToInsert);
+
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ }
+
public void createNew(String codMdep) {
var verificaGiacenzeEntity = new VerificaGiacenzeEntity();
verificaGiacenzeEntity.setCodMdep(codMdep);
@@ -134,6 +168,11 @@ public class VerificaGiacenzeViewModel {
public void save() throws Exception {
+ if(currentVerificaRows.getValue().isEmpty()) {
+ delete();
+ return;
+ }
+
currentVerifica.getValue().setVerificaGiacenzeRowList(currentVerificaRows.getValue());
SaveNewVerificaRequestDTO saveRequest = new SaveNewVerificaRequestDTO()
@@ -223,6 +262,7 @@ public class VerificaGiacenzeViewModel {
rowToSave.setNumConf(pickedQuantity.getNumCnf());
rowToSave.setQtaConf(pickedQuantity.getQtaCnf());
rowToSave.setQta(pickedQuantity.getQtaTot());
+ rowToSave.setQtaInGiacenza(qtaGiacenza);
if (isNewRow) {
insertRow(rowToSave);