From 5d151efc564e6c920d3b1b691f0e14de509a6f87 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 9 Jan 2020 12:08:18 +0100 Subject: [PATCH 1/9] Modificato filtro in Resi --- .../integrywmsnative/core/model/GtbAnag.java | 398 ++++++++++++++++++ .../DialogUltimeConsegneFiltroAvanzato.java | 41 +- .../UltimeConsegneClienteRESTConsumer.java | 23 +- .../UltimeConsegneClienteViewModel.java | 87 ++-- .../UltimiArriviFornitoreFragment.java | 109 +---- .../core/UltimiArriviFornitoreViewModel.java | 154 +++++++ ...ogUltimiArriviFornitoreFiltroAvanzato.java | 41 +- .../UltimiArriviFornitoreRESTConsumer.java | 30 +- .../fragment_ultimi_arrivi_fornitore.xml | 2 +- 9 files changed, 691 insertions(+), 194 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java 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 new file mode 100644 index 00000000..f71ba1ea --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/GtbAnag.java @@ -0,0 +1,398 @@ +package it.integry.integrywmsnative.core.model; + +import java.math.BigDecimal; +import java.util.Date; + +public class GtbAnag { + + private String codAnag; + private String ragSoc; + private String indirizzo; + private String cap; + private String citta; + private String prov; + private String nazione; + private String telefono; + private String fax; + private String partIva; + private String codFisc; + private String note; + private String personaRif; + private String allegato; + private String eMail; + private String eMailPec; + private String flagPersonaFg; + private String sesso; + private String codCentroAzi; + private String codRuop; + private Date dataNascita; + private String luogoNascita; + private String provNascita; + private String nome; + private String ragSoc2; + private Integer classeMerito; + private Date dataIns; + private String numCell; + private String cciaa; + private String tipoAzienda; + private String cuuPa; + private String cognome; + private String diacod; + private BigDecimal lat; + private BigDecimal lng; + private String flagInformativa; + private String flagConsenso; + private String precode; + private Boolean insDestinatario; + + public String getCodAnag() { + return codAnag; + } + + public GtbAnag setCodAnag(String codAnag) { + this.codAnag = codAnag; + return this; + } + + public String getRagSoc() { + return ragSoc; + } + + public GtbAnag setRagSoc(String ragSoc) { + this.ragSoc = ragSoc; + return this; + } + + public String getIndirizzo() { + return indirizzo; + } + + public GtbAnag setIndirizzo(String indirizzo) { + this.indirizzo = indirizzo; + return this; + } + + public String getCap() { + return cap; + } + + public GtbAnag setCap(String cap) { + this.cap = cap; + return this; + } + + public String getCitta() { + return citta; + } + + public GtbAnag setCitta(String citta) { + this.citta = citta; + return this; + } + + public String getProv() { + return prov; + } + + public GtbAnag setProv(String prov) { + this.prov = prov; + return this; + } + + public String getNazione() { + return nazione; + } + + public GtbAnag setNazione(String nazione) { + this.nazione = nazione; + return this; + } + + public String getTelefono() { + return telefono; + } + + public GtbAnag setTelefono(String telefono) { + this.telefono = telefono; + return this; + } + + public String getFax() { + return fax; + } + + public GtbAnag setFax(String fax) { + this.fax = fax; + return this; + } + + public String getPartIva() { + return partIva; + } + + public GtbAnag setPartIva(String partIva) { + this.partIva = partIva; + return this; + } + + public String getCodFisc() { + return codFisc; + } + + public GtbAnag setCodFisc(String codFisc) { + this.codFisc = codFisc; + return this; + } + + public String getNote() { + return note; + } + + public GtbAnag setNote(String note) { + this.note = note; + return this; + } + + public String getPersonaRif() { + return personaRif; + } + + public GtbAnag setPersonaRif(String personaRif) { + this.personaRif = personaRif; + return this; + } + + public String getAllegato() { + return allegato; + } + + public GtbAnag setAllegato(String allegato) { + this.allegato = allegato; + return this; + } + + public String geteMail() { + return eMail; + } + + public GtbAnag seteMail(String eMail) { + this.eMail = eMail; + return this; + } + + public String geteMailPec() { + return eMailPec; + } + + public GtbAnag seteMailPec(String eMailPec) { + this.eMailPec = eMailPec; + return this; + } + + public String getFlagPersonaFg() { + return flagPersonaFg; + } + + public GtbAnag setFlagPersonaFg(String flagPersonaFg) { + this.flagPersonaFg = flagPersonaFg; + return this; + } + + public String getSesso() { + return sesso; + } + + public GtbAnag setSesso(String sesso) { + this.sesso = sesso; + return this; + } + + public String getCodCentroAzi() { + return codCentroAzi; + } + + public GtbAnag setCodCentroAzi(String codCentroAzi) { + this.codCentroAzi = codCentroAzi; + return this; + } + + public String getCodRuop() { + return codRuop; + } + + public GtbAnag setCodRuop(String codRuop) { + this.codRuop = codRuop; + return this; + } + + public Date getDataNascita() { + return dataNascita; + } + + public GtbAnag setDataNascita(Date dataNascita) { + this.dataNascita = dataNascita; + return this; + } + + public String getLuogoNascita() { + return luogoNascita; + } + + public GtbAnag setLuogoNascita(String luogoNascita) { + this.luogoNascita = luogoNascita; + return this; + } + + public String getProvNascita() { + return provNascita; + } + + public GtbAnag setProvNascita(String provNascita) { + this.provNascita = provNascita; + return this; + } + + public String getNome() { + return nome; + } + + public GtbAnag setNome(String nome) { + this.nome = nome; + return this; + } + + public String getRagSoc2() { + return ragSoc2; + } + + public GtbAnag setRagSoc2(String ragSoc2) { + this.ragSoc2 = ragSoc2; + return this; + } + + public Integer getClasseMerito() { + return classeMerito; + } + + public GtbAnag setClasseMerito(Integer classeMerito) { + this.classeMerito = classeMerito; + return this; + } + + public Date getDataIns() { + return dataIns; + } + + public GtbAnag setDataIns(Date dataIns) { + this.dataIns = dataIns; + return this; + } + + public String getNumCell() { + return numCell; + } + + public GtbAnag setNumCell(String numCell) { + this.numCell = numCell; + return this; + } + + public String getCciaa() { + return cciaa; + } + + public GtbAnag setCciaa(String cciaa) { + this.cciaa = cciaa; + return this; + } + + public String getTipoAzienda() { + return tipoAzienda; + } + + public GtbAnag setTipoAzienda(String tipoAzienda) { + this.tipoAzienda = tipoAzienda; + return this; + } + + public String getCuuPa() { + return cuuPa; + } + + public GtbAnag setCuuPa(String cuuPa) { + this.cuuPa = cuuPa; + return this; + } + + public String getCognome() { + return cognome; + } + + public GtbAnag setCognome(String cognome) { + this.cognome = cognome; + return this; + } + + public String getDiacod() { + return diacod; + } + + public GtbAnag setDiacod(String diacod) { + this.diacod = diacod; + return this; + } + + public BigDecimal getLat() { + return lat; + } + + public GtbAnag setLat(BigDecimal lat) { + this.lat = lat; + return this; + } + + public BigDecimal getLng() { + return lng; + } + + public GtbAnag setLng(BigDecimal lng) { + this.lng = lng; + return this; + } + + public String getFlagInformativa() { + return flagInformativa; + } + + public GtbAnag setFlagInformativa(String flagInformativa) { + this.flagInformativa = flagInformativa; + return this; + } + + public String getFlagConsenso() { + return flagConsenso; + } + + public GtbAnag setFlagConsenso(String flagConsenso) { + this.flagConsenso = flagConsenso; + return this; + } + + public String getPrecode() { + return precode; + } + + public GtbAnag setPrecode(String precode) { + this.precode = precode; + return this; + } + + public Boolean getInsDestinatario() { + return insDestinatario; + } + + public GtbAnag setInsDestinatario(Boolean insDestinatario) { + this.insDestinatario = insDestinatario; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dialog/DialogUltimeConsegneFiltroAvanzato.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dialog/DialogUltimeConsegneFiltroAvanzato.java index 8b3005e2..177f2a2d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dialog/DialogUltimeConsegneFiltroAvanzato.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/dialog/DialogUltimeConsegneFiltroAvanzato.java @@ -21,7 +21,9 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.di.BindableString; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -32,30 +34,30 @@ public class DialogUltimeConsegneFiltroAvanzato { private AlertDialog mAlert; private Context mContext; private DialogUltimeConsegneFiltroAvanzatoViewModel mBaseViewModel; - private RunnableArgss, DialogUltimeConsegneFiltroAvanzatoViewModel> mOnDismiss; + private RunnableArgs mOnDismiss; private ArrayAdapter arrayAdapterRagSoc; - private List mItems; - private List mFilteredItems; + private List mItems; + private List mFilteredItems; - private Predicate currentRagSocPredicate = null; - private Predicate currentDataDocPredicate = null; + private Predicate currentRagSocPredicate = null; + private Predicate currentDataDocPredicate = null; public static AlertDialog make(final Context context, - final List items, + final List items, DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel, - RunnableArgss, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) { + RunnableArgs onDismiss) { return new DialogUltimeConsegneFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert; } public DialogUltimeConsegneFiltroAvanzato(final Context context, - final List items, + final List items, DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel, - RunnableArgss, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) { + RunnableArgs onDismiss) { mContext = context; mItems = items; mBaseViewModel = baseViewModel; @@ -89,7 +91,7 @@ public class DialogUltimeConsegneFiltroAvanzato { mAlert.setOnDismissListener(dialogInterface -> { - if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel); + if(mOnDismiss != null) mOnDismiss.run(viewModel); }); refreshList(); @@ -144,26 +146,13 @@ public class DialogUltimeConsegneFiltroAvanzato { refreshList(); }); - - BindableString.resetListeners(viewModel.dataDoc); - BindableString.registerListener(viewModel.dataDoc, value -> { - if (UtilityString.isNullOrEmpty(value)) currentDataDocPredicate = null; - else { - currentDataDocPredicate = o -> o.getDataDocD().equals(viewModel.dataDocDate); - } - - refreshList(); - - arrayAdapterRagSoc.clear(); - arrayAdapterRagSoc.addAll(getAvailableRagSocs(true)); - }); } private List getAvailableRagSocs(boolean skipRecalc) { if(currentDataDocPredicate == null){ mFilteredItems = mItems; } else if(!skipRecalc){ - Stream tmpStream = Stream.of(mItems) + Stream tmpStream = Stream.of(mItems) .filter(x -> (currentDataDocPredicate == null || (currentDataDocPredicate.test(x))) ); @@ -171,7 +160,7 @@ public class DialogUltimeConsegneFiltroAvanzato { mFilteredItems = tmpStream.toList(); } - return Stream.of(mFilteredItems).map(DocumentoResoDTO::getRagSoc).distinct().withoutNulls().toList(); + return Stream.of(mFilteredItems).map(x -> x.getCodAnag() + " - " + x.getRagSoc()).distinct().withoutNulls().toList(); } @@ -180,7 +169,7 @@ public class DialogUltimeConsegneFiltroAvanzato { if(currentRagSocPredicate == null && currentDataDocPredicate == null){ mFilteredItems = mItems; } else { - Stream tmpStream = Stream.of(mItems) + Stream tmpStream = Stream.of(mItems) .filter(x -> (currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) && (currentDataDocPredicate== null || (currentDataDocPredicate.test(x))) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java index 96575640..85fdde8b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; @@ -22,7 +23,27 @@ import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; public class UltimeConsegneClienteRESTConsumer { - public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, int limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) { + public static void getAvailableCodAnagClienti(RunnableArgs> onComplete, RunnableArgs onFailed) { + String sql = "SELECT DISTINCT gtb_anag.cod_anag, gtb_anag.rag_soc " + + "FROM gtb_anag " + + "INNER JOIN vtb_clie ON vtb_clie.cod_anag = gtb_anag.cod_anag " + + "WHERE flag_stato = 'A'"; + + 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); + } + }); + } + + public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, Integer limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) { String sql = "SELECT consegne.*, " + " rag_soc," + diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java index c0afc93a..3a36e6db 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java @@ -7,12 +7,14 @@ import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; +import com.annimon.stream.Optional; import com.annimon.stream.Stream; import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; @@ -31,52 +33,36 @@ public class UltimeConsegneClienteViewModel { private List mItems; private List mRenderedItems = new ArrayList<>(); + private List mAvailableGtbAnags = null; + private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel; public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) { this.mContext = context; this.mBinding = binding; - this.initList(); - this.mBinding.mainFab.hide(); this.mBinding.mainFab.setOnClickListener(v -> { dispatchConsegne(); }); + + openFilterDialog(); } public void openFilterDialog() { - DialogUltimeConsegneFiltroAvanzato.make(mContext, mItems, mAppliedFilterViewModel, (filteredOrderList, filter) -> { - mAppliedFilterViewModel = filter; - - if(filteredOrderList != null){ - - refreshItems(filteredOrderList); - } - - }).show(); - } - - private void initList() { - Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); - UltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti( - SettingsManager.i().userSession.depo.getCodMdep(), - null, - null, - 100, - 365, - consegne -> { - this.mItems = consegne; + UltimeConsegneClienteRESTConsumer.getAvailableCodAnagClienti(gtbAnags -> { + mAvailableGtbAnags = gtbAnags; + progressDialog.dismiss(); - this.initDataAdapter(consegne); - refreshItems(consegne); - - progressDialog.dismiss(); - }, ex -> { - UtilityExceptions.defaultException(mContext, ex, progressDialog); - }); + DialogUltimeConsegneFiltroAvanzato.make(mContext, gtbAnags, mAppliedFilterViewModel, (filter) -> { + mAppliedFilterViewModel = filter; + refreshItems(); + }).show(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); } private void initDataAdapter(ArrayList dataset) { @@ -90,12 +76,43 @@ public class UltimeConsegneClienteViewModel { } - private void refreshItems(List items){ - mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE); + private void refreshItems(){ - mRenderedItems.clear(); - if(items != null) mRenderedItems.addAll(items); - mAdapter.updateItems(mRenderedItems); + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null; + String currentCodAnagFilter = null; + + Optional singleGtbAnag = Stream.of(mAvailableGtbAnags) + .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter)) + .findSingle(); + + if(singleGtbAnag.isPresent()) { + currentCodAnagFilter = singleGtbAnag.get().getCodAnag(); + } + + UltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti( + SettingsManager.i().userSession.depo.getCodMdep(), + currentCodAnagFilter, + null, + null, + 365, + consegne -> { + + this.mItems = consegne; + + this.initDataAdapter(consegne); + mBinding.emptyView.setVisibility((this.mItems != null && this.mItems.size() > 0) ? View.GONE : View.VISIBLE); + + mRenderedItems.clear(); + if(this.mItems != null) mRenderedItems.addAll(this.mItems); + mAdapter.updateItems(mRenderedItems); + + progressDialog.dismiss(); + + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); } private void onSingleSelectionChanged(DocumentoResoDTO dto) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java index edcb109c..7c608c24 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java @@ -14,6 +14,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.annimon.stream.Optional; import com.annimon.stream.Stream; import java.util.ArrayList; @@ -21,6 +22,7 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; @@ -30,6 +32,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBinding; import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreListAdapter; +import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel; import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato; import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer; import it.integry.integrywmsnative.ui.ElevatedToolbar; @@ -42,14 +45,7 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr private Runnable mOnPreDestroy; private ElevatedToolbar mToolbar; - private FragmentUltimiArriviFornitoreBinding mBinding; - - private List mItems; - private List mRenderedItems = new ArrayList<>(); - - private UltimiArriviFornitoreListAdapter mAdapter; - - private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel; + private UltimiArriviFornitoreViewModel mViewModel; public UltimiArriviFornitoreFragment() { // Required empty public constructor @@ -68,14 +64,14 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultimi_arrivi_fornitore, container, false); + FragmentUltimiArriviFornitoreBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultimi_arrivi_fornitore, container, false); - mBinding.setViewmodel(this); + mViewModel = new UltimiArriviFornitoreViewModel(getActivity(), mBinding); + + mBinding.setViewmodel(mViewModel); mToolbar.setRecyclerView(mBinding.recyclerView); - this.initView(); - // Inflate the layout for this fragment return mBinding.getRoot(); } @@ -104,98 +100,11 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr - private void initView() { - this.initList(); - - this.mBinding.mainFab.hide(); - this.mBinding.mainFab.setOnClickListener(v -> { - dispatchConsegne(); - }); - - } - - private void initList() { - Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(getActivity()); - - UltimiArriviFornitoreRESTConsumer.getUltimeConsegneFornitori( - SettingsManager.i().userSession.depo.getCodMdep(), - null, - null, - consegne -> { - this.mItems = consegne; - - this.initDataAdapter(consegne); - refreshItems(consegne); - - progressDialog.dismiss(); - }, ex -> { - UtilityExceptions.defaultException(getActivity(), ex, progressDialog); - }); - } - - - - private void initDataAdapter(ArrayList dataset) { - mAdapter = new UltimiArriviFornitoreListAdapter(getActivity(), dataset); - mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged); - - mBinding.recyclerView.setHasFixedSize(true); - mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - mBinding.recyclerView.setAdapter(mAdapter); - mBinding.fastscroll.setRecyclerView(mBinding.recyclerView); - - } - - - private void onSingleSelectionChanged(DocumentoResoDTO dto) { - List selectedOrders = getSelectedItems(); - - if(dto.isSelected()) { - Stream.of(selectedOrders) - .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc())) - .forEach(x -> x.setSelected(false)); - } - - if(selectedOrders != null && selectedOrders.size() > 0) { - mBinding.mainFab.show(); - } - else { - mBinding.mainFab.hide(); - } - } - - private List getSelectedItems() { - return Stream.of(this.mItems) - .filter(DocumentoResoDTO::isSelected) - .toList(); - } - - - private void dispatchConsegne() { - List selectedConsegne = getSelectedItems(); - - PickingResiActivity.startActivity(getActivity(), getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1); - } - @Override public void onFilterClick() { - DialogUltimiArriviFornitoreFiltroAvanzato.make(getActivity(), mItems, mAppliedFilterViewModel, (filteredOrderList, filter) -> { - mAppliedFilterViewModel = filter; - - if(filteredOrderList != null){ - - refreshItems(filteredOrderList); - } - - }).show(); + mViewModel.openFilterDialog(); } - private void refreshItems(List items){ - mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE); - mRenderedItems.clear(); - if(items != null) mRenderedItems.addAll(items); - mAdapter.updateItems(mRenderedItems); - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java new file mode 100644 index 00000000..edd936b9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java @@ -0,0 +1,154 @@ +package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core; + +import android.app.Dialog; +import android.content.Context; +import android.view.View; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.annimon.stream.Optional; +import com.annimon.stream.Stream; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.model.GtbAnag; +import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBinding; +import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; +import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato; +import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer; + +public class UltimiArriviFornitoreViewModel { + + private Context mContext; + private FragmentUltimiArriviFornitoreBinding mBinding; + + private List mItems; + private List mRenderedItems = new ArrayList<>(); + + private List mAvailableGtbAnags = null; + + private UltimiArriviFornitoreListAdapter mAdapter; + + private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel; + + public UltimiArriviFornitoreViewModel(Context context, FragmentUltimiArriviFornitoreBinding binding) { + this.mContext = context; + this.mBinding = binding; + + this.mBinding.mainFab.hide(); + this.mBinding.mainFab.setOnClickListener(v -> { + dispatchConsegne(); + }); + + openFilterDialog(); + } + + + + private void initDataAdapter(ArrayList dataset) { + mAdapter = new UltimiArriviFornitoreListAdapter(mContext, dataset); + mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged); + + mBinding.recyclerView.setHasFixedSize(true); + mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(mContext)); + mBinding.recyclerView.setAdapter(mAdapter); + mBinding.fastscroll.setRecyclerView(mBinding.recyclerView); + + } + + + public void openFilterDialog() { + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + UltimiArriviFornitoreRESTConsumer.getAvailableCodAnagFornitori(gtbAnags -> { + mAvailableGtbAnags = gtbAnags; + progressDialog.dismiss(); + + DialogUltimiArriviFornitoreFiltroAvanzato.make(mContext, mAvailableGtbAnags, mAppliedFilterViewModel, (filter) -> { + mAppliedFilterViewModel = filter; + refreshItems(); + }).show(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + } + + + private void dispatchConsegne() { + List selectedConsegne = getSelectedItems(); + + PickingResiActivity.startActivity(mContext, mContext.getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1); + } + + private List getSelectedItems() { + return Stream.of(this.mItems) + .filter(DocumentoResoDTO::isSelected) + .toList(); + } + + + private void refreshItems(){ + + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null; + String currentCodAnagFilter = null; + + Optional singleGtbAnag = Stream.of(mAvailableGtbAnags) + .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter)) + .findSingle(); + + if(singleGtbAnag.isPresent()) { + currentCodAnagFilter = singleGtbAnag.get().getCodAnag(); + } + + + UltimiArriviFornitoreRESTConsumer.getUltimeConsegneFornitori( + SettingsManager.i().userSession.depo.getCodMdep(), + currentCodAnagFilter, + null, + null, + 365, + consegne -> { + this.mItems = consegne; + + this.initDataAdapter(consegne); + + mBinding.emptyView.setVisibility((this.mItems != null && this.mItems.size() > 0) ? View.GONE : View.VISIBLE); + + mRenderedItems.clear(); + if(this.mItems != null) mRenderedItems.addAll(this.mItems); + mAdapter.updateItems(mRenderedItems); + + progressDialog.dismiss(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + + + } + + + private void onSingleSelectionChanged(DocumentoResoDTO dto) { + List selectedOrders = getSelectedItems(); + + if(dto.isSelected()) { + Stream.of(selectedOrders) + .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc())) + .forEach(x -> x.setSelected(false)); + } + + if(selectedOrders != null && selectedOrders.size() > 0) { + mBinding.mainFab.show(); + } + else { + mBinding.mainFab.hide(); + } + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/dialog/DialogUltimiArriviFornitoreFiltroAvanzato.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/dialog/DialogUltimiArriviFornitoreFiltroAvanzato.java index d0f4a6b5..55756808 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/dialog/DialogUltimiArriviFornitoreFiltroAvanzato.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/dialog/DialogUltimiArriviFornitoreFiltroAvanzato.java @@ -21,7 +21,9 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.di.BindableString; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -34,29 +36,29 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato { private AlertDialog mAlert; private Context mContext; private DialogUltimiArriviFiltroAvanzatoViewModel mBaseViewModel; - private RunnableArgss, DialogUltimiArriviFiltroAvanzatoViewModel> mOnDismiss; + private RunnableArgs mOnDismiss; private ArrayAdapter arrayAdapterRagSoc; - private List mItems; - private List mFilteredItems; + private List mItems; + private List mFilteredItems; - private Predicate currentRagSocPredicate = null; - private Predicate currentDataDocPredicate = null; + private Predicate currentRagSocPredicate = null; + private Predicate currentDataDocPredicate = null; public static AlertDialog make(final Context context, - final List items, + final List items, DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel, - RunnableArgss, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) { + RunnableArgs onDismiss) { return new DialogUltimiArriviFornitoreFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert; } public DialogUltimiArriviFornitoreFiltroAvanzato(final Context context, - final List items, + final List items, DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel, - RunnableArgss, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) { + RunnableArgs onDismiss) { mContext = context; mItems = items; mBaseViewModel = baseViewModel; @@ -90,7 +92,7 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato { mAlert.setOnDismissListener(dialogInterface -> { - if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel); + if(mOnDismiss != null) mOnDismiss.run(viewModel); }); refreshList(); @@ -145,26 +147,13 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato { refreshList(); }); - - BindableString.resetListeners(viewModel.dataDoc); - BindableString.registerListener(viewModel.dataDoc, value -> { - if (UtilityString.isNullOrEmpty(value)) currentDataDocPredicate = null; - else { - currentDataDocPredicate = o -> o.getDataDocD().equals(viewModel.dataDocDate); - } - - refreshList(); - - arrayAdapterRagSoc.clear(); - arrayAdapterRagSoc.addAll(getAvailableRagSocs(true)); - }); } private List getAvailableRagSocs(boolean skipRecalc) { if(currentDataDocPredicate == null){ mFilteredItems = mItems; } else if(!skipRecalc){ - Stream tmpStream = Stream.of(mItems) + Stream tmpStream = Stream.of(mItems) .filter(x -> (currentDataDocPredicate == null || (currentDataDocPredicate.test(x))) ); @@ -172,7 +161,7 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato { mFilteredItems = tmpStream.toList(); } - return Stream.of(mFilteredItems).map(DocumentoResoDTO::getRagSoc).distinct().withoutNulls().toList(); + return Stream.of(mFilteredItems).map(x -> x.getCodAnag() + " - " + x.getRagSoc()).distinct().withoutNulls().toList(); } @@ -181,7 +170,7 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato { if(currentRagSocPredicate == null && currentDataDocPredicate == null){ mFilteredItems = mItems; } else { - Stream tmpStream = Stream.of(mItems) + Stream tmpStream = Stream.of(mItems) .filter(x -> (currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) && (currentDataDocPredicate== null || (currentDataDocPredicate.test(x))) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java index 0abbf8be..5141ca40 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java @@ -4,7 +4,9 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.List; +import it.integry.integrywmsnative.core.model.GtbAnag; import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.expansion.RunnableArgs; @@ -13,19 +15,37 @@ import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; public class UltimiArriviFornitoreRESTConsumer { - public static void getUltimeConsegneFornitori(String codMdep, String codAnag, String codMart, RunnableArgs> onComplete, RunnableArgs onFailed) { + public static void getAvailableCodAnagFornitori(RunnableArgs> onComplete, RunnableArgs onFailed) { + String sql = "SELECT DISTINCT gtb_anag.cod_anag, gtb_anag.rag_soc " + + "FROM gtb_anag " + + "INNER JOIN atb_forn ON atb_forn.cod_anag = gtb_anag.cod_anag " + + "WHERE flag_stato = 'A'"; + + 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); + } + }); + } + + public static void getUltimeConsegneFornitori(String codMdep, String codAnag, String codMart, Integer limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) { - int numberOfConsegnePerForn = 100; - int numberOfDayToAnalyze = 365; String sql = "SELECT consegne.*, " + " rag_soc " + "FROM WMS_GetUltimeConsegneFornitori(" + - UtilityDB.valueToString(numberOfConsegnePerForn) + ", " + + UtilityDB.valueToString(limitConsegnePerCli) + ", " + UtilityDB.valueToString(codAnag) + ", " + UtilityDB.valueToString(codMart) + ", " + UtilityDB.valueToString(codMdep) + ", " + - UtilityDB.valueToString(numberOfDayToAnalyze) + ") consegne " + + UtilityDB.valueToString(limitDays) + ") consegne " + "LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " + "ORDER BY rag_soc, " + " counter_consegna "; diff --git a/app/src/main/res/layout/fragment_ultimi_arrivi_fornitore.xml b/app/src/main/res/layout/fragment_ultimi_arrivi_fornitore.xml index e99b9c24..a5f6d06a 100644 --- a/app/src/main/res/layout/fragment_ultimi_arrivi_fornitore.xml +++ b/app/src/main/res/layout/fragment_ultimi_arrivi_fornitore.xml @@ -6,7 +6,7 @@ + type="it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel" /> From 1ad9dc88397238beb5687c92682c6759221ee29c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 9 Jan 2020 15:39:33 +0100 Subject: [PATCH 2/9] =?UTF-8?q?Disabilitato=20pulsante=20"Non=20visualizza?= =?UTF-8?q?re=20pi=C3=B9=20aggiornamenti"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../it/integry/integrywmsnative/core/update/UpdatesManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bca2182f..c3d4f623 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 @@ -44,8 +44,8 @@ public class UpdatesManager { .setDisplay(Display.DIALOG) .setUpdateFrom(UpdateFrom.JSON) .setUpdateJSON(currentVersionUrl) + .setButtonDoNotShowAgain(null) .setButtonUpdateClickListener((dialog, which) -> { - installAPK(context, currentDownloadUrl); }); appUpdater.start(); From 1a13e3e2da2e4d2da630bdc79285e888dc47b815 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 9 Jan 2020 18:57:58 +0100 Subject: [PATCH 3/9] -> v1.11.4 (123) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f9c901ae..a9d66d66 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 122 - def appVersionName = '1.11.3' + def appVersionCode = 123 + def appVersionName = '1.11.4' signingConfigs { release { From 0d4762626f6492a9ab0d19eac990bf292a8b8111 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 10 Jan 2020 11:15:16 +0100 Subject: [PATCH 4/9] Fix su scrittura partita magazzino --- .../integrywmsnative/gest/vendita/dto/PickingObjectDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java index ab5ec1a3..ea4c0a72 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java @@ -432,7 +432,7 @@ public class PickingObjectDTO { } - if(mtbPartitaMag.getPartitaMag() != null && mtbPartitaMag.getDataScadD() != null) { + if(!UtilityString.isNullOrEmpty(mtbPartitaMag.getPartitaMag())) { pickData.setMtbPartitaMag(mtbPartitaMag); } From 9e96be45062f837cab81a7c4e2841ae830b347bc Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 10 Jan 2020 11:15:47 +0100 Subject: [PATCH 5/9] -> v1.11.5 (124) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a9d66d66..0a3d0777 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 123 - def appVersionName = '1.11.4' + def appVersionCode = 124 + def appVersionName = '1.11.5' signingConfigs { release { From 1f83e9b492bbea84c88070b5d6821fbc46323b60 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 13 Jan 2020 10:38:52 +0100 Subject: [PATCH 6/9] Fix su posizionamento pulsanti in DialogChooseArts --- .../DialogChooseArtsFromListaArts.java | 8 +-- ...log_choose_arts_from_lista_arts_layout.xml | 61 ++++++++++--------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java index 2c06d63e..f7a97c76 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java @@ -98,6 +98,10 @@ public class DialogChooseArtsFromListaArts { mDialog.setCanceledOnTouchOutside(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + mDialog.setOnCancelListener(dialog -> { + if(this.mOnAbort != null) this.mOnAbort.run(); + }); + UtilityDialog.setTo90PercentSize(context, mDialog); @@ -137,8 +141,6 @@ public class DialogChooseArtsFromListaArts { } private void setupBarcode() { - - final boolean prevBarcodeStatus = BarcodeManager.isEnabled(); BarcodeManager.enable(); int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() @@ -147,8 +149,6 @@ public class DialogChooseArtsFromListaArts { mDialog.setOnDismissListener(dialog -> { BarcodeManager.removeCallback(barcodeIstanceID); -// if(prevBarcodeStatus) BarcodeManager.enable(); -// else BarcodeManager.disable(); }); } diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml index beb10b38..568167a9 100644 --- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml +++ b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml @@ -20,37 +20,29 @@ app:cardCornerRadius="12dp" app:cardElevation="0dp"> - - - - - - - - - - - - - - - - - - + android:paddingEnd="8dp" + app:layout_constraintBottom_toTopOf="@+id/buttons" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHeight_default="wrap" + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintStart_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" > + android:gravity="center_horizontal" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent"/> @@ -73,20 +68,25 @@ app:strokeColor="@color/red_400" android:layout_gravity="center_horizontal" android:visibility="@{filterStatus.get() ? View.VISIBLE : View.GONE}" - android:text="@string/remove_filter_button"/> + android:text="@string/remove_filter_button" + app:layout_constraintTop_toBottomOf="@id/title_text" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent"/> + android:layout_marginTop="8dp" + app:layout_constraintTop_toBottomOf="@id/button_remove_filter" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent"> - - + + + android:paddingBottom="8dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintStart_toStartOf="parent"> - + From 06951e303d7726684323a1ea2e386317c4bc477b Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 13 Jan 2020 10:39:46 +0100 Subject: [PATCH 7/9] -> v1.11.6 (125) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0a3d0777..c1d857c2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 124 - def appVersionName = '1.11.5' + def appVersionCode = 125 + def appVersionName = '1.11.6' signingConfigs { release { From 433f04ba56971e0fae2ae0cf9de8359fc98f295e Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 17 Jan 2020 10:59:58 +0100 Subject: [PATCH 8/9] Piccoli fix su ITF 14 in emulazione tastiera --- app/build.gradle | 4 ++-- .../view/dialogs/scan_art/DialogScanArt.java | 6 ++++-- .../KeyboardEmulatorBarcodeReader.java | 9 +++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c1d857c2..08e1471f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -95,9 +95,9 @@ dependencies { }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.orhanobut:logger:2.2.0' - implementation 'com.google.firebase:firebase-core:17.2.1' + implementation 'com.google.firebase:firebase-core:17.2.2' implementation 'com.google.firebase:firebase-crash:16.2.1' - implementation 'com.google.firebase:firebase-perf:19.0.3' + implementation 'com.google.firebase:firebase-perf:19.0.5' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' 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/DialogScanArt.java index dbf24689..87de2689 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/DialogScanArt.java @@ -11,6 +11,7 @@ import android.view.LayoutInflater; import androidx.databinding.DataBindingUtil; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseDialog; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.model.Ean128Model; @@ -32,7 +33,7 @@ import it.integry.barcode_base_android_library.model.BarcodeScanDTO; public class DialogScanArt { private Context mContext; - private Dialog mDialog; + private BaseDialog mDialog; private RunnableArgsss mOnItemChoosed; @@ -48,7 +49,7 @@ public class DialogScanArt { LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); DialogScanArtBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_art, null, false); - mDialog = new Dialog(context); + mDialog = new BaseDialog(context); mDialog.setContentView(bindings.getRoot()); @@ -73,6 +74,7 @@ public class DialogScanArt { .setOnScanSuccessfull(onScanSuccessfull) .setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false))); + mDialog.setBarcodeListener(true); mDialog.setOnDismissListener(dialog -> { BarcodeManager.removeCallback(barcodeIstanceID); BarcodeManager.enable(); diff --git a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java index 58db8448..d1a69ab6 100644 --- a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java +++ b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java @@ -110,6 +110,15 @@ public class KeyboardEmulatorBarcodeReader implements BarcodeReaderInterface { } catch (WrongFormatException e) { return BarcodeType.CODE128; } + } else if (barcode.length() == 14) { + try { + int checksum = getEanChecksum(barcode); + if (checksum == Integer.parseInt(barcode.substring(13))){ + return BarcodeType.INTERLEAVED_2OF5; + } + } catch (WrongFormatException e) { + return BarcodeType.CODE128; + } } return BarcodeType.CODE128; } From f460b0bd7f71842727c3ddcde4cc6d0549077bd4 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Fri, 17 Jan 2020 11:00:40 +0100 Subject: [PATCH 9/9] -> v1.11.7 (126) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 08e1471f..50e9f2f1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 125 - def appVersionName = '1.11.6' + def appVersionCode = 126 + def appVersionName = '1.11.7' signingConfigs { release {