From 07ae8fc605be84b07f8ffb81bbb082c26132a81a Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 29 Nov 2018 00:18:16 +0100 Subject: [PATCH] Migliorata gestione RettificaGiacenze --- .idea/caches/build_file_checksums.ser | Bin 729 -> 724 bytes .idea/modules.xml | 2 + .../RettificaGiacenzeFragment.java | 52 ++++++- .../core/RettificaGiacenzeHelper.java | 21 +++ .../adapter/AutoCompleteFornitoreAdapter.java | 11 +- .../dto/ArticoloFornitoreDTO.java | 32 ++++ .../viewmodel/RettificaGiacenzeViewModel.java | 52 ++++++- .../res/drawable/circular_background_left.xml | 13 ++ app/src/main/res/layout/fragment_main.xml | 3 +- .../res/layout/fragment_main_accettazione.xml | 3 +- .../fragment_main_rettifica_giacenze.xml | 146 ++++++++++++++++++ .../layout/fragment_rettifica_giacenze.xml | 64 -------- app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/colors.xml | 3 + app/src/main/res/values/strings.xml | 1 + 15 files changed, 323 insertions(+), 81 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/ArticoloFornitoreDTO.java create mode 100644 app/src/main/res/drawable/circular_background_left.xml create mode 100644 app/src/main/res/layout/fragment_main_rettifica_giacenze.xml delete mode 100644 app/src/main/res/layout/fragment_rettifica_giacenze.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 60079500346eb682b810aaec2063bca5ec7ea8e8..e2531d5d5667ed2a31e96eaec2308becfc174e89 100644 GIT binary patch delta 106 zcmV-w0G0pQ1=IzQnFGX}A(5O<1Q20xaFPKe5Fo!ed6MqCrI$eBtb2@NdXecRlTHE& zlOzEWlVbra7binHTvc;ra&ufvb!&NCE@yIKWNc+zldS?9lg0s75ZSz6kYE&;(y_+U Mov#c!%#$nvt=YyaKmY&$ delta 100 zcmV-q0Gt2R1=$6VnFAWh_K}=VlO+Kok^L4HEnq7}uso9mO~Pu5*2G-ObN~=xaB!1; z0vD4L0TPpA0W1?NLpoelb7gXKTt{hjb7gRFWmA)#0eTQ`J92cs{EW_{1Vb~KWS|9; GCjzaf!6twJ diff --git a/.idea/modules.xml b/.idea/modules.xml index 246b1bce..d4556b57 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -5,8 +5,10 @@ + + \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index 72d71c58..1571dde4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -1,11 +1,10 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze; import android.content.Context; +import android.content.res.ColorStateList; import android.databinding.DataBindingUtil; -import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,15 +12,14 @@ import android.view.ViewGroup; import butterknife.ButterKnife; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; -import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.databinding.FragmentRettificaGiacenzeBinding; +import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeHelper; import it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel; public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment { private RettificaGiacenzeHelper mHelper; - private FragmentRettificaGiacenzeBinding mBinding = null; + private FragmentMainRettificaGiacenzeBinding mBinding = null; private RettificaGiacenzeViewModel mRettificaGiacenzeViewModel = null; @@ -44,9 +42,9 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_rettifica_giacenze, container, false); + mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false); mRettificaGiacenzeViewModel = new RettificaGiacenzeViewModel(); - mRettificaGiacenzeViewModel.init(getActivity(), mBinding); + mBinding.setView(this); mBinding.setViewmodel(mRettificaGiacenzeViewModel); @@ -59,9 +57,19 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme private void init() { mHelper = new RettificaGiacenzeHelper(getActivity()); + mRettificaGiacenzeViewModel.init(getActivity(), mBinding, mHelper); mHelper.loadListaFornitori(listaFornitori -> { - mRettificaGiacenzeViewModel.setupListaFornitori(listaFornitori); + mRettificaGiacenzeViewModel.setupSearchFornitori(listaFornitori); + }); + + + mBinding.autoCompleteFornitori.setOnFocusChangeListener((v, hasFocus) -> { + setUIToForn(); + }); + + mBinding.inputCodArtDescrInt.setOnFocusChangeListener((v, hasFocus) -> { + setUIToIntArt(); }); } @@ -83,4 +91,32 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme public String getTitle(Context context) { return context.getResources().getString(R.string.rettifica_giacenze_fragment_title); } + + + + + public void setUIToForn() { + mBinding.rettificaGiacenzeFornCheckBox.setChecked(true); + mBinding.rettificaGiacenzeFornLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left)); + mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500))); + + mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false); + mBinding.rettificaGiacenzeArtIntLayout.setBackground(null); + mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(null); + + + } + + + public void setUIToIntArt() { + mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(true); + mBinding.rettificaGiacenzeArtIntLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left)); + mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500))); + + mBinding.rettificaGiacenzeFornCheckBox.setChecked(false); + mBinding.rettificaGiacenzeFornLayout.setBackground(null); + mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(null); + + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java index 9ae468b0..b1376d02 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java @@ -16,6 +16,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.ArticoloFornitoreDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; public class RettificaGiacenzeHelper { @@ -47,6 +48,26 @@ public class RettificaGiacenzeHelper { UtilityExceptions.defaultException(mContext, ex, progress); } }); + } + public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) { + String sql = "SELECT mtb_aart.cod_mart, mtb_aart.descrizione_estesa, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart " + + " WHERE cod_alis = " + UtilityDB.valueToString(codAlis) + + " AND mtb_lisa.cod_mart = mtb_aart.cod_mart " + + " AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr +"%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " + + " ORDER BY mtb_aart.descrizione_estesa"; + + Type typeOfObjectsList = new TypeToken>() {}.getType(); + SystemRESTConsumer.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); + } + }); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/AutoCompleteFornitoreAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/AutoCompleteFornitoreAdapter.java index 915b8f0f..9a5f0fc2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/AutoCompleteFornitoreAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/AutoCompleteFornitoreAdapter.java @@ -14,6 +14,7 @@ import android.widget.Filter; import android.widget.TextView; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import it.integry.integrywmsnative.R; @@ -80,10 +81,14 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter { ArrayList filteredList = (ArrayList) results.values; if(results != null && results.count > 0) { clear(); - for (FornitoreDTO c : filteredList) { - add(c); + synchronized (filteredList) { + + for (FornitoreDTO c : filteredList) { + add(c); + } + notifyDataSetChanged(); + } - notifyDataSetChanged(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/ArticoloFornitoreDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/ArticoloFornitoreDTO.java new file mode 100644 index 00000000..1889f2a0 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/ArticoloFornitoreDTO.java @@ -0,0 +1,32 @@ +package it.integry.integrywmsnative.gest.rettifica_giacenze.dto; + +public class ArticoloFornitoreDTO { + + private String codMart; + private String descrizioneEstesa; + private String codArtFor; + + public String getCodMart() { + return codMart; + } + + public void setCodMart(String codMart) { + this.codMart = codMart; + } + + public String getDescrizioneEstesa() { + return descrizioneEstesa; + } + + public void setDescrizioneEstesa(String descrizioneEstesa) { + this.descrizioneEstesa = descrizioneEstesa; + } + + public String getCodArtFor() { + return codArtFor; + } + + public void setCodArtFor(String codArtFor) { + this.codArtFor = codArtFor; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index b513b2c6..36c5ca97 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -1,29 +1,73 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel; +import android.app.ProgressDialog; import android.content.Context; import android.databinding.ObservableArrayList; +import android.text.SpannableString; +import android.view.KeyEvent; +import android.view.inputmethod.EditorInfo; +import android.widget.TextView; import java.util.ArrayList; import java.util.List; -import it.integry.integrywmsnative.databinding.FragmentRettificaGiacenzeBinding; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding; +import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeHelper; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; +import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; public class RettificaGiacenzeViewModel { private Context mContext; - private FragmentRettificaGiacenzeBinding mBinding; + private FragmentMainRettificaGiacenzeBinding mBinding; - public void init(Context context, FragmentRettificaGiacenzeBinding binding) { + private RettificaGiacenzeHelper mHelper; + + public void init(Context context, FragmentMainRettificaGiacenzeBinding binding, RettificaGiacenzeHelper helper) { mContext = context; mBinding = binding; + mHelper = helper; } - public void setupListaFornitori(ArrayList listaFornitori) { + public void setupSearchFornitori(ArrayList listaFornitori) { AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori); mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter); mBinding.autoCompleteFornitori.setDropDownWidth(mContext.getResources().getDisplayMetrics().widthPixels); + + mBinding.inputCodArtDescrForn.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_DONE) { + if(UtilityString.isNullOrEmpty(mBinding.autoCompleteFornitori.getText().toString())) { + showNoFornSelected(); + return true; + } + + searchArtFor( + mBinding.autoCompleteFornitori.getText().toString(), + mBinding.inputCodArtDescrForn.getText().toString()); + return true; + } + return false; + }); + } + + private void showNoFornSelected() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(mContext.getResources().getText(R.string.no_supplier_selected)), + null, null).show(); + } + + private void searchArtFor(String codAlis, String queryText) { + final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + progressDialog.show(); + + mHelper.searchArtForn(codAlis, queryText, listaArts -> { + progressDialog.dismiss(); + }, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)); } } diff --git a/app/src/main/res/drawable/circular_background_left.xml b/app/src/main/res/drawable/circular_background_left.xml new file mode 100644 index 00000000..e676105c --- /dev/null +++ b/app/src/main/res/drawable/circular_background_left.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 635489c2..66d0d803 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -4,7 +4,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".gest.main.MainFragment"> + tools:context=".gest.main.MainFragment" + android:background="@color/full_white"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_rettifica_giacenze.xml b/app/src/main/res/layout/fragment_rettifica_giacenze.xml deleted file mode 100644 index ea836631..00000000 --- a/app/src/main/res/layout/fragment_rettifica_giacenze.xml +++ /dev/null @@ -1,64 +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 79e87f6a..4bd43058 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -131,5 +131,6 @@ Fornitore Cod art / Descrizione + Seleziona un fornitore prima \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3773cf98..6be8f76c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -23,6 +23,8 @@ + #2d42a5f5 + #1976D2 @@ -31,6 +33,7 @@ #43A047 #388E3C + #813f51b5 #5C6BC0 #3F51B5 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 37e4d019..e094af9d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,5 +140,6 @@ Supplier Item code / Description + Please select a supplier first