From 2d086e53de03ce32da5feb5eeca4bdcccc26f776 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 12 Jul 2022 15:59:41 +0300 Subject: [PATCH] Add project to expense list/report --- lib/data/models/expense_model.dart | 1 + lib/ui/expense/expense_presenter.dart | 4 ++++ lib/ui/reports/expense_report.dart | 10 +++++++++- lib/ui/reports/reports_screen_vm.dart | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/data/models/expense_model.dart b/lib/data/models/expense_model.dart index 96b365461..03f1d2671 100644 --- a/lib/data/models/expense_model.dart +++ b/lib/data/models/expense_model.dart @@ -62,6 +62,7 @@ class ExpenseFields { static const String currencyId = 'currency_id'; static const String categoryId = 'category_id'; static const String category = 'category'; + static const String project = 'project'; static const String netAmount = 'net_amount'; static const String convertedAmount = 'converted_amount'; static const String amount = 'amount'; diff --git a/lib/ui/expense/expense_presenter.dart b/lib/ui/expense/expense_presenter.dart index bd94ed010..fba219e87 100644 --- a/lib/ui/expense/expense_presenter.dart +++ b/lib/ui/expense/expense_presenter.dart @@ -37,6 +37,7 @@ class ExpensePresenter extends EntityPresenter { ExpenseFields.shouldBeInvoiced, ExpenseFields.transactionReference, ExpenseFields.category, + ExpenseFields.project, ExpenseFields.paymentDate, ExpenseFields.paymentType, ExpenseFields.exchangeRate, @@ -102,6 +103,9 @@ class ExpensePresenter extends EntityPresenter { case ExpenseFields.category: final category = state.expenseCategoryState.map[expense.categoryId]; return LinkTextRelatedEntity(entity: category, relation: expense); + case ExpenseFields.project: + final project = state.projectState.map[expense.projectId]; + return LinkTextRelatedEntity(entity: project, relation: expense); case ExpenseFields.paymentType: return Text(state.staticState.paymentTypeMap[expense.paymentTypeId] ?.listDisplayName ?? diff --git a/lib/ui/reports/expense_report.dart b/lib/ui/reports/expense_report.dart index 206986ec0..9e3c16358 100644 --- a/lib/ui/reports/expense_report.dart +++ b/lib/ui/reports/expense_report.dart @@ -34,6 +34,7 @@ enum ExpenseReportFields { invoice_amount, invoice_date, vendor, + project, expense1, expense2, expense3, @@ -48,7 +49,7 @@ enum ExpenseReportFields { tax_amount3, } -var memoizedExpenseReport = memo9(( +var memoizedExpenseReport = memo10(( UserCompanyEntity userCompany, ReportsUIState reportsUIState, BuiltMap expenseMap, @@ -56,6 +57,7 @@ var memoizedExpenseReport = memo9(( BuiltMap invoiceMap, BuiltMap clientMap, BuiltMap vendorMap, + BuiltMap projectMap, BuiltMap userMap, StaticState staticState, ) => @@ -67,6 +69,7 @@ var memoizedExpenseReport = memo9(( invoiceMap, clientMap, vendorMap, + projectMap, userMap, staticState, )); @@ -79,6 +82,7 @@ ReportResult expenseReport( BuiltMap invoiceMap, BuiltMap clientMap, BuiltMap vendorMap, + BuiltMap projectMap, BuiltMap userMap, StaticState staticState, ) { @@ -115,6 +119,7 @@ ReportResult expenseReport( final client = clientMap[expense.clientId] ?? ClientEntity(); final invoice = invoiceMap[expense.invoiceId] ?? InvoiceEntity(); final vendor = vendorMap[expense.vendorId] ?? VendorEntity(); + final project = projectMap[expense.projectId] ?? ProjectEntity(); if (expense.isDeleted) { continue; @@ -195,6 +200,9 @@ ReportResult expenseReport( case ExpenseReportFields.vendor: value = vendor?.listDisplayName; break; + case ExpenseReportFields.project: + value = project?.name; + break; case ExpenseReportFields.expense1: value = presentCustomField( value: expense.customValue1, diff --git a/lib/ui/reports/reports_screen_vm.dart b/lib/ui/reports/reports_screen_vm.dart index b2b3abe6a..ed3f01318 100644 --- a/lib/ui/reports/reports_screen_vm.dart +++ b/lib/ui/reports/reports_screen_vm.dart @@ -161,6 +161,7 @@ class ReportsScreenVM { state.invoiceState.map, state.clientState.map, state.vendorState.map, + state.projectState.map, state.userState.map, state.staticState, );