From afc2aef691f3671ab43f837207d15c7d01e46abe Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 29 Jun 2023 18:47:10 +0200 Subject: [PATCH 1/2] Implementato flag per abilitare/disabilitare cache degli inventari --- .../db/respository_new/InventarioRepository.java | 4 +++- .../data_store/db/respository_new/_BaseRepository.java | 7 +++++-- .../core/settings/DBSettingsModel.java | 10 ++++++++++ .../core/settings/SettingsManager.java | 5 +++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java index bc3b8bbe..cc005c21 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java @@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.mapper.InventarioMapper; import it.integry.integrywmsnative.core.model.MtbInvent; import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityLiveData; public class InventarioRepository extends _BaseRepository { @@ -73,7 +74,8 @@ public class InventarioRepository extends _BaseRepository { remoteItem.setRemoteSyncDate(localItem.getRemoteSyncDate()); remoteItem.setNew(false); - }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex))); + }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex)), + SettingsManager.iDB().isFlagIsInventarioCacheEnabled()); } catch (Exception e) { 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 index f5d52879..c320476a 100644 --- 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 @@ -35,7 +35,8 @@ public abstract class _BaseRepository< RunnableArgssWithReturn keyComparator, RunnableArgss dataCopy, Runnable onComplete, - RunnableArgs onError) { + RunnableArgs onError, + boolean isCacheEnabled) { List finalRemoteData = dataMapper.mapRestsToRooms(remoteData); if (localData == null) localData = new ArrayList<>(); @@ -53,12 +54,14 @@ public abstract class _BaseRepository< } + + 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))) + .filter(x -> (!isCacheEnabled || x.isSyncronized()) && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x))) .collect(Collectors.toList()); var dataToInsert = finalRemoteData.stream() diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 5a052dd5..461226c8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -61,6 +61,7 @@ public class DBSettingsModel { private boolean flagShouldAskToCreateOrUpdateRowInventario = false; private String commessaMagazzino; private boolean flagGeneraDocumentoSpedizione = false; + private boolean flagIsInventarioCacheEnabled = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -476,4 +477,13 @@ public class DBSettingsModel { this.flagGeneraDocumentoSpedizione = flagGeneraDocumentoSpedizione; return this; } + + public boolean isFlagIsInventarioCacheEnabled() { + return flagIsInventarioCacheEnabled; + } + + public DBSettingsModel setFlagIsInventarioCacheEnabled(boolean flagIsInventarioCacheEnabled) { + this.flagIsInventarioCacheEnabled = flagIsInventarioCacheEnabled; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 6d1625ca..31916bd5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -376,6 +376,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("INVENTARIO") .setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("INVENTARIO") + .setKeySection("ENABLE_OFFLINE_CACHE")); stbGestSetupList.add(new StbGestSetup() .setGestName("PICKING") .setSection("SETUP") @@ -424,6 +428,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE)); dbSettingsModelIstance.setCommessaMagazzino(getValueFromList(list, "SETUP", "COMMESSA_MAGAZZINO", String.class, CommonConst.Config.COMMESSA_MAG)); dbSettingsModelIstance.setFlagGeneraDocumentoSpedizione(getValueFromList(list, "SPEDIZIONE", "GENERA_DOC", Boolean.class, Boolean.FALSE)); + dbSettingsModelIstance.setFlagIsInventarioCacheEnabled(getValueFromList(list, "INVENTARIO", "ENABLE_OFFLINE_CACHE", Boolean.class, Boolean.FALSE)); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); if (notePerdita != null) From 589a179a1b4b2dd3b2eeb250f936cd104cabc216 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 29 Jun 2023 18:47:46 +0200 Subject: [PATCH 2/2] -> v1.34.02 (386) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 410d339b..c445c335 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 385 - def appVersionName = '1.34.01' + def appVersionCode = 386 + def appVersionName = '1.34.02' signingConfigs { release {