Add project to expense list/report

This commit is contained in:
Hillel Coren 2022-07-12 15:59:41 +03:00
parent 14b89fc117
commit 2d086e53de
4 changed files with 15 additions and 1 deletions

View File

@ -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';

View File

@ -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 ??

View File

@ -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<String, ExpenseEntity> expenseMap,
@ -56,6 +57,7 @@ var memoizedExpenseReport = memo9((
BuiltMap<String, InvoiceEntity> invoiceMap,
BuiltMap<String, ClientEntity> clientMap,
BuiltMap<String, VendorEntity> vendorMap,
BuiltMap<String, ProjectEntity> projectMap,
BuiltMap<String, UserEntity> userMap,
StaticState staticState,
) =>
@ -67,6 +69,7 @@ var memoizedExpenseReport = memo9((
invoiceMap,
clientMap,
vendorMap,
projectMap,
userMap,
staticState,
));
@ -79,6 +82,7 @@ ReportResult expenseReport(
BuiltMap<String, InvoiceEntity> invoiceMap,
BuiltMap<String, ClientEntity> clientMap,
BuiltMap<String, VendorEntity> vendorMap,
BuiltMap<String, ProjectEntity> projectMap,
BuiltMap<String, UserEntity> 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,

View File

@ -161,6 +161,7 @@ class ReportsScreenVM {
state.invoiceState.map,
state.clientState.map,
state.vendorState.map,
state.projectState.map,
state.userState.map,
state.staticState,
);