diff --git a/app/build.gradle b/app/build.gradle index 94e29d29..82a22cd5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 291 - def appVersionName = '1.27.4' + def appVersionCode = 292 + def appVersionName = '1.27.5' signingConfigs { release { 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/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java index bbadeb59..86a613cd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java @@ -70,7 +70,7 @@ public class ProdRientroMerceOrderDetailViewModel { .setCodJcom(currentOrder.getCodJcom()) .setCodJfas(pickedQuantityDTO.getJtbFasi() != null ? pickedQuantityDTO.getJtbFasi().getCodJfas() : null) .setCodMart(currentOrder.getCodProd()) - .setCodTcol(pickedQuantityDTO.getMtbTCol().getCodTcol()) + .setCodTcol(pickedQuantityDTO.getMtbTCol() != null ? pickedQuantityDTO.getMtbTCol().getCodTcol() : null) .setDataCollo(new Date()) .setDataOrd(currentOrder.getDataOrdD()) .setNumOrd(currentOrder.getNumOrd()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index 3ef3d80f..b1b7d6bc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -495,6 +495,6 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr @Override public void onPreDestroy(Runnable onComplete) { BarcodeManager.removeCallback(barcodeScannerIstanceID); - mViewModel.closeLU(false, onComplete); + mViewModel.closeLU(false); } } 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">