Sort Order not in line with database sort order #377
This commit is contained in:
parent
02c11d1ae5
commit
e8c8e63bf3
|
|
@ -6,6 +6,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
|
@ -385,14 +386,15 @@ abstract class ClientEntity extends Object
|
||||||
|
|
||||||
switch (sortField) {
|
switch (sortField) {
|
||||||
case ClientFields.name:
|
case ClientFields.name:
|
||||||
response = clientA.displayName
|
response = removeDiacritics(clientA.displayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.displayName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.displayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case ClientFields.contactName:
|
case ClientFields.contactName:
|
||||||
response = clientA.primaryContact.fullName
|
response = removeDiacritics(clientA.primaryContact.fullName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.primaryContact.fullName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.primaryContact.fullName)
|
||||||
|
.toLowerCase());
|
||||||
break;
|
break;
|
||||||
case ClientFields.contactEmail:
|
case ClientFields.contactEmail:
|
||||||
response = clientA.primaryContact.email
|
response = clientA.primaryContact.email
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
|
@ -412,17 +413,17 @@ abstract class ExpenseEntity extends Object
|
||||||
case ExpenseFields.client:
|
case ExpenseFields.client:
|
||||||
final clientA = clientMap[expenseA.clientId] ?? ClientEntity();
|
final clientA = clientMap[expenseA.clientId] ?? ClientEntity();
|
||||||
final clientB = clientMap[expenseB.clientId] ?? ClientEntity();
|
final clientB = clientMap[expenseB.clientId] ?? ClientEntity();
|
||||||
response = clientA.listDisplayName
|
response = removeDiacritics(clientA.listDisplayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.listDisplayName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.listDisplayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case ExpenseFields.vendorId:
|
case ExpenseFields.vendorId:
|
||||||
case ExpenseFields.vendor:
|
case ExpenseFields.vendor:
|
||||||
final vendorA = vendorMap[expenseA.vendorId] ?? VendorEntity();
|
final vendorA = vendorMap[expenseA.vendorId] ?? VendorEntity();
|
||||||
final vendorB = vendorMap[expenseB.vendorId] ?? VendorEntity();
|
final vendorB = vendorMap[expenseB.vendorId] ?? VendorEntity();
|
||||||
response = vendorA.listDisplayName
|
response = removeDiacritics(vendorA.listDisplayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(vendorB.listDisplayName.toLowerCase());
|
.compareTo(removeDiacritics(vendorB.listDisplayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case EntityFields.state:
|
case EntityFields.state:
|
||||||
final stateA =
|
final stateA =
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
|
@ -609,8 +610,10 @@ abstract class InvoiceEntity extends Object
|
||||||
final InvoiceEntity invoiceB = sortAscending ? invoice : this;
|
final InvoiceEntity invoiceB = sortAscending ? invoice : this;
|
||||||
switch (sortField) {
|
switch (sortField) {
|
||||||
case InvoiceFields.number:
|
case InvoiceFields.number:
|
||||||
var invoiceANumber = invoiceA.number ?? '';
|
var invoiceANumber =
|
||||||
var invoiceBNumber = invoiceB.number ?? '';
|
(invoiceA.number ?? '').isEmpty ? 'ZZZZZZZZZZ' : invoiceA.number;
|
||||||
|
var invoiceBNumber =
|
||||||
|
(invoiceB.number ?? '').isEmpty ? 'ZZZZZZZZZZ' : invoiceB.number;
|
||||||
invoiceANumber = recurringPrefix.isNotEmpty &&
|
invoiceANumber = recurringPrefix.isNotEmpty &&
|
||||||
//(invoiceA.recurringId ?? '').isNotEmpty &&
|
//(invoiceA.recurringId ?? '').isNotEmpty &&
|
||||||
invoiceANumber.startsWith(recurringPrefix)
|
invoiceANumber.startsWith(recurringPrefix)
|
||||||
|
|
@ -734,9 +737,9 @@ abstract class InvoiceEntity extends Object
|
||||||
case InvoiceFields.client:
|
case InvoiceFields.client:
|
||||||
final clientA = clientMap[invoiceA.clientId] ?? ClientEntity();
|
final clientA = clientMap[invoiceA.clientId] ?? ClientEntity();
|
||||||
final clientB = clientMap[invoiceB.clientId] ?? ClientEntity();
|
final clientB = clientMap[invoiceB.clientId] ?? ClientEntity();
|
||||||
response = clientA.listDisplayName
|
response = removeDiacritics(clientA.listDisplayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.listDisplayName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.listDisplayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case InvoiceFields.isViewed:
|
case InvoiceFields.isViewed:
|
||||||
response = invoiceB.isViewed ? 1 : -1;
|
response = invoiceB.isViewed ? 1 : -1;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
import 'package:built_collection/built_collection.dart';
|
import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
|
|
@ -220,9 +221,9 @@ abstract class ProjectEntity extends Object
|
||||||
case ProjectFields.client:
|
case ProjectFields.client:
|
||||||
final clientA = clientMap[projectA.clientId] ?? ClientEntity();
|
final clientA = clientMap[projectA.clientId] ?? ClientEntity();
|
||||||
final clientB = clientMap[projectB.clientId] ?? ClientEntity();
|
final clientB = clientMap[projectB.clientId] ?? ClientEntity();
|
||||||
response = clientA.listDisplayName
|
response = removeDiacritics(clientA.listDisplayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.listDisplayName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.listDisplayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case ProjectFields.clientNumber:
|
case ProjectFields.clientNumber:
|
||||||
final clientA = clientMap[projectA.clientId] ?? ClientEntity();
|
final clientA = clientMap[projectA.clientId] ?? ClientEntity();
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
|
@ -629,9 +630,9 @@ abstract class TaskEntity extends Object
|
||||||
case TaskFields.client:
|
case TaskFields.client:
|
||||||
final clientA = clientMap[taskA.clientId] ?? ClientEntity();
|
final clientA = clientMap[taskA.clientId] ?? ClientEntity();
|
||||||
final clientB = clientMap[taskB.clientId] ?? ClientEntity();
|
final clientB = clientMap[taskB.clientId] ?? ClientEntity();
|
||||||
response = clientA.listDisplayName
|
response = removeDiacritics(clientA.listDisplayName)
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(clientB.listDisplayName.toLowerCase());
|
.compareTo(removeDiacritics(clientB.listDisplayName).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case TaskFields.projectId:
|
case TaskFields.projectId:
|
||||||
case TaskFields.project:
|
case TaskFields.project:
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:built_value/built_value.dart';
|
import 'package:built_value/built_value.dart';
|
||||||
import 'package:built_value/serializer.dart';
|
import 'package:built_value/serializer.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:diacritic/diacritic.dart';
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
|
|
@ -223,8 +224,9 @@ abstract class VendorEntity extends Object
|
||||||
|
|
||||||
switch (sortField) {
|
switch (sortField) {
|
||||||
case VendorFields.name:
|
case VendorFields.name:
|
||||||
response =
|
response = removeDiacritics(vendorA.name)
|
||||||
vendorA.name.toLowerCase().compareTo(vendorB.name.toLowerCase());
|
.toLowerCase()
|
||||||
|
.compareTo(removeDiacritics(vendorB.name).toLowerCase());
|
||||||
break;
|
break;
|
||||||
case VendorFields.city:
|
case VendorFields.city:
|
||||||
response =
|
response =
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ dependencies:
|
||||||
pointer_interceptor: ^0.9.0
|
pointer_interceptor: ^0.9.0
|
||||||
contacts_service: ^0.6.1
|
contacts_service: ^0.6.1
|
||||||
super_editor: ^0.1.0
|
super_editor: ^0.1.0
|
||||||
|
diacritic: ^0.1.3
|
||||||
# quick_actions: ^0.2.1
|
# quick_actions: ^0.2.1
|
||||||
# idb_shim: ^1.11.1+1
|
# idb_shim: ^1.11.1+1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.0"
|
version: "2.1.0"
|
||||||
|
diacritic:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: diacritic
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.3"
|
||||||
extension:
|
extension:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ dependencies:
|
||||||
pointer_interceptor: ^0.9.0
|
pointer_interceptor: ^0.9.0
|
||||||
contacts_service: ^0.6.1
|
contacts_service: ^0.6.1
|
||||||
super_editor: ^0.1.0
|
super_editor: ^0.1.0
|
||||||
|
diacritic: ^0.1.3
|
||||||
# quick_actions: ^0.2.1
|
# quick_actions: ^0.2.1
|
||||||
# idb_shim: ^1.11.1+1
|
# idb_shim: ^1.11.1+1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ dependencies:
|
||||||
pointer_interceptor: ^0.9.0
|
pointer_interceptor: ^0.9.0
|
||||||
contacts_service: ^0.6.1
|
contacts_service: ^0.6.1
|
||||||
super_editor: ^0.1.0
|
super_editor: ^0.1.0
|
||||||
|
diacritic: ^0.1.3
|
||||||
# quick_actions: ^0.2.1
|
# quick_actions: ^0.2.1
|
||||||
# idb_shim: ^1.11.1+1
|
# idb_shim: ^1.11.1+1
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue