From 0dd662518e6e264a5205898d65c47eef93c89de0 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Wed, 8 Jun 2022 12:26:20 +0200 Subject: [PATCH] =?UTF-8?q?In=20versamento=20se=20si=20versa=20una=20pedan?= =?UTF-8?q?a=20gi=C3=A0=20versata=20l'app=20crasha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit permettere il versamento di un articolo non compatibile con gli ordini aperti dopo richiesta conferma precompilare input risorse da allocare in input qta mantenere fissa la qtaCnf in entrambe le direzioni di calcolo togliere popup di notifica versamento completato --- .../core/settings/DBSettingsModel.java | 10 +++++++ .../core/settings/SettingsManager.java | 9 ++++++ .../ProdDettaglioLineaActivity.java | 30 +++++++++++++++++-- .../ProdDettaglioLineaViewModel.java | 13 ++++---- .../ProdLineeProduzioneFragment.java | 2 +- .../DialogInputQuantityV2View.java | 11 ++----- .../DialogInputQuantityV2ViewModel.java | 24 +++++++++++---- .../res/layout/dialog_input_quantity_v2.xml | 2 +- 8 files changed, 79 insertions(+), 22 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 b36c11e2..619ec067 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 @@ -45,6 +45,7 @@ public class DBSettingsModel { private boolean flagPrintPackingListOnOrderClose; private boolean flagPrintEtichetteOnOrderClose; private int onNumCnfInputChanged = 1; + private int onQtaTotInputChanged = 1; private boolean flagAccettazioneUseQtaOrd = false; private boolean flagPickLiberoAllowEmptyDest = false; @@ -309,6 +310,15 @@ public class DBSettingsModel { return this; } + public int getOnQtaTotInputChanged() { + return onQtaTotInputChanged; + } + + public DBSettingsModel setOnQtaTotInputChanged(int onQtaTotInputChanged) { + this.onQtaTotInputChanged = onQtaTotInputChanged; + return this; + } + public List getNotePerditaDocInterni() { return notePerditaDocInterni; } 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 80b4447f..34423a2b 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 @@ -278,6 +278,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("SETUP") .setKeySection("ON_NUM_CNF_INPUT_CHANGED")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("SETUP") + .setKeySection("ON_QTA_TOT_INPUT_CHANGED")); stbGestSetupList.add(new StbGestSetup() .setGestName("PVM") .setSection("DOC_INTERNI") @@ -339,6 +343,11 @@ public class SettingsManager { if (onNumCnfInputChanged != null) { dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged); } + + Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class); + if (onQtaTotInputChanged != null) { + dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged); + } String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", codMdep, (value) -> { dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(value); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java index 17b95d99..015a646f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaActivity.java @@ -28,6 +28,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.databinding.ActivityProdDettaglioLineaBinding; import it.integry.integrywmsnative.gest.prod_dettaglio_linea.dialogs.BottomSheetLineAction; import it.integry.integrywmsnative.gest.prod_dettaglio_linea.dialogs.DialogStartProduction; @@ -141,11 +142,28 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett return true; } - + @Override public void onSettingsRequest(ProdLineStatusDTO lineaProd) { BottomSheetLineAction.newInstance(lineaProd, this::requestResources, this::requestOrderChange, this::requestProductionStop, this::requestMaterialRecover, BarcodeManager::enable).show(getSupportFragmentManager(), "BottomSheetLineAction"); } + @Override + public void confirmInconsistentDeposit(Runnable onConfirm) { + this.runOnUiThread(() -> { + DialogSimpleMessageView.makeWarningDialog( + Html.fromHtml("L'articolo che si vuole versare non è compatibile con nessun ordine presente sulla linea!" + + "

