From 35f1495ebcc836c4c44cd5a47acc89e3086c0712 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 24 Feb 2023 16:46:36 +0100 Subject: [PATCH 1/7] Sostituite icone da PNG a SVG. Implementata voce di Rettifica spedizione che carica colli V. --- .../configs/MenuConfiguration.java | 10 ++- .../OrdiniUscitaElencoFragment.java | 6 +- .../ProdRecuperoMaterialeFragment.java | 2 +- .../ProdVersamentoMaterialeFragment.java | 2 +- .../RettificaGiacenzeFragment.java | 24 +++++- .../RettificaGiacenzeViewModel.java | 26 ++++-- .../VersamentoMerceFragment.java | 2 +- .../DialogScanOrCreateLUView.java | 16 ++-- .../DialogScanOrCreateLUViewModel.java | 6 +- app/src/main/res/drawable/ic_back.xml | 9 ++ app/src/main/res/drawable/ic_black_back.png | Bin 490 -> 0 bytes .../res/drawable/ic_black_shopping_cart.png | Bin 1242 -> 0 bytes app/src/main/res/drawable/ic_black_tick.png | Bin 484 -> 0 bytes app/src/main/res/drawable/ic_black_truck.png | Bin 1135 -> 0 bytes .../ic_dashboard_purchase_orders_pv.png | Bin 10678 -> 0 bytes .../ic_dashboard_purchase_orders_pv.xml | 33 ++++++++ .../ic_dashboard_rettifica_spedizione.xml | 79 ++++++++++++++++++ .../ic_dashboard_trasmitted_orders_list.png | Bin 9519 -> 0 bytes .../ic_dashboard_trasmitted_orders_list.xml | 30 +++++++ app/src/main/res/drawable/ic_erase.xml | 9 ++ app/src/main/res/drawable/ic_erase_96.png | Bin 1199 -> 0 bytes .../drawable/ic_inventario_header_outline.png | Bin 6166 -> 0 bytes .../drawable/ic_inventario_header_outline.xml | 9 ++ app/src/main/res/drawable/ic_pallet.xml | 9 ++ app/src/main/res/drawable/ic_pallet_96px.png | Bin 1981 -> 0 bytes .../main/res/drawable/ic_production_line.png | Bin 827 -> 0 bytes .../main/res/drawable/ic_production_line.xml | 21 +++++ .../ic_rettifica_spedizione_drawer.xml | 12 +++ app/src/main/res/drawable/ic_scale.png | Bin 889 -> 0 bytes app/src/main/res/drawable/ic_scale.xml | 9 ++ .../main/res/drawable/ic_shopping_basket.xml | 9 ++ app/src/main/res/drawable/ic_tick.xml | 9 ++ app/src/main/res/drawable/ic_truck.xml | 9 ++ .../main/res/drawable/ic_truck_black_96.png | Bin 1509 -> 0 bytes .../main/res/drawable/ic_truck_with_clock.xml | 9 ++ .../{ic_black_upload.xml => ic_upload.xml} | 0 app/src/main/res/drawable/ic_weight_kg.xml | 9 ++ .../main/res/drawable/ic_weight_kg_96px.png | Bin 2174 -> 0 bytes app/src/main/res/drawable/ic_workers.xml | 9 ++ app/src/main/res/drawable/ic_workers_96px.png | Bin 1691 -> 0 bytes .../layout-land-hdpi/dialog_input_lu_prod.xml | 2 +- ...agment_prod_rientro_merce_order_detail.xml | 16 ++-- .../activity_contab_doc_interni_edit.xml | 2 +- .../activity_pv_ordine_acquisto_edit.xml | 2 +- .../res/layout/dialog_basket_lu__page2.xml | 4 +- .../main/res/layout/dialog_input_lu_prod.xml | 2 +- .../res/layout/dialog_scan_or_create_lu.xml | 2 +- ...agment_prod_rientro_merce_order_detail.xml | 16 ++-- .../main/res/menu/picking_inventario_menu.xml | 2 +- app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/config.xml | 1 + app/src/main/res/values/strings.xml | 1 + build.gradle | 2 +- 53 files changed, 369 insertions(+), 52 deletions(-) create mode 100644 app/src/main/res/drawable/ic_back.xml delete mode 100644 app/src/main/res/drawable/ic_black_back.png delete mode 100644 app/src/main/res/drawable/ic_black_shopping_cart.png delete mode 100644 app/src/main/res/drawable/ic_black_tick.png delete mode 100644 app/src/main/res/drawable/ic_black_truck.png delete mode 100644 app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.png create mode 100644 app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.xml create mode 100644 app/src/main/res/drawable/ic_dashboard_rettifica_spedizione.xml delete mode 100644 app/src/main/res/drawable/ic_dashboard_trasmitted_orders_list.png create mode 100644 app/src/main/res/drawable/ic_dashboard_trasmitted_orders_list.xml create mode 100644 app/src/main/res/drawable/ic_erase.xml delete mode 100644 app/src/main/res/drawable/ic_erase_96.png delete mode 100644 app/src/main/res/drawable/ic_inventario_header_outline.png create mode 100644 app/src/main/res/drawable/ic_inventario_header_outline.xml create mode 100644 app/src/main/res/drawable/ic_pallet.xml delete mode 100644 app/src/main/res/drawable/ic_pallet_96px.png delete mode 100644 app/src/main/res/drawable/ic_production_line.png create mode 100644 app/src/main/res/drawable/ic_production_line.xml create mode 100644 app/src/main/res/drawable/ic_rettifica_spedizione_drawer.xml delete mode 100644 app/src/main/res/drawable/ic_scale.png create mode 100644 app/src/main/res/drawable/ic_scale.xml create mode 100644 app/src/main/res/drawable/ic_shopping_basket.xml create mode 100644 app/src/main/res/drawable/ic_tick.xml create mode 100644 app/src/main/res/drawable/ic_truck.xml delete mode 100644 app/src/main/res/drawable/ic_truck_black_96.png create mode 100644 app/src/main/res/drawable/ic_truck_with_clock.xml rename app/src/main/res/drawable/{ic_black_upload.xml => ic_upload.xml} (100%) create mode 100644 app/src/main/res/drawable/ic_weight_kg.xml delete mode 100644 app/src/main/res/drawable/ic_weight_kg_96px.png create mode 100644 app/src/main/res/drawable/ic_workers.xml delete mode 100644 app/src/main/res/drawable/ic_workers_96px.png diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java index 48af157d..861a26d1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java @@ -57,9 +57,17 @@ public class MenuConfiguration extends BaseMenuConfiguration { .setCodMenu("MG046") .setTitleText(R.string.vendita_title_fragment) .setTitleIcon(R.drawable.ic_dashboard_spedizione) - .setDrawerIcon(R.drawable.ic_black_upload) + .setDrawerIcon(R.drawable.ic_upload) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null))) + .addItem(new MenuItem() + .setID(R.id.nav_rettifica_spedizione) + .setCodMenu("MG064") + .setTitleText(R.string.rettifica_spedizione_fragment_title) + .setTitleIcon(R.drawable.ic_dashboard_rettifica_spedizione) + .setDrawerIcon(R.drawable.ic_rettifica_spedizione_drawer) + .setFragmentFactory(() -> RettificaGiacenzeFragment.newInstance(GestioneEnum.VENDITA))) + .addItem(new MenuItem() .setID(R.id.nav_free_picking) .setCodMenu("MG047") diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java index 44b3b696..c18cf849 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java @@ -795,8 +795,10 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF listModel.setSubDescription(x.getRifOrd()); - String testataDataConsString = String.format(getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - listModel.setRightDescription(testataDataConsString); + if(x.getDataConsD() != null) { + String testataDataConsString = String.format(getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + listModel.setRightDescription(testataDataConsString); + } listModel.setOriginalModel(x); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/ProdRecuperoMaterialeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/ProdRecuperoMaterialeFragment.java index 508c4d2a..4fd732ce 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/ProdRecuperoMaterialeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/ProdRecuperoMaterialeFragment.java @@ -263,7 +263,7 @@ public class ProdRecuperoMaterialeFragment extends BaseFragment implements ITitl @Override public void onLURequest(boolean canLUBeCreated, boolean shouldCheckIfDocExist, RunnableArgss onComplete) { - DialogScanOrCreateLUView.newInstance(canLUBeCreated, shouldCheckIfDocExist, onComplete) + DialogScanOrCreateLUView.newInstance(canLUBeCreated, shouldCheckIfDocExist, true, onComplete) .show(requireActivity().getSupportFragmentManager(), "tag"); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/ProdVersamentoMaterialeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/ProdVersamentoMaterialeFragment.java index 85acdbc7..fc54b08d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/ProdVersamentoMaterialeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/ProdVersamentoMaterialeFragment.java @@ -174,7 +174,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro } private void openLU() { - DialogScanOrCreateLUView.newInstance(false, false, true, false, (mtbColt, created) -> { + DialogScanOrCreateLUView.newInstance(false, false, true, false, true, (mtbColt, created) -> { if (mtbColt == null) { popMe(); } else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) && mtbColt.getSegno().equals(+1)) { 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 623304fb..4ae27ca9 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 @@ -43,6 +43,7 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -83,6 +84,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr private RettificaGiacenzeMainListAdapter mAdapter; private int barcodeScannerIstanceID = -1; + private GestioneEnum mCurrentGestione; public RettificaGiacenzeFragment() { // Required empty public constructor @@ -90,13 +92,28 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr public static RettificaGiacenzeFragment newInstance() { + return newInstance(null); + } + + + public static RettificaGiacenzeFragment newInstance(GestioneEnum gestione) { RettificaGiacenzeFragment fragment = new RettificaGiacenzeFragment(); + Bundle args = new Bundle(); + + if (gestione != null) + args.putString("gestione", gestione.getText()); + + fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { requireActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + + if (getArguments() != null && getArguments().containsKey("gestione")) + mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione")); + super.onCreate(savedInstanceState); } @@ -198,7 +215,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr mViewModel.init( SettingsManager.i().getUser().getFullname(), - SettingsManager.i().getUserSession().getDepo().getCodMdep()); + SettingsManager.i().getUserSession().getDepo().getCodMdep(), + mCurrentGestione); } @Override @@ -287,8 +305,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr } @Override - public void onLUOpenRequest(RunnableArgss onComplete) { - DialogScanOrCreateLUView.newInstance(true, false, (mtbColt, created) -> { + public void onLUOpenRequest(boolean enableCreation, boolean checkIfDocumentExists, boolean warnOnOpeningVendita, RunnableArgss onComplete) { + DialogScanOrCreateLUView.newInstance(enableCreation, checkIfDocumentExists, warnOnOpeningVendita, (mtbColt, created) -> { if (mtbColt == null) { popMe(); } else { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index 0f34b02e..bdf50c60 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -24,6 +24,7 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.dto.PickDataDTO; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; @@ -51,6 +52,8 @@ public class RettificaGiacenzeViewModel { private RettificaGiacenzeViewModel.Listener mListener; + private GestioneEnum mDefaultGestione; + private String mCurrentUser; private String mCurrentCodMdep; private boolean mIsCreatedLU; @@ -71,9 +74,10 @@ public class RettificaGiacenzeViewModel { } - public void init(String currentUser, String currentCodMdep) { + public void init(String currentUser, String currentCodMdep, GestioneEnum defaultGestione) { this.mCurrentUser = currentUser; this.mCurrentCodMdep = currentCodMdep; + this.mDefaultGestione = defaultGestione; this.sendOnLoadingStarted(); @@ -87,12 +91,15 @@ public class RettificaGiacenzeViewModel { } public void requestLU() { - this.sendOnLUOpenRequest((mtbColt, created) -> { - this.mCurrentMtbColt = mtbColt; - this.mIsCreatedLU = created; + this.sendOnLUOpenRequest(mDefaultGestione == null || mDefaultGestione != GestioneEnum.VENDITA, + mDefaultGestione != null && mDefaultGestione == GestioneEnum.VENDITA, + mDefaultGestione == null || mDefaultGestione != GestioneEnum.VENDITA, + (mtbColt, created) -> { + this.mCurrentMtbColt = mtbColt; + this.mIsCreatedLU = created; - this.sendLUOpened(mtbColt); - }); + this.sendLUOpened(mtbColt); + }); } public RettificaGiacenzeViewModel setListener(RettificaGiacenzeViewModel.Listener listener) { @@ -691,8 +698,9 @@ public class RettificaGiacenzeViewModel { if (this.mListener != null) mListener.onArtListLoaded(artList, onArtChoosed); } - private void sendOnLUOpenRequest(RunnableArgss onComplete) { - if (this.mListener != null) mListener.onLUOpenRequest(onComplete); + private void sendOnLUOpenRequest(boolean enableCreation, boolean checkIfDocumentExists, boolean warnOnOpeningVendita, RunnableArgss onComplete) { + if (this.mListener != null) + mListener.onLUOpenRequest(enableCreation, checkIfDocumentExists, warnOnOpeningVendita, onComplete); } private void sendError(Exception ex) { @@ -778,7 +786,7 @@ public class RettificaGiacenzeViewModel { void onArtListLoaded(ArrayList artList, RunnableArgs onArtChoosed); - void onLUOpenRequest(RunnableArgss onComplete); + void onLUOpenRequest(boolean enableCreation, boolean checkIfDocumentExists, boolean warnOnOpeningVendita, RunnableArgss onComplete); void onLUOpened(MtbColt mtbColt); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java index ea61c82e..a6f159fb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java @@ -104,7 +104,7 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag public void openLU() { - DialogScanOrCreateLUView.newInstance(true, false, true, false, (mtbColt, created) -> { + DialogScanOrCreateLUView.newInstance(true, false, true, false, true, (mtbColt, created) -> { if (mtbColt == null) { ((IPoppableActivity) getActivity()).pop(); } else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)) { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java index b2688f6a..8e0e9f72 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUView.java @@ -43,27 +43,29 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial private final boolean mShouldCheckResiduo; private final boolean mShouldCheckIfExistDoc; private final boolean mEnableCreation; + private final boolean mWarnOnOpeningVendita; private final BindableBoolean basketEnabled = new BindableBoolean(); private final BindableBoolean creationEnabled = new BindableBoolean(); public static DialogScanOrCreateLUView newInstance(@NotNull RunnableArgss onComplete) { - return new DialogScanOrCreateLUView(false, true, true, true, onComplete); + return new DialogScanOrCreateLUView(false, true, true, true, true, onComplete); } - public static DialogScanOrCreateLUView newInstance(boolean enableCreation, boolean shouldCheckIfExistDoc, @NotNull RunnableArgss onComplete) { - return new DialogScanOrCreateLUView(false, enableCreation, true, shouldCheckIfExistDoc, onComplete); + public static DialogScanOrCreateLUView newInstance(boolean enableCreation, boolean shouldCheckIfExistDoc, boolean warnOnOpeningVendita, @NotNull RunnableArgss onComplete) { + return new DialogScanOrCreateLUView(false, enableCreation, true, shouldCheckIfExistDoc, warnOnOpeningVendita, onComplete); } - public static DialogScanOrCreateLUView newInstance(boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, @NotNull RunnableArgss onComplete) { - return new DialogScanOrCreateLUView(enableBasket, enableCreation, checkResiduo, shouldCheckIfExistDoc, onComplete); + public static DialogScanOrCreateLUView newInstance(boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, boolean warnOnOpeningVendita, @NotNull RunnableArgss onComplete) { + return new DialogScanOrCreateLUView(enableBasket, enableCreation, checkResiduo, shouldCheckIfExistDoc, warnOnOpeningVendita, onComplete); } - private DialogScanOrCreateLUView(boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, @NotNull RunnableArgss onComplete) { + private DialogScanOrCreateLUView(boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, boolean warnOnOpeningVendita, @NotNull RunnableArgss onComplete) { super(); mShouldCheckResiduo = checkResiduo; mShouldCheckIfExistDoc = shouldCheckIfExistDoc; + mWarnOnOpeningVendita = warnOnOpeningVendita; this.basketEnabled.set(enableBasket); this.creationEnabled.set(enableCreation); @@ -90,7 +92,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial .setListener(this); - this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation); + this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation, mWarnOnOpeningVendita); mBindings.createNewLuButton.setOnClickListener(v -> { this.mViewModel.createNewLU(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java index 6493cea0..aec8e6c4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java @@ -32,6 +32,7 @@ public class DialogScanOrCreateLUViewModel { private boolean mShouldCheckResiduo = false; private boolean mShouldCheckIfExistDoc = true; private boolean mEnableCreation = false; + private boolean mWarnOnOpeningVendita; private Listener mListener; @@ -43,10 +44,11 @@ public class DialogScanOrCreateLUViewModel { } - public void init(boolean checkResiduo, boolean shouldCheckIfExistDoc, boolean enableCreation) { + public void init(boolean checkResiduo, boolean shouldCheckIfExistDoc, boolean enableCreation, boolean warnOnOpeningVendita) { this.mShouldCheckResiduo = checkResiduo; this.mShouldCheckIfExistDoc = shouldCheckIfExistDoc; this.mEnableCreation = enableCreation; + this.mWarnOnOpeningVendita = warnOnOpeningVendita; } public void createNewLU() { @@ -137,7 +139,7 @@ public class DialogScanOrCreateLUViewModel { if (mtbColt.getCodDtip() != null && mShouldCheckIfExistDoc) { this.sendError(new AlreadyAttachedDocumentToLUException()); } else { - if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno() == -1) { + if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno() == -1 && mWarnOnOpeningVendita) { this.sendOnLUVenditaConfirmRequired(confirmed -> { if (confirmed) { onComplete.run(); diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 00000000..0d6e19f7 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_black_back.png b/app/src/main/res/drawable/ic_black_back.png deleted file mode 100644 index 1973bf62a70aeaa86ef03d6276e983c0ead5df80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHo=X<(1 zhE&XXduP8_Q=&xM$I}arI(J;lSZg_3%E{)Gl=7@eVzXC0ULjndQSdf9K-1u2_~qv> zzy3OC-BI_W;{K&e<95TYmEWe*VgT-DS3| zjqYiO=dXLct!J6j>Jzo_(&cj;J2+-;acYx4@qt;gPT??r%8y1K`w0)(js7^G2?o6U{&VX( z{s(*(ar){9AW#?@jM)>Op2 z?JADk+Av+TfA!sj=<+AsAKpkYxxa3SI<R4Iccl5raoPD_nnb+h;!%yD z|A0{tF^9zXM}!~-A~D9O!F5q>FMrzRoykOYUX|5 zF)-8B_3c;H)!*)}+6BWf48t%C!!V3=YyqAH-UogK)`0a)Vr{7DB=8I{n;k?) zKhe^-0NkG>6AC;8ETf;)(D)O0FhM@X$~NE<`pJxqCE%9cv$BaTDR&OM2JB8;M@qI1 zKR;Df5y>274n5Ua0p@$o%?2s2_Ro<}_!yZ3_G^m>Wd^v2e(&uo7Aee{K863Fo>x;h z$^ra(pHNd5!5I|C)d=QrwzEz12Wsj9SpaU(elUmC)HQRIcFhA|r<%F|-l5C`xfg%O zIijXch{SrHQd8&WG-VB)BfNzFV)nS2IzPMd>wi&Aod=2aTpVtfD>K0N6lzH&*7F55 zb#jWeq@`KUCW^GA66=}0gV=<`lHRALu7*;rXA=@j`nH<73KHv?-6<>JLkbyECDt>` zi@2CodX_vLrHaIo9_X{eoxlkuV_J!JECcW1u9+ehfU6k@ zpR~9lZG;mUh@I4Ux0>v_mm|xR?cHsC+0Fs7bz$H%W6l zzJyynS!Ek8F}atIi8pHM^YTa{F?(9-+*d&Pn0UCQ&PHwqRuhPsYpHX-fbyZS0^HP6 zXDg=?2=bA8`OrAoR+-P`m>um-rzZ;w*cs3@?h(}4%8xw@@{xP_kod`0ndC<66Tvn{ zJ!gCyNE*Pd1Mzsrf602SdEA|Gw3Q01(>F|LmzT1Jd!)16wvprvSOLE5L(!D+1)k)C z{9&67L*a<*r!_!2dd=A^a2d0q(zuMUb4$;F0dP*Zt>LWuK(b-T3l|%PZG9! z@ELGDuuPT5B7e)Jd>hw+&pYnJ%UQaOkr!!xDZW@h`L^&r{p^ERI*MG!%|6)2|IzF$)|=zZYu7F)}bBv%u@Xzvw4qT=5TZkPMQ)nY)2Q zxaBx0))i>S>hRd!0`BT5XNF-IhG7_nVHk#C7{(OwAAHSXD0@B^+W-In07*qoM6N<$ Ef|CJN1^@s6 diff --git a/app/src/main/res/drawable/ic_black_tick.png b/app/src/main/res/drawable/ic_black_tick.png deleted file mode 100644 index ca369c8ed3393b935d2eb38f87008528749fce6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHoXL`Cg zhE&XXd*`gzVFwY1hsxhPS-97+u)a3dZt8B*tCcFh)zl#-UTDY_r0Y3rX3WVs{F}}_ zx%0;{!*P;|Cmda}FBaI_5H*)!`vIv6=68*kFNlVwFs^Ax%dS4CD6(B)?$_HN_ix|5 zW2tX^^q;m8>rXoa9H#%^{UEjVfaYtd{fv1{*DNAyAFXd#JR{ZbvgHS#?LV?FZJ5&e zky+Ay0+B?(*N^E35-;rgUE?r6<`4G+#vcr32ZUzy@A&`f@&3=h9m0Ex7la;fFL~xJ zTL4tL_FRMd zsW{GgKXtwM4*rmxD$(?@`jjQheeg%? z6RD<;>=ITikJC527wDNEcwbRsf5SRwgF44tXM=wnWq%njMaX}3{k5W)*QPEv{6OK0 fE~N03dLcaH+a;+r$6o_uje)__)z4*}Q$iB}G8@?s diff --git a/app/src/main/res/drawable/ic_black_truck.png b/app/src/main/res/drawable/ic_black_truck.png deleted file mode 100644 index 91c170d08efa00e6a69e3c3c3a7c466e113479e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1135 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlITR6JcA zLn`LHook&T5-8HP|474vPK~BTonm&}oW~kEIXxFnZFM~ACT+b@@r755^Y;XY zKiz0_VanDCQzV$Dd3CRFHDz9A96nL+YStOvua}s*`lJ+kP?3+|Ge*y!oHdN|7!S`V zT^2NpbLn*cPjdDR#Rn$s;N7Meo1pQL??uxPH9&Uv;g%=|J%aek9rfO2LG3q*gs zolqWrhXtr{HzPy3?5BN9V#g$7b|orGY~ZMPJ>hrCoP$fH#hMrye#;d7Kjd>sN%8K6 z03L=N?5Q-Pv)h;h*{0@2c(5_dDY)=q9>@Q8ns+x`;K?|!=Kqb7 zIc2f|yAl^lGF<45>{-2ZvCq`)hNYIb`1u>Xr#&}$SfMxJUXt@2W`=2u^L3)uovEAn zj`80QzBwChme+n`cCBz$JAIzrBzaxMv*bCE&lyb*)UVrb`p@p{n#Fx`O@ESZS3J+* z$!ah_M!c7pik!?ZwExV1{`J78Q;$_2n5M0KnD#XNm507;%2ts;b{VEPH;LD*1ru%+ zcOUUq1_r>PhOGzwvLxSI-6OcXK5U8fv~7%gf9#Y#6TU#*?f)8J==m~N6;yLyG(9#m zyGhEx|Df)H=OV}cANl`XHHi6{<`2Iv%RKiN^F?2_EloV|kLS~yv$Gi|JJ?^~)LG}E zUcflx)QuLKmuHVOd_Qna%JP=h`H6YETH>_rwk?S|dS*j!%^S|h*IOrm#riXtMD7*!LR zvlpeE@%4W!(`ThDa%JiQh4_iv?irq$_Wn+d^fu=!KRJ?lBaTUFEr`=TuB)VGc>S!| zt&Q>5WVL|;YsCaF&+znKyXaOUKi}gV%>{Al@2omz9`bp-+dzHSu~YAvclc(wajm)D zb(;OkB)9m+uU3U;Cx6H)bpCoPQ*Ew()eojML3{H`9(>RCJ7)0xPT*d_7f0X5S#A5_ z^VNK3_qywyQxE7q5;u0*cK^H3tT^>o2H{Nph5An{3nU@}LiT3XR4w5vj=9sjGxhW< zFNT^UJ{fKX@(=5qG<_yr_@V{RsX#{KC;r1`4>TN?e%c8vK^Qz;{an^LB{Ts5YmWX5 diff --git a/app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.png b/app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.png deleted file mode 100644 index d59f1400a2611f0109a924323064aa145518d508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10678 zcmd6Ni9gie*Z7?=GGrM`5n}AJOO|99WmmM=mnfB_5VB0-P1(sBisFNkELpQNi4es{ zp|WO8_GD+~cc=iK{_JZqxQ!o?ttJeapl4HkQQEFL5_*KF3Mv^It@Q~noE}NKJBEz?&-*md@ z>qp`gM&gI|Ni*W^+r^->ktp;N%z0h&rx#}CoiFA-w2-=UJhfqCb-tk~(>Hs5dqQX} zpu60i1IqP(_lGOuHUS{s^9}|D*L<^_O6=>pUTatB}OA{f=sy9v8gdmHtGZ&RbuuKs#+U> z<9|Xn8h$n%d$lG#m$W7}%%5k*$o7b2WJ&##DX=+MeT{C60S(#{xGx5Ncf41)(nl%^ zw99CdH8(O%;eMo|@uy>l>X6Y!KgNmzlP&v4eYf)poF-DgOFq^b5RYFt^m4ben=%`` zA$B_e%nAdfkng-p-$Y(Okmt?cQ!cyJo(@}!`X;*_1f0{Q@tkF#A$^qTkWcJ@_`b05 z${m02e_I~@GFa0sc6KqFlP8t=cx+CxW!T*&>_^t&bYV228j_v&J0*rThb2TdqZ>MapZ!l#5n0(B*F&p`-{%;N#VY;~{Wm*=hL zdpB|f?9C3Ztv{)Y7RXd9iTsQrs^9=J^JH{4wjyx6r@HVC;opFH+xMBpL64sTau5cL zl}@V$8FE{@njbEz5y(F06cp_`RI@+-gcubFla9`4AS~S+J9z8chiH4R5WKj zvLBXk0>2mlG?Z4;gFatTj*c5~mH^8KP{8lX8+S_Ll_GPqjrsnj{!&O60qGP6;6zd4 zN_Cs2mmnbvBy=oxr<_S}XQRwApFkn{SU@h_YTQ!2I`fMf3fXUl0KjkaGo89LIoCQ2 zB@@5{pl`D^J$faie(&5>3E&~?-eiuPzP^=CO)g39)OrPpSf_qhF^!e`Kt}YJvheK# z{>ZzpjKEF^AY7F@AA@R3@{-9q7aief1c39s9jesX5BK~jiCrcjUIh&dv{j*&Qgj4G zlSwfjG{OZ}vblC|dX(!y@P~#P0*gW@Tp8Ja=1_=+Yv8J?eZXp_9G1>JGr#q=Wad*% zn@qpH56aSRY92GeVRM&|`pXQ!z`$;FH&1%wk$ExKk50uCC}Qtd6yU&Zz`2bcC5r34 zx-HnR4~1uhzMOVuXIgM)T>h{o3*Ne~U`>>DDgDA+-_O>(#`Vzjz=n;18b1+^vHfTe zan5VS@?><-h5YlqlR5->cSgJR*_^eNR2+&}|9kVgB017!kW%_|HPiGQz)Z~o&dDAlsXhIg3(kpgRkt3cG9V* zV@bIQ60G^>XAArbJU)&Wtf{ppGM|i^jx3lt8cKv#U*U${pH zfX|cuEAGN@MbD3s0GV6YYB#<4d{%3leBh8lT+K7F!|SpWrmAjgTXYhZcBW{WyO|ZX zQWaK>*TS6p=$;;#WgqyQdmjs4C>1jRJL&Q9QS8E4<3Du*iMgC3l{d_JTpv#{EmaP5DbT4ETk>j^rc~=0dcW()0c*g1jORf%{C~}Z^+jTg3%C!eC0|v zC1_a4cd=wsf`)~Bi%T~1Ahrzhb%P+pmO;L9C7X5H81PLO;8(47hlSC|O<@r4B0~wp z!*n79;;kVFGs{f~8bS~fz$6oY9D*Vc3&A5Yly5`~pooC@Ll8WP0f7)?gdki&iZB=> z9Hib9K?5yzu*@4Bq=`czL0I4y-Kymf0m$+gP~S41X{rOp*wA3)(n`0gFj%HTf!8IQ z+;r@qS|5=4WGJnWts7*3jt){}MkPrrRzXcT-8wt?$rG&=0Cigs0zK>pgEk|u zz(yZr-IAd!A7Td;VSs20r=!;aB?@RD>$IYufXcwa1Uh$0QM;pG=F=h_j%Gu6!&%{{XU#~BF zStcSAnp5no9oXl(7VI3j(@DbxLD|ae8C{WcW^OZ+!S_TK9|& zAYZM#I#lJpdq161e6cD8KGogc>pY-S)%oNiO*~xAO8eJ=z_}vT(HT;_xVs#hpO=>@ zrZn@?3Imut>)`mYiIs)LzkHFT)c!1WbWcFKp?{4Z0MW_5yBB@B>+IP6ozw+|lrFKW zhJs!M1^^6?z7O1u9UQgtB!o{If(*YQca^l}`b+!4Sx0%R-7jTTH3BDpi-Ifjb@p)p z5P1v#m<%Wx2n^ACy#2^s7?V9_`CCj600RqXSc#j^u!HQYuroMgq5f@+ z`4b(n_vio}0P*4zZ@N`12>eeH4;v2z zE&RU<3Zk>7NpObq7I$cZDE#{SpfXMZ8z{&5q+_2~LH+5}lFP08LXs{Nzhd2`y+<5R4} z&rr?!hI8@_=X+J{y3v4WT)0(xMETbSgrBb~yqt(#p?Ld@QS1dG23!g{yMKyU=k zk#5J<8`XtDM2lc3OmSLjuCQ8r)#O@MKZ9BtYL)cct#&CgG*vix=ntHeAYzzR+4ghKz(!5fyXR}h}C1&QNMq^&V2QAbNray z{zUgPb*?n8P5$N=acWneA3)}R<|kABDa#ES_|tTd=Y*82o>?(9VAVf8NJwPvMq~A) z2spT0Yx>Opjf^}W8pz1J)R$P={#l$^`%J{;;wU{XwfDig(YM#ifH?kaX$n8L(IzBJe@9Nli5WA8nm1$x+EX9SkhBP#~h zm|c#T03O>kwgaH&F^LE!P0mU{$6i%Xubw&ej;&5WL^hNWvA0|xo$qz}%lN|$_j7U} znTZQrsK()df^^Qf9gsXA3uI6Lq}g9N{g253ZYfZxIK&8_9~E(engiA_^MbU#;1gP& zgCfP@1{eN8J9dY=?}X-#Rzoiz;}*G)CIM6qNCD9f&%*#XhP89eP^d4O=@GOEbn9!9 zJ)9t&i5qBNseyBPJm^tjy0bsaj0_}uodi%oc59(HZeD7L&uKq5xDe;BF$PmDB3LLp z&HWDYh$&2H7+m84Kr1cF$`ss`x(EysS!mMZ4Uf_fqaXXfWCev4R3yL8;_YL-O5lTiT0Fo1I1frkUMvMVp1 z$1TZYy{}P4cAT`Pf17vqjdCu@_y4kzO|af^xP5-UjeqZ>!Tf$#YMG|_zLYl7>Bw%a z$Zo+~I}6JU;X#WeEH{%sljFwEMFz3hzh)T{7@(^@-wt}>g%1r+keC7D6*@#ojp79y zulMZ(?OgK*$e$0W0Y7C0z-7-B7Fth#R>}i>jfW};4rr5yiPz{7UDi_mvVP)t z69XfNXKx**q%!e?6Jb7I#D?c+mg2KGcd3f{9L<1;c6jgt5cTRM%}hQ(#}11Hx>rw| z{REQJNg&V4b?NB)H7-b?Vv&@POP0i2{Wd-#W;);Kx#3hC?vdYvQcx!?H?|r- z%r}gp3eCX&fK(ay$ALM&AL>9iRI4=U?*(7PqeNZ?o!Jq63iQH z23oG0PneqWKg7(DUhbBr07-Aae+{k{l6sRXU&Z2cOZx-fHNVkiE58?Cxq%S|DP-qH zqnB;IM3^1Uf3j1_E3ywZQ7c1(zm9c3>$FOB3$2Y~qo@1?W^0S}n?Dx{(cUy0}t+tjG? zksw}FcefMZowD0+T)uKrCCV-?@woW7Z=()$tB`h2Aw1GmnqYn>_k#&B{f2g_1NsYm zbM#VsC<2Z~K1JRT-fToI?R{UvY2tzCTJrrm(Um*~qWCw+F4qWC(Y(CS1ShGOC_9{! zDBuaF_m29EDmt>w2l7NfVBBW_j>djQ?T@}`wy6(P*}<7GOFFuCO%sML`5VbwWvZcI z^KfSq7w`=JjPlx^dKS0nH?)Rp#Df>f;uV$}SNVu09_nM)>ru-F7;^G|vIbHO(FS4R zjfaDQ8XCHoLNs$zK=^0WXPyzDb{M7bbjk$w_MOYy^6=E+jP_HI_7J4Wjh!R{{c>x0 za9f?&+wE&#IcGRpNCIbq5gfL?u!Xh+$e)_$~O7(uXcfjjXTTt{SF z2%Y#=8gbSKUClPb3#5GjR@E)?=g< z%Yh7NfM^2^4j$yL4sj!T;IH8$Y2NeSskLUumDO!0_~`x*H3c;Adf@Y zM^pn3NN9JH>;k|D9<6@)){FC$%69`K}K6=2waX7NroEWMZ== zVn|EzNGJ}aKYoC`Uj$5--hTH!EO&>dT@fA~`1&pDVh9!q<&nc+;t%VqO%3L2=ATM!whr4n$qERKfmjem}fsHUf(cV3A$+6!!pwQT?m~;cULoDP+pYq1MWS` z!3Ed|;R3xozdOu=u0Obw63vQgp3)A?2|=j?XT1K)sl2+fd-7H zFV!RB<-j}#swY-R_h@Y!tU}@s+}0&7T_MA{gh6df4g2 z+WAX3VE?`PlGCZ)d$bTJydjN_F)LUb&Db^D(g!VXX~y!->BC~tN`V_a5A)9RN)KQW zHJvbq^RPI#i3FT!`WN_*Kpc-%=Tq2jhKCB{6~acV6otTL+ODo?s0@ur6zJkcB`{V4 z1#t|Kd7WjUz|bcX_9b}v=_uq`?SJ8Keoa9mY9C_|yn>T2^YHEV6{{L;(9#lh0=5cn zpGEN48lYf;A==RjF^+#@kj4+$ckR0qB{0O(XwG4g{6***x2NK z2*ww2K=IqXsm0sY!%H-R0_06`Ix#6_*M1K>$ zBsK8}#Ao@nV^{N&2IIs#1bvGK&lT34_C4RERCNNqfFI&rb) zbw+z}NODnkQ=ZneRpg3Nb4COLcNjzLSJZX$nyNxd+QEK2bH(-6Y^#UL>8))nlGuqY z5hah)O&=OMWL_m!cu#T2$0=V((WH)uJ^CtVQ^@>B^7L3Ox+@BsMu&<=vfOGovsjEX zE03jw-uYHOar~3rY25X18E`!-%iz^$46JU_;P}s zw(GP^a4+4hH`=sqBM@sGVEhXEA_+0VH0fcX!84<}BN%C?RWny)5VO>ikvp z_2X?Xhu5TJLe(kB6JP2iA4gNKF*Ot6i2Ci63hF9}d*j#Ug@?v}_|_7%kXTt}83E zRBHh%%`8q6+kDE^d;8@u+C0~18IA8W&q}le3Vk~n(sR9a)e`>3-I~oV_jIt9wvZjT zEpL_ZeSGx4HGD21XWmWh4#}kckfmzM-s|t3^bPD`5_V)#%@&`m3<~NG)ms-I@VfG- z(xS5T$&DQ4J_)`k-h_}INtsZojg&mO_TM=UIeNLj49t@_lWu&0FDoXzKd<(#EY z*dy5Aa&ODOSWuvT9v1qRIV17je$LruNAk<6$3LQ{24@^HZ@yHqd3vwEU4Sy5HyxAx z&QyfiI2hi(G#g1OwY~ms+PLydwC(+_kGa$%uWpUiF7|=@)#GiM>l#v_cg9@1hSUlk1 zDuuB1`Ij`fg4Qq_tJ7LfVkZ+PWRdtkjVJPkOBjyL{f5A8G@eis2LsOKy(dh@S1uHb zAi%)pizD3K%A~7kv)%k#?H%~7m;~ZEYhq}$r=ntL1y=m6nrQfV7#0)Ae5W}E2ac4C zpCp3z$RQnoibvV=#j+UwEwpe2r}ZJxLD=EyBpiLl;x6rY z(7;Zd_C7(G);QAtxCcdaiSiDgV~1x`E9%e&T!f7pi4oaZgm#RTzoLT1j&i()?7>8034T4_LhRZmm?s@`_?+#yK3DhJ0W4+pj`A2jr(6+iLnui<1KWSboa z+9{$(b2=8b@>vm!o6Dcv8y1(k>+O5zXvad&zKhK&4xAEwZc)%++nZ@4W-lH8Yv6&AP*;c(>!}-5I0`z@g4-;;&4U;b*U$}4k=BEGSIicS%z~kpb>2Rub znJTS4*SPa|4n;%Gr}ZXkB~^T*RZM(NT_+k>pDyvwksj6y1OA=$snOzx{OX%+{lCQF z0WRXa-8uC;$b+DBksSzpRjqifqVBo8aCCh?O^WV%>h|1gHhZ=NeGDQ&+gG8spL~ti z?JYA1$gsY!O!*yF+1Lt9Nbq}f0D!${biKOif+F2GJC9u5v)5AbfA zsB$P>9lqq~AUvB%J5peT7qz}~MOBSopq{6I-_4nDA5D*)NAFV4u*PIM=0=O|732yU zmp#;{L(J&4mo1B(+xaF)pkgWZl>7W)hcAA?j0@$3%5=e%gkop(@4|Dh8=l3A*jBlHY<3&DXjov+CS>?NO?sf%e#daY zYmz<>08n1me^GXJAyIgs+#s=X-P4URh7ARPT2$rwukvoqot(M;qMiK8^}*tq$7R31 zI>qhz7KgXPdsTQ0G(A4L+pUeWoAZ1&8>2YH!NUpB%O{k$gA953`FD$RcMiuM`+U4= zgfuq`2hqW|c$anfAwZ0xMR=y+I2~u0kUL`x3eK12wc`HDOv)ktk2i_)<42pFPqyw2 zckG`qVlLrqujZBdu3Pk|OBHLK+rt`+WulzlkLUiid z2@eaidRI%P`h&A)7i1`je_p6I%u2jZTM|EhfzRY(`L&NVP?)1o7^auQtwFr*Zj8w- zvca(O1X+%?R=dh-YMZwV*;+Kt>laoARoohU^VzOD!5jksmw{?@llNu{(RCqjA|rpl zcvSWVJo_tv=gX22Zrs!tBO@c-#_C+}4D6NO*YDVlZufJ*Yz?n(0X=R2URF1X_3*5= zsy#e#zx9#P)M%Z6FuZRB?KNs}EU6(dR@C95bHMQ`%$qpsJNPY0qSfy6cU2gpTIIzF zpP$LfuKgJkP-!7(#=JzE-Mqu2>9*(`$?+7j3Jmc0Q-<=C#0t0JT6ZIoLPzGmQchjz zRX4wRzJgYK0Iir|=(Lg==xaRYoJct?d-Q!;lP5tZ1qVlpxWL=zOFV%Wd#~GQxub&K z$_5uf)8Zw1;q|qPhsW{}!;vA5uY-d-tOKX6&_jKWk6m7IkIMdOzz0x*LlcAJ zqgSsV z)}{`dxsS5J+Bgs6v18CIYAFM74px4(62o2*XlTzL>kEUHH3H4tw3o>A3uNnAdeDF$)J*}ohjvZY(ID* zD}!j&Dh#g^Q;;#9_7ti(t!LQe4Ha9f8uIM)f>azdeCyblqkSU$jzi{A=hQ~6K(iQB zH~xud&91c}XYowDsOy5*V3j+(-3gb5df{Q%6mG>TP8UF}%7mk`n@2bdpcv=-t{*GD zO?Y=KwN8M1fX3pL7xY?&M4vji{?c&$*Y^#aswP5GyXEN=qG4#gSUh~lb(`&d?vV5+ zZSJ^eht1s;XhKs@g8p~7OvGQG)FxsKU5jYKDf7k}+p#6Uk7dA^j;U#P-c*Nd@cXol zg9|A{8m{GuvTLBotSfCDGAe!U&k6PFK=v7m?|1Ld9ePq&Dd_{EAWf zl$QMG_+OX1mZx~_@!av=vz`PvX3BF*DJdyQFzL(0SevDoy?fD~15EjK18=*1n`zg5 z!0>zRow-!eJ(no0-x`yDtLXWgE z{W0SoNqedK1_pn4?trMrPewz&9Ld`446jc$^1&0%tgvqfnY%f;LD4IIT1kJbT^DAe zsy}K8(u@;J3$8m`zo#sXZN5$Y^L5$*&^D`!-^#9b1}VMYonfW)pL1PEeWy_G1JhG@ zDO-vXTx+s))v(WCB-AI)NUCbHYS*my4tyARdUvsgfrDSxl4efdH*jeWxGoHGZ)Pqe zdw-TskEZTl4#YE1X5M)}r?&O5t+RUXwO1;KsuD%AH;TDO30{67X~BOp(1C zqv(8kuPt2kUU6RDOu6&ZJN??JUQ_fmh2-hAJ&G#VO$#eCc?AS0i# + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_dashboard_rettifica_spedizione.xml b/app/src/main/res/drawable/ic_dashboard_rettifica_spedizione.xml new file mode 100644 index 00000000..2d4fc3ac --- /dev/null +++ b/app/src/main/res/drawable/ic_dashboard_rettifica_spedizione.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_dashboard_trasmitted_orders_list.png b/app/src/main/res/drawable/ic_dashboard_trasmitted_orders_list.png deleted file mode 100644 index c46805ee5a1aecda537483fd1a4f3b17d60c2b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9519 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 + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_erase.xml b/app/src/main/res/drawable/ic_erase.xml new file mode 100644 index 00000000..b4cd0420 --- /dev/null +++ b/app/src/main/res/drawable/ic_erase.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_erase_96.png b/app/src/main/res/drawable/ic_erase_96.png deleted file mode 100644 index de7c5565ede851dfe7710b5faf7ae920fc4a51d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1199 zcmV;g1W@~lP)K~z`??U}o7)Ib!5y{QO7;sFpvh?Fv-;U*-M4Gk@ql!>Si;&DPl zK>;l#4?sl|L4iUC)h41Nu#t#BBmusejU#(m-*#=!8PAFSGrr8Mea`ofCy6(T^hXIO z0VSXWlzyh3BatPI%fX33Hl_Ibf5|Nu^DPYfeC&34~Q686I)%5 z06a-;z>f`86UH296TX@t0KS@VVuFjAAH$Eg!7fJ<;0J4hB>2IZAQ65rCP;?gc@unq z-&qrUg5Nn4e1zW_6MTm6y$M}_@2v?J3|sQ zYvFrjK)lvR)VT&5}bT-vHfE7^oj!-u_ zH+DLABn$-jmb!|~$o&h3~B*!dGYl4`%_Ngq-fV=cdmoecLN#@m&>~p^C zkn5?o*-IujzCWOUfsm{|$sG{mxlcM4GxN#U>O~YqlM+py8!%>pkf=UMc?+N1qsKH! z*jf9Z74TtMW?uDxXmm5U658)+=Nm&lg~6x7*C@LvHCK$Z2z?Tv;+t z!VxJ=Taa&`qf~hc=}C}B|0JVOOgJf5=4PF=y8b(X5@qW)>3t!5TieU#OKI8aWp}mO zbC$b3jH2iYu}oYf&Jpv3?~=mUcaECB5>Nt4KnW-TC7=Y9fD-5ofqxut;nk-2DK-EA N002ovPDHLkV1g34E*1a) diff --git a/app/src/main/res/drawable/ic_inventario_header_outline.png b/app/src/main/res/drawable/ic_inventario_header_outline.png deleted file mode 100644 index fb2e1527aa12fbb187aeb8465137325e4774b950..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6166 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 + + diff --git a/app/src/main/res/drawable/ic_pallet.xml b/app/src/main/res/drawable/ic_pallet.xml new file mode 100644 index 00000000..fd0e7a2a --- /dev/null +++ b/app/src/main/res/drawable/ic_pallet.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_pallet_96px.png b/app/src/main/res/drawable/ic_pallet_96px.png deleted file mode 100644 index 4a8f8c9b1b7d5fc89b35c301b170faad5bd4aea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1981 zcmV;u2SWIXP)*1nwc{> z4Waxi3={?m1BHRYKw+RTP#7o-6b1?d{V^~^sxLzbH$w<_q5IHxp_Y6GBmFFeiz!wt zZJ(OaArK?|i1}s+;S1;n^vK8)K>9Uwzd^5H&ypK3HpNx<;9^SEx9RvNGdcufY>N8| zap$26El&a6Z_uU&_OO2jYRNW?O|jKIxR_G)Z92YXMu$L*#M%`5D`KC7F05P!vL@i% z+kwrJ$6!n~&iJTsGbQ?^)?Gxi7M7$CYbySmWYnAu@1TAPH1}`7ZpmdB>8BKKrl@$@ zFPRxaAXfUN^eqwZHV@pM+VMT%vMKBrguPF*s->{L-xrv^2CxJ`Z$m8^TSnN{ptBNH zYfAv(-M%DzT;{$8@EWR}g<7JnstZJBpO%yXUoR~_s~h?XmXT3P;Wr$OEI0fyG4BuD9o(v>79N_?PCDLWcEh} zbu}q69%bt9NDbXH08j5G;@ko7vEjK2R5OYUvx$yIRa0FwEXx6q10HwM+yPuf)u*9K zR5SCq15{0gnLR&)j~AhxC3gUxtA7vZwxE`%tI>+>YEw0dnb=kSk#ex?xdRwl$q#II zu-=EJgs+3kDdQCPS(CL>C5V~WQ}(#;;UN0{Z_ORRn?e6mxALrCK_g=Jz7kIotHRE( zx!nOTpgON2ET*U?*39VX8ddGFqda+d-r?8iGHBfOZH|0yK{cVC#m+LF+*ECaJr?zH z5&b7?&H%j6KGlRGVFGpv2dcKZdm|(-7tw#R<_y3)b=8D=3{1dI;Xu_^7f*!bbBIOFJ2~bDwyxPmb(^ zJ23Ng4ojo3!R1EFY&Kb&7*f^l!N4A{n8Lq?H%yO&vFiYaiG20#&H6^|d|t1h5eA7{ zi6@Cw^$^3noJ9Wz>)^p>`;U<`M1fy(=9#9O!Z3Cg_i}P5U6%ozM~16Vk0|i!EyPnJ z*GFMcJ;eI2;DFp<@k^HhY#_ZiZVX>bRP$DBUp9q7-Ng|HIa!Y<-jzXK-{{xoS+^O3 z605rX6Jfn>D-7x)s)A|5O*O97@h|XJuVu9F!cV<|?!bq>Z4@D*#02FBT_EBwW+Q$lu>ZOWrY6CchDsMo&qCl&ry>dXi`c2kK%_7gH4?zl2|{Zdk`{1~9S`)ogn>--24QNCQw<*b95I z`l;GR)f4Nu%>ag0qMGeC&hJB0!aM1?lyMIG%cx0ASQ^Fqt7r^%bLAbtNn~D!dSxse zS7GPtAC`p>Vp$PLR8Q6L4V;{WN*PFxhYtMl?cBpd*XO42Qn$PapNd&wQax2ck*h1! zjnuJs0PbhnL80-%np!TT40GI9m{d=7=q}E@18_gn4p6A8MO|$NX=b`8Osc0kSQlrW z0r2_gnq~!ox?0rLR!KFpLxoB8R0qldkh}VR>+_cop?-v_+IQi98fwW7jMbPn#|Sm0 zO|Gi%wwblvuc9&UMUm6>Q$*XV|2B#qrB_hEeIU#D?DJI=>4M~LKrf*~VXvFV^^My3 zD$aYkHIb)JA*L0PQ1w<1m)s5N5e?^ZinSQ^Wu?CCYUyTrs<5fv>R{V)SC22}g@M9A zVW2Qj7$^)B1_}d(fx^HsWPpGDskZpLhVm))Gy^8bp1*|Csf#6>fii$>3iA?_0p#(Q z9bE>HO<`VwGJrh(vZKoYvMJ0>2nEAfD1(zbH7kLN!ZFfuW=u?4+JTD11+7yA##7fo*V^V>DcLQ=i_KT~>oY;WM} zWuD1DxqaGST`<|Wl{fa6vzEf0#|zfV{yGqA`^V(Y^R4%6@5}75v{0~gZ~+4qU!P0N z(eEElnz8x6Vy9-k=sI=db z1B%uZzw^7#Hh-ON{@t!U8B^S+1gWNfcy(&}v%?zJ+6OWs9-q0ak>14A(^tx-ucx0s zS8~hc&iA5%Rtd$sd!NOz|DG$yuwVjrfcA5P$diYU?b-ik#yRcCW_5;lzn{%}p|#>R z_r@*zn!}dYznPV!ci>KlOqm{}{H z*us57*gYQOgFd>FnnbH?+A{C%bynXjDs`QrDq zO+bSfv_X8IuumFp6;DNq8DC9($UeWT^4yu<*N*Zf@EVwh%2fog$NTh1{wpmdKI;Vst0FZ-bJOBUy diff --git a/app/src/main/res/drawable/ic_production_line.xml b/app/src/main/res/drawable/ic_production_line.xml new file mode 100644 index 00000000..346674e7 --- /dev/null +++ b/app/src/main/res/drawable/ic_production_line.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_rettifica_spedizione_drawer.xml b/app/src/main/res/drawable/ic_rettifica_spedizione_drawer.xml new file mode 100644 index 00000000..3b2a0fca --- /dev/null +++ b/app/src/main/res/drawable/ic_rettifica_spedizione_drawer.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_scale.png b/app/src/main/res/drawable/ic_scale.png deleted file mode 100644 index f5c5ca11dd537db6cc7bc17d0b1029a880ef63bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlJ8^*mi1 zLn`LHonxIX>L}4Re+_%!M#HjWr?~$y{AD~C<}Fx1L1MkHz+dKDQ7aT8RJI=bk|i#9 zgxieG#I@(>JVm8>o2MIFe?IrHHepuE&A;^4qT)&55=0~QKW84!Y^&Qf{9FcQIXX87jDaWKQJzCoKLuuNn_2#dI zyM9%#ao=&SqpDi*YnY4H{DPYze_#czg4I5FZugx$>Jq?6TZKm+&5{L!>#q2vg?m4 zS9?_{y}v%C&-=jBw&W?h!NU1B>VJJ+^)TWnP;vI;K8Ma&g}2vLWgCII?ydK>Vp1(_ z+!8;(gvILxQ{{fUmmE_ruwJU$yhM4y9oA1!`cj?YCBc9`4D@bxl84Y+?lWy*mXX=e5qX1=&()%RO+0JP^L0sF_DXY{Z>?vtdkSP5W=;OKx}kjM z>KTV_b3C8$ZS{)#TNiuv+*x1;f zXOjbW2K;59>QZQ2d{9l4r^@&$MJ|7A_OcBn3B`J;$6kCXy>?h6$(*Hvpr zA1HlrM4;7GX=nWX_KTtgj5|2yu%GMgwzvBC*X)B}h5z3R)xA~G7RT=SaXq_x9yt;B d7;^q(J{S8^VDZP6SYTda@O1TaS?83{1OTNBnsxvH diff --git a/app/src/main/res/drawable/ic_scale.xml b/app/src/main/res/drawable/ic_scale.xml new file mode 100644 index 00000000..923c478e --- /dev/null +++ b/app/src/main/res/drawable/ic_scale.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_shopping_basket.xml b/app/src/main/res/drawable/ic_shopping_basket.xml new file mode 100644 index 00000000..fd6f1b89 --- /dev/null +++ b/app/src/main/res/drawable/ic_shopping_basket.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_tick.xml b/app/src/main/res/drawable/ic_tick.xml new file mode 100644 index 00000000..fbeed5dd --- /dev/null +++ b/app/src/main/res/drawable/ic_tick.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_truck.xml b/app/src/main/res/drawable/ic_truck.xml new file mode 100644 index 00000000..b7349998 --- /dev/null +++ b/app/src/main/res/drawable/ic_truck.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_truck_black_96.png b/app/src/main/res/drawable/ic_truck_black_96.png deleted file mode 100644 index 38d65b2dd19238fd66d5c671b3e3bf4914f5d26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1509 zcmV!iMqG@>7Z^z- ze}VV_hah<%x-vl#M~%90qYK4JCQ70RF)T-E3k5?^6cuMCW|Yj$bx}RctNT<{ zclFDAJ~%Mk+jZ(!=iKV9M|Te>ilQirq9}@@D2k#eokAmH`5s^>vNgcA3T;76Sq&T` zT;LbmQDCsJ*3^t`z!doff7bp2wieW;TF?NVBmclJwms;zfd=p<#Rq@ZUdz9U)#e4< zgEa%307igym|^G@k@ZENjYP-Hc=&xj_f}SvZMX&K0dwPvFzZ*9;2vbL`|&&NY?)W~ z8%%(25RPvE2Q3=%u$MjBlq+K-i@bpU1@}OLuf0NNG!^r1JpK(6GBMH7Hfn}Dm{giV-_O*+^_rOyG7!mFfDmszE zU()I9J;(AV1wB=?H#}k!%VEL!h^MbE%*->+*F%mzwhMZyYD3Nuis6jlc%7%OhZFov z0arQtSTE?Qs(tPpp%{J_9AD$<>w^S8?|b;@7xYxw?(k^i0{#`8`b^imNM1+!)Wg@6 zf}Sc{>RymEWb{qICX2vv%o4SYx+WlXFE}eW^cjLSfsZW$$AHT%eu_Q?`LF_cvY4tD zd@VTiy$CmvM^$aivWAp|+b!kGOaPeOx}d#4`qlalL%~e8j#xzQ6UrAo4E4p<3y%9b zlvX0sOvJzpIgcjz{1doUDEpP5rwR#xz`bBdaFk{#VwNtD47#*9ILEt0Dx~iT4u=j!u zKF(Z)Ph<9Q`#pRw#|$;oJXura1O&Yn_%@)0*+$%s*-YujtO+%vzt>0KouvHJOs7Km^tXT;T@nE1_VKh8?GXI#Dlmvu(?2Ts zT|$#|Z%I7l;JeB_Aus($us@`}geK;dE7FvG`c$E~vpU)c1TSZP` zf16g1gTG#n1{7@}^iN@4kv59`j__1SNpNYv)k67+9P}=xQu@=(gnt&klO8>qp;G$OB;ZHkyQdw>OUL}+sU;0{*U#g~=fGV;S=+109?MPj9Cg>v0QQm5Va#Zu zC$f#$AL70UtW^DOyloMa#@;GQ{Qp2dD==@s3MGC5b6cP4_h6XpYesF%WaYkswL|^& z1Mno-?)h&4PZX|tj=Jjy;C|9|=LxFu?@Q{gA24s$8pVtRTz)n0Qo=b?pfvrVAHH4* zJOJDaT*ut7>>OqS^a*Cg@m%0~Ls57AilQirq9}@@D2k#eN`?6kwJxVh + + diff --git a/app/src/main/res/drawable/ic_black_upload.xml b/app/src/main/res/drawable/ic_upload.xml similarity index 100% rename from app/src/main/res/drawable/ic_black_upload.xml rename to app/src/main/res/drawable/ic_upload.xml diff --git a/app/src/main/res/drawable/ic_weight_kg.xml b/app/src/main/res/drawable/ic_weight_kg.xml new file mode 100644 index 00000000..49a14fe5 --- /dev/null +++ b/app/src/main/res/drawable/ic_weight_kg.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_weight_kg_96px.png b/app/src/main/res/drawable/ic_weight_kg_96px.png deleted file mode 100644 index 0ae68dba7179a40884caf2552ca6d40dcc09764c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2174 zcmV-^2!Z#BP)>S!YH$_ zBr8%PBKs>S%s;fi%K0NrjLN^FSqc3>Nn!<>mZpMa{tD+WFgNC=+xk3k@7T_L-*evg z-gEEncHZ&*?A-f2&-)p^0?#R zBn~w3E6lh~Y8Jyapp)cYA=w3C{nk?BgaZ}O4nc;A`7^08)hr5SOi<4@YRVw?nuh~H zMoI1kYHal)17vIvk5dzSt;c~Nll~-M2)2^P(E$bp^*>YbHGwi{rzyQJe0A)!Or{n)`ZRR- zo$Y4^Lt-cKsM2)RHXC4dYne`9nARD4WwQb9@ne3q7<*;20mi#(KF?uWY3!9euS{Jq z-c{3vA$7;eZwH;GkhlwU`p5IUuV6QH!YH^E9)UWz3ZH;q#RTR_3z!r`>CMQL=tD9|Cr?KbHwL^?wd#`d&rf1f)#p_SVjb`S=p-M$3rSuN2SFY|Cpl(I#&>|t1olzfn*q&?)oB}vdeBK8EwVAX z^M9ioNL)V5+d1|hdy)6IfJ)T_``4!P`VV?Uu2XbOXEMn#K^xFOZ=D)RT!LgD)p0R- zoqi&r8uJ8km8uD<>TP2G(!)sk@)@vSGuv^*zlJghl6==!<>ircpO^ce8q-snZh#n2 zY}z!!I{ChSgF(MDni~1GRG`UaGdz;!nrXl3Chlgsu7yv-z@gV$g@sI-OP4p03vT^;tih)Zt{DLR`H zi8c_aXRDc;%^xDF+Gcv_w39?~%vN6Obd%?KZIG-@9#0dKuYMd-R6yhnI0;u^FDw9^ zs!1gKW^(+HK9T8jI%P5$8Ed)$J)G+v(CIA_($CM6#G_DD8}OycWC~4+sHuTmseltT zK@q65oZ#=^*ZTy*e68z@1}C{ zsIG`?_xX>xP6E+Her<&F(3{{4$K@~rblOECS)b{#kzN_=0Xk$lkz9?JXFJnPQ5lhH z2-8doqMWPrqorO&`cz*glG~`STlQWw(|RMQ)TRphVxxJ#9->rDShK>g0`j#m6f}cL zhF)>hs5F`2PM82uD%3lZ4G7)EC}*5OuS&*#3m?N+Fp-Q|M&WL#gQyki-EevYiFvY~ zMZ9UJGTMZy)+`Z145f*cMU_jdn9*&d{Y?GE)3%2L;v_Qc?69b#03oXQx}IV zz+?kXgf($_tplgDnMA^51Aa}^x`Vv~yX=Rgj<|zRuft2ngWK^f5`9LObS4nzF`Mx$ zGF8y&H;A*LHfwLet8$1`qv*B{y1`~LajLzFH%(9iS<`KFUIp?W-{4mby#1Az|w4?P1c?`GfK4*&oF07*qoM6N<$f=O@# A-~a#s diff --git a/app/src/main/res/drawable/ic_workers.xml b/app/src/main/res/drawable/ic_workers.xml new file mode 100644 index 00000000..9cf6a9f5 --- /dev/null +++ b/app/src/main/res/drawable/ic_workers.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_workers_96px.png b/app/src/main/res/drawable/ic_workers_96px.png deleted file mode 100644 index 1153ad5e681b4ef2e25babb022aed9b318f0bb32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1691 zcmV;M24wk(P)vK~z`??U_qxT}2qjCrMMWk2Khp(!?%emTi4twJWtsTNJ^Ku2e+O zjkFsDL2#df3NEBB#0R(#tt%UfcHyQASB27rB3fu9ZK`P`J_FC_k9Nz;IRvp+$`!Uo8>6Re_dfc`(lIdjgZqWY(?tp!b=TW~1v*zeyh7IU( z+tx^?Q-{jumQy%!Xi`j7}EyyxNU1B)2Yh)i1|_27q|_T=V6s0GDnC38FQhL zOs6jQTVf_))DZJ$QCMe&%oAon#$0G5)3M3DLfjoNN=%~a60|WwVhA-LV=gq3>DcD} zLhQXTD%^sa@1d;;5=XcJ8FQhLOvfenN8)$EC@_SIFQAJ75<5hEBP#%F83 zf`%>73i5et71%(~QPy}0hK^0E0=`^rgJ?#mauH_VNg*F!L(6tpi^1B6W&)mLnNb)E zHX`Ij7zBo?(&d3Glq*B7X!#8bdF5!s74R74jl03(|F7q~>TKmvo4mVD(TI$}Y)0Lw;{rqToT4Zb#oGvw-<3qH>$!U!f6b=&rej=1+t#;q>Ctx0~ zV)OZO&b#x2nf`u`e}Jy*G#NideLcgSocT1=f;cpw$8B39nU2o;oa5VJ5k?r4jnc7g zYv-u1>yXFp_c-fym=#RdKz7dN*hr?6&5^atBjZZ6XX@oscnlqB=6vgPV&zRo= z^Ek@D4XERMwe!>2I}JT^F}hA{Crt|me>gx735>*B8rwA zNT>mqT!}T3>ByKZFAyKi$I&oizJj*mb)0M(Y0KEfs~)#)JIz1Cn(JWjcoPM-re))% z$s2=WG6yve;eOGpkR2a*HHf#g7PAUTj6 lNDd?ik^{+s @@ -332,7 +332,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_pallet_96px" + android:src="@drawable/ic_pallet" android:tint="@color/gray_500" /> @@ -706,7 +706,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> @@ -857,7 +857,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_pallet_96px" + android:src="@drawable/ic_pallet" android:tint="@color/gray_500" /> @@ -969,7 +969,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> @@ -1125,7 +1125,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> diff --git a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml index 495a8f3c..d8eef804 100644 --- a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml +++ b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml @@ -319,7 +319,7 @@ android:id="@+id/export_document" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_black_upload" + android:src="@drawable/ic_upload" android:visibility="@{view.isDocumentExportable.get() ? View.VISIBLE : View.GONE}" app:fab_colorNormal="@color/white" app:fab_colorPressed="@color/white_pressed" diff --git a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml index 5d24dddb..1c2815a4 100644 --- a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml +++ b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml @@ -240,7 +240,7 @@ android:id="@+id/pv_ordine_export" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_black_upload" + android:src="@drawable/ic_upload" android:visibility="gone" app:fab_colorNormal="@color/white" app:fab_colorPressed="@color/white_pressed" diff --git a/app/src/main/res/layout/dialog_basket_lu__page2.xml b/app/src/main/res/layout/dialog_basket_lu__page2.xml index 532d1760..604a52ba 100644 --- a/app/src/main/res/layout/dialog_basket_lu__page2.xml +++ b/app/src/main/res/layout/dialog_basket_lu__page2.xml @@ -111,7 +111,7 @@ android:layout_height="52dp" android:layout_marginHorizontal="8dp" android:text="@string/back" - app:icon="@drawable/ic_black_back" + app:icon="@drawable/ic_back" app:iconGravity="textStart" app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline" app:layout_constraintStart_toStartOf="parent" @@ -126,7 +126,7 @@ android:layout_height="52dp" android:layout_marginHorizontal="8dp" android:text="@string/use" - app:icon="@drawable/ic_black_tick" + app:icon="@drawable/ic_tick" app:iconGravity="textStart" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/center_buttons_guideline" diff --git a/app/src/main/res/layout/dialog_input_lu_prod.xml b/app/src/main/res/layout/dialog_input_lu_prod.xml index 9ee24e63..0d99ed97 100644 --- a/app/src/main/res/layout/dialog_input_lu_prod.xml +++ b/app/src/main/res/layout/dialog_input_lu_prod.xml @@ -47,7 +47,7 @@ android:layout_gravity="end" android:adjustViewBounds="true" android:scaleType="fitCenter" - android:src="@drawable/ic_erase_96" + android:src="@drawable/ic_erase" android:backgroundTint="@android:color/transparent" android:onClick="@{() -> view.resetValues()}" android:tint="@android:color/white" /> diff --git a/app/src/main/res/layout/dialog_scan_or_create_lu.xml b/app/src/main/res/layout/dialog_scan_or_create_lu.xml index 8ebc95f6..866af6c0 100644 --- a/app/src/main/res/layout/dialog_scan_or_create_lu.xml +++ b/app/src/main/res/layout/dialog_scan_or_create_lu.xml @@ -133,7 +133,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_view_basket_ul" - app:icon="@drawable/ic_black_shopping_cart" + app:icon="@drawable/ic_shopping_basket" app:iconSize="24dp" /> diff --git a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml index aa051083..2679d28e 100644 --- a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml +++ b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml @@ -279,7 +279,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_truck_black_96" + android:src="@drawable/ic_truck_with_clock" android:tint="@color/gray_500" /> @@ -322,7 +322,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_pallet_96px" + android:src="@drawable/ic_pallet" android:tint="@color/gray_500" /> @@ -696,7 +696,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> @@ -847,7 +847,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_pallet_96px" + android:src="@drawable/ic_pallet" android:tint="@color/gray_500" /> @@ -959,7 +959,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> @@ -1115,7 +1115,7 @@ android:layout_height="24dp" android:layout_gravity="center_vertical" android:layout_margin="8dp" - android:src="@drawable/ic_weight_kg_96px" + android:src="@drawable/ic_weight_kg" android:tint="@color/gray_500" /> diff --git a/app/src/main/res/menu/picking_inventario_menu.xml b/app/src/main/res/menu/picking_inventario_menu.xml index d76021b3..622d7c94 100644 --- a/app/src/main/res/menu/picking_inventario_menu.xml +++ b/app/src/main/res/menu/picking_inventario_menu.xml @@ -5,7 +5,7 @@ diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 673ed822..865f8501 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -21,6 +21,7 @@ Ordini di accettazione Spedizione Rettifica giacenze + Rettifica spedizione Inventario Approvvig. linee prod. Posizionamento merce diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml index e505f087..4a63fe50 100644 --- a/app/src/main/res/values/config.xml +++ b/app/src/main/res/values/config.xml @@ -15,6 +15,7 @@ + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c0f6948b..10f3e776 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -59,6 +59,7 @@ Multiple acceptance orders Check out Inventory + Inventory Inventory Production line requirements Items placement diff --git a/build.gradle b/build.gradle index f5506849..591a7bb3 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { ext { kotlin_version = '1.8.0' - agp_version = '8.1.0-alpha05' + agp_version = '8.1.0-alpha06' } repositories { From 69b88b1f6d496a3df5e3c45339d99f3cfd1d794d Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 24 Feb 2023 19:05:39 +0100 Subject: [PATCH 2/7] Sistemata UI del log esportato via Mail --- .../core/barcode_reader/BarcodeManager.java | 5 +- .../core/utility/UtilityLogger.java | 4 - .../gest/settings/MainSettingsFragment.java | 175 +++++++++++++----- 3 files changed, 135 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java index 5e986f50..24889430 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java @@ -14,7 +14,6 @@ import java.util.List; import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface; import it.integry.barcode_base_android_library.model.BarcodeSetting; import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader; -import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader; import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader; @@ -136,12 +135,12 @@ public class BarcodeManager { public static void disable() { mEnabled = false; - UtilityLogger.trace("Barcode reader disabled"); +// UtilityLogger.info("Barcode reader disabled"); } public static void enable() { mEnabled = true; - UtilityLogger.trace("Barcode reader enabled"); +// UtilityLogger.info("Barcode reader enabled"); } public static boolean isEnabled() { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java index 69373d0b..3dec6240 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityLogger.java @@ -7,10 +7,6 @@ import it.integry.integrywmsnative.BuildConfig; public class UtilityLogger { - public static void trace(String message) { - Logger.d(message, getPreviousStackTraceElement()); - } - public static void info(String message) { Logger.i(message); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java index d9fccf32..313a9eca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java @@ -6,7 +6,6 @@ import android.os.Bundle; import android.text.Html; import android.text.SpannableString; import android.util.Base64; -import android.util.Base64OutputStream; import android.widget.Toast; import androidx.annotation.NonNull; @@ -20,11 +19,13 @@ import androidx.preference.PreferenceFragmentCompat; import com.annimon.stream.Stream; import com.harrysoft.androidbluetoothserial.BluetoothManager; -import java.io.ByteArrayOutputStream; +import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; +import java.io.FileReader; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; @@ -50,6 +51,10 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT public SystemRESTConsumer systemRESTConsumer; @Inject public DialogProgressView mCurrentProgress; + @Inject + public ExecutorService executorService; + + private boolean progressOpened; private final ArrayList onPreDestroyList = new ArrayList<>(); @@ -214,49 +219,49 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT DialogYesNoView.newInstance("Esportazione log", "Vuoi inviare il log degli eventi al supporto?", result -> { this.openProgress(); - File yourFile = appContext.getLogFilePath(); - var files = yourFile.listFiles(); + executorService.execute(() -> { - var fileToShare = Stream.of(files) - .sortBy(x -> -1 * x.lastModified()) - .findFirstOrElse(null); - try { - FileInputStream fis = new FileInputStream(fileToShare); - byte[] buffer = new byte[fis.available()];//specify the size to allow - int bytesRead; - ByteArrayOutputStream output = new ByteArrayOutputStream(); - Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT); + File yourFile = appContext.getLogFilePath(); + var files = yourFile.listFiles(); - while ((bytesRead = fis.read(buffer)) != -1) { - output64.write(buffer, 0, bytesRead); + var fileToShare = Stream.of(files) + .sortBy(x -> -1 * x.lastModified()) + .findFirstOrElse(null); + try { + var htmlContent = createAppLogAttachment(fileToShare); + + byte[] buffer = htmlContent.getBytes();//specify the size to allow. + String base64 = Base64.encodeToString(buffer, Base64.NO_WRAP); + + var attachment = new MailAttachmentDTO() + .setFileName("wms_log.html") + .setFileb64Content(base64); + + var mailRequest = new MailRequestDTO() + .setTo("developer@integry.it") + .setMsgText("Questo รจ una mail che contiene il log del WMS") + .setSubject("U vuemmeess") + .setAttachments(new ArrayList<>()); + + mailRequest.getAttachments().add(attachment); + + systemRESTConsumer.sendMail(mailRequest, this::closeProgress, ex -> { + this.closeProgress(); + requireActivity().runOnUiThread(() -> { + DialogSimpleMessageView + .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null) + .show(requireActivity().getSupportFragmentManager(), "tag"); + }); + }); + } catch (Exception ex) { + requireActivity().runOnUiThread(() -> { + DialogSimpleMessageView + .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null) + .show(requireActivity().getSupportFragmentManager(), "tag"); + }); } - - output64.close(); - - var attachment = new MailAttachmentDTO() - .setFileName("wms_log.log") - .setFileb64Content(output.toString()); - - var mailRequest = new MailRequestDTO() - .setTo("developer@integry.it") - .setMsgText("Questo รจ una mail che contiene il log del WMS") - .setSubject("U vuemmeess") - .setAttachments(new ArrayList<>()); - - mailRequest.getAttachments().add(attachment); - - systemRESTConsumer.sendMail(mailRequest, this::closeProgress, ex -> { - this.closeProgress(); - DialogSimpleMessageView - .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null) - .show(requireActivity().getSupportFragmentManager(), "tag"); - }); - } catch (Exception ex) { - DialogSimpleMessageView - .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null) - .show(requireActivity().getSupportFragmentManager(), "tag"); - } + }); }) .show(getParentFragmentManager(), "tag"); } @@ -279,4 +284,90 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT }); } } + + + private String createAppLogAttachment(File logFile) { + //Read text from file + StringBuilder text = new StringBuilder(); + + try { + BufferedReader br = new BufferedReader(new FileReader(logFile)); + String line; + + while ((line = br.readLine()) != null) { + text.append(line); + text.append('\n'); + } + br.close(); + } catch (IOException e) { + //You'll need to add proper error handling here + } + + StringBuilder htmlContent = new StringBuilder("\n" + + "\n" + + " WMS Log\n" + + "\n" + + " \n" + + "\n" + + "\n" + + ""); + + String[] lines = text.toString().split("\n"); + + for (String line : lines) { + String datetime = line.substring(14, 37); + String tmp = line.substring(38); + String logLevel = tmp.substring(0, tmp.indexOf(",")); + tmp = tmp.substring(logLevel.length() + 1); + String title = tmp.substring(0, tmp.indexOf(",")); + String message = tmp.substring(title.length() + 1); + + htmlContent.append("").append(datetime).append("
"); + htmlContent.append("
").append(logLevel).append(" ").append(title).append("
"); + htmlContent.append("").append(message).append(""); + htmlContent.append("
"); + } + + htmlContent.append("\n" + "\n" + "\n" + ""); + + return htmlContent.toString(); + } } From d807ab1f31f9e8383e4da3d8cbe6aee793cc30f4 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 24 Feb 2023 19:32:36 +0100 Subject: [PATCH 3/7] Completata chiamata di saveDoc in fase di Rettifica spedizione --- .../model/SaveDocFromPickingRequestDTO.java} | 48 +++++++++++++------ .../RettificaGiacenzeViewModel.java | 14 ++++-- .../rest/RettificaGiacenzeRESTConsumer.java | 30 ++++++++++++ .../RettificaGiacenzeRESTConsumerService.java | 17 +++++++ 4 files changed, 92 insertions(+), 17 deletions(-) rename app/src/main/java/it/integry/integrywmsnative/{gest/contab_doc_interni/dto/DocFromPickingDTO.java => core/rest/model/SaveDocFromPickingRequestDTO.java} (61%) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocFromPickingDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/SaveDocFromPickingRequestDTO.java similarity index 61% rename from app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocFromPickingDTO.java rename to app/src/main/java/it/integry/integrywmsnative/core/rest/model/SaveDocFromPickingRequestDTO.java index 4041729a..372a3f1f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocFromPickingDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/SaveDocFromPickingRequestDTO.java @@ -1,22 +1,29 @@ -package it.integry.integrywmsnative.gest.contab_doc_interni.dto; +package it.integry.integrywmsnative.core.rest.model; +import com.annimon.stream.Stream; + import java.math.BigDecimal; import java.util.Date; import java.util.List; -public class DocFromPickingDTO { - String codAnag, codVdes, tipoLista, noteDoc; - Date dataDoc; - Integer numDoc; - List colli; - List pedane; +import it.integry.integrywmsnative.core.model.MtbColt; + +public class SaveDocFromPickingRequestDTO { + private String codAnag; + private String codVdes; + private String tipoLista; + private String noteDoc; + private Date dataDoc; + private Integer numDoc; + private List colli; + private List pedane; public String getCodAnag() { return codAnag; } - public DocFromPickingDTO setCodAnag(String codAnag) { + public SaveDocFromPickingRequestDTO setCodAnag(String codAnag) { this.codAnag = codAnag; return this; } @@ -25,7 +32,7 @@ public class DocFromPickingDTO { return codVdes; } - public DocFromPickingDTO setCodVdes(String codVdes) { + public SaveDocFromPickingRequestDTO setCodVdes(String codVdes) { this.codVdes = codVdes; return this; } @@ -34,7 +41,7 @@ public class DocFromPickingDTO { return tipoLista; } - public DocFromPickingDTO setTipoLista(String tipoLista) { + public SaveDocFromPickingRequestDTO setTipoLista(String tipoLista) { this.tipoLista = tipoLista; return this; } @@ -43,7 +50,7 @@ public class DocFromPickingDTO { return noteDoc; } - public DocFromPickingDTO setNoteDoc(String noteDoc) { + public SaveDocFromPickingRequestDTO setNoteDoc(String noteDoc) { this.noteDoc = noteDoc; return this; } @@ -52,7 +59,7 @@ public class DocFromPickingDTO { return dataDoc; } - public DocFromPickingDTO setDataDoc(Date dataDoc) { + public SaveDocFromPickingRequestDTO setDataDoc(Date dataDoc) { this.dataDoc = dataDoc; return this; } @@ -61,7 +68,7 @@ public class DocFromPickingDTO { return numDoc; } - public DocFromPickingDTO setNumDoc(Integer numDoc) { + public SaveDocFromPickingRequestDTO setNumDoc(Integer numDoc) { this.numDoc = numDoc; return this; } @@ -70,11 +77,24 @@ public class DocFromPickingDTO { return colli; } - public DocFromPickingDTO setColli(List colli) { + public SaveDocFromPickingRequestDTO setColli(List colli) { this.colli = colli; return this; } + public SaveDocFromPickingRequestDTO setColliFromMtbColts(List colli) { + if(colli == null) return this; + + this.colli = Stream.of(colli) + .map(x -> new DatiCollo() + .setDataCollo(x.getDataColloD()) + .setSerCollo(x.getSerCollo()) + .setNumCollo(x.getNumCollo()) + .setGestione(x.getGestione())) + .toList(); + return this; + } + public List getPedane() { return pedane; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index bdf50c60..563bd31b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -446,12 +446,16 @@ public class RettificaGiacenzeViewModel { if (shouldChangePosition) { this.savePosizione(mtbDepoPosizione, () -> { + this.createDoc(() -> { + this.mAnyEditDone = false; + postSaveBehaviour(onComplete); + }); + }); + } else { + this.createDoc(() -> { this.mAnyEditDone = false; postSaveBehaviour(onComplete); }); - } else { - this.mAnyEditDone = false; - postSaveBehaviour(onComplete); } }); @@ -470,6 +474,10 @@ public class RettificaGiacenzeViewModel { } + private void createDoc(Runnable onComplete) { + mRettificaGiacenzeRESTConsumer.saveDoc(this.mCurrentMtbColt, onComplete, this::sendError); + } + private void saveCausaleRettificaGiacenze(Runnable onComplete) { this.mColliMagazzinoRESTConsumer.confirmGiacenzaUL(mCurrentMtbColt, onComplete, this::sendError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java index fe77a742..d587b3c3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java @@ -4,17 +4,26 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAartWithFornitore; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; +import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; @Singleton public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { @@ -82,4 +91,25 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { }, onFailed); } + + public void saveDoc(MtbColt mtbColt, Runnable onComplete, RunnableArgs onError) { + + var request = new SaveDocFromPickingRequestDTO() + .setColliFromMtbColts(Collections.singletonList(mtbColt)); + + final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class); + service.saveDocFromPickingPvm(request) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call>> call, Response>> response) { + analyzeListOfAnswers(response, "saveDocFromPickingPvm", data -> onComplete.run(), onError); + } + + @Override + public void onFailure(Call>> call, Throwable t) { + onError.run(new Exception(t)); + } + }); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java new file mode 100644 index 00000000..837efa12 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java @@ -0,0 +1,17 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; + +import java.util.List; + +import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + +public interface RettificaGiacenzeRESTConsumerService { + + + @POST("saveDocFromPickingPvm") + Call>> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); + +} From 9cd0855dcfcf75da4a379d099d50e79386f11cb8 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 1 Mar 2023 19:59:27 +0100 Subject: [PATCH 4/7] Refactoring dialog di filtro dei documenti interni --- app/src/main/AndroidManifest.xml | 16 +- .../MainApplicationComponent.java | 2 +- .../integrywmsnative/core/di/Converters.java | 1 + .../core/utility/PermissionsHelper.java | 13 +- .../DocInterniFragment.java | 31 +- .../DocInterniViewModel.java | 26 +- .../dialog/DialogSelectDocInfoComponent.java | 4 +- .../dialog/DialogSelectDocInfoModule.java | 7 +- .../DialogSelectDocInfoResponseDTO.java | 102 +++++ .../dialog/DialogSelectDocInfoView.java | 364 +++++++++--------- .../dialog/DialogSelectDocInfoViewModel.java | 255 ++++++------ .../DialogSelectDocInfo_FornitoreAdapter.java | 50 +++ .../DialogSelectDocInfo_GroupArtAdapter.java | 47 +++ .../DialogSelectDocInfo_NoteAdapter.java | 20 + .../DialogSelectDocInfo_TipoDocAdapter.java | 47 +++ .../exception/DocumentRequiredException.java | 4 + .../exception/FornitoreRequiredException.java | 4 + .../exception/NoteRequiredException.java | 4 + .../exception/TipoDocRequiredException.java | 4 + .../dto/DocInterniSetupDTO.java | 12 +- ...rticoloDTO.java => GruppoArticoloDTO.java} | 2 +- .../dto/{TipiDocDTO.java => TipoDocDTO.java} | 4 +- .../edit_form/DocInterniEditFormActivity.java | 6 +- .../DocInterniEditFormViewModel.java | 6 +- .../res/layout/dialog_select_doc_info.xml | 176 --------- .../dialog_select_doc_info__single_item.xml | 8 - .../layout/dialog_select_doc_info_view.xml | 173 +++++++++ .../main/res/layout/fragment_doc_interni.xml | 3 +- 28 files changed, 815 insertions(+), 576 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoResponseDTO.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_FornitoreAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_GroupArtAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_NoteAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_TipoDocAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/DocumentRequiredException.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/FornitoreRequiredException.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/NoteRequiredException.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/TipoDocRequiredException.java rename app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/{GruppiArticoloDTO.java => GruppoArticoloDTO.java} (94%) rename app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/{TipiDocDTO.java => TipoDocDTO.java} (92%) delete mode 100644 app/src/main/res/layout/dialog_select_doc_info.xml delete mode 100644 app/src/main/res/layout/dialog_select_doc_info__single_item.xml create mode 100644 app/src/main/res/layout/dialog_select_doc_info_view.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 836facd1..d5681d32 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,14 +1,24 @@ - + - - + + + + + + + + onPermissionsDenied) { List permissionsToAsk = new ArrayList<>(); - permissionsToAsk.add(Manifest.permission.READ_EXTERNAL_STORAGE); - permissionsToAsk.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); permissionsToAsk.add(Manifest.permission.CAMERA); - //permissionsToAsk.add(Manifest.permission.INTERNET); - //permissionsToAsk.add(Manifest.permission.ACCESS_WIFI_STATE); if(Build.VERSION.SDK_INT >= 23) { @@ -34,6 +30,15 @@ public class PermissionsHelper { permissionsToAsk.add(Manifest.permission.BLUETOOTH_CONNECT); } + if(Build.VERSION.SDK_INT < 33) { + permissionsToAsk.add(Manifest.permission.READ_EXTERNAL_STORAGE); + permissionsToAsk.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); + } else { + permissionsToAsk.add(Manifest.permission.READ_MEDIA_IMAGES); + permissionsToAsk.add(Manifest.permission.READ_MEDIA_AUDIO); + permissionsToAsk.add(Manifest.permission.READ_MEDIA_VIDEO); + } + String[] permissionArray = new String[permissionsToAsk.size()]; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java index 190e36b0..20dc48fe 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java @@ -29,8 +29,8 @@ import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.databinding.FragmentDocInterniBinding; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoView; -import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaArticoliDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormActivity; @@ -114,28 +114,23 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment, } @Override - public void onDocDetailsChanged(DialogSelectDocInfoViewModel selection) { - if (selection.isInputValid()) { - mViewModel.setSelectedDocDetails(selection); - mBinding.mainFab.setVisibility(View.VISIBLE); - } else { - mBinding.mainFab.setVisibility(View.GONE); - } + public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) { + mViewModel.setSelectedDocDetails(selection); - if (selection.requiresFornitore()) { + if (selection.isFornitoreRequired()) { mBinding.codAnagContainer.setVisibility(View.VISIBLE); } else { mBinding.codAnagContainer.setVisibility(View.GONE); } - if (selection.getSelectedGruppoArt() != null) { + if (selection.getGruppoArt() != null) { mBinding.mtbGrpContainer.setVisibility(View.VISIBLE); } else { mBinding.mtbGrpContainer.setVisibility(View.GONE); } - if (selection.requiresDocData()) { + if (selection.isDocumentRequired()) { mBinding.docContainer.setVisibility(View.VISIBLE); mBinding.document.setText(Html.fromHtml(getString(R.string.doc_testata, String.valueOf(selection.getNumDoc()), UtilityDate.formatDate(selection.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)))); } else { @@ -156,16 +151,12 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment, public void selectDocInfo() { if (this.dialogInitialized) { + DialogSelectDocInfoView.newInstance( - mDocInterniSetupDTO, - this.mViewModel.dtbTipi.getValue(), - this.mViewModel.mtbGrup.getValue(), - this.mViewModel.fornitore.getValue(), - this.mViewModel.dataDoc.getValue(), - this.mViewModel.numDoc.getValue(), - this.mViewModel.note.getValue(), - this::onDocDetailsChanged - ).show(requireActivity().getSupportFragmentManager(), "tag"); + mDocInterniSetupDTO, + this::onDocDetailsChanged, + this::popMe) + .show(requireActivity().getSupportFragmentManager(), "tag"); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniViewModel.java index ac5a30c9..18a402cb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniViewModel.java @@ -15,12 +15,12 @@ import it.integry.integrywmsnative.core.di.BindableInteger; import it.integry.integrywmsnative.core.exception.NoDocTypeSelectedException; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaArticoliDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppiArticoloDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppoArticoloDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; public class DocInterniViewModel { @@ -35,8 +35,8 @@ public class DocInterniViewModel { private GrigliaArticoliDTO productsList; private final MutableLiveData> mDocsList = new MutableLiveData<>(); - public final MutableLiveData dtbTipi = new MutableLiveData<>(); - public final MutableLiveData mtbGrup = new MutableLiveData<>(); + public final MutableLiveData dtbTipi = new MutableLiveData<>(); + public final MutableLiveData mtbGrup = new MutableLiveData<>(); public final MutableLiveData fornitore = new MutableLiveData<>(); public final MutableLiveData dataDoc = new MutableLiveData<>(); public final MutableLiveData numDoc = new MutableLiveData<>(); @@ -82,16 +82,16 @@ public class DocInterniViewModel { return mDocsList; } - public void setSelectedDocDetails(DialogSelectDocInfoViewModel selection) { + public void setSelectedDocDetails(DialogSelectDocInfoResponseDTO selection) { - this.fornitore.postValue(selection.getSelectedFornitore()); - this.mtbGrup.postValue(selection.getSelectedGruppoArt()); + this.fornitore.postValue(selection.getFornitore()); + this.mtbGrup.postValue(selection.getGruppoArt()); this.dataDoc.postValue(selection.getDataDoc()); - this.numDoc.postValue(selection.getNumDoc()); + this.numDoc.postValue(selection.getNumDoc() != null ? selection.getNumDoc().toString() : null); this.note.postValue(selection.getNote()); - if (selection.getSelectedTipoDoc() != null) { - this.dtbTipi.postValue(selection.getSelectedTipoDoc()); + if (selection.getTipoDoc() != null) { + this.dtbTipi.postValue(selection.getTipoDoc()); } } @@ -140,7 +140,7 @@ public class DocInterniViewModel { return this.dtbTipi.getValue().getCodDtip(); } - public TipiDocDTO getTipoDoc() { + public TipoDocDTO getTipoDoc() { if (this.dtbTipi.getValue() == null) { return null; } @@ -197,7 +197,7 @@ public class DocInterniViewModel { void onDocInterniSetupFetched(DocInterniSetupDTO docInterniSetupDTO); - void onDocDetailsChanged(DialogSelectDocInfoViewModel selection); + void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection); void onDocumentEditRequest(SqlMtbColt document, GrigliaArticoliDTO arts); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoComponent.java index bc9442f7..f2d33d73 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoComponent.java @@ -10,7 +10,5 @@ public interface DialogSelectDocInfoComponent { DialogSelectDocInfoComponent create(); } - void inject(DialogSelectDocInfoView dialogSelectDocInfoView); - -} +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoModule.java index 07dc5ce4..0145fe43 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoModule.java @@ -1,17 +1,14 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dialog; -import javax.inject.Singleton; - import dagger.Module; import dagger.Provides; @Module(subcomponents = DialogSelectDocInfoComponent.class) public class DialogSelectDocInfoModule { - @Singleton @Provides - DialogSelectDocInfoViewModel dialogSelectMgrpDtipPairViewModel() { + DialogSelectDocInfoViewModel providesDialogDialogSelectDocInfoNewViewViewModel() { return new DialogSelectDocInfoViewModel(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoResponseDTO.java new file mode 100644 index 00000000..988df534 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoResponseDTO.java @@ -0,0 +1,102 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog; + +import java.util.Date; + +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppoArticoloDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; + +public class DialogSelectDocInfoResponseDTO { + + private TipoDocDTO tipoDoc; + private GruppoArticoloDTO gruppoArt; + private FornitoreDTO fornitore; + private Date dataDoc; + private Integer numDoc; + private String note; + private boolean fornitoreRequired; + private boolean documentRequired; + private boolean noteRequired; + + + public TipoDocDTO getTipoDoc() { + return tipoDoc; + } + + public DialogSelectDocInfoResponseDTO setTipoDoc(TipoDocDTO tipoDoc) { + this.tipoDoc = tipoDoc; + return this; + } + + public GruppoArticoloDTO getGruppoArt() { + return gruppoArt; + } + + public DialogSelectDocInfoResponseDTO setGruppoArt(GruppoArticoloDTO gruppoArt) { + this.gruppoArt = gruppoArt; + return this; + } + + public FornitoreDTO getFornitore() { + return fornitore; + } + + public DialogSelectDocInfoResponseDTO setFornitore(FornitoreDTO fornitore) { + this.fornitore = fornitore; + return this; + } + + public Date getDataDoc() { + return dataDoc; + } + + public DialogSelectDocInfoResponseDTO setDataDoc(Date dataDoc) { + this.dataDoc = dataDoc; + return this; + } + + public Integer getNumDoc() { + return numDoc; + } + + public DialogSelectDocInfoResponseDTO setNumDoc(Integer numDoc) { + this.numDoc = numDoc; + return this; + } + + public String getNote() { + return note; + } + + public DialogSelectDocInfoResponseDTO setNote(String note) { + this.note = note; + return this; + } + + public boolean isFornitoreRequired() { + return fornitoreRequired; + } + + public DialogSelectDocInfoResponseDTO setFornitoreRequired(boolean fornitoreRequired) { + this.fornitoreRequired = fornitoreRequired; + return this; + } + + public boolean isDocumentRequired() { + return documentRequired; + } + + public DialogSelectDocInfoResponseDTO setDocumentRequired(boolean documentRequired) { + this.documentRequired = documentRequired; + return this; + } + + public boolean isNoteRequired() { + return noteRequired; + } + + public DialogSelectDocInfoResponseDTO setNoteRequired(boolean noteRequired) { + this.noteRequired = noteRequired; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoView.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoView.java index a64d9ba2..f5f6e760 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoView.java @@ -1,240 +1,242 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dialog; +import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.widget.ArrayAdapter; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.databinding.DataBindingUtil; +import androidx.appcompat.app.AlertDialog; import androidx.databinding.ObservableField; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import java.util.Date; import javax.inject.Inject; import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.di.BindableString; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityObservable; -import it.integry.integrywmsnative.databinding.DialogSelectDocInfoBinding; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppiArticoloDTO; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.DialogSelectDocInfoViewBinding; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter.DialogSelectDocInfo_FornitoreAdapter; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter.DialogSelectDocInfo_GroupArtAdapter; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter.DialogSelectDocInfo_NoteAdapter; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter.DialogSelectDocInfo_TipoDocAdapter; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.NoteRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.TipoDocRequiredException; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppoArticoloDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; -public class DialogSelectDocInfoView extends BaseDialogFragment implements DialogSelectDocInfoViewModel.Listener { +public class DialogSelectDocInfoView extends BaseDialogFragment { @Inject DialogSelectDocInfoViewModel mViewModel; - private Context mCurrentContext; + + private DialogSelectDocInfoViewBinding mBindings; + private Context mContext; + + private final DocInterniSetupDTO mDocInputData; + private final RunnableArgs onConfirm; + private final Runnable onAbort; - public BindableString codDtip = new BindableString(); - public BindableString codMgrp = new BindableString(); - public BindableString codAnag = new BindableString(); - public BindableString numDoc = new BindableString(); - public BindableString note = new BindableString(); - public ObservableField dataDoc = new ObservableField<>(); + public ObservableField selectedTipoDoc = new ObservableField<>(); + public ObservableField selectedGroupArt = new ObservableField<>(); + public ObservableField selectedFornitore = new ObservableField<>(); + public ObservableField selectedNumDoc = new ObservableField<>(); + public ObservableField selectedDataDoc = new ObservableField<>(); + public ObservableField selectedNote = new ObservableField<>(); - private ArrayAdapter arrayAdapterCodDtips; - private ArrayAdapter arrayAdapterCodMgrps; - private ArrayAdapter arrayAdapterCodAnags; - private ArrayAdapter arrayAdapterNote; - private DialogSelectDocInfoBinding mBindings; + public ObservableField isFornitoreRequired = new ObservableField<>(); + public ObservableField isDocumentRequired = new ObservableField<>(); + public ObservableField isNoteRequired = new ObservableField<>(); - private final RunnableArgs currentOnFilterDone; - private final DocInterniSetupDTO docInterniSetupDTO; - private final TipiDocDTO selectedDtip; - private final GruppiArticoloDTO selectedGrp; - private final FornitoreDTO selectedAnag; - private final Date selectedDataDoc; - private final String selectedNumDoc; - private final String selectedNote; - - public static DialogSelectDocInfoView newInstance( - DocInterniSetupDTO docInterniSetupDTO, - TipiDocDTO tipiDocDTO, - GruppiArticoloDTO gruppiArticoloDTO, - FornitoreDTO fornitoreDTO, - Date dataDoc, - String numDoc, - String note, - RunnableArgs onDismiss - ) { - return new DialogSelectDocInfoView(docInterniSetupDTO, tipiDocDTO, gruppiArticoloDTO, fornitoreDTO, dataDoc, numDoc,note, onDismiss); + public static DialogSelectDocInfoView newInstance(DocInterniSetupDTO docInputData, + RunnableArgs onConfirm, + Runnable onAbort) { + return new DialogSelectDocInfoView(docInputData, onConfirm, onAbort); } - - private DialogSelectDocInfoView(DocInterniSetupDTO docInterniSetupDTO, - TipiDocDTO tipiDocDTO, - GruppiArticoloDTO gruppiArticoloDTO, - FornitoreDTO fornitoreDTO, - Date dataDoc, - String numDoc, - String note, - RunnableArgs onDismiss) { + private DialogSelectDocInfoView(DocInterniSetupDTO docInputData, + RunnableArgs onConfirm, + Runnable onAbort) { super(); - currentOnFilterDone = onDismiss; - this.docInterniSetupDTO = docInterniSetupDTO; - selectedDtip = tipiDocDTO; - selectedGrp = gruppiArticoloDTO; - selectedDataDoc = dataDoc; - selectedNumDoc = numDoc; - selectedNote = note; - selectedAnag = fornitoreDTO; + + this.mDocInputData = docInputData; + this.onConfirm = onConfirm; + this.onAbort = onAbort; } + + @NonNull @Override - public void onDismiss(@NonNull DialogInterface dialog) { - super.onDismiss(dialog); - if (currentOnFilterDone != null) currentOnFilterDone.run(mViewModel); - } + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - this.mCurrentContext = this.requireActivity(); - - mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_select_doc_info, container, false); - mBindings.setLifecycleOwner(this); - - MainApplication - .appComponent - .dialogSelectMgrpDtipPairComponent() + MainApplication.appComponent + .dialogSelectDocInfoNewViewComponent() .create() .inject(this); - mViewModel.init(docInterniSetupDTO); - mViewModel.setListeners(this); + + mBindings = DialogSelectDocInfoViewBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings.setLifecycleOwner(this); mBindings.setView(this); - mBindings.setViewmodel(mViewModel); - getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - initView(); + mViewModel.setFornitori(mDocInputData.getFornitori()); + var cancelable = true; - mBindings.positiveBtn.setOnClickListener(view -> { - if (this.isInputValid()) { - getDialog().dismiss(); + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(cancelable) + .setPositiveButton(R.string.confirm, (dialog, which) -> { + //Volutamente vuoto + }) + .setNegativeButton(R.string.abort, (dialog, which) -> { + //Volutamente vuoto + }) + .create(); + + alertDialog.setOnShowListener(this); + alertDialog.setCanceledOnTouchOutside(cancelable); + + return alertDialog; + } + + @Override + public void onShow(DialogInterface dialogInterface) { + super.onShow(dialogInterface); + + var alertDialog = ((AlertDialog) dialogInterface); + + var positiveButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); + positiveButton.setOnClickListener(view -> { + try { + mBindings.inputCodDtip.setErrorEnabled(false); + mBindings.inputCodDtip.setError(null); + mBindings.inputCodAnagForn.setErrorEnabled(false); + mBindings.inputCodAnagForn.setError(null); + mBindings.inputNumDocLayout.setErrorEnabled(false); + mBindings.inputNumDoc.setError(null); + mBindings.inputDataDocLayout.setErrorEnabled(false); + mBindings.inputDataDoc.setError(null); + mBindings.inputNoteLayout.setErrorEnabled(false); + mBindings.inputNoteLayout.setError(null); + + mViewModel.validate(); + alertDialog.dismiss(); + + if (this.onConfirm != null) + this.onConfirm.run(new DialogSelectDocInfoResponseDTO() + .setTipoDoc(selectedTipoDoc.get()) + .setFornitore(selectedFornitore.get()) + .setGruppoArt(selectedGroupArt.get()) + .setDataDoc(selectedDataDoc.get()) + .setNumDoc(!UtilityString.isNullOrEmpty(selectedNumDoc.get()) ? Integer.parseInt(selectedNumDoc.get()) : null) + .setNote(selectedNote.get())); + } catch (TipoDocRequiredException tipoDocRequiredException) { + mBindings.inputCodDtip.setErrorEnabled(true); + mBindings.inputCodDtip.setError("Campo richiesto"); + } catch (FornitoreRequiredException fornitoreRequiredException) { + mBindings.inputCodAnagForn.setErrorEnabled(true); + mBindings.inputCodAnagForn.setError("Campo richiesto"); + } catch (DocumentRequiredException documentRequiredException) { + mBindings.inputNumDocLayout.setErrorEnabled(true); + mBindings.inputNumDocLayout.setError("Campo richiesto"); + mBindings.inputDataDocLayout.setErrorEnabled(true); + mBindings.inputDataDocLayout.setError("Campo richiesto"); + } catch (NoteRequiredException noteRequiredException) { + mBindings.inputNoteLayout.setErrorEnabled(true); + mBindings.inputNoteLayout.setError("Campo richiesto"); } }); - return mBindings.getRoot(); + var negativeButton = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE); + negativeButton.setOnClickListener(view -> { + alertDialog.dismiss(); + if (this.onAbort != null) this.onAbort.run(); + }); + + this.initBindings(); + this.initAdapters(); } - private void initView() { - initArrayAdapters(); - initBindables(); - if (selectedDtip != null) { - codDtip.set(selectedDtip.getLabel()); - } - if (selectedGrp != null) { - codMgrp.set(selectedGrp.getLabel()); - } - if (selectedAnag != null) { - codAnag.set(selectedAnag.getLabel()); - } - if (selectedDataDoc != null) { - dataDoc.set(selectedDataDoc); - } - if (selectedNumDoc != null) { - numDoc.set(selectedNumDoc); - } - if (selectedNote != null) { - note.set(selectedNote); - } + private void initBindings() { + this.isFornitoreRequired.set(mViewModel.isFornitoreRequired().getValue()); + mViewModel.isFornitoreRequired().observe(this, val -> this.isFornitoreRequired.set(val)); + + this.isDocumentRequired.set(mViewModel.isDocumentRequired().getValue()); + mViewModel.isDocumentRequired().observe(this, val -> this.isDocumentRequired.set(val)); + + this.isNoteRequired.set(mViewModel.isNoteRequired().getValue()); + mViewModel.isNoteRequired().observe(this, val -> this.isNoteRequired.set(val)); + + + UtilityObservable.addPropertyChanged(this.selectedTipoDoc, mViewModel::setTipoDoc); + UtilityObservable.addPropertyChanged(this.selectedGroupArt, mViewModel::setGruppoArt); + UtilityObservable.addPropertyChanged(this.selectedFornitore, mViewModel::setFornitore); + UtilityObservable.addPropertyChanged(this.selectedDataDoc, mViewModel::setDataDoc); + UtilityObservable.addPropertyChanged(this.selectedNumDoc, + value -> this.mViewModel.setNumDoc(UtilityString.isNullOrEmpty(value) ? null : Integer.parseInt(value))); + UtilityObservable.addPropertyChanged(this.selectedNote, mViewModel::setNote); + + mViewModel.isFornitoreRequired() + .observe(this, val -> { + if (!val) { + this.selectedFornitore.set(null); + mBindings.filledExposedDropdownCodAnagList.setText(""); + } + }); + + mViewModel.isNoteRequired() + .observe(this, val -> { + if (!val) { + this.selectedNote.set(null); + mBindings.filledExposedDropdownNote.setText(""); + } + }); } - private boolean isInputValid() { - if (this.mViewModel.getSelectedTipoDoc() == null) { - mBindings.inputCodDtip.setErrorEnabled(true); - mBindings.inputCodDtip.setError("Seleziona un tipo documento"); - return false; - } - - if (this.mViewModel.requiresFornitore() && this.mViewModel.getSelectedFornitore() == null) { - mBindings.inputCodAnagForn.setErrorEnabled(true); - mBindings.inputCodAnagForn.setError("Seleziona un fornitore/destinatario"); - return false; - } - - if (this.mViewModel.requiresDocData() && this.mViewModel.getDataDoc() == null){ - mBindings.inputDataDoc.setError("Seleziona la data del documento"); - return false; - } - - if (this.mViewModel.requiresDocData() && (this.mViewModel.getNumDoc() == null || this.mViewModel.getNumDoc().isEmpty() )){ - mBindings.inputNumDoc.setError("Seleziona il numero del documento"); - return false; - } - - if (this.mViewModel.requiresNote() && (this.mViewModel.getNote() == null || this.mViewModel.getNote().isEmpty() )){ - mBindings.inputNoteLayout.setErrorEnabled(true); - mBindings.inputNoteLayout.setError("Specifica delle note per il documento"); - return false; - } - - return true; - } - - private void initArrayAdapters() { - - arrayAdapterCodDtips = new ArrayAdapter<>(mCurrentContext, R.layout.dialog_select_doc_info__single_item); - arrayAdapterCodDtips.addAll(mViewModel.getAvailableCodDtips()); + private void initAdapters() { + var arrayAdapterCodDtips = new DialogSelectDocInfo_TipoDocAdapter(mContext, R.layout.array_adapter_single_item, mDocInputData.getTipiDoc()); mBindings.filledExposedDropdownCodDtips.setAdapter(arrayAdapterCodDtips); + mBindings.filledExposedDropdownCodDtips.setOnItemClickListener((adapterView, view, i, l) -> { + this.selectedTipoDoc.set( + ((DialogSelectDocInfo_TipoDocAdapter.ListModel) adapterView.getItemAtPosition(i)) + .getOriginalModel()); + }); - arrayAdapterCodMgrps = new ArrayAdapter<>(mCurrentContext, R.layout.dialog_select_doc_info__single_item); - arrayAdapterCodMgrps.addAll(mViewModel.getAvailableCodMgrps()); + var arrayAdapterCodMgrps = new DialogSelectDocInfo_GroupArtAdapter(mContext, R.layout.array_adapter_single_item, mDocInputData.getGruppiArt()); mBindings.filledExposedDropdownCodMgrps.setAdapter(arrayAdapterCodMgrps); + mBindings.filledExposedDropdownCodMgrps.setOnItemClickListener((adapterView, view, i, l) -> { + this.selectedGroupArt.set( + ((DialogSelectDocInfo_GroupArtAdapter.ListModel) adapterView.getItemAtPosition(i)) + .getOriginalModel()); + }); - arrayAdapterCodAnags = new ArrayAdapter<>(mCurrentContext, R.layout.dialog_select_doc_info__single_item); - arrayAdapterCodAnags.addAll(mViewModel.getAvailableFornitori()); - mBindings.filledExposedDropdownCodAnagList.setAdapter(arrayAdapterCodAnags); + var arrayAdapterFornitori = new DialogSelectDocInfo_FornitoreAdapter(mContext, R.layout.array_adapter_single_item, mDocInputData.getFornitori()); + mBindings.filledExposedDropdownCodAnagList.setAdapter(arrayAdapterFornitori); + mBindings.filledExposedDropdownCodAnagList.setOnItemClickListener((adapterView, view, i, l) -> { + this.selectedFornitore.set( + ((DialogSelectDocInfo_FornitoreAdapter.ListModel) adapterView.getItemAtPosition(i)) + .getOriginalModel()); + }); - arrayAdapterNote = new ArrayAdapter<>(mCurrentContext, R.layout.dialog_select_doc_info__single_item); - arrayAdapterNote.addAll(mViewModel.getAdditionalNotes()); + var arrayAdapterNote = new DialogSelectDocInfo_NoteAdapter(mContext, R.layout.array_adapter_single_item, SettingsManager.iDB().getNotePerditaDocInterni()); mBindings.filledExposedDropdownNote.setAdapter(arrayAdapterNote); } - private void initBindables() { - BindableString.registerListener(codDtip, codDtip -> { - mViewModel.setCodDtip(codDtip); - mBindings.inputCodAnagForn.setVisibility(mViewModel.requiresFornitore() ? View.VISIBLE : View.GONE); - mBindings.inputDataDocLayout.setVisibility(mViewModel.requiresDocData() ? View.VISIBLE : View.GONE); - mBindings.inputNumDocLayout.setVisibility(mViewModel.requiresDocData() ? View.VISIBLE : View.GONE); - mBindings.inputNoteLayout.setVisibility(mViewModel.requiresNote() ? View.VISIBLE : View.GONE); - }); - BindableString.registerListener(codMgrp, mViewModel::setCodMgrp); - BindableString.registerListener(codAnag, mViewModel::setCodAnag); - BindableString.registerListener(numDoc, mViewModel::setNumDoc); - BindableString.registerListener(note, mViewModel::setNote); - UtilityObservable.addPropertyChanged(this.dataDoc, (value) -> { - this.mViewModel.setDataDoc(value); - }); - } - - - @Override - public void onDocTypeSelected() { - arrayAdapterCodAnags.clear(); - if (mViewModel.getSelectedFornitore() != null && !mViewModel.getAvailableFornitori().contains(mViewModel.getSelectedFornitore().getLabel())) { - codAnag.set(""); - } - if (mViewModel.getNote() != null && ! mViewModel.requiresNote()){ - mViewModel.setNote(null); - } - arrayAdapterCodAnags.addAll(mViewModel.getAvailableFornitori()); - } -} +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java index 38a80d64..17fa4087 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/DialogSelectDocInfoViewModel.java @@ -1,198 +1,163 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dialog; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + import com.annimon.stream.Stream; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; -import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.NoteRequiredException; +import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.TipoDocRequiredException; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppiArticoloDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppoArticoloDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; + +public class DialogSelectDocInfoViewModel extends ViewModel { + + private final MutableLiveData tipoDoc = new MutableLiveData<>(); + private final MutableLiveData gruppoArt = new MutableLiveData<>(); + private final MutableLiveData fornitore = new MutableLiveData<>(); + private final MutableLiveData dataDoc = new MutableLiveData<>(); + private final MutableLiveData numDoc = new MutableLiveData<>(); + private final MutableLiveData note = new MutableLiveData<>(); + + private final MutableLiveData> availableFornitori = new MutableLiveData<>(); -public class DialogSelectDocInfoViewModel { + private final MutableLiveData fornitoreRequired = new MutableLiveData<>(false); + private final MutableLiveData documentRequired = new MutableLiveData<>(false); + private final MutableLiveData noteRequired = new MutableLiveData<>(false); + public DialogSelectDocInfoViewModel() { + tipoDoc.observeForever(val -> + fornitoreRequired.postValue( + val != null && + (val.getGestioneDoc().equals("T") || + val.getGestioneDoc().equals("A") || + (val.getGestioneDoc().equals("P") && + !val.getGestione().equals("L"))))); - private DocInterniSetupDTO mDocInterniSetupDTO; + tipoDoc.observeForever(val -> + documentRequired.postValue( + val != null && + val.getGestioneDoc().equalsIgnoreCase("P") && !val.getGestione().equalsIgnoreCase("L"))); - private String mTipoDoc; - - private String mGruppoArt; - - private String mFornitore; - - private Date mDataDoc; - - private String mNumDoc; - - private String mNote; - - private Listener mListener; - - public void init(DocInterniSetupDTO initialList) { - this.mDocInterniSetupDTO = initialList; - this.mTipoDoc = null; - this.mGruppoArt = null; - this.mFornitore = null; - this.mDataDoc = null; - this.mNumDoc = null; - this.mNote = null; - this.mListener = null; + tipoDoc.observeForever(val -> + noteRequired.postValue( + val != null && + val.getGestioneDoc().equals("P") && + val.getGestione().equals("L"))); } - public String getCodDtip() { - return mTipoDoc; + public void setFornitori(List fornitori) { + tipoDoc.observeForever(val -> { + availableFornitori.postValue(Stream.of(fornitori) + .filter(forn -> { + if (val.getGestioneDoc().equalsIgnoreCase("T")) { + return forn.getTipoAnag().equalsIgnoreCase("D") && + forn.getGestioneAnag().equalsIgnoreCase( + val.getGestione().equalsIgnoreCase("V") ? "V" : "A" + ); + } else { + return forn.getTipoAnag().equalsIgnoreCase("F"); + } + }) + .toList()); + }); } - public void setCodDtip(String codDtip) { - this.mTipoDoc = codDtip; - if (this.getSelectedTipoDoc() != null) { - this.mListener.onDocTypeSelected(); - } + + public MutableLiveData isFornitoreRequired() { + return fornitoreRequired; } - public String getCodMgrp() { - return mGruppoArt; + public MutableLiveData isDocumentRequired() { + return documentRequired; } - public void setCodMgrp(String codMgrp) { - this.mGruppoArt = codMgrp; + public MutableLiveData isNoteRequired() { + return noteRequired; } - public void setCodAnag(String codAnag) { - this.mFornitore = codAnag; + + public MutableLiveData getTipoDoc() { + return tipoDoc; + } + + public DialogSelectDocInfoViewModel setTipoDoc(TipoDocDTO tipoDoc) { + this.tipoDoc.postValue(tipoDoc); + return this; + } + + public GruppoArticoloDTO getGruppoArt() { + return gruppoArt.getValue(); + } + + public DialogSelectDocInfoViewModel setGruppoArt(GruppoArticoloDTO gruppoArt) { + this.gruppoArt.postValue(gruppoArt); + return this; + } + + public FornitoreDTO getFornitore() { + return fornitore.getValue(); + } + + public DialogSelectDocInfoViewModel setFornitore(FornitoreDTO fornitore) { + this.fornitore.postValue(fornitore); + return this; } public Date getDataDoc() { - return mDataDoc; + return dataDoc.getValue(); } - public void setDataDoc(Date mDataDoc) { - this.mDataDoc = mDataDoc; + public DialogSelectDocInfoViewModel setDataDoc(Date dataDoc) { + this.dataDoc.postValue(dataDoc); + return this; } - public String getNumDoc() { - return mNumDoc; + public Integer getNumDoc() { + return numDoc.getValue(); } - public void setNumDoc(String numDoc) { - this.mNumDoc = numDoc; + public DialogSelectDocInfoViewModel setNumDoc(Integer numDoc) { + this.numDoc.postValue(numDoc); + return this; } public String getNote() { - return mNote; + return note.getValue(); } public DialogSelectDocInfoViewModel setNote(String note) { - this.mNote = note; + this.note.postValue(note); return this; } - public DialogSelectDocInfoViewModel setListeners(Listener listener) { - this.mListener = listener; - return this; - } - public List getAvailableCodDtips() { - return mDocInterniSetupDTO.getTipiDoc() != null ? Stream.of(mDocInterniSetupDTO.getTipiDoc()).map(TipiDocDTO::getLabel).toList() : new ArrayList<>(); - } - - public List getAvailableCodMgrps() { - return mDocInterniSetupDTO.getGruppiArt() != null ? Stream.of(mDocInterniSetupDTO.getGruppiArt()).map(GruppiArticoloDTO::getLabel).toList() : new ArrayList<>(); - } - - public List getAvailableFornitori() { - if (!this.requiresFornitore()) { - return new ArrayList<>(); - } - TipiDocDTO selectedDocType = getSelectedTipoDoc(); - - return Stream.of(mDocInterniSetupDTO.getFornitori()) - .filter(forn -> { - if (selectedDocType.getGestioneDoc().equalsIgnoreCase("T")) { - return forn.getTipoAnag().equalsIgnoreCase("D") && - forn.getGestioneAnag().equalsIgnoreCase( - selectedDocType.getGestione().equalsIgnoreCase("V") ? "V" : "A" - ); - } else { - return forn.getTipoAnag().equalsIgnoreCase("F"); - } - }) - .map(FornitoreDTO::getLabel).toList(); - } - - public TipiDocDTO getSelectedTipoDoc() { - return Stream.of(mDocInterniSetupDTO.getTipiDoc()).filter(x -> x.getLabel().equals(mTipoDoc)).findFirstOrElse(null); - } - - public FornitoreDTO getSelectedFornitore() { - return Stream.of(mDocInterniSetupDTO.getFornitori()).filter(x -> x.getLabel().equals(mFornitore)).findFirstOrElse(null); - } - - public GruppiArticoloDTO getSelectedGruppoArt() { - if (mGruppoArt == null) { - return null; + public boolean validate() throws TipoDocRequiredException, FornitoreRequiredException, DocumentRequiredException, NoteRequiredException { + if (this.getTipoDoc().getValue() == null) { + throw new TipoDocRequiredException(); } - return Stream.of(mDocInterniSetupDTO.getGruppiArt()).filter(x -> x.getLabel().equals(mGruppoArt)).findFirstOrElse(null); - } - - public boolean requiresFornitore() { - return this.getSelectedTipoDoc() != null && ( - this.getSelectedTipoDoc().getGestioneDoc().equals("T") || - this.getSelectedTipoDoc().getGestioneDoc().equals("A") || - ( - this.getSelectedTipoDoc().getGestioneDoc().equals("P") && - !this.getSelectedTipoDoc().getGestione().equals("L") - ) - ); - } - - public boolean requiresNote() { - return this.getSelectedTipoDoc() != null && - this.getSelectedTipoDoc().getGestioneDoc().equals("P") && - this.getSelectedTipoDoc().getGestione().equals("L"); - } - - public boolean isInputValid() { - if (this.getSelectedTipoDoc() == null) { - return false; + if (Boolean.TRUE.equals(this.isFornitoreRequired().getValue()) && this.getFornitore() == null) { + throw new FornitoreRequiredException(); } - if (this.requiresFornitore() && this.getSelectedFornitore() == null) { - return false; - } - - if (this.requiresDocData() && (this.getDataDoc() == null || this.getNumDoc() == null)) { - return false; + if (Boolean.TRUE.equals(this.isDocumentRequired().getValue()) && (this.getDataDoc() == null || this.getNumDoc() == null)) { + throw new DocumentRequiredException(); } - if (this.requiresNote() && (this.getNote() == null || this.getNote().length() <= 0)) { - return false; + if (Boolean.TRUE.equals(this.isNoteRequired().getValue()) && UtilityString.isNullOrEmpty(this.getNote())) { + throw new NoteRequiredException(); } return true; } - - public boolean requiresDocData() { - TipiDocDTO doc = this.getSelectedTipoDoc(); - return doc != null && doc.getGestioneDoc().equalsIgnoreCase("P") && !doc.getGestione().equalsIgnoreCase("L"); - } - - public List getAdditionalNotes() { - return SettingsManager.iDB().getNotePerditaDocInterni(); - } - - public interface Listener extends ILoadingListener { - - void onError(Exception ex); - - void onDocTypeSelected(); - - } -} +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_FornitoreAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_FornitoreAdapter.java new file mode 100644 index 00000000..7b394ab2 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_FornitoreAdapter.java @@ -0,0 +1,50 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import com.annimon.stream.Stream; + +import java.util.List; + +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO; + +public class DialogSelectDocInfo_FornitoreAdapter extends ArrayAdapter { + + public DialogSelectDocInfo_FornitoreAdapter(@NonNull Context context, int resource, List inputData) { + super(context, resource); + + if (inputData == null) return; + + List mDataset = Stream.of(inputData) + .map(x -> new ListModel() + .setOriginalModel(x)) + .toList(); + + addAll(mDataset); + } + + public static class ListModel { + + private FornitoreDTO originalModel; + + public FornitoreDTO getOriginalModel() { + return originalModel; + } + + public ListModel setOriginalModel(FornitoreDTO originalModel) { + this.originalModel = originalModel; + return this; + } + + @Override + public String toString() { + return this.getOriginalModel().getCodAnag() + + (this.getOriginalModel().getCodVdes() != null ? " - " + this.getOriginalModel().getCodVdes() : "") + + " ( " + this.getOriginalModel().getDescrizione() + " )"; + } + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_GroupArtAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_GroupArtAdapter.java new file mode 100644 index 00000000..58b9e809 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_GroupArtAdapter.java @@ -0,0 +1,47 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import com.annimon.stream.Stream; + +import java.util.List; + +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GruppoArticoloDTO; + +public class DialogSelectDocInfo_GroupArtAdapter extends ArrayAdapter { + + public DialogSelectDocInfo_GroupArtAdapter(@NonNull Context context, int resource, List inputData) { + super(context, resource); + + if(inputData == null) return; + + List mDataset = Stream.of(inputData) + .map(x -> new ListModel() + .setOriginalModel(x)) + .toList(); + + addAll(mDataset); + } + + public static class ListModel { + + private GruppoArticoloDTO originalModel; + + public GruppoArticoloDTO getOriginalModel() { + return originalModel; + } + public ListModel setOriginalModel(GruppoArticoloDTO originalModel) { + this.originalModel = originalModel; + return this; + } + + @Override + public String toString() { + return this.getOriginalModel().getCodMgrp() + " - " + this.getOriginalModel().getDescrizione(); + } + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_NoteAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_NoteAdapter.java new file mode 100644 index 00000000..22095bbb --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_NoteAdapter.java @@ -0,0 +1,20 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import java.util.List; + +public class DialogSelectDocInfo_NoteAdapter extends ArrayAdapter { + + public DialogSelectDocInfo_NoteAdapter(@NonNull Context context, int resource, List inputData) { + super(context, resource); + + if (inputData == null) return; + + addAll(inputData); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_TipoDocAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_TipoDocAdapter.java new file mode 100644 index 00000000..15ad83f5 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/adapter/DialogSelectDocInfo_TipoDocAdapter.java @@ -0,0 +1,47 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.adapter; + +import android.content.Context; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import com.annimon.stream.Stream; + +import java.util.List; + +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; + +public class DialogSelectDocInfo_TipoDocAdapter extends ArrayAdapter { + + public DialogSelectDocInfo_TipoDocAdapter(@NonNull Context context, int resource, List inputData) { + super(context, resource); + + if(inputData == null) return; + + List mDataset = Stream.of(inputData) + .map(x -> new ListModel() + .setOriginalModel(x)) + .toList(); + + addAll(mDataset); + } + + public static class ListModel { + + private TipoDocDTO originalModel; + + public TipoDocDTO getOriginalModel() { + return originalModel; + } + public ListModel setOriginalModel(TipoDocDTO originalModel) { + this.originalModel = originalModel; + return this; + } + + @Override + public String toString() { + return this.getOriginalModel().getCodDtip() + " - " + this.getOriginalModel().getDescrizione(); + } + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/DocumentRequiredException.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/DocumentRequiredException.java new file mode 100644 index 00000000..f61b690b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/DocumentRequiredException.java @@ -0,0 +1,4 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception; + +public class DocumentRequiredException extends Exception { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/FornitoreRequiredException.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/FornitoreRequiredException.java new file mode 100644 index 00000000..25e2b15c --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/FornitoreRequiredException.java @@ -0,0 +1,4 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception; + +public class FornitoreRequiredException extends Exception { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/NoteRequiredException.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/NoteRequiredException.java new file mode 100644 index 00000000..dde91622 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/NoteRequiredException.java @@ -0,0 +1,4 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception; + +public class NoteRequiredException extends Exception { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/TipoDocRequiredException.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/TipoDocRequiredException.java new file mode 100644 index 00000000..ce58215d --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dialog/exception/TipoDocRequiredException.java @@ -0,0 +1,4 @@ +package it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception; + +public class TipoDocRequiredException extends Exception { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocInterniSetupDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocInterniSetupDTO.java index 619a6fb2..c00109a6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocInterniSetupDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/DocInterniSetupDTO.java @@ -5,26 +5,26 @@ import java.util.List; public class DocInterniSetupDTO { - private List tipiDoc; + private List tipiDoc; - private List gruppiArt; + private List gruppiArt; private List fornitori; - public List getTipiDoc() { + public List getTipiDoc() { return tipiDoc; } - public void setTipiDoc(List tipiDoc) { + public void setTipiDoc(List tipiDoc) { this.tipiDoc = tipiDoc; } - public List getGruppiArt() { + public List getGruppiArt() { return gruppiArt; } - public void setGruppiArt(List gruppiArt) { + public void setGruppiArt(List gruppiArt) { this.gruppiArt = gruppiArt; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppiArticoloDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppoArticoloDTO.java similarity index 94% rename from app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppiArticoloDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppoArticoloDTO.java index 8cc28f35..832169bc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppiArticoloDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/GruppoArticoloDTO.java @@ -1,6 +1,6 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dto; -public class GruppiArticoloDTO { +public class GruppoArticoloDTO { private String codMgrp; private String descrizione; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipiDocDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java similarity index 92% rename from app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipiDocDTO.java rename to app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java index e8173c43..1dffd4ac 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipiDocDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java @@ -1,6 +1,6 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dto; -public class TipiDocDTO { +public class TipoDocDTO { private String codDtip; private String descrizione; @@ -48,7 +48,7 @@ public class TipiDocDTO { return requireNote; } - public TipiDocDTO setRequireNote(boolean requireNote) { + public TipoDocDTO setRequireNote(boolean requireNote) { this.requireNote = requireNote; 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 0aa317b2..a4c4a295 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 @@ -39,7 +39,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaArticoliDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView; import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; @@ -77,7 +77,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter public BindableBoolean isDocumentExportable = new BindableBoolean(false); private final ObservableArrayList documentRowsObservableList = new ObservableArrayList<>(); - public static Intent newInstance(Context context, SqlMtbColt document, GrigliaArticoliDTO productList, TipiDocDTO tipoDoc) { + public static Intent newInstance(Context context, SqlMtbColt document, GrigliaArticoliDTO productList, TipoDocDTO tipoDoc) { Intent myIntent = new Intent(context, DocInterniEditFormActivity.class); String doc = DataCache.addItem(document); @@ -100,7 +100,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT)); GrigliaArticoliDTO griglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST)); List productList = griglia.getGrigliaAcquistiChild(); - TipiDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC)); + TipoDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC)); this.initViewModel(); this.viewModel.setDocument(document); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java index 4ad5de32..f8257cf5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java @@ -27,7 +27,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiChildDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipiDocDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ResultDTO; @@ -40,7 +40,7 @@ public class DocInterniEditFormViewModel { private final DocInterniRESTConsumer docInterniRESTConsumer; private DocInterniEditFormViewModel.Listener listener; private List productsList; - private TipiDocDTO tipoDoc; + private TipoDocDTO tipoDoc; private boolean isCheckPartitaMag = false; private JSONObject checkFornitoreRules = null; public MutableLiveData document = new MutableLiveData<>(); @@ -302,7 +302,7 @@ public class DocInterniEditFormViewModel { return Stream.of(productsList).filter(prod -> prod.getCodMart().equalsIgnoreCase(codMart)).findFirstOrElse(null); } - public DocInterniEditFormViewModel setTipoDoc(TipiDocDTO docType) { + public DocInterniEditFormViewModel setTipoDoc(TipoDocDTO docType) { this.tipoDoc = docType; return this; } diff --git a/app/src/main/res/layout/dialog_select_doc_info.xml b/app/src/main/res/layout/dialog_select_doc_info.xml deleted file mode 100644 index fc8e074f..00000000 --- a/app/src/main/res/layout/dialog_select_doc_info.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_select_doc_info__single_item.xml b/app/src/main/res/layout/dialog_select_doc_info__single_item.xml deleted file mode 100644 index d0736805..00000000 --- a/app/src/main/res/layout/dialog_select_doc_info__single_item.xml +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_select_doc_info_view.xml b/app/src/main/res/layout/dialog_select_doc_info_view.xml new file mode 100644 index 00000000..f71164c4 --- /dev/null +++ b/app/src/main/res/layout/dialog_select_doc_info_view.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_doc_interni.xml b/app/src/main/res/layout/fragment_doc_interni.xml index ad26fce2..5be54fa0 100644 --- a/app/src/main/res/layout/fragment_doc_interni.xml +++ b/app/src/main/res/layout/fragment_doc_interni.xml @@ -45,7 +45,6 @@ android:layout_marginRight="8dp" android:background="@drawable/gray_detail_background_round8" android:orientation="vertical" - app:singleClick="@{() -> view.selectDocInfo()}" android:padding="16dp"> From 4445e9aff2f6f41fd3f2a4070740180c340a2f1c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 2 Mar 2023 11:10:03 +0100 Subject: [PATCH 5/7] Rimossa domanda di cambio posizione per le rettifiche di spedizione. Cambiata response di save doc in rettifica di spedizione. --- .../rest/consumers/_BaseRESTConsumer.java | 1 + .../RettificaGiacenzeViewModel.java | 46 ++++++++++++------- .../rest/RettificaGiacenzeRESTConsumer.java | 7 ++- .../RettificaGiacenzeRESTConsumerService.java | 4 +- 4 files changed, 35 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java index 1166cc28..e513aeca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java @@ -101,6 +101,7 @@ public abstract class _BaseRESTConsumer { if (response.getEsito() == EsitoType.OK) { if (!UtilityString.isNullOrEmpty(response.getErrorMessage())) { onFailed.run(new Exception(response.getErrorMessage())); + return; } else { T dataObj = response.getDto() != null ? response.getDto() : diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java index 563bd31b..6c8483fe 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java @@ -442,23 +442,14 @@ public class RettificaGiacenzeViewModel { Runnable saveAction = () -> { this.mColliMagazzinoRESTConsumer.updateDataFine( mCurrentMtbColt, () -> { - this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> { - - if (shouldChangePosition) { - this.savePosizione(mtbDepoPosizione, () -> { - this.createDoc(() -> { - this.mAnyEditDone = false; - postSaveBehaviour(onComplete); - }); - }); - } else { - this.createDoc(() -> { - this.mAnyEditDone = false; - postSaveBehaviour(onComplete); - }); - } + this.askPostionChange(mCurrentMtbColt, () -> { + this.createDoc(mCurrentMtbColt, () -> { + this.mAnyEditDone = false; + postSaveBehaviour(onComplete); + }); }); + }, this::sendError); }; @@ -474,7 +465,30 @@ public class RettificaGiacenzeViewModel { } - private void createDoc(Runnable onComplete) { + private void askPostionChange(MtbColt mtbColt, Runnable onComplete) { + if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA || mtbColt.getSegno() == -1) { + onComplete.run(); + return; + } + + + this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> { + if (shouldChangePosition) { + this.savePosizione(mtbDepoPosizione, () -> { + onComplete.run(); + }); + } else { + onComplete.run(); + } + }); + } + + private void createDoc(MtbColt mtbColt, Runnable onComplete) { + if (mtbColt.getGestioneEnum() != GestioneEnum.VENDITA && mtbColt.getSegno() != -1) { + onComplete.run(); + return; + } + mRettificaGiacenzeRESTConsumer.saveDoc(this.mCurrentMtbColt, onComplete, this::sendError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java index d587b3c3..366b0211 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java @@ -5,7 +5,6 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; -import java.util.List; import javax.inject.Singleton; @@ -101,12 +100,12 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { service.saveDocFromPickingPvm(request) .enqueue(new Callback<>() { @Override - public void onResponse(Call>> call, Response>> response) { - analyzeListOfAnswers(response, "saveDocFromPickingPvm", data -> onComplete.run(), onError); + public void onResponse(Call> call, Response> response) { + analyzeAnswerList(response, "saveDocFromPickingPvm", data -> onComplete.run(), onError); } @Override - public void onFailure(Call>> call, Throwable t) { + public void onFailure(Call> call, Throwable t) { onError.run(new Exception(t)); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java index 837efa12..fd6ae1d7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java @@ -1,7 +1,5 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze.rest; -import java.util.List; - import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import retrofit2.Call; @@ -12,6 +10,6 @@ public interface RettificaGiacenzeRESTConsumerService { @POST("saveDocFromPickingPvm") - Call>> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); + Call> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO); } From 5908e076a4fe570d5b8644897276167483ae036e Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 2 Mar 2023 11:50:09 +0100 Subject: [PATCH 6/7] Gestita parzialmente rotazione schermo --- app/src/main/AndroidManifest.xml | 45 ++++++++++--------- .../MainAccettazioneFragment.java | 1 + .../DocInterniFragment.java | 1 + .../inventario/ElencoInventariFragment.java | 1 + .../OrdiniUscitaElencoFragment.java | 2 + .../picking_libero/PickingLiberoFragment.java | 1 + .../ProdOrdineProduzioneElencoFragment.java | 1 + .../ProdFabbisognoLineeProdFragment.java | 1 + .../ProdLineeProduzioneFragment.java | 1 + .../ProdRecuperoMaterialeFragment.java | 1 + .../ProdVersamentoMaterialeFragment.java | 1 + .../PVOrdiniAcquistoGrigliaFragment.java | 1 + .../RettificaGiacenzeFragment.java | 3 +- .../gest/settings/MainSettingsFragment.java | 1 + .../main/res/layout-large/activity_login.xml | 2 +- app/src/main/res/layout/activity_login.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- 17 files changed, 41 insertions(+), 26 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5681d32..e5de414b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,28 +33,28 @@ android:requestLegacyExternalStorage="true"> + android:windowSoftInputMode="adjustNothing" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:windowSoftInputMode="adjustNothing" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:windowSoftInputMode="adjustNothing" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:windowSoftInputMode="adjustNothing" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:theme="@style/Light" + android:configChanges="orientation|screenSize|keyboardHidden" /> - + android:theme="@style/Light" + android:configChanges="orientation|screenSize|keyboardHidden" /> + + android:theme="@style/Light" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:theme="@style/Light" + android:configChanges="orientation|screenSize|keyboardHidden" /> + android:theme="@style/Light" + android:configChanges="orientation|screenSize|keyboardHidden"/> Il lotto %s non รจ attivo. Continuare? Punto Vendita SaporiVeri PV - Genera ordini di acqusito + Genera ordini di acquisto Ordini di acquisto trasmessi Ordini di Acquisto Ordini trasmessi From a6cb8c9c9c6cff39a5619eed45c835875442649c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 2 Mar 2023 11:51:43 +0100 Subject: [PATCH 7/7] -> v1.32.00 (340) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2ba7a2de..5dfd6148 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 339 - def appVersionName = '1.31.05' + def appVersionCode = 340 + def appVersionName = '1.32.00' signingConfigs { release {