Improve number sorting
This commit is contained in:
parent
cc4bec2a38
commit
716dffb1e9
|
|
@ -14,6 +14,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|||
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
part 'client_model.g.dart';
|
||||
|
||||
|
|
@ -396,7 +397,8 @@ abstract class ClientEntity extends Object
|
|||
response = clientA.idNumber.compareTo(clientB.idNumber);
|
||||
break;
|
||||
case ClientFields.number:
|
||||
response = clientA.number.compareTo(clientB.number);
|
||||
response = compareNatural(
|
||||
clientA.number.toLowerCase(), clientB.number.toLowerCase());
|
||||
break;
|
||||
case ClientFields.website:
|
||||
response = clientA.website
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|||
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
part 'expense_model.g.dart';
|
||||
|
||||
|
|
@ -449,7 +450,8 @@ abstract class ExpenseEntity extends Object
|
|||
expenseA.documents.length.compareTo(expenseB.documents.length);
|
||||
break;
|
||||
case ExpenseFields.number:
|
||||
response = expenseA.number.compareTo(expenseB.number);
|
||||
response = compareNatural(
|
||||
expenseA.number.toLowerCase(), expenseB.number.toLowerCase());
|
||||
break;
|
||||
case ExpenseFields.privateNotes:
|
||||
response = expenseA.privateNotes.compareTo(expenseB.privateNotes);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/money.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
part 'invoice_model.g.dart';
|
||||
|
||||
|
|
@ -556,9 +557,8 @@ abstract class InvoiceEntity extends Object
|
|||
invoiceBNumber.startsWith(recurringPrefix)
|
||||
? invoiceBNumber.replaceFirst(recurringPrefix, '')
|
||||
: invoiceBNumber;
|
||||
response = invoiceANumber
|
||||
.toLowerCase()
|
||||
.compareTo(invoiceBNumber.toLowerCase());
|
||||
response = compareNatural(
|
||||
invoiceANumber.toLowerCase(), invoiceBNumber.toLowerCase());
|
||||
break;
|
||||
case InvoiceFields.amount:
|
||||
response = invoiceA.amount.compareTo(invoiceB.amount);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|||
import 'package:invoiceninja_flutter/redux/task_status/task_status_selectors.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
part 'task_model.g.dart';
|
||||
|
||||
|
|
@ -665,7 +666,8 @@ abstract class TaskEntity extends Object
|
|||
response = taskA.documents.length.compareTo(taskB.documents.length);
|
||||
break;
|
||||
case TaskFields.number:
|
||||
response = taskA.number.compareTo(taskB.number);
|
||||
response = compareNatural(
|
||||
taskA.number.toLowerCase(), taskB.number.toLowerCase());
|
||||
break;
|
||||
case TaskFields.status:
|
||||
final taskAStatus = taskA.isRunning
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|||
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
part 'vendor_model.g.dart';
|
||||
|
||||
|
|
@ -264,7 +265,8 @@ abstract class VendorEntity extends Object
|
|||
response = vendorA.documents.length.compareTo(vendorB.documents.length);
|
||||
break;
|
||||
case VendorFields.number:
|
||||
response = vendorA.number.compareTo(vendorB.number);
|
||||
response = compareNatural(
|
||||
vendorA.number.toLowerCase(), vendorB.number.toLowerCase());
|
||||
break;
|
||||
case VendorFields.address1:
|
||||
response = vendorA.address1.compareTo(vendorB.address1);
|
||||
|
|
|
|||
|
|
@ -170,6 +170,7 @@ class ClientEditDetailsState extends State<ClientEditDetails> {
|
|||
DecoratedFormField(
|
||||
label: localization.number,
|
||||
controller: _numberController,
|
||||
onSavePressed: viewModel.onSavePressed,
|
||||
),
|
||||
if (memoizedGroupList(state.groupState.map).isNotEmpty)
|
||||
DynamicSelector(
|
||||
|
|
|
|||
Loading…
Reference in New Issue