From d003a0322e6065294d782b289347c3198265dc01 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 20 Sep 2023 17:09:45 +0200 Subject: [PATCH] =?UTF-8?q?Implementato=20override=20del=20check=20della?= =?UTF-8?q?=20tracciabilit=C3=A0=20in=20Accettazione=20da=20bolla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/settings/DBSettingsModel.java | 10 +++++++++ .../core/settings/SettingsManager.java | 6 +++++ .../AccettazioneBollaPickingActivity.java | 5 +++-- .../AccettazioneBollaPickingViewModel.java | 22 ++++++++++++++++--- .../DialogAskUnknownBarcodeNotesView.java | 22 +++++++++++++++---- ...DialogAskUnknownBarcodeNotesViewModel.java | 13 ++++++++++- .../DialogInputQuantityV2DTO.java | 10 +++++++++ .../DialogInputQuantityV2View.java | 3 ++- .../DialogInputQuantityV2ViewModel.java | 8 ++++++- .../dialog_ask_unknown_barcode_notes.xml | 1 + 10 files changed, 88 insertions(+), 12 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 ce7b108b..6d52bd65 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 @@ -68,6 +68,7 @@ public class DBSettingsModel { private boolean flagCanAddUnknownItemsAccettazioneBolla = false; private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false; private boolean flagEnableFastPickAccettazioneBolla = false; + private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -546,4 +547,13 @@ public class DBSettingsModel { this.flagEnableFastPickAccettazioneBolla = flagEnableFastPickAccettazioneBolla; return this; } + + public boolean isFlagDisableMandatoryTracciabilitaAccettazioneBolla() { + return flagDisableMandatoryTracciabilitaAccettazioneBolla; + } + + public DBSettingsModel setFlagDisableMandatoryTracciabilitaAccettazioneBolla(boolean flagDisableMandatoryTracciabilitaAccettazioneBolla) { + this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla; + 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 046540ac..503a85d1 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 @@ -464,6 +464,12 @@ public class SettingsManager { .setKeySection("FLAG_ENABLE_FAST_PICK") .setSetter(dbSettingsModelIstance::setFlagEnableFastPickAccettazioneBolla) .setDefaultValue(false)); + stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class) + .setGestName("PICKING") + .setSection("ACCETTAZIONE_BOLLA") + .setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA") + .setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla) + .setDefaultValue(false)); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java index fa4ff018..1f1720f5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java @@ -200,7 +200,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac }); adapter.setOnItemClicked(clickedItem -> { - this.mViewModel.dispatchBollaRow(clickedItem); + this.mViewModel.manageDispatchBollaRow(clickedItem); }); } @@ -491,7 +491,8 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac .setDataScad(dataScad) .setCanPartitaMagBeChanged(canPartitaMagBeChanged) .setCanLUBeClosed(true) - .setCanOverflowOrderQuantity(canOverflowQuantity); + .setCanOverflowOrderQuantity(canOverflowQuantity) + .setDisableTracciabilitaCheck(SettingsManager.iDB().isFlagDisableMandatoryTracciabilitaAccettazioneBolla()); if (!mDialogInputQuantityV2View.isVisible()) mDialogInputQuantityV2View diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java index 46e3f07d..e9bd6875 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -341,7 +341,7 @@ public class AccettazioneBollaPickingViewModel { if (matchedRows == null || matchedRows.size() == 0) { manageNoArtFound(mtbAart); } else if (matchedRows.size() == 1) { - this.dispatchBollaRow(matchedRows.get(0)); + this.manageDispatchBollaRow(matchedRows.get(0)); } else { //So che il codMart sarĂ  solo 1 var firstCodMart = Stream.of(matchedRows) @@ -359,7 +359,7 @@ public class AccettazioneBollaPickingViewModel { if (SettingsManager.iDB().isFlagCanAddUnknownBarcodesAccettazioneBolla()) { //TODO: Implementare popup che richiede delle note aggiuntive sul barcode scansionato this.sendOnUnknownBarcodeScanned(barcode, notes -> { - this.dispatchBollaRow(new PickingObjectDTO() + this.manageDispatchBollaRow(new PickingObjectDTO() .setMtbAart(new MtbAart() .setDescrizione(notes) .setDescrizioneEstesa(notes) @@ -378,7 +378,7 @@ public class AccettazioneBollaPickingViewModel { private void manageNoArtFound(MtbAart mtbAart) { if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) { - this.dispatchBollaRow(new PickingObjectDTO() + this.manageDispatchBollaRow(new PickingObjectDTO() .setMtbAart(mtbAart)); } else this.sendError(new NoArtsFoundException()); @@ -417,6 +417,22 @@ public class AccettazioneBollaPickingViewModel { this.sendOnInfoAggiuntiveRequest(onComplete); } + public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) { + if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) { + this.saveNewRow(pickingObjectDTO, + BigDecimal.ONE, + pickingObjectDTO.getMtbAart().getQtaCnf(), + pickingObjectDTO.getMtbAart().getQtaCnf(), + null, + null, + false); + + return; + } + + dispatchBollaRow(pickingObjectDTO); + } + public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) { if (this.mCurrentMtbColt == null) return; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesView.java index b26ec15e..ce6b0ece 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesView.java @@ -8,6 +8,7 @@ import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -70,10 +71,9 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment { var alertDialog = new MaterialAlertDialogBuilder(this.mContext) .setView(mBindings.getRoot()) .setPositiveButton(R.string.confirm, ((dialogInterface, i) -> { - if(this.onComplete != null) onComplete.run(mViewModel.userNotes.get()); })) .setNegativeButton(R.string.abort, (dialogInterface, i) -> { - if(this.onAbort != null) onAbort.run(); + if (this.onAbort != null) onAbort.run(); }) .setCancelable(isCancelable()) .create(); @@ -90,6 +90,22 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment { } + @Override + public void onShow(DialogInterface dialogInterface) { + super.onShow(dialogInterface); + + ((AlertDialog) getDialog()) + .getButton(AlertDialog.BUTTON_POSITIVE) + .setOnClickListener(v -> { + if(!mViewModel.validateInput()) + return; + + dismiss(); + if (onComplete != null) onComplete.run(mViewModel.userNotes.get()); + }); + + } + @Override public void onDismiss(@NonNull DialogInterface dialog) { BarcodeManager.removeCallback(mBarcodeScannerIstanceID); @@ -98,8 +114,6 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment { } - - private void initBarcode() { mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() .setOnScanSuccessful(onScanSuccessfull) diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesViewModel.java index ea4e271f..b7ccb2e8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_unknown_barcode_notes/DialogAskUnknownBarcodeNotesViewModel.java @@ -4,14 +4,15 @@ import androidx.databinding.ObservableField; import javax.inject.Inject; -import io.reactivex.Observable; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.core.di.BindableString; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityBarcode; public class DialogAskUnknownBarcodeNotesViewModel { public ObservableField userNotes = new ObservableField<>(); + public BindableString userNotesErrorMessage = new BindableString(); private ArticoloRESTConsumer articoloRESTConsumer; @@ -57,4 +58,14 @@ public class DialogAskUnknownBarcodeNotesViewModel { articoloRESTConsumer.updateBarcodeImballo(mtbAart.getCodMart(), unknownBarcode, onComplete, onFailed); }, onFailed); } + + public boolean validateInput() { + final boolean emptyUserNotes = userNotes.get() != null && !userNotes.get().isEmpty() && !userNotes.get().isBlank(); + + if(!emptyUserNotes) + userNotesErrorMessage.set("E' necessario scrivere delle note"); + + + return emptyUserNotes; + } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java index b182d25d..1c515e8c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java @@ -43,6 +43,7 @@ public class DialogInputQuantityV2DTO { private boolean canLUBeClosed; private boolean saveOnImeDone = false; private boolean notifyProductLotStatus = false; + private boolean disableTracciabilitaCheck = false; private StatoArticoloDTO statoPartitaMag; @@ -349,4 +350,13 @@ public class DialogInputQuantityV2DTO { this.notifyProductLotStatus = notifyProductLotStatus; return this; } + + public boolean isDisableTracciabilitaCheck() { + return disableTracciabilitaCheck; + } + + public DialogInputQuantityV2DTO setDisableTracciabilitaCheck(boolean disableTracciabilitaCheck) { + this.disableTracciabilitaCheck = disableTracciabilitaCheck; + return this; + } } 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 331a5273..ba5dc825 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 @@ -173,7 +173,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia .setNote(mDialogInputQuantityV2DTO.getNote()) .setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory()) .setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag()) - .setDataScad(mDialogInputQuantityV2DTO.getDataScad()); + .setDataScad(mDialogInputQuantityV2DTO.getDataScad()) + .setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck()); mBindings.setView(this); mBindings.setViewmodel(this.mViewModel); 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 212e1065..cd3a5154 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 @@ -77,6 +77,7 @@ public class DialogInputQuantityV2ViewModel { private boolean canPartitaMagBeChanged; private int onNumCnfInputChanged; private int onQtaTotInputChanged; + private boolean disableTracciabilitaCheck; private Listener mListener; @@ -330,6 +331,11 @@ public class DialogInputQuantityV2ViewModel { return this; } + public DialogInputQuantityV2ViewModel setDisableTracciabilitaCheck(boolean disableTracciabilitaCheck) { + this.disableTracciabilitaCheck = disableTracciabilitaCheck; + return this; + } + public boolean canPartitaMagBeChanged() { return canPartitaMagBeChanged; } @@ -451,7 +457,7 @@ public class DialogInputQuantityV2ViewModel { return false; } - if (mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) { + if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) { if (suggestPartitaMagRunnable != null) { internalPartitaMag = suggestPartitaMagRunnable.run(this); if (internalPartitaMag == null) { diff --git a/app/src/main/res/layout/dialog_ask_unknown_barcode_notes.xml b/app/src/main/res/layout/dialog_ask_unknown_barcode_notes.xml index e3dc2d3b..67f39fe6 100644 --- a/app/src/main/res/layout/dialog_ask_unknown_barcode_notes.xml +++ b/app/src/main/res/layout/dialog_ask_unknown_barcode_notes.xml @@ -58,6 +58,7 @@ app:layout_constraintEnd_toEndOf="parent" android:imeOptions="actionDone" android:layout_marginTop="12dp" + app:errorText="@{viewmodel.userNotesErrorMessage}" android:hint="Note">