Modificato filtro in Resi
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,9 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
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.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.GtbAnag;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
@@ -32,30 +34,30 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
private AlertDialog mAlert;
|
private AlertDialog mAlert;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DialogUltimeConsegneFiltroAvanzatoViewModel mBaseViewModel;
|
private DialogUltimeConsegneFiltroAvanzatoViewModel mBaseViewModel;
|
||||||
private RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> mOnDismiss;
|
private RunnableArgs<DialogUltimeConsegneFiltroAvanzatoViewModel> mOnDismiss;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private ArrayAdapter<String> arrayAdapterRagSoc;
|
private ArrayAdapter<String> arrayAdapterRagSoc;
|
||||||
|
|
||||||
private List<DocumentoResoDTO> mItems;
|
private List<GtbAnag> mItems;
|
||||||
private List<DocumentoResoDTO> mFilteredItems;
|
private List<GtbAnag> mFilteredItems;
|
||||||
|
|
||||||
private Predicate<DocumentoResoDTO> currentRagSocPredicate = null;
|
private Predicate<GtbAnag> currentRagSocPredicate = null;
|
||||||
private Predicate<DocumentoResoDTO> currentDataDocPredicate = null;
|
private Predicate<GtbAnag> currentDataDocPredicate = null;
|
||||||
|
|
||||||
public static AlertDialog make(final Context context,
|
public static AlertDialog make(final Context context,
|
||||||
final List<DocumentoResoDTO> items,
|
final List<GtbAnag> items,
|
||||||
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgs<DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogUltimeConsegneFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
return new DialogUltimeConsegneFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DialogUltimeConsegneFiltroAvanzato(final Context context,
|
public DialogUltimeConsegneFiltroAvanzato(final Context context,
|
||||||
final List<DocumentoResoDTO> items,
|
final List<GtbAnag> items,
|
||||||
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgs<DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mItems = items;
|
mItems = items;
|
||||||
mBaseViewModel = baseViewModel;
|
mBaseViewModel = baseViewModel;
|
||||||
@@ -89,7 +91,7 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
|
|
||||||
|
|
||||||
mAlert.setOnDismissListener(dialogInterface -> {
|
mAlert.setOnDismissListener(dialogInterface -> {
|
||||||
if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel);
|
if(mOnDismiss != null) mOnDismiss.run(viewModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
@@ -144,26 +146,13 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
|
|
||||||
refreshList();
|
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<String> getAvailableRagSocs(boolean skipRecalc) {
|
private List<String> getAvailableRagSocs(boolean skipRecalc) {
|
||||||
if(currentDataDocPredicate == null){
|
if(currentDataDocPredicate == null){
|
||||||
mFilteredItems = mItems;
|
mFilteredItems = mItems;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
Stream<GtbAnag> tmpStream = Stream.of(mItems)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
||||||
);
|
);
|
||||||
@@ -171,7 +160,7 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
mFilteredItems = tmpStream.toList();
|
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){
|
if(currentRagSocPredicate == null && currentDataDocPredicate == null){
|
||||||
mFilteredItems = mItems;
|
mFilteredItems = mItems;
|
||||||
} else {
|
} else {
|
||||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
Stream<GtbAnag> tmpStream = Stream.of(mItems)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
||||||
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
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.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
@@ -22,7 +23,27 @@ import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
|||||||
|
|
||||||
public class UltimeConsegneClienteRESTConsumer {
|
public class UltimeConsegneClienteRESTConsumer {
|
||||||
|
|
||||||
public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, int limitConsegnePerCli, int limitDays, RunnableArgs<ArrayList<DocumentoResoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getAvailableCodAnagClienti(RunnableArgs<List<GtbAnag>> onComplete, RunnableArgs<Exception> 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<ArrayList<GtbAnag>>() {}.getType();
|
||||||
|
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<GtbAnag> 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<ArrayList<DocumentoResoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
String sql = "SELECT consegne.*, " +
|
String sql = "SELECT consegne.*, " +
|
||||||
" rag_soc," +
|
" rag_soc," +
|
||||||
|
|||||||
@@ -7,12 +7,14 @@ import android.view.View;
|
|||||||
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.annimon.stream.Optional;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.model.GtbAnag;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
@@ -31,52 +33,36 @@ public class UltimeConsegneClienteViewModel {
|
|||||||
private List<DocumentoResoDTO> mItems;
|
private List<DocumentoResoDTO> mItems;
|
||||||
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
||||||
|
|
||||||
|
private List<GtbAnag> mAvailableGtbAnags = null;
|
||||||
|
|
||||||
private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||||
|
|
||||||
public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
|
public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mBinding = binding;
|
this.mBinding = binding;
|
||||||
|
|
||||||
this.initList();
|
|
||||||
|
|
||||||
this.mBinding.mainFab.hide();
|
this.mBinding.mainFab.hide();
|
||||||
this.mBinding.mainFab.setOnClickListener(v -> {
|
this.mBinding.mainFab.setOnClickListener(v -> {
|
||||||
dispatchConsegne();
|
dispatchConsegne();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
openFilterDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void 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);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
UltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti(
|
UltimeConsegneClienteRESTConsumer.getAvailableCodAnagClienti(gtbAnags -> {
|
||||||
SettingsManager.i().userSession.depo.getCodMdep(),
|
mAvailableGtbAnags = gtbAnags;
|
||||||
null,
|
progressDialog.dismiss();
|
||||||
null,
|
|
||||||
100,
|
|
||||||
365,
|
|
||||||
consegne -> {
|
|
||||||
this.mItems = consegne;
|
|
||||||
|
|
||||||
this.initDataAdapter(consegne);
|
DialogUltimeConsegneFiltroAvanzato.make(mContext, gtbAnags, mAppliedFilterViewModel, (filter) -> {
|
||||||
refreshItems(consegne);
|
mAppliedFilterViewModel = filter;
|
||||||
|
refreshItems();
|
||||||
progressDialog.dismiss();
|
}).show();
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDataAdapter(ArrayList<DocumentoResoDTO> dataset) {
|
private void initDataAdapter(ArrayList<DocumentoResoDTO> dataset) {
|
||||||
@@ -90,12 +76,43 @@ public class UltimeConsegneClienteViewModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshItems(List<DocumentoResoDTO> items){
|
private void refreshItems(){
|
||||||
mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
mRenderedItems.clear();
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
if(items != null) mRenderedItems.addAll(items);
|
|
||||||
mAdapter.updateItems(mRenderedItems);
|
String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
|
||||||
|
String currentCodAnagFilter = null;
|
||||||
|
|
||||||
|
Optional<GtbAnag> 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) {
|
private void onSingleSelectionChanged(DocumentoResoDTO dto) {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.annimon.stream.Optional;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -21,6 +22,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
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.rest.model.DocumentoResoDTO;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
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.databinding.FragmentUltimiArriviFornitoreBinding;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
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.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.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
|
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
@@ -42,14 +45,7 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
|||||||
private Runnable mOnPreDestroy;
|
private Runnable mOnPreDestroy;
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private FragmentUltimiArriviFornitoreBinding mBinding;
|
private UltimiArriviFornitoreViewModel mViewModel;
|
||||||
|
|
||||||
private List<DocumentoResoDTO> mItems;
|
|
||||||
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
|
||||||
|
|
||||||
private UltimiArriviFornitoreListAdapter mAdapter;
|
|
||||||
|
|
||||||
private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
|
||||||
|
|
||||||
public UltimiArriviFornitoreFragment() {
|
public UltimiArriviFornitoreFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
@@ -68,14 +64,14 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
// Inflate the layout for this fragment
|
// 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);
|
mToolbar.setRecyclerView(mBinding.recyclerView);
|
||||||
|
|
||||||
this.initView();
|
|
||||||
|
|
||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
return mBinding.getRoot();
|
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<DocumentoResoDTO> 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<DocumentoResoDTO> 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<DocumentoResoDTO> getSelectedItems() {
|
|
||||||
return Stream.of(this.mItems)
|
|
||||||
.filter(DocumentoResoDTO::isSelected)
|
|
||||||
.toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void dispatchConsegne() {
|
|
||||||
List<DocumentoResoDTO> selectedConsegne = getSelectedItems();
|
|
||||||
|
|
||||||
PickingResiActivity.startActivity(getActivity(), getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFilterClick() {
|
public void onFilterClick() {
|
||||||
DialogUltimiArriviFornitoreFiltroAvanzato.make(getActivity(), mItems, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
|
mViewModel.openFilterDialog();
|
||||||
mAppliedFilterViewModel = filter;
|
|
||||||
|
|
||||||
if(filteredOrderList != null){
|
|
||||||
|
|
||||||
refreshItems(filteredOrderList);
|
|
||||||
}
|
|
||||||
|
|
||||||
}).show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void refreshItems(List<DocumentoResoDTO> items){
|
|
||||||
mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
mRenderedItems.clear();
|
|
||||||
if(items != null) mRenderedItems.addAll(items);
|
|
||||||
mAdapter.updateItems(mRenderedItems);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<DocumentoResoDTO> mItems;
|
||||||
|
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
||||||
|
|
||||||
|
private List<GtbAnag> 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<DocumentoResoDTO> 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<DocumentoResoDTO> selectedConsegne = getSelectedItems();
|
||||||
|
|
||||||
|
PickingResiActivity.startActivity(mContext, mContext.getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<DocumentoResoDTO> 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<GtbAnag> 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<DocumentoResoDTO> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,9 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
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.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.GtbAnag;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
@@ -34,29 +36,29 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato {
|
|||||||
private AlertDialog mAlert;
|
private AlertDialog mAlert;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DialogUltimiArriviFiltroAvanzatoViewModel mBaseViewModel;
|
private DialogUltimiArriviFiltroAvanzatoViewModel mBaseViewModel;
|
||||||
private RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> mOnDismiss;
|
private RunnableArgs<DialogUltimiArriviFiltroAvanzatoViewModel> mOnDismiss;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private ArrayAdapter<String> arrayAdapterRagSoc;
|
private ArrayAdapter<String> arrayAdapterRagSoc;
|
||||||
|
|
||||||
private List<DocumentoResoDTO> mItems;
|
private List<GtbAnag> mItems;
|
||||||
private List<DocumentoResoDTO> mFilteredItems;
|
private List<GtbAnag> mFilteredItems;
|
||||||
|
|
||||||
private Predicate<DocumentoResoDTO> currentRagSocPredicate = null;
|
private Predicate<GtbAnag> currentRagSocPredicate = null;
|
||||||
private Predicate<DocumentoResoDTO> currentDataDocPredicate = null;
|
private Predicate<GtbAnag> currentDataDocPredicate = null;
|
||||||
|
|
||||||
public static AlertDialog make(final Context context,
|
public static AlertDialog make(final Context context,
|
||||||
final List<DocumentoResoDTO> items,
|
final List<GtbAnag> items,
|
||||||
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgs<DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogUltimiArriviFornitoreFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
return new DialogUltimiArriviFornitoreFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogUltimiArriviFornitoreFiltroAvanzato(final Context context,
|
public DialogUltimiArriviFornitoreFiltroAvanzato(final Context context,
|
||||||
final List<DocumentoResoDTO> items,
|
final List<GtbAnag> items,
|
||||||
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgs<DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mItems = items;
|
mItems = items;
|
||||||
mBaseViewModel = baseViewModel;
|
mBaseViewModel = baseViewModel;
|
||||||
@@ -90,7 +92,7 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato {
|
|||||||
|
|
||||||
|
|
||||||
mAlert.setOnDismissListener(dialogInterface -> {
|
mAlert.setOnDismissListener(dialogInterface -> {
|
||||||
if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel);
|
if(mOnDismiss != null) mOnDismiss.run(viewModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
@@ -145,26 +147,13 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato {
|
|||||||
|
|
||||||
refreshList();
|
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<String> getAvailableRagSocs(boolean skipRecalc) {
|
private List<String> getAvailableRagSocs(boolean skipRecalc) {
|
||||||
if(currentDataDocPredicate == null){
|
if(currentDataDocPredicate == null){
|
||||||
mFilteredItems = mItems;
|
mFilteredItems = mItems;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
Stream<GtbAnag> tmpStream = Stream.of(mItems)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
||||||
);
|
);
|
||||||
@@ -172,7 +161,7 @@ public class DialogUltimiArriviFornitoreFiltroAvanzato {
|
|||||||
mFilteredItems = tmpStream.toList();
|
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){
|
if(currentRagSocPredicate == null && currentDataDocPredicate == null){
|
||||||
mFilteredItems = mItems;
|
mFilteredItems = mItems;
|
||||||
} else {
|
} else {
|
||||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
Stream<GtbAnag> tmpStream = Stream.of(mItems)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
||||||
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import com.google.gson.reflect.TypeToken;
|
|||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
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.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@@ -13,19 +15,37 @@ import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
|||||||
|
|
||||||
public class UltimiArriviFornitoreRESTConsumer {
|
public class UltimiArriviFornitoreRESTConsumer {
|
||||||
|
|
||||||
public static void getUltimeConsegneFornitori(String codMdep, String codAnag, String codMart, RunnableArgs<ArrayList<DocumentoResoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getAvailableCodAnagFornitori(RunnableArgs<List<GtbAnag>> onComplete, RunnableArgs<Exception> 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<ArrayList<GtbAnag>>() {}.getType();
|
||||||
|
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<GtbAnag>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<GtbAnag> 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<ArrayList<DocumentoResoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
int numberOfConsegnePerForn = 100;
|
|
||||||
int numberOfDayToAnalyze = 365;
|
|
||||||
|
|
||||||
String sql = "SELECT consegne.*, " +
|
String sql = "SELECT consegne.*, " +
|
||||||
" rag_soc " +
|
" rag_soc " +
|
||||||
"FROM WMS_GetUltimeConsegneFornitori(" +
|
"FROM WMS_GetUltimeConsegneFornitori(" +
|
||||||
UtilityDB.valueToString(numberOfConsegnePerForn) + ", " +
|
UtilityDB.valueToString(limitConsegnePerCli) + ", " +
|
||||||
UtilityDB.valueToString(codAnag) + ", " +
|
UtilityDB.valueToString(codAnag) + ", " +
|
||||||
UtilityDB.valueToString(codMart) + ", " +
|
UtilityDB.valueToString(codMart) + ", " +
|
||||||
UtilityDB.valueToString(codMdep) + ", " +
|
UtilityDB.valueToString(codMdep) + ", " +
|
||||||
UtilityDB.valueToString(numberOfDayToAnalyze) + ") consegne " +
|
UtilityDB.valueToString(limitDays) + ") consegne " +
|
||||||
"LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " +
|
"LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " +
|
||||||
"ORDER BY rag_soc, " +
|
"ORDER BY rag_soc, " +
|
||||||
" counter_consegna ";
|
" counter_consegna ";
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<data>
|
<data>
|
||||||
<variable
|
<variable
|
||||||
name="viewmodel"
|
name="viewmodel"
|
||||||
type="it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment" />
|
type="it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user