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 currencyId = 'currency_id';
static const String categoryId = 'category_id'; static const String categoryId = 'category_id';
static const String category = 'category'; static const String category = 'category';
static const String project = 'project';
static const String netAmount = 'net_amount'; static const String netAmount = 'net_amount';
static const String convertedAmount = 'converted_amount'; static const String convertedAmount = 'converted_amount';
static const String amount = 'amount'; static const String amount = 'amount';

View File

@ -37,6 +37,7 @@ class ExpensePresenter extends EntityPresenter {
ExpenseFields.shouldBeInvoiced, ExpenseFields.shouldBeInvoiced,
ExpenseFields.transactionReference, ExpenseFields.transactionReference,
ExpenseFields.category, ExpenseFields.category,
ExpenseFields.project,
ExpenseFields.paymentDate, ExpenseFields.paymentDate,
ExpenseFields.paymentType, ExpenseFields.paymentType,
ExpenseFields.exchangeRate, ExpenseFields.exchangeRate,
@ -102,6 +103,9 @@ class ExpensePresenter extends EntityPresenter {
case ExpenseFields.category: case ExpenseFields.category:
final category = state.expenseCategoryState.map[expense.categoryId]; final category = state.expenseCategoryState.map[expense.categoryId];
return LinkTextRelatedEntity(entity: category, relation: expense); 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: case ExpenseFields.paymentType:
return Text(state.staticState.paymentTypeMap[expense.paymentTypeId] return Text(state.staticState.paymentTypeMap[expense.paymentTypeId]
?.listDisplayName ?? ?.listDisplayName ??

View File

@ -34,6 +34,7 @@ enum ExpenseReportFields {
invoice_amount, invoice_amount,
invoice_date, invoice_date,
vendor, vendor,
project,
expense1, expense1,
expense2, expense2,
expense3, expense3,
@ -48,7 +49,7 @@ enum ExpenseReportFields {
tax_amount3, tax_amount3,
} }
var memoizedExpenseReport = memo9(( var memoizedExpenseReport = memo10((
UserCompanyEntity userCompany, UserCompanyEntity userCompany,
ReportsUIState reportsUIState, ReportsUIState reportsUIState,
BuiltMap<String, ExpenseEntity> expenseMap, BuiltMap<String, ExpenseEntity> expenseMap,
@ -56,6 +57,7 @@ var memoizedExpenseReport = memo9((
BuiltMap<String, InvoiceEntity> invoiceMap, BuiltMap<String, InvoiceEntity> invoiceMap,
BuiltMap<String, ClientEntity> clientMap, BuiltMap<String, ClientEntity> clientMap,
BuiltMap<String, VendorEntity> vendorMap, BuiltMap<String, VendorEntity> vendorMap,
BuiltMap<String, ProjectEntity> projectMap,
BuiltMap<String, UserEntity> userMap, BuiltMap<String, UserEntity> userMap,
StaticState staticState, StaticState staticState,
) => ) =>
@ -67,6 +69,7 @@ var memoizedExpenseReport = memo9((
invoiceMap, invoiceMap,
clientMap, clientMap,
vendorMap, vendorMap,
projectMap,
userMap, userMap,
staticState, staticState,
)); ));
@ -79,6 +82,7 @@ ReportResult expenseReport(
BuiltMap<String, InvoiceEntity> invoiceMap, BuiltMap<String, InvoiceEntity> invoiceMap,
BuiltMap<String, ClientEntity> clientMap, BuiltMap<String, ClientEntity> clientMap,
BuiltMap<String, VendorEntity> vendorMap, BuiltMap<String, VendorEntity> vendorMap,
BuiltMap<String, ProjectEntity> projectMap,
BuiltMap<String, UserEntity> userMap, BuiltMap<String, UserEntity> userMap,
StaticState staticState, StaticState staticState,
) { ) {
@ -115,6 +119,7 @@ ReportResult expenseReport(
final client = clientMap[expense.clientId] ?? ClientEntity(); final client = clientMap[expense.clientId] ?? ClientEntity();
final invoice = invoiceMap[expense.invoiceId] ?? InvoiceEntity(); final invoice = invoiceMap[expense.invoiceId] ?? InvoiceEntity();
final vendor = vendorMap[expense.vendorId] ?? VendorEntity(); final vendor = vendorMap[expense.vendorId] ?? VendorEntity();
final project = projectMap[expense.projectId] ?? ProjectEntity();
if (expense.isDeleted) { if (expense.isDeleted) {
continue; continue;
@ -195,6 +200,9 @@ ReportResult expenseReport(
case ExpenseReportFields.vendor: case ExpenseReportFields.vendor:
value = vendor?.listDisplayName; value = vendor?.listDisplayName;
break; break;
case ExpenseReportFields.project:
value = project?.name;
break;
case ExpenseReportFields.expense1: case ExpenseReportFields.expense1:
value = presentCustomField( value = presentCustomField(
value: expense.customValue1, value: expense.customValue1,

View File

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