Skip to content

Commit

Permalink
Merge pull request #339 from bigcapitalhq/big-122-bug-expense-details…
Browse files Browse the repository at this point in the history
…-amount-should-not-be-rounded

fix: Expense amounts should not be rounded
  • Loading branch information
abouolia authored Jan 26, 2024
2 parents 21eb88e + de5920f commit d72d8e6
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 7 deletions.
2 changes: 2 additions & 0 deletions packages/server/src/models/ExpenseCategory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { Model } from 'objection';
import TenantModel from 'models/TenantModel';

export default class ExpenseCategory extends TenantModel {
amount: number;

/**
* Table name
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Transformer } from '@/lib/Transformer/Transformer';
import { ExpenseCategory } from '@/models';
import { formatNumber } from '@/utils';

export class ExpenseCategoryTransformer extends Transformer {
/**
* Include these attributes to expense object.
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return ['amountFormatted'];
};

/**
* Retrieves the formatted amount.
* @param {ExpenseCategory} category
* @returns {string}
*/
protected amountFormatted(category: ExpenseCategory) {
return formatNumber(category.amount, {
currencyCode: this.context.currencyCode,
money: false,
});
}
}
17 changes: 15 additions & 2 deletions packages/server/src/services/Expenses/CRUD/ExpenseTransformer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Transformer } from '@/lib/Transformer/Transformer';
import { formatNumber } from 'utils';
import { IExpense } from '@/interfaces';
import { ExpenseCategoryTransformer } from './ExpenseCategoryTransformer';

export class ExpenseTransfromer extends Transformer {
/**
Expand All @@ -12,7 +13,8 @@ export class ExpenseTransfromer extends Transformer {
'formattedAmount',
'formattedLandedCostAmount',
'formattedAllocatedCostAmount',
'formattedDate'
'formattedDate',
'categories',
];
};

Expand Down Expand Up @@ -56,5 +58,16 @@ export class ExpenseTransfromer extends Transformer {
*/
protected formattedDate = (expense: IExpense): string => {
return this.formatDate(expense.paymentDate);
}
};

/**
* Retrieves the transformed expense categories.
* @param {IExpense} expense
* @returns {}
*/
protected categories = (expense: IExpense) => {
return this.item(expense.categories, new ExpenseCategoryTransformer(), {
currencyCode: expense.currencyCode,
});
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
TotalLineTextStyle,
} from '@/components';
import { useExpenseDrawerContext } from './ExpenseDrawerProvider';
import { FormatNumber, TotalLine } from '@/components';
import { TotalLine } from '@/components';

/**
* Footer details of expense readonly details.
Expand All @@ -22,12 +22,12 @@ export default function ExpenseDrawerFooter() {
<ExpenseTotalLines labelColWidth={'180px'} amountColWidth={'180px'}>
<TotalLine
title={<T id={'expense.details.subtotal'} />}
value={<FormatNumber value={expense.total_amount} />}
value={expense.formatted_amount}
borderStyle={TotalLineBorderStyle.SingleDark}
/>
<TotalLine
title={<T id={'expense.details.total'} />}
value={<FormatNumber value={expense.formatted_amount} />}
value={expense.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
textStyle={TotalLineTextStyle.Bold}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ export const useExpenseReadEntriesColumns = () => {
},
{
Header: intl.get('amount'),
accessor: 'amount',
Cell: FormatNumberCell,
accessor: 'amount_formatted',
width: getColumnWidth(categories, 'amount', {
minWidth: 60,
magicSpacing: 5,
Expand Down

0 comments on commit d72d8e6

Please sign in to comment.