Implementati primi filtri per DialogFiltroAvanzatoVendita.
This commit is contained in:
parent
08431d3e44
commit
93cd8227c1
@ -1,9 +1,12 @@
|
||||
package it.integry.integrywmsnative.core.di;
|
||||
|
||||
import android.databinding.BaseObservable;
|
||||
import android.databinding.Observable;
|
||||
|
||||
import org.parceler.Parcel;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
@Parcel
|
||||
public class BindableString extends BaseObservable {
|
||||
String value;
|
||||
@ -22,4 +25,17 @@ public class BindableString extends BaseObservable {
|
||||
public boolean isEmpty() {
|
||||
return value == null || value.isEmpty();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static void registerListener(BindableString bindableString, RunnableArgs<String> onValueChanged) {
|
||||
bindableString.addOnPropertyChangedCallback(new OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
if(onValueChanged != null) onValueChanged.run(bindableString.get());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import android.widget.Toast;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
|
||||
public class UtilityToast {
|
||||
|
||||
public static void showToast(String message) {
|
||||
Toast.makeText(MainApplication.Context, message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
@ -30,6 +30,7 @@ import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
||||
@ -51,6 +52,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
|
||||
|
||||
private MainListVenditaAdapter mAdapter;
|
||||
|
||||
private List<OrdineVenditaInevasoDTO> mOriginalOrderList;
|
||||
private List<OrdineVenditaGroupedInevasoDTO> groupedOrdiniInevasi;
|
||||
|
||||
public MainVenditaFragment() {
|
||||
@ -112,12 +114,15 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
|
||||
@Override
|
||||
public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) {
|
||||
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||
groupOrdiniAndMakeRecycler(ordini);
|
||||
mOriginalOrderList = ordini;
|
||||
groupOrdini(ordini);
|
||||
initRecyclerView();
|
||||
progress.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFail(Exception ex) {
|
||||
mOriginalOrderList = new ArrayList<>();
|
||||
progress.dismiss();
|
||||
|
||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||
@ -128,7 +133,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
|
||||
}
|
||||
|
||||
|
||||
private void groupOrdiniAndMakeRecycler(List<OrdineVenditaInevasoDTO> ordini){
|
||||
private void groupOrdini(List<OrdineVenditaInevasoDTO> ordini){
|
||||
|
||||
groupedOrdiniInevasi = new ArrayList<>();
|
||||
|
||||
@ -204,10 +209,18 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mAdapter = new MainListVenditaAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
|
||||
mBinding.venditaMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void refreshRecyclerView() {
|
||||
mAdapter.updateItems(groupedOrdiniInevasi);
|
||||
}
|
||||
|
||||
RunnableArgs<OrdineVenditaGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
|
||||
List<OrdineVenditaGroupedInevasoDTO> selectedOrders = mHelper.getSelectedOrders(groupedOrdiniInevasi);
|
||||
|
||||
@ -321,7 +334,15 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
|
||||
@Override
|
||||
public void onFilterClick() {
|
||||
|
||||
DialogVenditaFiltroAvanzato.makeBase(getActivity()).show();
|
||||
DialogVenditaFiltroAvanzato.make(getActivity(), mOriginalOrderList, filteredOrderList -> {
|
||||
|
||||
if(filteredOrderList != null){
|
||||
|
||||
groupOrdini(filteredOrderList);
|
||||
refreshRecyclerView();
|
||||
}
|
||||
|
||||
}).show();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,12 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter<MainListVendita
|
||||
mOnGroupSelected = onGroupSelected;
|
||||
}
|
||||
|
||||
public void updateItems(List<OrdineVenditaGroupedInevasoDTO> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(updatedDataset);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
// Create new views (invoked by the layout manager)
|
||||
@Override
|
||||
|
||||
@ -1,26 +1,57 @@
|
||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.databinding.ViewDataBinding;
|
||||
import android.support.design.widget.BottomSheetBehavior;
|
||||
import android.view.LayoutInflater;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
|
||||
|
||||
public class DialogVenditaFiltroAvanzato {
|
||||
|
||||
|
||||
private static AlertDialog currentAlert;
|
||||
private static Context currentContext;
|
||||
private AlertDialog currentAlert;
|
||||
private Context currentContext;
|
||||
|
||||
private static DialogVenditaFiltroAvanzatoViewModel currentViewModel;
|
||||
private RunnableArgs<List<OrdineVenditaInevasoDTO>> currentOnFilterDone;
|
||||
|
||||
public static AlertDialog makeBase(final Context context) {
|
||||
private List<OrdineVenditaInevasoDTO> currentOrderList;
|
||||
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
|
||||
|
||||
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
|
||||
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
||||
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
||||
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
||||
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
||||
|
||||
public static AlertDialog make(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, RunnableArgs<List<OrdineVenditaInevasoDTO>> onDismiss) {
|
||||
return new DialogVenditaFiltroAvanzato(context, ordersList, onDismiss).currentAlert;
|
||||
}
|
||||
|
||||
private DialogVenditaFiltroAvanzato(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, RunnableArgs<List<OrdineVenditaInevasoDTO>> onDismiss) {
|
||||
currentContext = context;
|
||||
currentViewModel = new DialogVenditaFiltroAvanzatoViewModel();
|
||||
currentOrderList = ordersList;
|
||||
currentOnFilterDone = onDismiss;
|
||||
|
||||
DialogVenditaFiltroAvanzatoViewModel viewModel = new DialogVenditaFiltroAvanzatoViewModel();
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
|
||||
@ -29,15 +60,214 @@ public class DialogVenditaFiltroAvanzato {
|
||||
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);
|
||||
|
||||
contentView.setViewmodel(currentViewModel);
|
||||
|
||||
.setNegativeButton(context.getText(R.string.abort), null)
|
||||
.setNeutralButton(context.getText(R.string.reset), (dialogInterface, i) -> {
|
||||
resetAll(viewModel);
|
||||
});
|
||||
|
||||
contentView.setViewmodel(viewModel);
|
||||
initViewModel(viewModel);
|
||||
initView(contentView, viewModel);
|
||||
|
||||
currentAlert = alertDialog.create();
|
||||
currentAlert.setCanceledOnTouchOutside(false);
|
||||
|
||||
return currentAlert;
|
||||
|
||||
currentAlert.setOnDismissListener(dialogInterface -> {
|
||||
if(currentOnFilterDone != null) currentOnFilterDone.run(currentFilteredOrderList);
|
||||
});
|
||||
|
||||
refreshList();
|
||||
}
|
||||
|
||||
private void resetAll(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
viewModel.numOrds.set(null);
|
||||
viewModel.cliente.set(null);
|
||||
viewModel.dataConsegna.set(null);
|
||||
viewModel.terminiConsegna.set(null);
|
||||
viewModel.automezzo.set(null);
|
||||
}
|
||||
|
||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
bindings.inputDataCons.setOnClickListener(view -> {
|
||||
Calendar c = Calendar.getInstance();
|
||||
|
||||
if(viewModel.dataConsegnaDate != null) {
|
||||
c.setTime(viewModel.dataConsegnaDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(currentContext,
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
viewModel.dataConsegnaDate = new GregorianCalendar(year, month, day).getTime();
|
||||
viewModel.dataConsegna.set(UtilityDate.formatDate(viewModel.dataConsegnaDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
});
|
||||
|
||||
bindings.inputTermCons.setOnClickListener(view -> {
|
||||
|
||||
AlertDialog.Builder builderSingle = new AlertDialog.Builder(currentContext);
|
||||
builderSingle.setTitle(R.string.terms_of_delivery);
|
||||
|
||||
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter(currentContext, android.R.layout.select_dialog_singlechoice);
|
||||
arrayAdapter.addAll(getAvailableTermCons());
|
||||
|
||||
builderSingle.setAdapter(arrayAdapter, (dialogInterface, i) -> {
|
||||
viewModel.terminiConsegna.set(arrayAdapter.getItem(i));
|
||||
});
|
||||
builderSingle.show();
|
||||
|
||||
});
|
||||
|
||||
bindings.inputAutomezzo.setOnClickListener(view -> {
|
||||
|
||||
AlertDialog.Builder builderSingle = new AlertDialog.Builder(currentContext);
|
||||
builderSingle.setTitle(R.string.vehicle);
|
||||
|
||||
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter(currentContext, android.R.layout.select_dialog_singlechoice);
|
||||
arrayAdapter.addAll(getAvailableAutomezzi());
|
||||
|
||||
builderSingle.setAdapter(arrayAdapter, (dialogInterface, i) -> {
|
||||
viewModel.automezzo.set(arrayAdapter.getItem(i));
|
||||
});
|
||||
builderSingle.show();
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initViewModel(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
BindableString.registerListener(viewModel.numOrds, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentNumOrdsPredicate = null;
|
||||
else {
|
||||
String numOrdTrimmed = value.replaceAll(" ", "");
|
||||
String[] numOrdsSplitted = numOrdTrimmed.split(",");
|
||||
|
||||
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
|
||||
.withoutNulls()
|
||||
.map(Integer::parseInt).toList();
|
||||
|
||||
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
|
||||
|
||||
BindableString.registerListener(viewModel.cliente, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentClientePredicate = null;
|
||||
else {
|
||||
currentClientePredicate = o -> o.getRagSocOrd().toLowerCase().contains(value);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
|
||||
|
||||
BindableString.registerListener(viewModel.dataConsegna, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentDataConsPredicate = null;
|
||||
else {
|
||||
currentDataConsPredicate = o -> o.getDataConsD().equals(viewModel.dataConsegnaDate);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
|
||||
|
||||
BindableString.registerListener(viewModel.terminiConsegna, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentTermConsPredicate = null;
|
||||
else {
|
||||
currentTermConsPredicate = o -> o.getTermCons() != null && o.getTermCons().toLowerCase().contains(value);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
|
||||
|
||||
BindableString.registerListener(viewModel.automezzo, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
|
||||
else {
|
||||
currentAutomezzoPredicate = o -> o.getCodAuto().toLowerCase().contains(value);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private List<String> getAvailableTermCons() {
|
||||
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == 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)))
|
||||
);
|
||||
|
||||
currentFilteredOrderList = tmpStream.toList();
|
||||
}
|
||||
|
||||
return Stream.of(currentFilteredOrderList).map(x -> x.getTermCons()).distinct().withoutNulls().toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableAutomezzi() {
|
||||
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == 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)))
|
||||
);
|
||||
|
||||
currentFilteredOrderList = tmpStream.toList();
|
||||
}
|
||||
|
||||
return Stream.of(currentFilteredOrderList).map(x -> x.getCodAuto()).distinct().withoutNulls().toList();
|
||||
}
|
||||
|
||||
private void refreshList() {
|
||||
|
||||
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == 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))) &&
|
||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x)))
|
||||
);
|
||||
|
||||
//if(currentNumOrdsPredicate != null) tmpStream = tmpStream.filter(currentNumOrdsPredicate);
|
||||
//if(currentClientePredicate != null) tmpStream = tmpStream.filter(currentClientePredicate);
|
||||
//if(currentDataConsPredicate != null) tmpStream = tmpStream.filter(currentDataConsPredicate);
|
||||
//if(currentTermConsPredicate != null) tmpStream = tmpStream.filter(currentTermConsPredicate);
|
||||
//if(currentClientePredicate != null) tmpStream = tmpStream.filter(currentClientePredicate);
|
||||
|
||||
currentFilteredOrderList = tmpStream.toList();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
||||
|
||||
import android.support.design.widget.BottomSheetBehavior;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.di.BindableFloat;
|
||||
import it.integry.integrywmsnative.core.di.BindableInteger;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
@ -8,6 +12,10 @@ public class DialogVenditaFiltroAvanzatoViewModel {
|
||||
|
||||
public BindableString numOrds = new BindableString();
|
||||
public BindableString cliente = new BindableString();
|
||||
public BindableString dataConsegna = new BindableString();
|
||||
public BindableString terminiConsegna = new BindableString();
|
||||
public BindableString automezzo = new BindableString();
|
||||
|
||||
public Date dataConsegnaDate;
|
||||
|
||||
}
|
||||
|
||||
@ -8,6 +8,8 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
|
||||
public class OrdineVenditaInevasoDTO implements Parcelable {
|
||||
|
||||
private String data;
|
||||
@ -378,9 +380,14 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public Date getDataConsD() throws ParseException {
|
||||
public Date getDataConsD() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataConsS());
|
||||
try {
|
||||
return sdf.parse(getDataConsS());
|
||||
} catch (ParseException e) {
|
||||
UtilityLogger.errorMe(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
|
||||
|
||||
10
app/src/main/res/drawable/bottom_sheet_modal_background.xml
Normal file
10
app/src/main/res/drawable/bottom_sheet_modal_background.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners
|
||||
android:topLeftRadius="16dp"
|
||||
android:topRightRadius="16dp" />
|
||||
<padding android:top="16dp" />
|
||||
<solid android:color="@color/white" />
|
||||
|
||||
</shape>
|
||||
@ -65,8 +65,63 @@
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintTextAppearance="@style/hint_text">
|
||||
|
||||
|
||||
<android.support.design.widget.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}"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintTextAppearance="@style/hint_text">
|
||||
|
||||
|
||||
<android.support.design.widget.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}"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintTextAppearance="@style/hint_text">
|
||||
|
||||
|
||||
<android.support.design.widget.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}"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
|
||||
|
||||
</layout>
|
||||
@ -18,6 +18,7 @@
|
||||
<string name="warning">Attenzione</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="abort">Annulla</string>
|
||||
<string name="reset">Resetta</string>
|
||||
<string name="dispatched">Evasi</string>
|
||||
|
||||
|
||||
@ -141,6 +142,9 @@
|
||||
|
||||
<string name="num_ords">Numero ordine</string>
|
||||
<string name="customer">Cliente</string>
|
||||
<string name="ship_date">Data consegna</string>
|
||||
<string name="terms_of_delivery">Termini di consegna</string>
|
||||
<string name="vehicle">Automezzo</string>
|
||||
|
||||
<string name="no_items_found_message">Nessun articolo trovato</string>
|
||||
<string name="ask_print_message"><![CDATA[Si vuole procedere con la stampa dell\'etichetta?]]></string>
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
<string name="warning">Warning</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="abort">Abort</string>
|
||||
<string name="reset">Reset</string>
|
||||
<string name="dispatched">Dispatched</string>
|
||||
<string name="no_description">No description</string>
|
||||
<string name="description">Description</string>
|
||||
@ -150,6 +151,9 @@
|
||||
|
||||
<string name="num_ords">Orders number</string>
|
||||
<string name="customer">Customer</string>
|
||||
<string name="ship_date">Ship date</string>
|
||||
<string name="terms_of_delivery">Terms of delivery</string>
|
||||
<string name="vehicle">Vehicle</string>
|
||||
|
||||
<string name="no_items_found_message">No items found</string>
|
||||
<string name="ask_print_message">Do you want print the label?</string>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user