Inovices
This commit is contained in:
parent
1046984cd4
commit
9e51d9a0b2
|
|
@ -32,6 +32,7 @@ class ClientFields {
|
|||
static const String updatedAt = 'updatedAt';
|
||||
static const String archivedAt = 'archivedAt';
|
||||
static const String isDeleted = 'isDeleted';
|
||||
static const String contact = 'contact';
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -237,10 +238,17 @@ abstract class ClientEntity extends Object with BaseEntity implements Built<Clie
|
|||
|
||||
if (vatNumber.toLowerCase().contains(search)) {
|
||||
return ClientFields.vatNumber;
|
||||
} else if (idNumber.toLowerCase().contains(search)) {
|
||||
}
|
||||
|
||||
if (idNumber.toLowerCase().contains(search)) {
|
||||
return ClientFields.idNumber;
|
||||
}
|
||||
|
||||
var contact = contacts.where((contact) => contact.matchesSearch(search)).first;
|
||||
if (contact != null) {
|
||||
return contact.matchesSearchField(search);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -252,10 +260,17 @@ abstract class ClientEntity extends Object with BaseEntity implements Built<Clie
|
|||
search = search.toLowerCase();
|
||||
if (vatNumber.toLowerCase().contains(search)) {
|
||||
return vatNumber;
|
||||
} else if (idNumber.toLowerCase().contains(search)) {
|
||||
}
|
||||
|
||||
if (idNumber.toLowerCase().contains(search)) {
|
||||
return idNumber;
|
||||
}
|
||||
|
||||
var contact = contacts.where((contact) => contact.matchesSearch(search)).first;
|
||||
if (contact != null) {
|
||||
return contact.matchesSearchValue(search);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -264,6 +279,13 @@ abstract class ClientEntity extends Object with BaseEntity implements Built<Clie
|
|||
}
|
||||
|
||||
|
||||
class ContactFields {
|
||||
static const String firstName = 'firstName';
|
||||
static const String lastName = 'lastName';
|
||||
static const String email = 'email';
|
||||
static const String phone = 'phone';
|
||||
}
|
||||
|
||||
abstract class ContactEntity extends Object with BaseEntity implements Built<ContactEntity, ContactEntityBuilder> {
|
||||
|
||||
static int counter = 0;
|
||||
|
|
@ -307,6 +329,59 @@ abstract class ContactEntity extends Object with BaseEntity implements Built<Con
|
|||
return (firstName + ' ' + lastName).trim();
|
||||
}
|
||||
|
||||
bool matchesSearch(String search) {
|
||||
if (search == null || search.isEmpty) {
|
||||
return true;
|
||||
}
|
||||
search = search.toLowerCase();
|
||||
if (firstName.toLowerCase().contains(search)) {
|
||||
return true;
|
||||
}
|
||||
if (lastName.toLowerCase().contains(search)) {
|
||||
return true;
|
||||
}
|
||||
if (phone.toLowerCase().contains(search)) {
|
||||
return true;
|
||||
}
|
||||
if (email.toLowerCase().contains(search)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
String matchesSearchField(String search) {
|
||||
if (search == null || search.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
search = search.toLowerCase();
|
||||
if (fullName().toLowerCase().contains(search)) {
|
||||
return ClientFields.contact;
|
||||
} else if (email.toLowerCase().contains(search)) {
|
||||
return ContactFields.email;
|
||||
} else if (phone.toLowerCase().contains(search)) {
|
||||
return ContactFields.phone;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
String matchesSearchValue(String search) {
|
||||
if (search == null || search.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
|
||||
search = search.toLowerCase();
|
||||
if (fullName().toLowerCase().contains(search)) {
|
||||
return fullName();
|
||||
} else if (email.toLowerCase().contains(search)) {
|
||||
return email;
|
||||
} else if (phone.toLowerCase().contains(search)) {
|
||||
return phone;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
ContactEntity._();
|
||||
static Serializer<ContactEntity> get serializer => _$contactEntitySerializer;
|
||||
|
|
|
|||
|
|
@ -97,9 +97,12 @@ class _EntityDropdownState extends State<EntityDropdown> {
|
|||
var filter =
|
||||
store.state.uiState.entityDropdownFilter;
|
||||
var subtitle = null;
|
||||
var matchField = entity.matchesSearchField(filter);
|
||||
var matchField =
|
||||
entity.matchesSearchField(filter);
|
||||
if (matchField != null) {
|
||||
subtitle = matchField + ': ' + entity.matchesSearchValue(filter);
|
||||
var field = localization.lookup(matchField);
|
||||
var value = entity.matchesSearchValue(filter);
|
||||
subtitle = '$field: $value';
|
||||
}
|
||||
return ListTile(
|
||||
dense: true,
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ class AppLocalization {
|
|||
'unit_cost': 'Unit Cost',
|
||||
'quantity': 'Quantity',
|
||||
'add_item': 'Add Item',
|
||||
'contact': 'Contact',
|
||||
|
||||
'payment': 'Payment',
|
||||
'payments': 'Payments',
|
||||
|
|
@ -243,6 +244,7 @@ class AppLocalization {
|
|||
String get unitCost => _localizedValues[locale.languageCode]['unit_cost'];
|
||||
String get quantity => _localizedValues[locale.languageCode]['quantity'];
|
||||
String get addItem => _localizedValues[locale.languageCode]['add_item'];
|
||||
String get contact => _localizedValues[locale.languageCode]['contact'];
|
||||
|
||||
|
||||
String get payment => _localizedValues[locale.languageCode]['payment'];
|
||||
|
|
|
|||
Loading…
Reference in New Issue