From 9faf4123ef2f9747c6ec18c6d33b3bff18fafa06 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Mon, 11 Jul 2022 13:11:52 +0200 Subject: [PATCH] fase di creazione dell'ordine di acquisto preimpostare gli articoli che hanno una qta proposta da acquistare --- .../core/data_store/db/AppDatabase.java | 2 +- .../data_store/db/dao/ArticoloGrigliaDao.java | 2 +- .../data_store/db/entity/ArticoloGriglia.java | 14 +++++++++-- .../core/data_store/db/entity/Ordine.java | 12 ++++++++++ .../data_store/db/view_model/ArticoloDTO.java | 11 +++++++++ .../dto/GrigliaAcquistiChildDTO.java | 11 +++++++++ .../edit_form/DocInterniEditFormActivity.java | 1 + .../PVOrdineAcquistoEditActivity.java | 3 ++- .../PVOrdineAcquistoEditViewModel.java | 1 - .../helper/OrdineAcquistoPvHelper.java | 1 + .../DialogInputQuantityV2DTO.java | 10 ++++++++ .../DialogInputQuantityV2View.java | 24 ++++++++++++------- 12 files changed, 77 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java index c03ca174..a56b35d2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java @@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 9, exportSchema = false) +@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 10, exportSchema = false) @TypeConverters({ DateConverter.class, BigDecimalConverter.class diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java index 9480717b..4781b024 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java @@ -53,6 +53,6 @@ public interface ArticoloGrigliaDao { @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId") List getArticoliFromGriglia(int grigliaId); - @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND new_no_promo = 1") + @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND qta_ord >= 1") List getNewArticoliInGriglia(int grigliaId); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java index 329820ba..4602b8e2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java @@ -71,6 +71,9 @@ public class ArticoloGriglia { @ColumnInfo(name = "qta_proposta") private float qtaProposta; + @ColumnInfo(name = "qta_ord") + private float qtaOrd; + @ColumnInfo(name = "id_griglia") private int idGriglia; @@ -205,6 +208,14 @@ public class ArticoloGriglia { this.newNoPromo = newNoPromo; } + public float getQtaOrd() { + return qtaOrd; + } + + public void setQtaOrd(float qtaOrd) { + this.qtaOrd = qtaOrd; + } + public String generateSystemNote() { HashMap pairs = new HashMap<>(); pairs.put("qta_proposta", String.valueOf(qtaProposta)); @@ -234,8 +245,7 @@ public class ArticoloGriglia { articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setNewNoPromo(this.isNewNoPromo()); articolo.setSystemNote(generateSystemNote()); - - articolo.setQtaOrd(0); + articolo.setQtaOrd(this.getQtaOrd()); return articolo; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java index 34407354..5f7e35a5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/Ordine.java @@ -50,6 +50,9 @@ public class Ordine { @Ignore private int countArticoli = 0; + @Ignore + private boolean orderNewProducts = false; + @ColumnInfo(name = "id_griglia") private int idGriglia; @@ -149,4 +152,13 @@ public class Ordine { public void setDataOrdS(String dataOrd) { setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd)); } + + public boolean isOrderNewProducts() { + return orderNewProducts; + } + + public Ordine setOrderNewProducts(boolean orderNewProducts) { + this.orderNewProducts = orderNewProducts; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java index f3c7a02b..2859998e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/view_model/ArticoloDTO.java @@ -19,6 +19,7 @@ public class ArticoloDTO { private float giacenza; private float qtaPrevistaVendita; private float qtaProposta; + private float qtaOrd; public String getCodMart() { @@ -151,6 +152,15 @@ public class ArticoloDTO { return this; } + public float getQtaOrd() { + return qtaOrd; + } + + public ArticoloDTO setQtaOrd(float qtaOrd) { + this.qtaOrd = qtaOrd; + return this; + } + public ArticoloGriglia toArticoloGriglia() { ArticoloGriglia result = new ArticoloGriglia(); result.setBarCode(this.getBarCode()); @@ -164,6 +174,7 @@ public class ArticoloDTO { result.setQtaMinOrdinabile(this.getQtaMinOrdinabile()); result.setGgScadenza(this.ggScadenza); result.setNewNoPromo(this.newNoPromo); + result.setQtaOrd(this.getQtaOrd()); result.setGiacenza(this.giacenza); result.setQtaPrevistaVendita(this.qtaPrevistaVendita); result.setQtaProposta(this.qtaProposta); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java index 9db96088..a88b0100 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GrigliaAcquistiChildDTO.java @@ -19,6 +19,8 @@ public class GrigliaAcquistiChildDTO { private float giacenza; private float qtaPrevistaVendita; private float qtaProposta; + private BigDecimal qtaOrd; + public String getCodMart() { return codMart; @@ -154,4 +156,13 @@ public class GrigliaAcquistiChildDTO { this.newNoPromo = newNoPromo; return this; } + + public BigDecimal getQtaOrd() { + return qtaOrd; + } + + public GrigliaAcquistiChildDTO setQtaOrd(BigDecimal qtaOrd) { + this.qtaOrd = qtaOrd; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 7ef050d4..3355f832 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -250,6 +250,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter .setNotesMandatory(this.viewModel.isNotesMandatory()) .setDataScadMandatory(flagTracciabilita) .setCanPartitaMagBeChanged(flagTracciabilita) + .setNumCnfEditable(false) .setSuggestPartitaMag(data -> { Date dataScad = data.getDataScad(); String partitaMag = null; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index 589f86a1..28441efa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -108,8 +108,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi mBinding.closeActivityFab.close(false); mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE); - if (articoli.isEmpty() && isOrderNewProdsForced()) { + if (mOrdine.isOrderNewProducts() && articoli.isEmpty() && isOrderNewProdsForced()) { this.mViewModel.orderNewProducts(); + mOrdine.setOrderNewProducts(false); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java index cd545753..ef0a8dd4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java @@ -220,7 +220,6 @@ public class PVOrdineAcquistoEditViewModel { .isEmpty() ) { ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine); - dto.setQtaOrd(dto.getQtaCnf()); articoliToSave.add(dto); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java index 5c6e5aff..4f76dba9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java @@ -75,6 +75,7 @@ public class OrdineAcquistoPvHelper { Ordine ordine = new Ordine(); ordine.setDataIns(UtilityDate.getDateInstance()); ordine.setIdGriglia(griglia.getGrigliaId()); + ordine.setOrderNewProducts(true); mOrdineRepository.insert(ordine, id -> { ordine.setOrdineId(id); onSuccess.run(ordine); 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 08213283..3f924d69 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 @@ -31,6 +31,7 @@ public class DialogInputQuantityV2DTO { private boolean isDataScadMandatory = false; private boolean isNotesAllowed = false; private boolean isNotesMandatory = false; + private boolean isNumCnfEditable = true; private boolean isFocusOnStart = true; private boolean canLUBeClosed; private boolean saveOnImeDone = false; @@ -249,6 +250,15 @@ public class DialogInputQuantityV2DTO { return this; } + public boolean isNumCnfEditable() { + return isNumCnfEditable; + } + + public DialogInputQuantityV2DTO setNumCnfEditable(boolean numCnfEditable) { + isNumCnfEditable = numCnfEditable; + return this; + } + public RunnableArgsWithReturn getSuggestPartitaMag() { return suggestPartitaMag; } 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 b823f403..b7044a7f 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 @@ -4,6 +4,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.ColorStateList; import android.os.Bundle; +import android.os.Handler; import android.text.Html; import android.text.InputType; import android.text.SpannableString; @@ -43,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityFocus; import it.integry.integrywmsnative.core.utility.UtilityObservable; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; @@ -81,6 +83,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia public ObservableField enabledChangePartitaMag = new ObservableField<>(true); public ObservableField enabledNotes = new ObservableField<>(false); public ObservableField enabledLUCloseButton = new ObservableField<>(true); + private Handler mHandler = new Handler(); private Context context; @@ -170,7 +173,14 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia } this.onLoadingEnded(); if (mDialogInputQuantityV2DTO.isFocusOnStart()) { - mBindings.inputNumCnfText.requestFocus(); + mHandler.postDelayed(() -> { + + if (mDialogInputQuantityV2DTO.isNumCnfEditable()) { + mBindings.inputNumCnfText.requestFocus(); + } else { + UtilityFocus.focusTextBox(requireContext(), mBindings.inputQtaTotText); + } + }, 1000); } return mBindings.getRoot(); } @@ -240,11 +250,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia Date minDataScad = calendar.getTime(); if (minDataScad.after(value) && value.after(new Date())) { DialogSimpleMessageView - .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> { - this.mViewModel.setDataScad(value); - }, () -> { - this.currentDataScad.set(null); - }) + .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> this.mViewModel.setDataScad(value), () -> this.currentDataScad.set(null)) .show(requireActivity().getSupportFragmentManager(), "tag"); } else { this.mViewModel.setDataScad(value); @@ -325,7 +331,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia if (!this.enabledQtaTot.get()) { this.enabledQtaTot.set(true); } else if (!this.enabledNumCnf.get()) { - this.enabledNumCnf.set(true); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable()); } } }); @@ -334,7 +340,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia toggleTextInputLayoutError(textColorsQtaTot, this.mBindings.inputQtaTotLayout, value); if (this.mViewModel.mtbAart.get().isFlagQtaCnfFissaBoolean()) { - this.enabledNumCnf.set(!value); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable() && !value); } else { if (value) { if (this.mViewModel.blockedQtaCnf.get()) { @@ -346,7 +352,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia if (!this.enabledQtaCnf.get()) { this.enabledQtaCnf.set(true); } else if (!this.enabledNumCnf.get()) { - this.enabledNumCnf.set(true); + this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable()); } } }