[FEAT] Implementati nuovi filtri per Agente e per ID Viaggio nel filtro di Spedizione

This commit is contained in:
Giuseppe Scorrano 2019-07-10 13:03:06 +02:00
parent 66543a06b5
commit 02164818fa
14 changed files with 498 additions and 347 deletions

Binary file not shown.

View File

@ -6,7 +6,7 @@
<option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic__base,dynamic_vgalimenti" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic__base,dynamic_ime" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="true" />

View File

@ -4,4 +4,8 @@ public interface IFiltroOrdiniVendita {
boolean shoudShowCodMdepFilter();
boolean shoudShowIdViaggioFilter();
boolean shoudShowAgenteFilter();
}

View File

@ -188,9 +188,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
boolean allMatch = Stream.of(selectedOrders).allMatch(x -> dto.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()));
if(!allMatch) {
if(dto.isSelected()) {
Stream.of(selectedOrders)
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
.forEach(x -> x.setSelected(false));

View File

@ -6,8 +6,11 @@ import android.content.Context;
import androidx.databinding.DataBindingUtil;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.MultiAutoCompleteTextView;
@ -42,18 +45,22 @@ public class DialogVenditaFiltroAvanzato {
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
private ArrayAdapter<String> arrayAdapterCodMdep;
private ArrayAdapter<String> arrayAdapterIdViaggio;
private ArrayAdapter<String> arrayAdapterNumOrds;
private ArrayAdapter<String> arrayAdapterCliente;
private ArrayAdapter<String> arrayAdapterTermCons;
private ArrayAdapter<String> arrayAdapterVettore;
private ArrayAdapter<String> arrayAdapterAgente;
private ArrayAdapter<String> arrayAdapterAutomezzo;
private Predicate<OrdineVenditaInevasoDTO> currentDepositoPredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentIdViaggioPredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentAgentePredicate = null;
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
private boolean firstInit = true;
@ -78,30 +85,29 @@ public class DialogVenditaFiltroAvanzato {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogVenditaFiltroAvanzatoBinding contentView = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
DialogVenditaFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
.setView(contentView.getRoot())
.setPositiveButton(context.getText(R.string.confirm), null)
.setNegativeButton(context.getText(R.string.abort), null)
.setNeutralButton(context.getText(R.string.reset), null);
.setView(binding.getRoot());
contentView.setViewmodel(viewModel);
// initViewModel(viewModel, contentView);
initViewModelNew(viewModel, contentView);
initView(contentView, viewModel);
binding.setViewmodel(viewModel);
initViewModelNew(viewModel, binding);
initView(binding, viewModel);
currentAlert = alertDialog.create();
currentAlert.setCanceledOnTouchOutside(false);
currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
currentAlert.setOnShowListener(dialogInterface -> {
Button button = ((AlertDialog) dialogInterface).getButton(AlertDialog.BUTTON_NEUTRAL);
button.setOnClickListener(view -> {
resetAll(viewModel);
});
binding.positiveBtn.setOnClickListener(view -> {
currentAlert.dismiss();
});
binding.neutralBtn.setOnClickListener(view -> {
resetAll(viewModel);
});
@ -114,12 +120,14 @@ public class DialogVenditaFiltroAvanzato {
private void resetAll(DialogVenditaFiltroAvanzatoViewModel viewModel) {
viewModel.deposito.set(null);
viewModel.idViaggio.set(null);
viewModel.numOrds.set(null);
viewModel.cliente.set(null);
viewModel.dataConsegna.set(null);
viewModel.terminiConsegna.set(null);
viewModel.vettore.set(null);
viewModel.automezzo.set(null);
viewModel.agente.set(null);
}
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
@ -152,6 +160,16 @@ public class DialogVenditaFiltroAvanzato {
bindings.inputCodMdepNew.setVisibility(filtroOrdiniVendita.shoudShowCodMdepFilter() ? View.VISIBLE : View.GONE);
bindings.filledExposedDropdownCodMdep.setAdapter(arrayAdapterCodMdep);
arrayAdapterIdViaggio = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(false));
bindings.inputIdViaggio.setVisibility(filtroOrdiniVendita.shoudShowIdViaggioFilter() ? View.VISIBLE : View.GONE);
bindings.filledExposedDropdownIdViaggio.setAdapter(arrayAdapterIdViaggio);
arrayAdapterAgente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
arrayAdapterAgente.addAll(getAvailableAgente(false));
bindings.inputAgente.setVisibility(filtroOrdiniVendita.shoudShowAgenteFilter() ? View.VISIBLE : View.GONE);
bindings.filledExposedDropdownAgente.setAdapter(arrayAdapterAgente);
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
@ -175,24 +193,38 @@ public class DialogVenditaFiltroAvanzato {
viewModel.deposito.refresh();
viewModel.idViaggio.refresh();
viewModel.numOrds.refresh();
viewModel.cliente.refresh();
viewModel.terminiConsegna.refresh();
viewModel.vettore.refresh();
viewModel.automezzo.refresh();
viewModel.dataConsegna.refresh();
viewModel.agente.refresh();
}
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
BindableString.registerListener(viewModel.deposito, value -> {
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
BindableString.registerListener(viewModel.idViaggio, value -> {
if(UtilityString.isNullOrEmpty(value)) currentIdViaggioPredicate = null;
else {
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(value);
String[] idViaggiSplitted = value.split("[,\\ ]");
try{
List<Integer> idViaggiInteger = Stream.of(idViaggiSplitted)
.filter(x -> !UtilityString.isNullOrEmpty(x))
.map(Integer::parseInt).toList();
currentIdViaggioPredicate = o -> idViaggiInteger.contains(o.getIdViaggio());
} catch (NumberFormatException ex) {
currentNumOrdsPredicate = null;
}
}
refreshList();
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
@ -203,6 +235,32 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.deposito, value -> {
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
else {
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(value);
}
refreshList();
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterCliente.clear();
arrayAdapterCliente.addAll(getAvailableCliente(true));
arrayAdapterTermCons.clear();
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
arrayAdapterVettore.clear();
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.numOrds, value -> {
@ -225,6 +283,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterCliente.clear();
arrayAdapterCliente.addAll(getAvailableCliente(true));
arrayAdapterTermCons.clear();
@ -233,6 +293,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.cliente, value -> {
@ -245,6 +307,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterTermCons.clear();
@ -253,6 +317,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.terminiConsegna, value -> {
@ -265,6 +331,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
@ -273,6 +341,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.vettore, value -> {
@ -285,6 +355,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
@ -293,18 +365,22 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.registerListener(viewModel.automezzo, value -> {
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
else {
currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && o.getDescrizioneAuto().toLowerCase().contains(value);
currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && (o.getDescrizioneAuto().toLowerCase().contains(value) || o.getDescrizioneAuto().equalsIgnoreCase(value));
}
refreshList();
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
@ -313,6 +389,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
arrayAdapterVettore.clear();
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.resetListeners(viewModel.dataConsegna);
@ -326,6 +404,8 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
@ -334,138 +414,106 @@ public class DialogVenditaFiltroAvanzato {
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
arrayAdapterVettore.clear();
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
arrayAdapterAgente.clear();
arrayAdapterAgente.addAll(getAvailableAgente(true));
});
BindableString.resetListeners(viewModel.agente);
BindableString.registerListener(viewModel.agente, value -> {
if(UtilityString.isNullOrEmpty(value)) currentAgentePredicate = null;
else {
currentAgentePredicate = o -> !UtilityString.isNullOrEmpty(o.getNomeAgente()) && (o.getNomeAgente().toLowerCase().contains(value) || o.getNomeAgente().equalsIgnoreCase(value));
}
refreshList();
arrayAdapterCodMdep.clear();
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
arrayAdapterIdViaggio.clear();
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
arrayAdapterCliente.clear();
arrayAdapterCliente.addAll(getAvailableCliente(true));
arrayAdapterTermCons.clear();
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
arrayAdapterVettore.clear();
arrayAdapterVettore.addAll(getAvailableVettori(true));
arrayAdapterAutomezzo.clear();
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
});
}
private void initViewModel(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
firstInit = true;
BindableString.resetListeners(viewModel.numOrds);
BindableString.registerListener(viewModel.numOrds, value -> {
if(UtilityString.isNullOrEmpty(value)) currentNumOrdsPredicate = null;
else {
String[] numOrdsSplitted = value.split("[,\\ ]");
try{
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
.filter(x -> !UtilityString.isNullOrEmpty(x))
.map(Integer::parseInt).toList();
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
// mBindings.inputNumOrds.setErrorEnabled(false);
// mBindings.inputNumOrds.setError("");
} catch (NumberFormatException ex) {
currentNumOrdsPredicate = null;
// mBindings.inputNumOrds.setErrorEnabled(true);
// mBindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
}
}
if(!firstInit) refreshList();
});
viewModel.numOrds.refresh();
BindableString.resetListeners(viewModel.cliente);
BindableString.registerListener(viewModel.cliente, value -> {
if(UtilityString.isNullOrEmpty(value)) currentClientePredicate = null;
else {
currentClientePredicate = o -> o.getRagSocOrd().toLowerCase().contains(value);
}
if(!firstInit) refreshList();
});
viewModel.cliente.refresh();
BindableString.resetListeners(viewModel.deposito);
BindableString.registerListener(viewModel.deposito, value -> {
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
else {
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().contains(value);
}
if(!firstInit) refreshList();
});
viewModel.deposito.refresh();
BindableString.resetListeners(viewModel.dataConsegna);
BindableString.registerListener(viewModel.dataConsegna, value -> {
if(UtilityString.isNullOrEmpty(value)) currentDataConsPredicate = null;
else {
currentDataConsPredicate = o -> o.getDataConsD().equals(viewModel.dataConsegnaDate);
}
if(!firstInit) refreshList();
});
viewModel.dataConsegna.refresh();
BindableString.resetListeners(viewModel.terminiConsegna);
BindableString.registerListener(viewModel.terminiConsegna, value -> {
if(UtilityString.isNullOrEmpty(value)) currentTermConsPredicate = null;
else {
currentTermConsPredicate = o -> o.getTermCons() != null && o.getTermCons().equalsIgnoreCase(value);
}
if(!firstInit) refreshList();
});
viewModel.terminiConsegna.refresh();
BindableString.resetListeners(viewModel.vettore);
BindableString.registerListener(viewModel.vettore, value -> {
if(UtilityString.isNullOrEmpty(value)) currentVettorePredicate = null;
else {
currentVettorePredicate = o -> (o.getCodVvet() + " - " + o.getDescrizioneVettore()).equalsIgnoreCase(value);
}
if(!firstInit) refreshList();
});
viewModel.vettore.refresh();
BindableString.resetListeners(viewModel.automezzo);
BindableString.registerListener(viewModel.automezzo, value -> {
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
else {
currentAutomezzoPredicate = o -> o.getDescrizioneAuto().toLowerCase().contains(value);
}
if(!firstInit) refreshList();
});
viewModel.automezzo.refresh();
if(firstInit) refreshList();
firstInit = false;
}
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
private List<String> getAvailableIdViaggio(boolean skipRecalc) {
if(currentAgentePredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null && currentDepositoPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
}
return Stream
.of(currentFilteredOrderList)
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
.withoutNulls()
.distinct()
.sortBy(x -> x)
.toList();
}
private List<String> getAvailableAgente(boolean skipRecalc) {
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().toList();
}
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -475,17 +523,19 @@ public class DialogVenditaFiltroAvanzato {
}
private List<String> getAvailableCliente(boolean skipRecalc) {
if(currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -495,17 +545,19 @@ public class DialogVenditaFiltroAvanzato {
}
private List<String> getAvailableNumOrds(boolean skipRecalc) {
if(currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -515,17 +567,19 @@ public class DialogVenditaFiltroAvanzato {
}
private List<String> getAvailableTermCons(boolean skipRecalc) {
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -535,17 +589,19 @@ public class DialogVenditaFiltroAvanzato {
}
private List<String> getAvailableVettori(boolean skipRecalc) {
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate .test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate .test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -555,17 +611,19 @@ public class DialogVenditaFiltroAvanzato {
}
private List<String> getAvailableAutomezzi(boolean skipRecalc) {
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
currentFilteredOrderList = currentOrderList;
} else if(!skipRecalc){
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
@ -576,18 +634,20 @@ public class DialogVenditaFiltroAvanzato {
private void refreshList() {
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
currentFilteredOrderList = currentOrderList;
} else {
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();

View File

@ -7,10 +7,12 @@ import it.integry.integrywmsnative.core.di.BindableString;
public class DialogVenditaFiltroAvanzatoViewModel {
public BindableString deposito = new BindableString();
public BindableString idViaggio = new BindableString();
public BindableString numOrds = new BindableString();
public BindableString cliente = new BindableString();
public BindableString dataConsegna = new BindableString();
public BindableString terminiConsegna = new BindableString();
public BindableString agente = new BindableString();
public BindableString vettore = new BindableString();
public BindableString automezzo = new BindableString();

View File

@ -16,6 +16,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
private String data;
private Integer numero;
private Integer idViaggio;
private String gestione;
private String listino;
private String termCons;
@ -48,6 +49,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
private String ragSocOrdV;
private int colliRiservati;
private String existCollo;
private String nomeAgente;
public BindableBoolean selected;
@ -63,6 +65,11 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
} else {
numero = in.readInt();
}
if (in.readByte() == 0) {
idViaggio = null;
} else {
idViaggio = in.readInt();
}
gestione = in.readString();
listino = in.readString();
termCons = in.readString();
@ -99,6 +106,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
ragSocOrdV = in.readString();
colliRiservati = in.readInt();
existCollo = in.readString();
nomeAgente = in.readString();
selected = new BindableBoolean(in.readByte() == 0x01);
}
@ -112,6 +120,12 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
dest.writeByte((byte) 1);
dest.writeInt(numero);
}
if (idViaggio == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(idViaggio);
}
dest.writeString(gestione);
dest.writeString(listino);
dest.writeString(termCons);
@ -150,6 +164,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
dest.writeString(ragSocOrdV);
dest.writeInt(colliRiservati);
dest.writeString(existCollo);
dest.writeString(nomeAgente);
dest.writeByte(selected.get() ? (byte) 1 : (byte) 0);
}
@ -199,6 +214,15 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
return this;
}
public Integer getIdViaggio() {
return idViaggio;
}
public OrdineVenditaInevasoDTO setIdViaggio(Integer idViaggio) {
this.idViaggio = idViaggio;
return this;
}
public String getGestione() {
return gestione;
}
@ -511,6 +535,15 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
return this;
}
public String getNomeAgente() {
return nomeAgente;
}
public OrdineVenditaInevasoDTO setNomeAgente(String nomeAgente) {
this.nomeAgente = nomeAgente;
return this;
}
public boolean isSelected() {
return selected.get();
}

View File

@ -17,110 +17,163 @@
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="16dp">
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/dialog_vendita_filtro_avanzato"
android:gravity="center_horizontal"
android:layout_marginBottom="12dp"/>
android:orientation="vertical"
android:padding="16dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cod_mdep_new"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/deposit">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_cod_mdep"
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.deposito}" />
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_cod_mdep"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/deposit"-->
<!--android:focusable="false"-->
<!--app:binding="@{viewmodel.deposito}"/>-->
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/dialog_vendita_filtro_avanzato"
android:gravity="center_horizontal"
android:layout_marginBottom="12dp"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_num_ords"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/num_ords">
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_num_ords"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cod_mdep_new"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number|text"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.numOrds}"/>
android:hint="@string/deposit">
</com.google.android.material.textfield.TextInputLayout>
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_cod_mdep"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.deposito}" />
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_num_ords"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="number|text"-->
<!--android:hint="@string/num_ords"-->
<!--app:binding="@{viewmodel.numOrds}"/>-->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cliente"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/customer">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_cliente"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_id_viaggio"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.cliente}"/>
android:hint="@string/travel_id">
</com.google.android.material.textfield.TextInputLayout>
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_id_viaggio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.idViaggio}" />
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_cliente"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/customer"-->
<!--app:binding="@{viewmodel.cliente}"/>-->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_num_ords"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/num_ords">
<com.google.android.material.textfield.TextInputLayout
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_num_ords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number|text"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.numOrds}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cliente"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/customer">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_cliente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.cliente}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_vettore"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/carrier">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_vettore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.vettore}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_automezzo"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/vehicle">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_automezzo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.automezzo}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_agente"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/agent">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_agente"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.agente}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_data_cons"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
@ -128,7 +181,7 @@
android:hint="@string/ship_date">
<com.google.android.material.textfield.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/filled_exposed_dropdown_data_cons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -137,28 +190,17 @@
android:singleLine="true"
app:binding="@{viewmodel.dataConsegna}"/>
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_data_cons"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/ship_date"-->
<!--android:focusable="false"-->
<!--app:binding="@{viewmodel.dataConsegna}"/>-->
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_term_cons"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/terms_of_delivery">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_term_cons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -167,84 +209,62 @@
android:ellipsize="end"
app:binding="@{viewmodel.terminiConsegna}"/>
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_term_cons"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/terms_of_delivery"-->
<!--android:focusable="false"-->
<!--app:binding="@{viewmodel.terminiConsegna}"/>-->
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_vettore"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/carrier">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_vettore"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.vettore}"/>
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginTop="8dp">
</com.google.android.material.textfield.TextInputLayout>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_vettore"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/carrier"-->
<!--android:focusable="false"-->
<!--app:binding="@{viewmodel.vettore}"/>-->
<com.google.android.material.button.MaterialButton
android:id="@+id/neutral_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/buttons_guideline"
app:strokeColor="@color/colorPrimary"
android:text="@string/reset"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/positive_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/confirm"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</ScrollView>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_automezzo"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/vehicle">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_automezzo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.automezzo}"/>
</com.google.android.material.textfield.TextInputLayout>
<!--<com.google.android.material.textfield.TextInputEditText-->
<!--android:id="@+id/input_automezzo"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="textNoSuggestions"-->
<!--android:hint="@string/vehicle"-->
<!--android:focusable="false"-->
<!--app:binding="@{viewmodel.automezzo}"/>-->
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@ -176,6 +176,8 @@
<string name="terms_of_delivery">Termini di consegna</string>
<string name="vehicle">Automezzo</string>
<string name="deposit">Deposito</string>
<string name="travel_id">ID Viaggio</string>
<string name="agent">Agente</string>
<string name="carrier">Vettore</string>
<string name="no_items_found_message">Nessun articolo trovato</string>

View File

@ -181,6 +181,8 @@
<string name="terms_of_delivery">Terms of delivery</string>
<string name="vehicle">Vehicle</string>
<string name="deposit">Deposit</string>
<string name="travel_id">Travel ID</string>
<string name="agent">Agent</string>
<string name="carrier">Carrier</string>
<string name="no_items_found_message">No items found</string>

View File

@ -14,7 +14,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.android.tools.build:gradle:3.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:perf-plugin:1.2.1'

View File

@ -8,4 +8,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
public boolean shoudShowCodMdepFilter() {
return false;
}
@Override
public boolean shoudShowIdViaggioFilter() {
return false;
}
@Override
public boolean shoudShowAgenteFilter() {
return false;
}
}

View File

@ -8,4 +8,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
public boolean shoudShowCodMdepFilter() {
return false;
}
@Override
public boolean shoudShowIdViaggioFilter() {
return false;
}
@Override
public boolean shoudShowAgenteFilter() {
return false;
}
}

View File

@ -9,4 +9,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
public boolean shoudShowCodMdepFilter() {
return true;
}
@Override
public boolean shoudShowIdViaggioFilter() {
return true;
}
@Override
public boolean shoudShowAgenteFilter() {
return true;
}
}