" + + "Vuoi versarlo comunque?"), + null, + onConfirm, + () -> { + onLoadingEnded(); + BarcodeManager.enable(); + } + ).show(getSupportFragmentManager(), "confirmOrderClose"); + }); + } + @Override public void requestQtaVersamento(MtbColr mtbColr, RunnableArgs onComplete) { @@ -218,7 +236,7 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett BarcodeManager.disable(); this.runOnUiThread(() -> { - DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il numero di risorse da allocare", qta -> { + DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il numero di risorse da allocare", this.hrNum.get(), "n. risorse", qta -> { this.onLoadingStarted(); try { Integer hrNum = Integer.parseInt(qta); @@ -279,6 +297,14 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett } + @Override + public void showToast(String message, Runnable onComplete) { + this.runOnUiThread(() -> { + UtilityToast.showToast(message); + onComplete.run(); + }); + } + private final RunnableArgs onScanSuccessful = data -> { this.onLoadingStarted(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java index 6b32581a..fc69734e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java @@ -63,11 +63,10 @@ public class ProdDettaglioLineaViewModel { } else { if (mtbColt.getMtbColr().size() <= 0) { this.sendError(new Exception("E' stata scansionata una UL già vuota")); + } else { + this.sendOnLUSelected(mtbColt); } - onComplete.run(); - this.sendOnLUSelected(mtbColt); } - }, this::sendError); } @@ -92,7 +91,7 @@ public class ProdDettaglioLineaViewModel { this.colliMagazzinoRESTConsumer.createColloScaricoDaCarico(mtbColt, posizione, generatedMtbColt -> { this.sendOnLoadingEnded(); - this.mListener.successDialog("Versamento completato!", BarcodeManager::enable); + this.mListener.showToast("Versamento completato!", BarcodeManager::enable); }, this::sendError); }); }); @@ -103,7 +102,7 @@ public class ProdDettaglioLineaViewModel { if (ordini != null && ordini.size() > 0) { onComplete.run(); } else { - this.sendError(new Exception("Nessun ordine compatibile disponibile sulla linea selezionata")); + this.mListener.confirmInconsistentDeposit(onComplete); } }, this::sendError); } @@ -219,10 +218,14 @@ public class ProdDettaglioLineaViewModel { void successDialog(String message, Runnable onComplete); + void showToast(String message, Runnable onComplete); + void requestQtaVersamento(MtbColr mtbColr, RunnableArgs onComplete); void onSettingsRequest(ProdLineStatusDTO lineaProd); + void confirmInconsistentDeposit(Runnable onConfirm); + void onLineStop(); void askForLUBarcode(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_linee_produzione/ProdLineeProduzioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_linee_produzione/ProdLineeProduzioneFragment.java index 6211e578..7c07a7ce 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_linee_produzione/ProdLineeProduzioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_linee_produzione/ProdLineeProduzioneFragment.java @@ -112,7 +112,7 @@ public class ProdLineeProduzioneFragment extends BaseFragment implements ITitled BarcodeManager.disable(); requireActivity().runOnUiThread(() -> { - DialogSimpleInputHelper.makeInputDialog(requireContext(), "Inserisci il numero di risorse da allocare", qta -> { + DialogSimpleInputHelper.makeInputDialog(requireContext(), "Inserisci il numero di risorse da allocare", prodLine.getQtaAllocate().toString(), "n. risorse", qta -> { this.onLoadingStarted(); try { Integer hrNum = Integer.parseInt(qta); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java index a06b1b65..b233b829 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java @@ -89,7 +89,6 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia private boolean mObservablesInitated = false; private int mBarcodeScannerIstanceID; - private boolean mFirstStart = true; private boolean mAbort = true; @@ -185,9 +184,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia private final RunnableArgs onScanSuccessful = data -> { this.onLoadingStarted(); - this.mViewModel.processBarcodeDTO(data, () -> { - this.onLoadingEnded(); - }); + this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded); }; public void save() { @@ -217,15 +214,13 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia public void onStart() { super.onStart(); -// if(!mFirstStart) { this.init(); -// mFirstStart = false; -// } int onNumCnfInputChanged = SettingsManager.iDB().getOnNumCnfInputChanged(); + int onQtaTotInputChanged = SettingsManager.iDB().getOnQtaTotInputChanged(); this.mViewModel.setListener(this); - this.mViewModel.init(onNumCnfInputChanged); + this.mViewModel.init(onNumCnfInputChanged, onQtaTotInputChanged); } private void initViewObservables() { 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 3c9c017a..2f780888 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 @@ -70,6 +70,7 @@ public class DialogInputQuantityV2ViewModel { private boolean canOverflowOrderQuantity; private boolean canPartitaMagBeChanged; private int onNumCnfInputChanged; + private int onQtaTotInputChanged; private Listener mListener; @@ -80,8 +81,9 @@ public class DialogInputQuantityV2ViewModel { this.mBarcodeRESTConsumer = barcodeRESTConsumer; } - public void init(int onNumCnfInputChanged) { + public void init(int onNumCnfInputChanged, int onQtaTotInputChanged) { this.onNumCnfInputChanged = onNumCnfInputChanged; + this.onQtaTotInputChanged = onQtaTotInputChanged; if (this.initialNumCnf != null && this.initialQtaTot != null && this.initialQtaCnf != null) { this.internalNumCnf = this.initialNumCnf; @@ -379,10 +381,22 @@ public class DialogInputQuantityV2ViewModel { } - if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalNumCnf != null) - this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalNumCnf); - else if (!this.blockedNumCnf.get() && this.internalQtaCnf != null) - this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf); + switch (onNumCnfInputChanged) { + case UPDATE_QTA_CNF: + if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalNumCnf != null) + this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalNumCnf); + else if (!this.blockedNumCnf.get() && this.internalQtaCnf != null) + this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf); + break; + + case UPDATE_QTA_TOT: + if (!this.blockedNumCnf.get() && this.internalQtaCnf != null) + this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf); + else if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalNumCnf != null) + this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalNumCnf); + break; + + } this.mListener.onDataChanged(); } diff --git a/app/src/main/res/layout/dialog_input_quantity_v2.xml b/app/src/main/res/layout/dialog_input_quantity_v2.xml index 7fd1fa20..41fbe1e6 100644 --- a/app/src/main/res/layout/dialog_input_quantity_v2.xml +++ b/app/src/main/res/layout/dialog_input_quantity_v2.xml @@ -624,7 +624,6 @@ android:layout_weight="@{!viewmodel.mtbAart.flagQtaCnfFissaBoolean ? 1f : 1.5f}" android:enabled="@{view.enabledQtaTot}" android:focusableInTouchMode="false" - android:imeOptions="actionDone" tools:layout_weight="1">