|
|
|
|
@@ -41,6 +41,7 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
|
|
|
|
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
|
|
|
|
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
|
|
|
|
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
|
|
|
|
|
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
|
|
|
|
|
|
|
|
|
private boolean firstInit = true;
|
|
|
|
|
@@ -105,6 +106,7 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
viewModel.cliente.set(null);
|
|
|
|
|
viewModel.dataConsegna.set(null);
|
|
|
|
|
viewModel.terminiConsegna.set(null);
|
|
|
|
|
viewModel.vettore.set(null);
|
|
|
|
|
viewModel.automezzo.set(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -146,6 +148,21 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
bindings.inputVettore.setOnClickListener(view -> {
|
|
|
|
|
|
|
|
|
|
AlertDialog.Builder builderSingle = new AlertDialog.Builder(currentContext);
|
|
|
|
|
builderSingle.setTitle(R.string.carrier);
|
|
|
|
|
|
|
|
|
|
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter(currentContext, android.R.layout.select_dialog_singlechoice);
|
|
|
|
|
arrayAdapter.addAll(getAvailableVettori());
|
|
|
|
|
|
|
|
|
|
builderSingle.setAdapter(arrayAdapter, (dialogInterface, i) -> {
|
|
|
|
|
viewModel.vettore.set(arrayAdapter.getItem(i));
|
|
|
|
|
});
|
|
|
|
|
builderSingle.show();
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
bindings.inputAutomezzo.setOnClickListener(view -> {
|
|
|
|
|
|
|
|
|
|
AlertDialog.Builder builderSingle = new AlertDialog.Builder(currentContext);
|
|
|
|
|
@@ -238,13 +255,24 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
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.getCodAuto().toLowerCase().contains(value);
|
|
|
|
|
currentAutomezzoPredicate = o -> o.getDescrizioneAuto().toLowerCase().contains(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!firstInit) refreshList();
|
|
|
|
|
@@ -258,15 +286,16 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<String> getAvailableTermCons() {
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null){
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == 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))) &&
|
|
|
|
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.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)))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
currentFilteredOrderList = tmpStream.toList();
|
|
|
|
|
@@ -275,27 +304,47 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<String> getAvailableAutomezzi() {
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null){
|
|
|
|
|
private List<String> getAvailableVettori() {
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == 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)))
|
|
|
|
|
(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)))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
currentFilteredOrderList = tmpStream.toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodAuto).distinct().withoutNulls().toList();
|
|
|
|
|
return Stream.of(currentFilteredOrderList).map(x -> x.getCodVvet() + " - " + x.getDescrizioneVettore()).distinct().withoutNulls().toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<String> getAvailableAutomezzi() {
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == 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)))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
currentFilteredOrderList = tmpStream.toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getDescrizioneAuto).distinct().withoutNulls().toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void refreshList() {
|
|
|
|
|
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null){
|
|
|
|
|
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null){
|
|
|
|
|
currentFilteredOrderList = currentOrderList;
|
|
|
|
|
} else {
|
|
|
|
|
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
|
|
|
|
@@ -304,6 +353,7 @@ public class DialogVenditaFiltroAvanzato {
|
|
|
|
|
(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)))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|