@accounter/server
Version:
60 lines • 2.33 kB
JavaScript
import { DocumentType } from '../../../shared/enums.js';
import { formatFinancialAmount, optionalDateToTimelessDateString } from '../../../shared/helpers/index.js';
import { DocumentsProvider } from '../providers/documents.provider.js';
export const documentType = documentRoot => {
let key = documentRoot.type[0].toUpperCase() + documentRoot.type.substring(1).toLocaleLowerCase();
if (key === 'Invoice_receipt') {
key = 'InvoiceReceipt';
}
else if (key === 'Credit_invoice') {
key = 'CreditInvoice';
}
return DocumentType[key];
};
export const commonDocumentsFields = {
id: documentRoot => documentRoot.id,
image: documentRoot => {
const url = documentRoot.image_url ?? null;
if (!url) {
console.log('no image url', documentRoot.image_url, documentRoot.id);
}
return url;
},
file: documentRoot => {
const url = documentRoot.file_url ?? null;
if (!url) {
console.log('no file url', documentRoot.file_url, documentRoot.id);
}
return url;
},
isReviewed: documentRoot => documentRoot.is_reviewed,
documentType,
};
export const commonFinancialDocumentsFields = {
serialNumber: documentRoot => documentRoot.serial_number ?? '',
date: documentRoot => optionalDateToTimelessDateString(documentRoot.date),
amount: documentRoot => formatFinancialAmount(documentRoot.total_amount, documentRoot.currency_code),
vat: documentRoot => documentRoot.vat_amount == null
? null
: formatFinancialAmount(documentRoot.vat_amount, documentRoot.currency_code),
vatReportDateOverride: documentRoot => optionalDateToTimelessDateString(documentRoot.vat_report_date_override),
noVatAmount: documentRoot => documentRoot.no_vat_amount ? Number(documentRoot.no_vat_amount) : null,
};
export const commonChargeFields = {
additionalDocuments: async (DbCharge, _, { injector }) => {
if (!DbCharge.id) {
return [];
}
try {
const docs = await injector
.get(DocumentsProvider)
.getDocumentsByChargeIdLoader.load(DbCharge.id);
return docs;
}
catch (e) {
console.error(e);
return [];
}
},
};
//# sourceMappingURL=common.js.map