diff --git a/lib/data/models/recurring_expense_model.dart b/lib/data/models/recurring_expense_model.dart index accf72d3a..cc8f6fd54 100644 --- a/lib/data/models/recurring_expense_model.dart +++ b/lib/data/models/recurring_expense_model.dart @@ -12,7 +12,6 @@ class RecurringExpenseFields { static const String netAmount = 'net_amount'; static const String amount = 'amount'; static const String taxAmount = 'tax_amount'; - static const String expenseDate = 'date'; static const String paymentDate = 'payment_date'; static const String exchangeRate = 'exchange_rate'; static const String invoiceCurrencyId = 'invoice_currency_id'; @@ -36,4 +35,5 @@ class RecurringExpenseFields { static const String archivedAt = 'archived_at'; static const String isDeleted = 'is_deleted'; static const String documents = 'documents'; + static const String nextSendDate = 'next_send_date'; } diff --git a/lib/redux/recurring_expense/recurring_expense_selectors.dart b/lib/redux/recurring_expense/recurring_expense_selectors.dart index 1385a9a45..c568416dc 100644 --- a/lib/redux/recurring_expense/recurring_expense_selectors.dart +++ b/lib/redux/recurring_expense/recurring_expense_selectors.dart @@ -52,7 +52,7 @@ List dropdownRecurringExpensesSelector( final recurringExpenseB = recurringExpenseMap[recurringExpenseBId]; return recurringExpenseA.compareTo( recurringExpenseB, - RecurringExpenseFields.expenseDate, + RecurringExpenseFields.number, true, clientMap, userMap, diff --git a/lib/ui/recurring_expense/recurring_expense_presenter.dart b/lib/ui/recurring_expense/recurring_expense_presenter.dart index 2f3538b97..fcaabcdcd 100644 --- a/lib/ui/recurring_expense/recurring_expense_presenter.dart +++ b/lib/ui/recurring_expense/recurring_expense_presenter.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/data/models/recurring_expense_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart'; import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart'; @@ -9,12 +10,12 @@ import 'package:invoiceninja_flutter/utils/formatting.dart'; class RecurringExpensePresenter extends EntityPresenter { static List getDefaultTableFields(UserCompanyEntity userCompany) { return [ - ExpenseFields.status, - ExpenseFields.vendor, - ExpenseFields.client, - ExpenseFields.expenseDate, - ExpenseFields.amount, - ExpenseFields.publicNotes, + RecurringExpenseFields.status, + RecurringExpenseFields.vendor, + RecurringExpenseFields.client, + RecurringExpenseFields.nextSendDate, + RecurringExpenseFields.amount, + RecurringExpenseFields.publicNotes, EntityFields.state, ]; } @@ -23,34 +24,34 @@ class RecurringExpensePresenter extends EntityPresenter { return [ ...getDefaultTableFields(userCompany), ...EntityPresenter.getBaseFields(), - ExpenseFields.number, - ExpenseFields.netAmount, - ExpenseFields.taxAmount, - ExpenseFields.privateNotes, - ExpenseFields.shouldBeInvoiced, - ExpenseFields.transactionId, - ExpenseFields.transactionReference, - ExpenseFields.bankId, - ExpenseFields.currencyId, - ExpenseFields.categoryId, - ExpenseFields.category, - ExpenseFields.paymentDate, - ExpenseFields.exchangeRate, - ExpenseFields.invoiceCurrencyId, - ExpenseFields.taxName1, - ExpenseFields.taxName2, - ExpenseFields.taxName3, - ExpenseFields.taxRate1, - ExpenseFields.taxRate2, - ExpenseFields.taxRate3, - ExpenseFields.clientId, - ExpenseFields.invoiceId, - ExpenseFields.vendorId, - ExpenseFields.customValue1, - ExpenseFields.customValue2, - ExpenseFields.customValue3, - ExpenseFields.customValue4, - ExpenseFields.documents, + RecurringExpenseFields.number, + RecurringExpenseFields.netAmount, + RecurringExpenseFields.taxAmount, + RecurringExpenseFields.privateNotes, + RecurringExpenseFields.shouldBeInvoiced, + RecurringExpenseFields.transactionId, + RecurringExpenseFields.transactionReference, + RecurringExpenseFields.bankId, + RecurringExpenseFields.currencyId, + RecurringExpenseFields.categoryId, + RecurringExpenseFields.category, + RecurringExpenseFields.paymentDate, + RecurringExpenseFields.exchangeRate, + RecurringExpenseFields.invoiceCurrencyId, + RecurringExpenseFields.taxName1, + RecurringExpenseFields.taxName2, + RecurringExpenseFields.taxName3, + RecurringExpenseFields.taxRate1, + RecurringExpenseFields.taxRate2, + RecurringExpenseFields.taxRate3, + RecurringExpenseFields.clientId, + RecurringExpenseFields.invoiceId, + RecurringExpenseFields.vendorId, + RecurringExpenseFields.customValue1, + RecurringExpenseFields.customValue2, + RecurringExpenseFields.customValue3, + RecurringExpenseFields.customValue4, + RecurringExpenseFields.documents, ]; } @@ -60,86 +61,86 @@ class RecurringExpensePresenter extends EntityPresenter { final expense = entity as ExpenseEntity; switch (field) { - case ExpenseFields.status: + case RecurringExpenseFields.status: return EntityStatusChip(entity: expense); - case ExpenseFields.vendor: - case ExpenseFields.vendorId: + case RecurringExpenseFields.vendor: + case RecurringExpenseFields.vendorId: return Text((state.vendorState.map[expense.vendorId] ?? VendorEntity()) .listDisplayName); - case ExpenseFields.clientId: - case ExpenseFields.client: + case RecurringExpenseFields.clientId: + case RecurringExpenseFields.client: return Text((state.clientState.map[expense.clientId] ?? ClientEntity()) .listDisplayName); - case ExpenseFields.expenseDate: + case RecurringExpenseFields.nextSendDate: return Text(formatDate(expense.date, context)); - case ExpenseFields.netAmount: + case RecurringExpenseFields.netAmount: return Text(formatNumber(expense.netAmount, context, currencyId: expense.currencyId)); - case ExpenseFields.amount: + case RecurringExpenseFields.amount: return Text(formatNumber(expense.grossAmount, context, currencyId: expense.currencyId)); - case ExpenseFields.taxAmount: + case RecurringExpenseFields.taxAmount: return Text(formatNumber(expense.taxAmount, context, currencyId: expense.currencyId)); - case ExpenseFields.publicNotes: + case RecurringExpenseFields.publicNotes: return Text(expense.publicNotes); - case ExpenseFields.number: + case RecurringExpenseFields.number: return Text(expense.number); - case ExpenseFields.privateNotes: + case RecurringExpenseFields.privateNotes: return Text(expense.privateNotes); - case ExpenseFields.shouldBeInvoiced: + case RecurringExpenseFields.shouldBeInvoiced: return Text(expense.shouldBeInvoiced.toString()); - case ExpenseFields.transactionId: + case RecurringExpenseFields.transactionId: return Text(expense.transactionId); - case ExpenseFields.transactionReference: + case RecurringExpenseFields.transactionReference: return Text(expense.transactionReference); - case ExpenseFields.bankId: + case RecurringExpenseFields.bankId: return Text(expense.bankId); - case ExpenseFields.currencyId: + case RecurringExpenseFields.currencyId: return Text(state .staticState.currencyMap[expense.currencyId]?.listDisplayName ?? ''); - case ExpenseFields.category: - case ExpenseFields.categoryId: + case RecurringExpenseFields.category: + case RecurringExpenseFields.categoryId: return Text(state.expenseCategoryState.map[expense.categoryId] ?.listDisplayName ?? ''); - case ExpenseFields.paymentDate: + case RecurringExpenseFields.paymentDate: return Text(formatDate(expense.paymentDate, context)); - case ExpenseFields.exchangeRate: + case RecurringExpenseFields.exchangeRate: return Text(formatNumber(expense.exchangeRate, context, formatNumberType: FormatNumberType.double)); - case ExpenseFields.invoiceCurrencyId: + case RecurringExpenseFields.invoiceCurrencyId: return Text(state.staticState.currencyMap[expense.invoiceCurrencyId] ?.listDisplayName ?? ''); - case ExpenseFields.taxName1: + case RecurringExpenseFields.taxName1: return Text(expense.taxName1); - case ExpenseFields.taxName2: + case RecurringExpenseFields.taxName2: return Text(expense.taxName2); - case ExpenseFields.taxName3: + case RecurringExpenseFields.taxName3: return Text(expense.taxName3); - case ExpenseFields.taxRate1: + case RecurringExpenseFields.taxRate1: return Text(formatNumber(expense.taxRate1, context, formatNumberType: FormatNumberType.percent)); - case ExpenseFields.taxRate2: + case RecurringExpenseFields.taxRate2: return Text(formatNumber(expense.taxRate2, context, formatNumberType: FormatNumberType.percent)); - case ExpenseFields.taxRate3: + case RecurringExpenseFields.taxRate3: return Text(formatNumber(expense.taxRate3, context, formatNumberType: FormatNumberType.percent)); - case ExpenseFields.invoiceId: + case RecurringExpenseFields.invoiceId: return Text( state.invoiceState.map[expense.invoiceId]?.listDisplayName ?? ''); - case ExpenseFields.customValue1: + case RecurringExpenseFields.customValue1: return Text(presentCustomField(expense.customValue1)); - case ExpenseFields.customValue2: + case RecurringExpenseFields.customValue2: return Text(presentCustomField(expense.customValue2)); - case ExpenseFields.customValue3: + case RecurringExpenseFields.customValue3: return Text(presentCustomField(expense.customValue3)); - case ExpenseFields.customValue4: + case RecurringExpenseFields.customValue4: return Text(presentCustomField(expense.customValue4)); - case ExpenseFields.documents: + case RecurringExpenseFields.documents: return Text('${expense.documents.length}'); } diff --git a/lib/ui/recurring_expense/recurring_expense_screen.dart b/lib/ui/recurring_expense/recurring_expense_screen.dart index 3d47e6f07..c1b3b8727 100644 --- a/lib/ui/recurring_expense/recurring_expense_screen.dart +++ b/lib/ui/recurring_expense/recurring_expense_screen.dart @@ -64,7 +64,7 @@ class RecurringExpenseScreen extends StatelessWidget { }, sortFields: [ RecurringExpenseFields.number, - RecurringExpenseFields.expenseDate, + RecurringExpenseFields.nextSendDate, RecurringExpenseFields.updatedAt, ], onSelectedState: (EntityState state, value) {