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