Files
bigcapital/packages/server/src/services/Items/ItemEstimatesTransactionTransformer.ts
2023-02-03 11:57:50 +02:00

83 lines
1.8 KiB
TypeScript

import { Transformer } from '@/lib/Transformer/Transformer';
import { formatNumber } from 'utils';
export class ItemEstimateTransactionTransformer extends Transformer {
/**
* Include these attributes to sale invoice object.
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return [
'formattedAmount',
'formattedEstimateDate',
'formattedRate',
'formattedCost',
];
};
/**
* Formatted sell price.
* @returns {string}
*/
public formattedAmount(item): string {
return formatNumber(item.amount, {
currencyCode: item.estimate.currencyCode,
});
}
/**
* Formatted estimate date.
* @returns {string}
*/
public formattedEstimateDate = (entry): string => {
return this.formatDate(entry.estimate.estimateDate);
};
/**
* Formatted quantity.
* @returns {string}
*/
public formattedQuantity = (entry): string => {
return entry.quantity;
};
/**
* Formatted rate.
* @returns {string}
*/
public formattedRate = (entry): string => {
return formatNumber(entry.rate, {
currencyCode: entry.estimate.currencyCode,
});
};
/**
*
* @param entry
* @returns
*/
public transform = (entry) => {
return {
estimateId: entry.estimate.id,
estimateNumber: entry.estimate.estimateNumber,
referenceNumber: entry.estimate.referenceNo,
estimateDate: entry.estimate.estimateDate,
formattedEstimateDate: entry.formattedEstimateDate,
amount: entry.amount,
formattedAmount: entry.formattedAmount,
quantity: entry.quantity,
formattedQuantity: entry.formattedQuantity,
rate: entry.rate,
formattedRate: entry.formattedRate,
customerDisplayName: entry.estimate.customer.displayName,
customerCurrencyCode: entry.estimate.customer.currencyCode,
};
};
}