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)) {