From 14035b4c9263ca4507c1c19d6e029bf68b0d5a94 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 15 Feb 2021 19:18:03 +0100 Subject: [PATCH] Creata gestione fabbisogni linea di produzione --- .../MainApplicationComponent.java | 15 +- .../configs/MenuConfiguration.java | 3 +- .../core/expansion/BaseActivity.java | 3 +- .../core/expansion/BaseDialogFragment.java | 16 ++ .../core/expansion/BaseFragment.java | 26 +++ .../integrywmsnative/core/model/GtbAnag.java | 6 +- .../integrywmsnative/core/model/JtbFasi.java | 180 ++++++++++++++++ .../integrywmsnative/core/model/MtbAart.java | 2 +- .../rest/consumers/OrdiniRESTConsumer.java | 12 +- .../rest/consumers/SystemRESTConsumer.java | 10 +- .../core/update/UpdatesManager.java | 14 +- .../core/utility/UtilityBigDecimal.java | 16 +- .../AccettazionePickingActivity.java | 4 +- .../rest/AccettazionePickingRESTConsumer.java | 15 +- .../OrdiniUscitaElencoFragment.java | 3 +- .../picking_libero/PickingLiberoFragment.java | 4 +- .../picking_resi/PickingResiActivity.java | 4 +- .../rest/PickingResiRESTConsumer.java | 13 +- .../ProdFabbisognoLineeProdComponent.java | 14 ++ .../ProdFabbisognoLineeProdFragment.java | 154 +++++++++++++ .../ProdFabbisognoLineeProdModule.java | 15 ++ .../ProdFabbisognoLineeProdViewModel.java | 120 +++++++++++ .../DialogAskMagazzinoProssimitaAdapter.java | 114 ++++++++++ ...DialogAskMagazzinoProssimitaComponent.java | 15 ++ .../DialogAskMagazzinoProssimitaModule.java | 15 ++ .../DialogAskMagazzinoProssimitaView.java | 202 ++++++++++++++++++ ...DialogAskMagazzinoProssimitaViewModel.java | 99 +++++++++ .../dto/ProdFabbisognoLineeProdDTO.java | 87 ++++++++ .../ProdPosizionamentoDaOrdComponent.java | 15 -- .../ProdPosizionamentoDaOrdFragment.java | 63 ------ .../ProdPosizionamentoDaOrdModule.java | 20 -- .../ProdPosizionamentoDaOrdViewModel.java | 13 -- .../ProdRecuperoMaterialeViewModel.java | 61 +++++- .../core/ChooseOrdsLavFromListAdapter.java | 39 ++-- .../RettificaGiacenzeFragment.java | 4 +- .../core/RettificaGiacenzeRESTConsumer.java | 53 ++--- .../gest/spedizione/SpedizioneActivity.java | 17 +- .../gest/spedizione/SpedizioneViewModel.java | 197 ++++++++--------- .../exceptions/NoOrdersSelectedException.java | 8 + .../viewmodel/VersamentoMerceViewModel.java | 4 +- ...AskCliente_Page1_Cliente_ArrayAdapter.java | 2 +- ...skCliente_Page1_Commessa_ArrayAdapter.java | 2 +- ...ialogChooseArtFromListaMtbColrAdapter.java | 6 +- ... DialogChooseArtFromListaMtbColrView.java} | 8 +- .../DialogInputQuantityV2Component.java | 2 +- ...V2.java => DialogInputQuantityV2View.java} | 24 +-- .../scan_art/DialogScanArtComponent.java | 2 +- ...logScanArt.java => DialogScanArtView.java} | 31 +-- .../scan_art/DialogScanArtViewModel.java | 1 - .../dialog_ask_magazzino_prossimita.xml | 189 ++++++++++++++++ .../dialog_ask_position_of_lu__page2.xml | 4 +- .../res/layout/dialog_input_quantity_v2.xml | 2 +- ...down_item.xml => dropdown_simple_item.xml} | 0 .../fragment_prod_fabbisogno_linee_prod.xml | 8 + .../fragment_prod_posizionamento_da_ord.xml | 33 --- app/src/main/res/values-it/strings.xml | 6 + app/src/main/res/values/strings.xml | 6 + 57 files changed, 1562 insertions(+), 439 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/JtbFasi.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaAdapter.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaViewModel.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdComponent.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdFragment.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdModule.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdViewModel.java rename app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/{choose_art_from_lista_arts => }/DialogChooseArtFromListaMtbColrAdapter.java (94%) rename app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/{choose_art_from_lista_arts/DialogChooseArtFromListaMtbColr.java => DialogChooseArtFromListaMtbColrView.java} (90%) rename app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/{DialogInputQuantityV2.java => DialogInputQuantityV2View.java} (92%) rename app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/{DialogScanArt.java => DialogScanArtView.java} (78%) create mode 100644 app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml rename app/src/main/res/layout/{dialog_ask_cliente__dropdown_item.xml => dropdown_simple_item.xml} (100%) create mode 100644 app/src/main/res/layout/fragment_prod_fabbisogno_linee_prod.xml delete mode 100644 app/src/main/res/layout/fragment_prod_posizionamento_da_ord.xml diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index e5dbb0ec..a927959f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -13,8 +13,10 @@ import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent; import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule; import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent; import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule; -import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdComponent; -import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdModule; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdComponent; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent; @@ -41,10 +43,11 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule; SpedizioneModule.class, AccettazionePickingModule.class, PickingResiModule.class, - ProdPosizionamentoDaOrdModule.class, OrdiniUscitaElencoModule.class, DialogInputQuantityV2Module.class, - DialogScanArtModule.class}) + DialogScanArtModule.class, + ProdFabbisognoLineeProdModule.class, + DialogAskMagazzinoProssimitaModule.class}) public interface MainApplicationComponent { MainActivityComponent.Factory mainActivityComponent(); @@ -55,11 +58,11 @@ public interface MainApplicationComponent { SpedizioneComponent.Factory spedizioneComponent(); AccettazionePickingComponent.Factory accettazionePickingComponent(); PickingResiComponent.Factory pickingResiComponent(); - ProdPosizionamentoDaOrdComponent.Factory prodPosizionamentoDaOrdComponent(); OrdiniUscitaElencoComponent.Factory prodOrdineLavorazioneElencoComponent(); DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component(); DialogScanArtComponent.Factory dialogScanArtComponent(); - + ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent(); + DialogAskMagazzinoProssimitaComponent.Factory dialogAskMagazzinoProssimitaComponent(); void inject(AppContext appContext); 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 cf6869fe..dd05e476 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 @@ -6,6 +6,7 @@ import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment; import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment; import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment; import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment; import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment; @@ -92,7 +93,7 @@ public class MenuConfiguration extends BaseMenuConfiguration { .setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title) .setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf) - .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, 1))) + .setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance)) .addItem(new MenuItem() .setID(R.id.nav_prod_versamento_materiale) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java index 1d293c8b..cdc2bee5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java @@ -6,7 +6,6 @@ import android.view.KeyEvent; import androidx.appcompat.app.AppCompatActivity; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; -import it.integry.integrywmsnative.core.exception.MyExceptionHandler; import it.integry.integrywmsnative.core.utility.UtilityProgress; public class BaseActivity extends AppCompatActivity { @@ -15,7 +14,7 @@ public class BaseActivity extends AppCompatActivity { protected Dialog mCurrentProgress; public BaseActivity() { - Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class)); + //Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class)); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java index 457c1618..040932b7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java @@ -1,14 +1,17 @@ package it.integry.integrywmsnative.core.expansion; +import android.app.Dialog; import android.view.KeyEvent; import androidx.fragment.app.DialogFragment; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.utility.UtilityProgress; public class BaseDialogFragment extends DialogFragment { private boolean mBarcodeListener = false; + private Dialog mCurrentProgress; public BaseDialogFragment() { super(); @@ -34,4 +37,17 @@ public class BaseDialogFragment extends DialogFragment { public void setBarcodeListener(boolean listen) { this.mBarcodeListener = listen; } + + protected void openProgress() { + if (this.mCurrentProgress == null) { + this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity()); + } + } + + protected void closeProgress() { + if (mCurrentProgress != null) { + mCurrentProgress.dismiss(); + mCurrentProgress = null; + } + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java new file mode 100644 index 00000000..6d471181 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java @@ -0,0 +1,26 @@ +package it.integry.integrywmsnative.core.expansion; + +import android.app.Dialog; + +import androidx.fragment.app.Fragment; + +import it.integry.integrywmsnative.core.utility.UtilityProgress; + +public class BaseFragment extends Fragment { + + protected Dialog mCurrentProgress; + + + protected void openProgress() { + if (this.mCurrentProgress == null) { + this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity()); + } + } + + protected void closeProgress() { + if (mCurrentProgress != null) { + mCurrentProgress.dismiss(); + mCurrentProgress = null; + } + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java index f71ba1ea..b14aafe2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java @@ -3,7 +3,7 @@ package it.integry.integrywmsnative.core.model; import java.math.BigDecimal; import java.util.Date; -public class GtbAnag { +public class GtbAnag extends EntityBase { private String codAnag; private String ragSoc; @@ -45,6 +45,10 @@ public class GtbAnag { private String precode; private Boolean insDestinatario; + public GtbAnag() { + this.type = "gtb_anag"; + } + public String getCodAnag() { return codAnag; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/JtbFasi.java b/app/src/main/java/it/integry/integrywmsnative/core/model/JtbFasi.java new file mode 100644 index 00000000..2d752ecc --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/JtbFasi.java @@ -0,0 +1,180 @@ +package it.integry.integrywmsnative.core.model; + +import androidx.annotation.NonNull; + +import java.math.BigDecimal; + +public class JtbFasi extends EntityBase { + + private String codJfas; + private String codJfasParent; + private String descrizione; + private String descrizEstesa; + private String codMfas; + private String pathIcona; + private String umAllocazione; + private BigDecimal maxAllocazione; + private String codJCal; + private String idJfas; + private String flagAttivo; + private String flagCheck; + private String umProd; + private BigDecimal prodStd; + private String codMdepLav; + private String tipoProd; + + public JtbFasi() { + this.type = "jtb_fasi"; + } + + public String getCodJfas() { + return codJfas; + } + + public JtbFasi setCodJfas(String codJfas) { + this.codJfas = codJfas; + return this; + } + + public String getCodJfasParent() { + return codJfasParent; + } + + public JtbFasi setCodJfasParent(String codJfasParent) { + this.codJfasParent = codJfasParent; + return this; + } + + public String getDescrizione() { + return descrizione; + } + + public JtbFasi setDescrizione(String descrizione) { + this.descrizione = descrizione; + return this; + } + + public String getDescrizEstesa() { + return descrizEstesa; + } + + public JtbFasi setDescrizEstesa(String descrizEstesa) { + this.descrizEstesa = descrizEstesa; + return this; + } + + public String getCodMfas() { + return codMfas; + } + + public JtbFasi setCodMfas(String codMfas) { + this.codMfas = codMfas; + return this; + } + + public String getPathIcona() { + return pathIcona; + } + + public JtbFasi setPathIcona(String pathIcona) { + this.pathIcona = pathIcona; + return this; + } + + public String getUmAllocazione() { + return umAllocazione; + } + + public JtbFasi setUmAllocazione(String umAllocazione) { + this.umAllocazione = umAllocazione; + return this; + } + + public BigDecimal getMaxAllocazione() { + return maxAllocazione; + } + + public JtbFasi setMaxAllocazione(BigDecimal maxAllocazione) { + this.maxAllocazione = maxAllocazione; + return this; + } + + public String getCodJCal() { + return codJCal; + } + + public JtbFasi setCodJCal(String codJCal) { + this.codJCal = codJCal; + return this; + } + + public String getIdJfas() { + return idJfas; + } + + public JtbFasi setIdJfas(String idJfas) { + this.idJfas = idJfas; + return this; + } + + public String getFlagAttivo() { + return flagAttivo; + } + + public JtbFasi setFlagAttivo(String flagAttivo) { + this.flagAttivo = flagAttivo; + return this; + } + + public String getFlagCheck() { + return flagCheck; + } + + public JtbFasi setFlagCheck(String flagCheck) { + this.flagCheck = flagCheck; + return this; + } + + public String getUmProd() { + return umProd; + } + + public JtbFasi setUmProd(String umProd) { + this.umProd = umProd; + return this; + } + + public BigDecimal getProdStd() { + return prodStd; + } + + public JtbFasi setProdStd(BigDecimal prodStd) { + this.prodStd = prodStd; + return this; + } + + public String getCodMdepLav() { + return codMdepLav; + } + + public JtbFasi setCodMdepLav(String codMdepLav) { + this.codMdepLav = codMdepLav; + return this; + } + + public String getTipoProd() { + return tipoProd; + } + + public JtbFasi setTipoProd(String tipoProd) { + this.tipoProd = tipoProd; + return this; + } + + + @NonNull + @Override + public String toString() { + return String.format("%s - %s", getCodJfas(), getDescrizione()); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java index 1a78ad49..a7e37df3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java @@ -9,7 +9,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString; * Created by GiuseppeS on 06/03/2018. */ -public class MtbAart extends EntityBase{ +public class MtbAart extends EntityBase { private String codMart; private String descrizione; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java index ca454ceb..80e91f7f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java @@ -135,17 +135,11 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer { baseSql += "(" + UtilityQuery.concatFieldListInWhereCond(whereCondMapList) + ")"; Type typeOfObjectsList = new TypeToken>() {}.getType(); - this.mSystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(List value) { + this.mSystemRESTConsumer.>processSql(baseSql, typeOfObjectsList, value -> { if(onComplete != null) onComplete.run(value); - } - - @Override - public void onFailed(Exception ex) { + }, ex -> { if(onFailed != null) onFailed.run(ex); - } - }); + }); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java index b551f8e3..60c7e305 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java @@ -60,7 +60,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer { @Override public void onFailed(Exception ex) { - onFailed.run(ex); + if(onFailed != null) onFailed.run(ex); } }); } @@ -81,12 +81,8 @@ public class SystemRESTConsumer extends _BaseRESTConsumer { } - public void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback callback) { - - processSqlStatic(nativeSql, clazz, data -> { - callback.onSuccess((T) data); - }, callback::onFailed); - + public void processSql(String nativeSql, final Type clazz, final RunnableArgs onComplete, final RunnableArgs onFailed) { + processSqlStatic(nativeSql, clazz, onComplete, onFailed); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java index f61faaad..f978434a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java @@ -27,17 +27,17 @@ public class UpdatesManager { public static void init(Activity context) { String suffix; ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION); - try{ - suffix = customConfiguration.getConfig(BaseCustomConfiguration.Keys.CUSTOM_DYNAMIC_VERSION_PATH); - if (suffix == null){ - suffix = ""; - } - }catch (Exception e){ + try { + suffix = customConfiguration.getConfig(BaseCustomConfiguration.Keys.CUSTOM_DYNAMIC_VERSION_PATH); + if (suffix == null) { + suffix = ""; + } + } catch (Exception e) { suffix = ""; } String currentVersionUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/currentVersion"; - String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release"+suffix+".apk"; + String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release" + suffix + ".apk"; AppUpdater appUpdater = new AppUpdater(context) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java index 69e27a21..3a606701 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBigDecimal.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative.core.utility; import java.math.BigDecimal; +import java.math.RoundingMode; public class UtilityBigDecimal { @@ -50,23 +51,28 @@ public class UtilityBigDecimal { public static BigDecimal divide(BigDecimal input1, BigDecimal divisor) { - if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; + return divide(input1, divisor, RoundingMode.HALF_EVEN); + } - return input1.divide(divisor, 3, BigDecimal.ROUND_HALF_EVEN); + public static BigDecimal divide(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) { + if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; + return input1.divide(divisor, 3, roundingMode); } public static BigDecimal divideToInteger(BigDecimal input1, BigDecimal divisor) { if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; - return new BigDecimal(input1.divide(divisor,3, BigDecimal.ROUND_HALF_EVEN).intValue()); } public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor) { - if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; + return divideAndRoundToInteger(input1, divisor, RoundingMode.HALF_EVEN); + } - return new BigDecimal(input1.divide(divisor,0, BigDecimal.ROUND_HALF_EVEN).intValue()); + public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) { + if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null; + return new BigDecimal(input1.divide(divisor,0, roundingMode).intValue()); } public static BigDecimal multiply(BigDecimal input1, BigDecimal multiplier) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java index 4c867d49..ec192955 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java @@ -59,7 +59,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog; @@ -554,7 +554,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta .setCanLUBeClosed(true) .setCanOverflowOrderQuantity(canOverflowQuantity); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java index bcf76c98..9b6af80d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java @@ -12,7 +12,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityLogger; @@ -134,17 +133,9 @@ public class AccettazionePickingRESTConsumer { Type typeOfObjectsList = new TypeToken>() { }.getType(); - mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(ArrayList value) { - if (onComplete != null) onComplete.run(value); - } - - @Override - public void onFailed(Exception ex) { - if (onFailed != null) onFailed.run(ex); - } - }); + mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { + if (onComplete != null) onComplete.run(value); + }, onFailed); } 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 9c415fba..772c4a9d 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 @@ -33,6 +33,7 @@ import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; +import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; @@ -298,7 +299,7 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm + "
" + "" + alreadyRegisteredUL + " " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)), null, - () -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol) + () -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol, MtbColr.Causale.DEFAULT) ).show(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index 84ff1ed3..bee7a7d6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -58,7 +58,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; /** @@ -373,7 +373,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment, .setCanPartitaMagBeChanged(canPartitaMagBeChanged) .setCanLUBeClosed(canLUBeClosed); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java index da258280..782fb055 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java @@ -50,7 +50,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog; @@ -309,7 +309,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag .setCanLUBeClosed(false) .setCanPartitaMagBeChanged(false); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/PickingResiRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/PickingResiRESTConsumer.java index c27874af..45e7b198 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/PickingResiRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/PickingResiRESTConsumer.java @@ -15,7 +15,6 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbDocr; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; import it.integry.integrywmsnative.core.utility.UtilityQuery; @@ -55,9 +54,7 @@ public class PickingResiRESTConsumer { Type typeOfObjectsList = new TypeToken>() {}.getType(); - this.mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(ArrayList values) { + this.mSystemRestConsumer.>processSql(sql, typeOfObjectsList, values -> { if(values != null && values.size() > 0){ List codMarts = Stream.of(values) @@ -92,13 +89,7 @@ public class PickingResiRESTConsumer { } else { if(onComplete != null) onComplete.run(values); } - } - - @Override - public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); - } - }); + }, onFailed); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdComponent.java new file mode 100644 index 00000000..4de44dca --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod; + +import dagger.Subcomponent; + +@Subcomponent +public interface ProdFabbisognoLineeProdComponent { + + @Subcomponent.Factory + interface Factory { + ProdFabbisognoLineeProdComponent create(); + } + + void inject(ProdFabbisognoLineeProdFragment prodFabbisognoLineeProdFragment); +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java new file mode 100644 index 00000000..f45185d6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java @@ -0,0 +1,154 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.appcompat.widget.AppCompatTextView; +import androidx.databinding.DataBindingUtil; +import androidx.fragment.app.Fragment; + +import com.annimon.stream.Stream; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseFragment; +import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment; +import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; +import it.integry.integrywmsnative.core.interfaces.ITitledFragment; +import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeProdBinding; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaView; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO; +import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link ProdFabbisognoLineeProdFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITitledFragment, ILifecycleFragment, ProdFabbisognoLineeProdViewModel.Listener { + + @Inject + ProdFabbisognoLineeProdViewModel mViewModel; + + private ArrayList mOnPreDestroyList = new ArrayList<>(); + + private FragmentProdFabbisognoLineeProdBinding mBindings; + + public ProdFabbisognoLineeProdFragment() { + // Required empty public constructor + } + + public static ProdFabbisognoLineeProdFragment newInstance() { + ProdFabbisognoLineeProdFragment fragment = new ProdFabbisognoLineeProdFragment(); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_fabbisogno_linee_prod, container, false); + + mBindings.setLifecycleOwner(this); + + MainApplication.appComponent + .prodFabbisognoLineeProdComponent() + .create() + .inject(this); + + String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); + + DialogAskMagazzinoProssimitaView + .newInstance((jtbFase, startDate, endDate) -> { + if (jtbFase == null) { + ((IPoppableActivity) getActivity()).pop(); + } else { + //Load fabbisogno + this.mViewModel.loadFabbisogno(startDate, endDate, jtbFase.getCodJfas(), codMdep, fabbisognoList -> { + startPickingActivity(fabbisognoList); + }); + } + }) + .show(getActivity().getSupportFragmentManager(), "tag"); + + return mBindings.getRoot(); + } + + @Override + public void onPreDestroy(Runnable onPreDestroy) { + this.mOnPreDestroyList.add(onPreDestroy); + } + + @Override + public void onDestroy() { + for (Runnable onPreDestroy : mOnPreDestroyList) { + onPreDestroy.run(); + } + + super.onDestroy(); + } + + @Override + public void onCreateActionBar(AppCompatTextView titleText, Context context) { + titleText.setText(context.getText(R.string.prod_fabbisogno_linee_prod_title).toString()); + } + + @Override + public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) { + this.mOnPreDestroyList.add(onActionBarPreDestroy); + } + + + @Override + public void onError(Exception ex) { + this.closeProgress(); + UtilityExceptions.defaultException(getActivity(), ex); + } + + @Override + public void onLoadingStarted() { + this.openProgress(); + } + + @Override + public void onLoadingEnded() { + this.closeProgress(); + } + + + private void startPickingActivity(List fabbisognoList) { + List sitArtOrdDTOS = Stream.of(fabbisognoList) + .map(x -> new SitArtOrdDTO() + .setCodMart(x.getCodMart()) + .setQtaOrd(x.getQtaFabbisogno()) + .setNumCnfOrd(x.getNumCnfFabbisogno()) + .setFlagEnablePickManuale(false)) + .toList(); + + SpedizioneActivity.startActivity(getActivity(), + sitArtOrdDTOS, + null, + new ArrayList<>(), + GestioneEnum.LAVORAZIONE, + +1, + MtbColr.Causale.VERSAMENTO); + + } +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdModule.java new file mode 100644 index 00000000..574d6d81 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdModule.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; + +@Module(subcomponents = ProdFabbisognoLineeProdComponent.class) +public class ProdFabbisognoLineeProdModule { + + @Provides + ProdFabbisognoLineeProdViewModel providesProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) { + return new ProdFabbisognoLineeProdViewModel(systemRESTConsumer); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java new file mode 100644 index 00000000..0d9e90f5 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java @@ -0,0 +1,120 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod; + +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; +import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; +import it.integry.integrywmsnative.core.utility.UtilityDB; +import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO; + +public class ProdFabbisognoLineeProdViewModel { + + private final SystemRESTConsumer mSystemRESTConsumer; + + private Listener mListener; + + public ProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) { + this.mSystemRESTConsumer = systemRESTConsumer; + } + + public void init() { + + } + + + + public void loadFabbisogno(Date startDate, Date endDate, String lineaProd, String codMdep, RunnableArgs> onComplete) { + this.sendOnLoadingStarted(); + + String sql = "WITH input_values AS ( " + + " SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " + + " " + UtilityDB.valueToString(endDate) + " AS data_fine, " + + " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " + + " " + UtilityDB.valueToString(codMdep) + " AS cod_mdep " + + "), " + + " custom_mtb_colr AS ( " + + " SELECT cod_mart, " + + " sum(qta_col) AS qta_col, " + + " sum(num_cnf) AS num_cnf, " + + " sum(qta_col) / sum(num_cnf) AS qta_cnf, " + + " posizione " + + " FROM mvw_sitart_udc_det_inventario " + + " GROUP BY cod_mart, posizione " + + " ), " + + " tmp_ord AS ( " + + " SELECT dtb_ordr.cod_mart, " + + " CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " + + " SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " + + " SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " + + " mtb_aart.unt_mis, " + + " SUM(ISNULL(custom_mtb_colr.qta_col, 0)) AS qta_col_versata, " + + " SUM(ISNULL(custom_mtb_colr.qta_cnf, 0)) AS qta_cnf_versata, " + + " SUM(ISNULL(custom_mtb_colr.num_cnf, 0)) AS num_cnf_versata" + + " FROM dtb_ordr " + + " INNER JOIN dtb_ordt " + + " on dtb_ordr.gestione = dtb_ordt.gestione AND dtb_ordr.data_ord = dtb_ordt.data_ord AND " + + " dtb_ordr.num_ord = dtb_ordt.num_ord " + + " INNER JOIN jrl_fase_posizioni ON dtb_ordt.cod_jfas = jrl_fase_posizioni.cod_jfas " + + " LEFT OUTER JOIN custom_mtb_colr ON custom_mtb_colr.posizione = jrl_fase_posizioni.posizione AND " + + " dtb_ordr.cod_mart = custom_mtb_colr.cod_mart " + + " INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart " + + " CROSS APPLY input_values " + + " WHERE dtb_ordt.gestione = 'L' " + + " AND dtb_ordt.cod_mdep = input_values.cod_mdep " + + " AND jrl_fase_posizioni.posizione = input_values.linea_prod " + + " AND flag_evaso = 'I' " + + " AND dtb_ordr.flag_evaso_forzato = 'N' " + + " AND flag_annulla = 'N' " + + " AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " + + " GROUP BY dtb_ordr.cod_mart, " + + " mtb_aart.unt_mis " + + " ) " + + "SELECT cod_mart, " + + " qta_ord, " + + " num_cnf_ord, " + + " unt_mis, " + + " qta_col_versata, " + + " num_cnf_versata, " + + " CASE WHEN qta_ord - qta_col_versata < 0 THEN 0 ELSE qta_ord - qta_col_versata END AS qta_fabbisogno, " + + " CASE WHEN num_cnf_ord - num_cnf_versata < 0 THEN 0 ELSE num_cnf_ord - num_cnf_versata END AS num_cnf_fabbisogno " + + "FROM tmp_ord " + + "ORDER BY cod_mart"; + + Type typeOfObjectsList = new TypeToken>() {}.getType(); + this.mSystemRESTConsumer.>processSql(sql, typeOfObjectsList, jtbFasi -> { + onComplete.run(jtbFasi); + + this.sendOnLoadingEnded(); + }, this::sendError); + } + + + private void sendOnLoadingStarted() { + if (this.mListener != null) mListener.onLoadingStarted(); + } + + private void sendOnLoadingEnded() { + if (this.mListener != null) mListener.onLoadingEnded(); + } + + private void sendError(Exception ex) { + if (this.mListener != null) mListener.onError(ex); + } + + public void setListener(Listener listener) { + this.mListener = listener; + } + + public interface Listener extends ILoadingListener { + + void onError(Exception ex); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaAdapter.java new file mode 100644 index 00000000..63a25200 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaAdapter.java @@ -0,0 +1,114 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Filter; +import android.widget.Filterable; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatTextView; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.model.JtbFasi; + +public class DialogAskMagazzinoProssimitaAdapter extends ArrayAdapter implements Filterable { + + private final Context mContext; + private final List mDataset; + private List mDatasetAllItems; + + private final ListFilter listFilter = new ListFilter(); + + public DialogAskMagazzinoProssimitaAdapter(@NonNull Context context, @NonNull List list) { + super(context, 0, list); + mContext = context; + mDataset = list; + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + View listItem = convertView; + if (listItem == null) { + listItem = LayoutInflater.from(mContext).inflate(R.layout.dropdown_simple_item, parent, false); + } + + if (position < mDataset.size()) { + AppCompatTextView textView = listItem.findViewById(R.id.text); + textView.setText(mDataset.get(position).toString()); + return listItem; + } + + return null; + } + + + + + @NonNull + @Override + public Filter getFilter() { + return listFilter; + } + + public class ListFilter extends Filter { + private Object lock = new Object(); + + @Override + protected FilterResults performFiltering(CharSequence prefix) { + FilterResults results = new FilterResults(); + if (mDatasetAllItems == null) { + synchronized (lock) { + mDatasetAllItems = new ArrayList<>(mDataset); + } + } + + if (prefix == null || prefix.length() == 0) { + synchronized (lock) { + results.values = mDatasetAllItems; + results.count = mDatasetAllItems.size(); + } + } else { + final String searchStrLowerCase = prefix.toString().toLowerCase(); + + ArrayList matchValues = new ArrayList<>(); + + for (JtbFasi dataItem : mDatasetAllItems) { + if (dataItem.getCodJfas().toLowerCase().startsWith(searchStrLowerCase) || + dataItem.getDescrizione().toLowerCase().startsWith(searchStrLowerCase)) { + matchValues.add(dataItem); + } + } + + results.values = matchValues; + results.count = matchValues.size(); + } + + return results; + } + + @Override + protected void publishResults(CharSequence constraint, FilterResults results) { + if (results.values != null) { + mDataset.clear(); + mDataset.addAll((ArrayList) results.values); + } else { + mDataset.clear(); + } + if (results.count > 0) { + notifyDataSetChanged(); + } else { + notifyDataSetInvalidated(); + } + } + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaComponent.java new file mode 100644 index 00000000..3647eff6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaComponent.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita; + +import dagger.Subcomponent; + +@Subcomponent +public interface DialogAskMagazzinoProssimitaComponent { + + @Subcomponent.Factory + interface Factory { + DialogAskMagazzinoProssimitaComponent create(); + } + + void inject(DialogAskMagazzinoProssimitaView dialogAskMagazzinoProssimitaView); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaModule.java new file mode 100644 index 00000000..c75bbba6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaModule.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; + +@Module +public class DialogAskMagazzinoProssimitaModule { + + @Provides + DialogAskMagazzinoProssimitaViewModel providesDialogAskMagazzinoProssimitaViewModel(SystemRESTConsumer systemRESTConsumer) { + return new DialogAskMagazzinoProssimitaViewModel(systemRESTConsumer); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java new file mode 100644 index 00000000..c93f0e8a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java @@ -0,0 +1,202 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita; + +import android.app.DatePickerDialog; +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.widget.AutoCompleteTextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; + +import com.tfb.fbtoast.FBToast; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.OnSingleClickListener; +import it.integry.integrywmsnative.core.expansion.RunnableArgsss; +import it.integry.integrywmsnative.core.model.JtbFasi; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.databinding.DialogAskMagazzinoProssimitaBinding; + +public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment implements DialogAskMagazzinoProssimitaViewModel.Listener { + + @Inject + DialogAskMagazzinoProssimitaViewModel mViewModel; + + private final RunnableArgsss mOnItemSelected; + + private Context mContext; + private DialogAskMagazzinoProssimitaBinding mBindings; + + private JtbFasi mSelectedItem; + + public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss onItemSelected) { + return new DialogAskMagazzinoProssimitaView(onItemSelected); + } + + + private DialogAskMagazzinoProssimitaView(RunnableArgsss onItemSelected) { + super(); + + this.mOnItemSelected = onItemSelected; + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + this.mContext = getActivity(); + + mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_magazzino_prossimita, container, false); + + MainApplication.appComponent + .dialogAskMagazzinoProssimitaComponent() + .create() + .inject(this); + + mBindings.setView(this); + mBindings.setViewmodel(this.mViewModel); + + getDialog().setCanceledOnTouchOutside(false); + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + + + mBindings.buttonConfirm.setOnClickListener(new OnSingleClickListener() { + @Override + public void onSingleClick(View v) { + if(mSelectedItem != null) { + getDialog().dismiss(); + } else { + FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG); + } + } + }); + + mBindings.buttonAbort.setOnClickListener(new OnSingleClickListener() { + @Override + public void onSingleClick(View v) { + getDialog().dismiss(); + } + }); + + mBindings.filledExposedDropdownStartDate.setOnClickListener(onStartDateClickListener); + mBindings.filledExposedDropdownEndDate.setOnClickListener(onEndDateClickListener); + + return mBindings.getRoot(); + } + + + @Override + public void onStart() { + super.onStart(); + + String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); + + this.mViewModel.setListener(this); + this.mViewModel.init(codMdep); + + this.mViewModel.getJtbFasi().observe(getViewLifecycleOwner(), this::onPosizioniLoaded); + } + + @Override + public void onDismiss(@NonNull DialogInterface dialog) { + super.onDismiss(dialog); + mOnItemSelected.run(mSelectedItem, mViewModel.startDate, mViewModel.endDate); + } + + private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() { + @Override + public void onSingleClick(View v) { + Calendar c = UtilityDate.getCalendarInstance(); + + + if(mViewModel.startDateBindable != null) { + c.setTime(mViewModel.startDate); + } + + int mYear = c.get(Calendar.YEAR); + int mMonth = c.get(Calendar.MONTH); + int mDay = c.get(Calendar.DAY_OF_MONTH); + + DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), + (view2, year, month, day) -> { + + mViewModel.startDate = new GregorianCalendar(year, month, day).getTime(); + mViewModel.startDateBindable.set(UtilityDate.formatDate(mViewModel.startDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + + }, mYear, mMonth, mDay); + datePickerDialog.show(); + } + }; + + private final View.OnClickListener onEndDateClickListener = new OnSingleClickListener() { + @Override + public void onSingleClick(View v) { + Calendar c = UtilityDate.getCalendarInstance(); + + if(mViewModel.endDateBindable != null) { + c.setTime(mViewModel.endDate); + } + + int mYear = c.get(Calendar.YEAR); + int mMonth = c.get(Calendar.MONTH); + int mDay = c.get(Calendar.DAY_OF_MONTH); + + DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), + (view2, year, month, day) -> { + + mViewModel.endDate = new GregorianCalendar(year, month, day).getTime(); + mViewModel.endDateBindable.set(UtilityDate.formatDate(mViewModel.endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + + }, mYear, mMonth, mDay); + datePickerDialog.show(); + } + }; + + + private void onPosizioniLoaded(List items) { + DialogAskMagazzinoProssimitaAdapter adapter = new DialogAskMagazzinoProssimitaAdapter(mContext, items); + + AutoCompleteTextView editTextDropdownCliente = mBindings.dropdownLineaProd; + editTextDropdownCliente.setThreshold(0); + editTextDropdownCliente.setAdapter(adapter); + editTextDropdownCliente.setOnItemClickListener((parent, view, position, id) -> { + mSelectedItem = items.get(position); + }); + } + + @Override + public void onError(Exception ex) { + this.closeProgress(); + UtilityExceptions.defaultException(mContext, ex); + BarcodeManager.enable(); + } + + @Override + public void onLoadingStarted() { + this.openProgress(); + } + + @Override + public void onLoadingEnded() { + this.closeProgress(); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaViewModel.java new file mode 100644 index 00000000..cc7e70e7 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaViewModel.java @@ -0,0 +1,99 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita; + +import androidx.lifecycle.MutableLiveData; + +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import it.integry.integrywmsnative.core.di.BindableString; +import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; +import it.integry.integrywmsnative.core.model.JtbFasi; +import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; +import it.integry.integrywmsnative.core.utility.UtilityDB; +import it.integry.integrywmsnative.core.utility.UtilityDate; + +public class DialogAskMagazzinoProssimitaViewModel { + + public BindableString startDateBindable = new BindableString(); + public BindableString endDateBindable = new BindableString(); + + public Date startDate = new Date(); + public Date endDate = new Date(); + + private Listener mListener; + + private final MutableLiveData> mJtbFasi = new MutableLiveData<>(); + + private final SystemRESTConsumer mSystemRESTConsumer; + + public DialogAskMagazzinoProssimitaViewModel(SystemRESTConsumer systemRESTConsumer) { + this.mSystemRESTConsumer = systemRESTConsumer; + } + + public void init(String codMdep) { + this.sendOnLoadingStarted(); + + Calendar c = UtilityDate.getCalendarInstance(); + c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK)); + c.add(Calendar.DAY_OF_MONTH, -7); + startDate = c.getTime(); + startDateBindable.set(UtilityDate.formatDate(startDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + + c.add(Calendar.DAY_OF_MONTH, 7); + endDate = c.getTime(); + endDateBindable.set(UtilityDate.formatDate(endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + + String sql = "SELECT DISTINCT jrl_fase_posizioni.posizione as cod_jfas, " + + " descrizione, " + + " jrl_fase_posizioni.cod_mdep " + + "FROM jrl_fase_posizioni " + + " INNER JOIN mtb_depo_posizioni mdp ON jrl_fase_posizioni.cod_mdep = mdp.cod_mdep AND " + + " jrl_fase_posizioni.posizione = mdp.posizione " + + "WHERE cod_jfas IN (SELECT cod_jfas FROM jtb_fasi WHERE um_prod IS NOT NULL) " + + " AND jrl_fase_posizioni.cod_mdep = " + UtilityDB.valueToString(codMdep) + " " + + "ORDER BY jrl_fase_posizioni.posizione"; + + + Type typeOfObjectsList = new TypeToken>() {}.getType(); + this.mSystemRESTConsumer.>processSql(sql, typeOfObjectsList, jtbFasi -> { + this.mJtbFasi.postValue(jtbFasi); + + this.sendOnLoadingEnded(); + }, this::sendError); + } + + + + public MutableLiveData> getJtbFasi() { + return mJtbFasi; + } + + + private void sendOnLoadingStarted() { + if (this.mListener != null) mListener.onLoadingStarted(); + } + + private void sendOnLoadingEnded() { + if (this.mListener != null) mListener.onLoadingEnded(); + } + + private void sendError(Exception ex) { + if (this.mListener != null) mListener.onError(ex); + } + + public void setListener(Listener listener) { + this.mListener = listener; + } + + public interface Listener extends ILoadingListener { + + void onError(Exception ex); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java new file mode 100644 index 00000000..e27791a4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java @@ -0,0 +1,87 @@ +package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto; + +import java.math.BigDecimal; + +public class ProdFabbisognoLineeProdDTO { + + private String codMart; + private BigDecimal qtaOrd; + private BigDecimal numCnfOrd; + private String untMis; + private BigDecimal qtaColVersata; + private BigDecimal numCnfVersata; + private BigDecimal qtaFabbisogno; + private BigDecimal numCnfFabbisogno; + + public String getCodMart() { + return codMart; + } + + public ProdFabbisognoLineeProdDTO setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public BigDecimal getQtaOrd() { + return qtaOrd; + } + + public ProdFabbisognoLineeProdDTO setQtaOrd(BigDecimal qtaOrd) { + this.qtaOrd = qtaOrd; + return this; + } + + public BigDecimal getNumCnfOrd() { + return numCnfOrd; + } + + public ProdFabbisognoLineeProdDTO setNumCnfOrd(BigDecimal numCnfOrd) { + this.numCnfOrd = numCnfOrd; + return this; + } + + public String getUntMis() { + return untMis; + } + + public ProdFabbisognoLineeProdDTO setUntMis(String untMis) { + this.untMis = untMis; + return this; + } + + public BigDecimal getQtaColVersata() { + return qtaColVersata; + } + + public ProdFabbisognoLineeProdDTO setQtaColVersata(BigDecimal qtaColVersata) { + this.qtaColVersata = qtaColVersata; + return this; + } + + public BigDecimal getNumCnfVersata() { + return numCnfVersata; + } + + public ProdFabbisognoLineeProdDTO setNumCnfVersata(BigDecimal numCnfVersata) { + this.numCnfVersata = numCnfVersata; + return this; + } + + public BigDecimal getQtaFabbisogno() { + return qtaFabbisogno; + } + + public ProdFabbisognoLineeProdDTO setQtaFabbisogno(BigDecimal qtaFabbisogno) { + this.qtaFabbisogno = qtaFabbisogno; + return this; + } + + public BigDecimal getNumCnfFabbisogno() { + return numCnfFabbisogno; + } + + public ProdFabbisognoLineeProdDTO setNumCnfFabbisogno(BigDecimal numCnfFabbisogno) { + this.numCnfFabbisogno = numCnfFabbisogno; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdComponent.java deleted file mode 100644 index 1cdb1bbf..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdComponent.java +++ /dev/null @@ -1,15 +0,0 @@ -package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord; - -import dagger.Subcomponent; - -@Subcomponent -public interface ProdPosizionamentoDaOrdComponent { - - @Subcomponent.Factory - interface Factory { - - ProdPosizionamentoDaOrdComponent create(); - } - - void inject(ProdPosizionamentoDaOrdFragment prodPosizionamentoDaOrdFragment); -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdFragment.java deleted file mode 100644 index 3e997a0c..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdFragment.java +++ /dev/null @@ -1,63 +0,0 @@ -package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.databinding.DataBindingUtil; -import androidx.fragment.app.Fragment; - -import javax.inject.Inject; - -import it.integry.integrywmsnative.MainApplication; -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.databinding.FragmentProdPosizionamentoDaOrdBinding; - -/** - * A simple {@link Fragment} subclass. - * Use the {@link ProdPosizionamentoDaOrdFragment#newInstance} factory method to - * create an instance of this fragment. - */ -public class ProdPosizionamentoDaOrdFragment extends Fragment { - - private FragmentProdPosizionamentoDaOrdBinding mBinding = null; - - @Inject - ProdPosizionamentoDaOrdViewModel mViewModel; - - public ProdPosizionamentoDaOrdFragment() { - // Required empty public constructor - } - - - public static ProdPosizionamentoDaOrdFragment newInstance() { - ProdPosizionamentoDaOrdFragment fragment = new ProdPosizionamentoDaOrdFragment(); - return fragment; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_posizionamento_da_ord, container,false); - - MainApplication.appComponent - .prodPosizionamentoDaOrdComponent() - .create() - .inject(this); - -// mViewModel.setListener(this); - - mBinding.setLifecycleOwner(this); - mBinding.setView(this); - mBinding.setViewmodel(mViewModel); - - return mBinding.getRoot(); - } -} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdModule.java deleted file mode 100644 index 3fdd2533..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdModule.java +++ /dev/null @@ -1,20 +0,0 @@ -package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord; - -import javax.inject.Singleton; - -import dagger.Module; -import dagger.Provides; - -@Module(subcomponents = ProdPosizionamentoDaOrdComponent.class) -public class ProdPosizionamentoDaOrdModule { - - - - - @Provides - @Singleton - ProdPosizionamentoDaOrdViewModel providesProdPosizionamentoDaOrdViewModel() { - return new ProdPosizionamentoDaOrdViewModel(); - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdViewModel.java deleted file mode 100644 index a855c668..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_posizionamento_da_ord/ProdPosizionamentoDaOrdViewModel.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord; - -import javax.inject.Inject; - -public class ProdPosizionamentoDaOrdViewModel { - - - @Inject - public ProdPosizionamentoDaOrdViewModel() { - - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java index c74b258e..1f53fb66 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java @@ -43,8 +43,8 @@ import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersa import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; public class ProdRecuperoMaterialeViewModel { @@ -82,6 +82,7 @@ public class ProdRecuperoMaterialeViewModel { private void initBarcode() { + BarcodeManager.enable(); barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() .setOnScanSuccessfull(onScanSuccessful) .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false))); @@ -204,7 +205,7 @@ public class ProdRecuperoMaterialeViewModel { .setCanOverflowOrderQuantity(false) .setCanLUBeClosed(false); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) @@ -213,14 +214,15 @@ public class ProdRecuperoMaterialeViewModel { .setPartitaMag(resultDTO.getPartitaMag()) .setDataScad(resultDTO.getDataScad()); - onItemDispatched(item, resultDTO.getQtaTot(), sourceMtbColt, dialogProgress); + onItemDispatched(item, resultDTO.getQtaTot(), resultDTO.getNumCnf(), resultDTO.getQtaCnf(), sourceMtbColt, dialogProgress); }, () -> { if (dialogProgress != null) dialogProgress.dismiss(); + BarcodeManager.enable(); }) .show(mContext.getSupportFragmentManager(), "tag"); } - private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) { + private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal inputQtaTot, BigDecimal inputNumCnf, BigDecimal inputQtaCnf, MtbColt sourceMtbColt, Dialog progress) { if (progress == null) { progress = UtilityProgress.createDefaultProgressDialog(mContext); @@ -234,14 +236,37 @@ public class ProdRecuperoMaterialeViewModel { .setGestione(item.getGestione()) .setMtbColr(new ObservableArrayList<>()); + + BigDecimal totalSumOfQtaCol = BigDecimal.ZERO; + BigDecimal totalSumOfNumCnf = BigDecimal.ZERO; + for (HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) { - BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN); + + BigDecimal qtaColToSave; + BigDecimal numCnfToSave; + + if (SettingsManager.iDB().isFlagForceAllToColli() || (item.getMtbAart() != null && !item.getMtbAart().isFlagQtaCnfFissaBoolean()) ){ + numCnfToSave = UtilityBigDecimal.divideAndRoundToInteger(inputNumCnf.multiply(BigDecimal.valueOf(ordine.getPercentageHr())), BigDecimal.valueOf(100), RoundingMode.FLOOR); + qtaColToSave = numCnfToSave.multiply(inputQtaCnf).setScale(0, BigDecimal.ROUND_FLOOR); + } else { + qtaColToSave = UtilityBigDecimal.divideAndRoundToInteger(inputQtaTot.multiply(BigDecimal.valueOf(ordine.getPercentageHr())), BigDecimal.valueOf(100), RoundingMode.FLOOR); + numCnfToSave = UtilityBigDecimal.divide(qtaColToSave, item.getQtaCnf(), RoundingMode.FLOOR); + } + + + totalSumOfQtaCol = totalSumOfQtaCol.add(qtaColToSave); + totalSumOfNumCnf = totalSumOfNumCnf.add(numCnfToSave); + + numCnfToSave = numCnfToSave.multiply(BigDecimal.valueOf(-1)); + qtaColToSave = qtaColToSave.multiply(BigDecimal.valueOf(-1)); + final MtbColr mtbColrScarico = new MtbColr() .setCodMart(item.getCodMart()) .setPartitaMag(UtilityString.empty2null(item.getPartitaMag())) - .setQtaCol(qtaCol) - .setQtaCnf(ordine.getQtaCnf()) + .setQtaCol(qtaColToSave) + .setQtaCnf(inputQtaCnf) + .setNumCnf(numCnfToSave) .setDescrizione(UtilityString.isNullOrEmpty(item.getMtbAart().getDescrizioneEstesa()) ? item.getMtbAart().getDescrizione() : item.getMtbAart().getDescrizioneEstesa()) .setDatetimeRow(UtilityDate.getDateInstance()) .setNumColloRif(item.getNumColloRif()) @@ -256,6 +281,24 @@ public class ProdRecuperoMaterialeViewModel { mtbColtScarico.getMtbColr().add(mtbColrScarico); } + boolean updateQtaCnfFirstRow = false; + + if(UtilityBigDecimal.lowerThan(totalSumOfNumCnf, inputNumCnf)) { + BigDecimal diff = inputNumCnf.subtract(totalSumOfNumCnf).multiply(BigDecimal.valueOf(-1)); + mtbColtScarico.getMtbColr().get(0).setNumCnf(mtbColtScarico.getMtbColr().get(0).getNumCnf().add(diff)); + updateQtaCnfFirstRow = true; + } + + if(UtilityBigDecimal.lowerThan(totalSumOfQtaCol, inputQtaTot)) { + BigDecimal diff = inputQtaTot.subtract(totalSumOfQtaCol).multiply(BigDecimal.valueOf(-1)); + mtbColtScarico.getMtbColr().get(0).setQtaCol(mtbColtScarico.getMtbColr().get(0).getQtaCol().add(diff)); + updateQtaCnfFirstRow = true; + } + + if(updateQtaCnfFirstRow) { + mtbColtScarico.getMtbColr().get(0).setQtaCnf( + UtilityBigDecimal.divide(mtbColtScarico.getMtbColr().get(0).getQtaCol(), mtbColtScarico.getMtbColr().get(0).getNumCnf())); + } mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); @@ -280,7 +323,9 @@ public class ProdRecuperoMaterialeViewModel { final MtbColr mtbColrCarico = new MtbColr() .setCodMart(item.getCodMart()) .setPartitaMag(UtilityString.empty2null(item.getPartitaMag())) - .setQtaCol(quantity) + .setQtaCol(inputQtaTot) + .setNumCnf(inputNumCnf) + .setQtaCnf(inputQtaCnf) .setDescrizione(UtilityString.isNullOrEmpty(item.getMtbAart().getDescrizioneEstesa()) ? item.getMtbAart().getDescrizione() : item.getMtbAart().getDescrizioneEstesa()) .setDatetimeRow(UtilityDate.getDateInstance()) .setNumColloRif(item.getNumColloRif()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java index 9671771d..21bfaabd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java @@ -13,18 +13,19 @@ import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Stream; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.util.HashMap; import java.util.List; import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; import it.integry.integrywmsnative.core.model.CheckableOrdineLavoro; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityResources; @@ -76,38 +77,52 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter ordiniSelezionati = getSelectedData(); - int totalHr = Stream.of(ordiniSelezionati).mapToInt(x -> x.getItem().getOrdineLav().getHrNum()).sum(); + int totalHr = Stream.of(ordiniSelezionati) + .mapToInt(x -> x.getItem().getOrdineLav().getHrNum()) + .sum(); + for (CheckableOrdineLavoro c : ordiniSelezionati) { BigDecimal usedCol, usedCnf; - float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr; + int perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr; + if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean()) ){ - usedCnf = residuoCnf.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR); - if (usedCnf.compareTo(BigDecimal.ZERO) <= 0 && offsetCnf.compareTo(BigDecimal.ZERO) > 0){ + usedCnf = UtilityBigDecimal.divideAndRoundToInteger(residuoCnf.multiply(BigDecimal.valueOf(perc)), BigDecimal.valueOf(100), RoundingMode.FLOOR); + + if(UtilityBigDecimal.equalsOrLowerThan(usedCnf, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCnf, BigDecimal.ZERO)) { usedCnf = BigDecimal.ONE; } + usedCol = usedCnf.multiply(mtbColr.getQtaCnf()).setScale(0,BigDecimal.ROUND_FLOOR); } else { - usedCol = residuoCol.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR); - if (usedCol.compareTo(BigDecimal.ZERO) <= 0 && offsetCol.compareTo(BigDecimal.ZERO) > 0){ + usedCol = UtilityBigDecimal.divideAndRoundToInteger(residuoCol.multiply(BigDecimal.valueOf(perc)), BigDecimal.valueOf(100), RoundingMode.FLOOR); + + if (UtilityBigDecimal.equalsOrLowerThan(usedCol, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCol, BigDecimal.ZERO)){ usedCol = BigDecimal.ONE; } - usedCnf = usedCol.divide(mtbColr.getQtaCnf()).setScale(3, BigDecimal.ROUND_FLOOR); + + usedCnf = UtilityBigDecimal.divide(usedCol, mtbColr.getQtaCnf(), RoundingMode.FLOOR); } + offsetCol = offsetCol.subtract(usedCol); offsetCnf = offsetCnf.subtract(usedCnf); + c.setQtaCol(usedCol.floatValue()); c.setNumCnf(usedCnf.floatValue()); } + if (ordiniSelezionati.size() > 0) { CheckableOrdineLavoro majorOrder = Stream.of(ordiniSelezionati).max((o1, o2) -> Integer.compare(o1.getItem().getOrdineLav().getHrNum(), o2.getItem().getOrdineLav().getHrNum())).get(); if (majorOrder == null) { majorOrder = ordiniSelezionati.get(0); } + if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 0){ if ( SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) { majorOrder.setNumCnf(majorOrder.getNumCnf().get() + offsetCnf.floatValue()); @@ -116,8 +131,6 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeRESTConsumer.java index 9ec86f5e..71448147 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeRESTConsumer.java @@ -10,11 +10,9 @@ 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.rest.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityDB; -import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; @Singleton @@ -29,19 +27,12 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { public void loadListaFornitori(RunnableArgs> onComplete, RunnableArgs onFailed) { String sql = "SELECT cod_alis as 'codAlis', descrizione FROM atb_list WHERE flag_attivo = 'S'"; - Type typeOfObjectsList = new TypeToken>() {}.getType(); + Type typeOfObjectsList = new TypeToken>() { + }.getType(); - mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(ArrayList value) { - if(onComplete != null) onComplete.run(value); - } - - @Override - public void onFailed(Exception ex) { - onFailed.run(ex); - } - }); + mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { + if (onComplete != null) onComplete.run(value); + }, onFailed); } @@ -55,18 +46,11 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { " ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa"; - Type typeOfObjectsList = new TypeToken>() {}.getType(); - mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(ArrayList value) { - if(onComplete != null) onComplete.run(value); - } - - @Override - public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); - } - }); + Type typeOfObjectsList = new TypeToken>() { + }.getType(); + mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { + if (onComplete != null) onComplete.run(value); + }, onFailed); } @@ -84,18 +68,11 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer { "OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " + "OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'"; - Type typeOfObjectsList = new TypeToken>() {}.getType(); - mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { - @Override - public void onSuccess(ArrayList value) { - if(onComplete != null) onComplete.run(value); - } - - @Override - public void onFailed(Exception ex) { - if(onFailed != null) onFailed.run(ex); - } - }); + Type typeOfObjectsList = new TypeToken>() { + }.getType(); + mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> { + if (onComplete != null) onComplete.run(value); + }, onFailed); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index 0ab1483a..d6df5264 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -67,9 +67,9 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.camera_barcode_reader.DialogCameraBarcodeReader; import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; -import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt; +import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView; import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo; public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener { @@ -100,12 +100,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo private ArrayList mColliRegistrati; private GestioneEnum mGestioneCol; private int mSegnoCol; + private Integer mDefaultCausaleUL; private boolean mShouldCloseActivity; private final int PICK_UL_REQUEST = 1; - public static void startActivity(Context context, List ordini, List selectedOrders, List mtbColtList, GestioneEnum gestioneCol, int segnoCol) { + public static void startActivity(Context context, List ordini, List selectedOrders, List mtbColtList, GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL) { Intent myIntent = new Intent(context, SpedizioneActivity.class); String keyPickingList = DataCache.addItem(ordini); @@ -123,6 +124,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo String keySegnoCol = DataCache.addItem(segnoCol); myIntent.putExtra("keySegnoCol", keySegnoCol); + String keyDefaultCausaleUL = DataCache.addItem(defaultCausaleUL); + myIntent.putExtra("keyDefaultCausaleCol", keyDefaultCausaleUL); + context.startActivity(myIntent); } @@ -135,6 +139,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo mColliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati")); mGestioneCol = DataCache.retrieveItem(getIntent().getStringExtra("keyGestioneCol")); mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol")); + mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol")); mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione); @@ -186,7 +191,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo mTestateOrdini, mColliRegistrati, reportNameSpedizioneChiudiOrdine, - mGestioneCol, mSegnoCol); + mGestioneCol, mSegnoCol, mDefaultCausaleUL); } @Override @@ -586,7 +591,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo }; public void addExtraItem() { - DialogScanArt + DialogScanArtView .newInstance((status, mtbAart, ean128Model, mtbColr) -> { if(status == DialogConsts.Results.YES) { this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr); @@ -779,7 +784,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo .setCanOverflowOrderQuantity(canOverflowOrderQuantity) .setCanLUBeClosed(true); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java index ba8484e4..eb8d45f5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java @@ -63,7 +63,6 @@ import it.integry.integrywmsnative.core.utility.UtilityPosizione; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.gest.spedizione.exceptions.CurrentMonoLUPositionIsNotCorrectException; import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; -import it.integry.integrywmsnative.gest.spedizione.exceptions.NoOrdersSelectedException; import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException; import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; @@ -87,6 +86,7 @@ public class SpedizioneViewModel { private Integer mDefaultNumOrdOfUL = null; private Date mDefaultDataOrdOfUL = null; private String mDefaultCodJFasOfUL = null; + private Integer mDefaultCausaleOfUL = null; private boolean mEnableGiacenza; private boolean mEnableCheckPartitaMag; @@ -133,7 +133,8 @@ public class SpedizioneViewModel { List colliRegistrati, String reportNameSpedizioneChiudiOrdine, GestioneEnum gestioneCol, - int segnoCol) { + int segnoCol, + Integer defaultCausaleUL) { this.sendOnLoadingStarted(); this.mDefaultCodMdep = codMdep; @@ -144,6 +145,7 @@ public class SpedizioneViewModel { this.mCanOverflowOrderQuantity = canOverflowOrderQuantity; this.mShouldAskPesoLU = shouldAskPesoLU; this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine; + this.mDefaultCausaleOfUL = defaultCausaleUL; if (enableGiacenza) { mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> { @@ -192,107 +194,105 @@ public class SpedizioneViewModel { } private void initDefaultVars() { - if (this.mTestateOrdini == null || this.mTestateOrdini.size() == 0) { - sendError(new NoOrdersSelectedException()); - return; - } + if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) { - if (mDefaultGestioneOfUL == null) { - //Definizione della gestione collo di default - List foundGestioni = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getGestioneEnum) - .withoutNulls() - .distinct() + if (mDefaultGestioneOfUL == null) { + //Definizione della gestione collo di default + List foundGestioni = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getGestioneEnum) + .withoutNulls() + .distinct() + .toList(); + + if (foundGestioni != null && foundGestioni.size() > 1) { + return; + } else if (foundGestioni != null && foundGestioni.size() == 1) { + mDefaultGestioneOfUL = foundGestioni.get(0); + } else { + mDefaultGestioneOfUL = GestioneEnum.VENDITA; + } + } + + //Definizione del filtro ordine da applicare a tutti i colli generati + Stream.of(mTestateOrdini).forEach(x -> { + FiltroOrdineDTO filtro = new FiltroOrdineDTO() + .setDataOrd(x.getDataOrdD()) + .setNumOrd(x.getNumOrd()) + .setGestioneOrd(x.getGestione()) + .setDataCons(x.getDataConsD()); + + if (!mDefaultFiltroOrdine.contains(filtro)) mDefaultFiltroOrdine.add(filtro); + }); + + + //Definizione del codAnag + List foundCodAnag = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getCodAnagOrd) + .distinctBy(x -> x) .toList(); - if (foundGestioni != null && foundGestioni.size() > 1) { - return; - } else if (foundGestioni != null && foundGestioni.size() == 1) { - mDefaultGestioneOfUL = foundGestioni.get(0); - } else { - mDefaultGestioneOfUL = GestioneEnum.VENDITA; + if (foundCodAnag != null && foundCodAnag.size() == 1) { + mDefaultCodAnagOfUL = foundCodAnag.get(0); } + + + //Definizione del codAnag + List foundRagSoc = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getRagSocOrd) + .distinctBy(x -> x) + .toList(); + + if (foundRagSoc != null && foundRagSoc.size() == 1) { + mDefaultRagSocOfUL = foundRagSoc.get(0); + } + + + //Definizione del rifOrd + List foundRifOrd = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getRifOrd) + .distinctBy(x -> x) + .toList(); + + if (foundRifOrd != null && foundRifOrd.size() == 1) { + mDefaultRifOrdOfUL = foundRifOrd.get(0); + } + + + //Definizione del numOrd + List foundNumOrd = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getNumOrd) + .withoutNulls() + .distinctBy(x -> x) + .toList(); + + if (foundNumOrd != null && foundNumOrd.size() == 1) { + mDefaultNumOrdOfUL = foundNumOrd.get(0); + } + + + //Definizione del dataOrd + List foundDataOrd = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getDataOrdD) + .withoutNulls() + .distinctBy(x -> x) + .toList(); + + if (foundDataOrd != null && foundDataOrd.size() == 1) { + mDefaultDataOrdOfUL = foundDataOrd.get(0); + } + + + //Definizione del codJfas + List foundCodJfas = Stream.of(mTestateOrdini) + .map(OrdineUscitaInevasoDTO::getCodJfas) + .distinctBy(x -> x) + .toList(); + + if (foundCodJfas != null && foundCodJfas.size() == 1) { + mDefaultCodJFasOfUL = foundCodJfas.get(0); + } + } - - //Definizione del filtro ordine da applicare a tutti i colli generati - Stream.of(mTestateOrdini).forEach(x -> { - FiltroOrdineDTO filtro = new FiltroOrdineDTO() - .setDataOrd(x.getDataOrdD()) - .setNumOrd(x.getNumOrd()) - .setGestioneOrd(x.getGestione()) - .setDataCons(x.getDataConsD()); - - if (!mDefaultFiltroOrdine.contains(filtro)) mDefaultFiltroOrdine.add(filtro); - }); - - - //Definizione del codAnag - List foundCodAnag = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getCodAnagOrd) - .distinctBy(x -> x) - .toList(); - - if (foundCodAnag != null && foundCodAnag.size() == 1) { - mDefaultCodAnagOfUL = foundCodAnag.get(0); - } - - - //Definizione del codAnag - List foundRagSoc = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getRagSocOrd) - .distinctBy(x -> x) - .toList(); - - if (foundRagSoc != null && foundRagSoc.size() == 1) { - mDefaultRagSocOfUL = foundRagSoc.get(0); - } - - - //Definizione del rifOrd - List foundRifOrd = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getRifOrd) - .distinctBy(x -> x) - .toList(); - - if (foundRifOrd != null && foundRifOrd.size() == 1) { - mDefaultRifOrdOfUL = foundRifOrd.get(0); - } - - - //Definizione del numOrd - List foundNumOrd = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getNumOrd) - .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundNumOrd != null && foundNumOrd.size() == 1) { - mDefaultNumOrdOfUL = foundNumOrd.get(0); - } - - - //Definizione del dataOrd - List foundDataOrd = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getDataOrdD) - .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundDataOrd != null && foundDataOrd.size() == 1) { - mDefaultDataOrdOfUL = foundDataOrd.get(0); - } - - - //Definizione del codJfas - List foundCodJfas = Stream.of(mTestateOrdini) - .map(OrdineUscitaInevasoDTO::getCodJfas) - .distinctBy(x -> x) - .toList(); - - if (foundCodJfas != null && foundCodJfas.size() == 1) { - mDefaultCodJFasOfUL = foundCodJfas.get(0); - } - } private void sendOnLoadingStarted() { @@ -1249,6 +1249,7 @@ public class SpedizioneViewModel { this.sendOnLoadingStarted(); final MtbColr mtbColr = new MtbColr() + .setCausale(mDefaultCausaleOfUL) .setCodMart(pickingObjectDTO.getMtbAart().getCodMart()) .setPartitaMag(partitaMag) .setDataScadPartita(dataScad) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/NoOrdersSelectedException.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/NoOrdersSelectedException.java index 4f783197..691d4fc3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/NoOrdersSelectedException.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/NoOrdersSelectedException.java @@ -1,4 +1,12 @@ package it.integry.integrywmsnative.gest.spedizione.exceptions; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.utility.UtilityResources; + public final class NoOrdersSelectedException extends Exception { + + public NoOrdersSelectedException() { + super(UtilityResources.getString(R.string.no_one_order_selected)); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index 1128989b..b2a835fa 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -42,7 +42,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione; import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; -import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2; +import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; @@ -379,7 +379,7 @@ public class VersamentoMerceViewModel { .setCanPartitaMagBeChanged(false) .setCanLUBeClosed(false); - DialogInputQuantityV2 + DialogInputQuantityV2View .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> { // PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() // .setNumCnf(resultDTO.getNumCnf()) diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java index 9d900cf5..6689e854 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java @@ -37,7 +37,7 @@ public class DialogAskCliente_Page1_Cliente_ArrayAdapter extends ArrayAdapter mDataset; - private IRecyclerItemClicked mOnItemClickListener; + private final List mDataset; + private final IRecyclerItemClicked mOnItemClickListener; public static class ViewHolder extends RecyclerView.ViewHolder { protected DialogChooseArtFromListaArtItemModelBinding mViewDataBinding; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/choose_art_from_lista_arts/DialogChooseArtFromListaMtbColr.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java similarity index 90% rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/choose_art_from_lista_arts/DialogChooseArtFromListaMtbColr.java rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java index ce261d25..b9872432 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/choose_art_from_lista_arts/DialogChooseArtFromListaMtbColr.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.choose_art_from_lista_arts; +package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr; import android.app.Dialog; import android.content.Context; @@ -20,7 +20,7 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding; -public class DialogChooseArtFromListaMtbColr { +public class DialogChooseArtFromListaMtbColrView { private Context currentContext; @@ -31,11 +31,11 @@ public class DialogChooseArtFromListaMtbColr { private RunnableArgs mOnItemChoosed; public static Dialog make(final Context context, List mtbColrList, RunnableArgs onItemChoosed) { - return new DialogChooseArtFromListaMtbColr(context, mtbColrList, onItemChoosed).mDialog; + return new DialogChooseArtFromListaMtbColrView(context, mtbColrList, onItemChoosed).mDialog; } - private DialogChooseArtFromListaMtbColr(Context context, List mtbColrList, RunnableArgs onItemChoosed) { + private DialogChooseArtFromListaMtbColrView(Context context, List mtbColrList, RunnableArgs onItemChoosed) { currentContext = context; mOnItemChoosed = onItemChoosed; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2Component.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2Component.java index 79e617d0..e30d5bb5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2Component.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2Component.java @@ -10,5 +10,5 @@ public interface DialogInputQuantityV2Component { DialogInputQuantityV2Component create(); } - void inject(DialogInputQuantityV2 dialogInputQuantityV2); + void inject(DialogInputQuantityV2View dialogInputQuantityV2); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java similarity index 92% rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java index 5797879a..fc527cb5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java @@ -1,6 +1,5 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; -import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.res.ColorStateList; @@ -41,11 +40,10 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityObservable; -import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogInputQuantityV2ViewModel.Listener { +public class DialogInputQuantityV2View extends BaseDialogFragment implements DialogInputQuantityV2ViewModel.Listener { @Inject DialogInputQuantityV2ViewModel mViewModel; @@ -74,13 +72,12 @@ public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogI private boolean mEnableDataCallback = true; private int mBarcodeScannerIstanceID; - private Dialog mCurrentProgress; - public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { - return new DialogInputQuantityV2(dialogInputQuantityV2DTO, onComplete, onAbort); + public static DialogInputQuantityV2View newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { + return new DialogInputQuantityV2View(dialogInputQuantityV2DTO, onComplete, onAbort); } - private DialogInputQuantityV2(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { + private DialogInputQuantityV2View(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { super(); this.mDialogInputQuantityV2DTO = dialogInputQuantityV2DTO; @@ -156,19 +153,6 @@ public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogI }); }; - private void openProgress() { - if (this.mCurrentProgress == null) { - this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this.context); - } - } - - private void closeProgress() { - if (mCurrentProgress != null) { - mCurrentProgress.dismiss(); - mCurrentProgress = null; - } - } - public void save() { if (this.mViewModel.validate()) { this.mOnComplete.run(this.mViewModel.getResult(), false); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtComponent.java index b5e3d850..eea94d89 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtComponent.java @@ -10,6 +10,6 @@ public interface DialogScanArtComponent { DialogScanArtComponent create(); } - void inject(DialogScanArt dialogScanArt); + void inject(DialogScanArtView dialogScanArtView); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArt.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java similarity index 78% rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArt.java rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java index ef08d61d..21548b55 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArt.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java @@ -1,6 +1,5 @@ package it.integry.integrywmsnative.view.dialogs.scan_art; -import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; @@ -29,12 +28,11 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.DialogScanArtBinding; import it.integry.integrywmsnative.view.dialogs.DialogConsts; -import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.choose_art_from_lista_arts.DialogChooseArtFromListaMtbColr; +import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.DialogChooseArtFromListaMtbColrView; -public class DialogScanArt extends BaseDialogFragment implements DialogScanArtViewModel.Listener { +public class DialogScanArtView extends BaseDialogFragment implements DialogScanArtViewModel.Listener { @Inject DialogScanArtViewModel mViewModel; @@ -44,16 +42,15 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi private DialogScanArtBinding mBindings; private int mBarcodeScannerIstanceID; - private Dialog mCurrentProgress; private RunnableArgssss mOnItemChoosed = null; - public static DialogScanArt newInstance(@NotNull RunnableArgssss onComplete) { - return new DialogScanArt(onComplete); + public static DialogScanArtView newInstance(@NotNull RunnableArgssss onComplete) { + return new DialogScanArtView(onComplete); } - private DialogScanArt(RunnableArgssss onItemChoosed) { + private DialogScanArtView(RunnableArgssss onItemChoosed) { super(); mOnItemChoosed = onItemChoosed; } @@ -114,7 +111,7 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi this.mViewModel.processBarcodeDTO(data, (status, mtbAart, ean128Model, mtbColrList) -> { if(mtbColrList != null && mtbColrList.size() > 0) { - DialogChooseArtFromListaMtbColr.make(mContext, mtbColrList, mtbColrChose -> { + DialogChooseArtFromListaMtbColrView.make(mContext, mtbColrList, mtbColrChose -> { mOnItemChoosed.run(status, mtbAart, ean128Model, mtbColrChose); }).show(); } else { @@ -132,21 +129,7 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi @Override public void onError(Exception ex) { this.closeProgress(); - UtilityExceptions.defaultException(mContext, ex, mCurrentProgress); + UtilityExceptions.defaultException(mContext, ex); BarcodeManager.enable(); } - - - protected void openProgress() { - if (this.mCurrentProgress == null) { - this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(mContext); - } - } - - protected void closeProgress() { - if (mCurrentProgress != null) { - mCurrentProgress.dismiss(); - mCurrentProgress = null; - } - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java index c1d1737b..6fcb77f4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java @@ -130,7 +130,6 @@ public class DialogScanArtViewModel { if (this.mListener != null) mListener.onError(ex); } - public void setListener(Listener listener) { this.mListener = listener; } diff --git a/app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml b/app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml new file mode 100644 index 00000000..e66aba68 --- /dev/null +++ b/app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml index eda27a33..443e07e2 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml @@ -43,7 +43,7 @@ app:icon="@drawable/ic_clear_24dp" app:strokeColor="@color/colorPrimary" android:layout_marginEnd="8dp" - android:text="Annulla"/> + android:text="@string/abort"/> + android:text="@string/confirm"/> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input_quantity_v2.xml b/app/src/main/res/layout/dialog_input_quantity_v2.xml index 1ad1bfcc..e40820d4 100644 --- a/app/src/main/res/layout/dialog_input_quantity_v2.xml +++ b/app/src/main/res/layout/dialog_input_quantity_v2.xml @@ -19,7 +19,7 @@ + type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_prod_posizionamento_da_ord.xml b/app/src/main/res/layout/fragment_prod_posizionamento_da_ord.xml deleted file mode 100644 index 8d4bb40e..00000000 --- a/app/src/main/res/layout/fragment_prod_posizionamento_da_ord.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a9d42168..7718f42c 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -19,6 +19,7 @@ Ordini di accettazione Spedizione Rettifica giacenze + Fabbisogno linee prod. Posizionamento merce Errore Ops @@ -203,6 +204,8 @@ Commessa Destinatario Data consegna + Data inizio + Data fine Data documento Termini di consegna Automezzo @@ -215,6 +218,7 @@ Nessun articolo trovato Nessuna UL trovata Non sono stati trovati ordini + Non รจ stato selezionato alcun ordine Sono ammesse solo UL di Acquisto o Lavorazione qui Acquisto o Vendita non sono ammesse qui]]> Vendita non sono ammesse qui]]> @@ -268,11 +272,13 @@ Vendita Lav. terzi / Trasf. interni Produzione + Linea di produzione Movimentazione interna Accettazione da ordine Picking da ordine Versamento materiale Recupero materiale + Seleziona un elemento per continuare Prima di procedere seleziona un cliente Prima di procedere seleziona un destinatario diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 26f346d1..37911048 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,6 +57,7 @@ Multiple acceptance orders Check out Inventory + Production line requirements Items placement Free picking Error @@ -206,6 +207,8 @@ Job Recipient Ship date + Start date + End date Document date Terms of delivery Vehicle @@ -218,6 +221,7 @@ No items found No LU found No orders found + No one order is selected Only Purchase or Production\'s LU are accepted here The LU of type Purchase or Sale is not accepted here The LU of type Sale is not accepted here @@ -273,11 +277,13 @@ Check out Manufacture / Internal movement Production + Production line Internal handling Production picking Manufacture picking Deposit raw material Recover raw material + Please select an item before proceed Please, select a customer before proceeding