Files
bigcapital/packages/server/src/modules/Items/ItemBillsTransactions.transformer.ts
2025-04-07 11:51:24 +02:00

97 lines
2.0 KiB
TypeScript

import { Transformer } from '../Transformer/Transformer';
export class ItemBillTransactionTransformer extends Transformer {
/**
* Include these attributes to sale invoice object.
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return [
'formattedAmount',
'formattedBillDate',
'formattedRate',
'formattedCost',
];
};
/**
* Formatted sell price.
* @param item
* @returns {string}
*/
public formattedAmount(item): string {
return this.formatNumber(item.amount, {
currencyCode: item.bill.currencyCode,
});
}
/**
* Formatted bill date.
* @param item
* @returns {string}
*/
public formattedBillDate = (entry): string => {
return this.formatDate(entry.bill.billDate);
};
/**
* Formatted quantity.
* @returns {string}
*/
public formattedQuantity = (entry): string => {
return entry.quantity;
};
/**
* Formatted rate.
* @param entry
* @returns {string}
*/
public formattedRate = (entry): string => {
return this.formatNumber(entry.rate, {
currencyCode: entry.bill.currencyCode,
});
};
/**
* Formatted bill due date.
* @param entry
* @returns
*/
public formattedBillDueDate = (entry): string => {
return this.formatDate(entry.bill.dueDate);
};
/**
*
* @param entry
* @returns
*/
public transform = (entry) => {
return {
billId: entry.bill.id,
billNumber: entry.bill.billNumber,
referenceNumber: entry.bill.referenceNo,
billDate: entry.bill.billDate,
formattedBillDate: entry.formattedBillDate,
billDueDate: entry.bill.dueDate,
formattedBillDueDate: entry.formattedBillDueDate,
amount: entry.amount,
formattedAmount: entry.formattedAmount,
quantity: entry.quantity,
formattedQuantity: entry.formattedQuantity,
rate: entry.rate,
formattedRate: entry.formattedRate,
vendorDisplayName: entry.bill.vendor.displayName,
vendorCurrencyCode: entry.bill.vendor.currencyCode,
};
};
}