From adc7343352c6bed46ab425d4d621f21d58469a38 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 12 Mar 2021 17:05:20 +0100 Subject: [PATCH] Implementato flag per impostare automaticamente la qta ordinata in fase di picking per Spedizione. Migliorata gestione dell'update dei campi nel caso si scansiona un ean con peso in fase di inserimento qta. --- .../core/settings/DBSettingsModel.java | 10 +++++++++ .../core/settings/SettingsManager.java | 5 +++++ .../gest/spedizione/SpedizioneActivity.java | 4 +++- .../gest/spedizione/SpedizioneViewModel.java | 9 ++++++-- .../DialogInputQuantityV2ViewModel.java | 21 ++++++++++++++++--- 5 files changed, 43 insertions(+), 6 deletions(-) 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 080ec666..e639a508 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 @@ -33,6 +33,7 @@ public class DBSettingsModel { private boolean flagForceAllToColli; private boolean flagSpedizioneEnableManualPick; private boolean flagSpedizioneCanSelectMultipleOrders; + private boolean flagSpedizioneUseQtaOrd; private String produzioneDefaultCodAnag; private String reportNameSpedizionChiudiOrdine; @@ -234,6 +235,15 @@ public class DBSettingsModel { return this; } + public boolean isFlagSpedizioneUseQtaOrd() { + return flagSpedizioneUseQtaOrd; + } + + public DBSettingsModel setFlagSpedizioneUseQtaOrd(boolean flagSpedizioneUseQtaOrd) { + this.flagSpedizioneUseQtaOrd = flagSpedizioneUseQtaOrd; + return this; + } + public String getProduzioneDefaultCodAnag() { return produzioneDefaultCodAnag; } 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 0f4f626f..7c6472f6 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 @@ -258,6 +258,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("SPEDIZIONE") .setKeySection("REPORT_PACKING_LIST")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SPEDIZIONE") + .setKeySection("FLAG_USE_QTA_ORD")); GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { @@ -281,6 +285,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class)); dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class)); + dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); if(onComplete != null) onComplete.run(); }, onFailed); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index 0af39985..a34f829d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -198,6 +198,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV(); boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione(); boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione(); + boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd(); if (mEnableGiacenza) this.openProgress(); mViewmodel.init( @@ -211,7 +212,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo mColliRegistrati, reportNameSpedizioneChiudiOrdine, mGestioneCol, mSegnoCol, mDefaultCausaleUL, - mEnableQuantityReset); + mEnableQuantityReset, + useQtaOrd); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index 6d50da2d..8aea1110 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -95,6 +95,7 @@ public class SpedizioneViewModel { private String mReportNameSpedizioneChiudiOrdine; private boolean mIsNewLU; private boolean mEnableQuantityReset; + private boolean mUseQtaOrd; private MtbColt mCurrentMtbColt = null; @@ -137,7 +138,8 @@ public class SpedizioneViewModel { GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL, - boolean enableQuantityReset) { + boolean enableQuantityReset, + boolean useQtaOrd) { this.sendOnLoadingStarted(); this.mDefaultCodMdep = codMdep; @@ -150,6 +152,7 @@ public class SpedizioneViewModel { this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine; this.mDefaultCausaleOfUL = defaultCausaleUL; this.mEnableQuantityReset = enableQuantityReset; + this.mUseQtaOrd = useQtaOrd; if (enableGiacenza) { mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> { @@ -900,7 +903,9 @@ public class SpedizioneViewModel { this.sendOnItemDispatched( pickingObjectDTO, pickingObjectDTO.getMtbAart(), - null, null, null, + mUseQtaOrd ? numCnfDaPrelevare : null, + mUseQtaOrd ? qtaCnfDaPrelevare : null, + mUseQtaOrd ? qtaColDaPrelevare : null, qtaDaEvadere, numCnfDaEvadere, qtaCnfDaEvadere, diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java index 0412ed7e..01e42d36 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java @@ -160,6 +160,9 @@ public class DialogInputQuantityV2ViewModel { this.setNumCnf(BigDecimal.ONE); this.setQtaCnf(UtilityBigDecimal.divide(this.getQtaTot(), this.getNumCnf())); } + + this.unlockNumCnf(); + this.unlockQtaCnf(); } this.mListener.onDataChanged(); @@ -289,10 +292,10 @@ public class DialogInputQuantityV2ViewModel { // return; } - if (!this.blockedQtaTot.get() && this.internalQtaCnf != null) - this.internalQtaTot = UtilityBigDecimal.multiply(newValue, this.internalQtaCnf); - else if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalQtaTot != null) + if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalQtaTot != null) this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalQtaTot); + else if (!this.blockedQtaTot.get() && this.internalQtaCnf != null) + this.internalQtaTot = UtilityBigDecimal.multiply(newValue, this.internalQtaCnf); this.mListener.onDataChanged(); } @@ -336,6 +339,18 @@ public class DialogInputQuantityV2ViewModel { this.mListener.onDataChanged(); } + private void unlockNumCnf() { + this.blockedNumCnf.set(false); + } + + private void unlockQtaCnf() { + this.blockedQtaCnf.set(false); + } + + private void unlockQtaCol() { + this.blockedQtaTot.set(false); + } + public boolean validate() { if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {