UNPKG

@railzai/railz-visualizations

Version:
87 lines 3.05 kB
/*! * Accounting Data as a Service™ is the solution that makes sense of your business customers' financial data. * Built with Stencil * Copyright (c) FIS. */ import { pick } from 'lodash-es'; import { format, parseISO } from 'date-fns'; import Translations from '../../config/translations/en.json'; import { RVReportTypesUrlMapping, } from '../../types'; import { RequestServiceInstance } from '../../services/request'; import { errorLog } from '../../services/logger'; import { RAILZ_DATE_FORMAT } from '../../types/constants/date'; export const formatReconciliatedData = (data) => { let matchedItems = 0; let unmatchedItems = 0; let bankTransactionsValue = 0; let accountingTransactionsValue = 0; let reconciledTransactionsAbsValue = 0; if (data === null || data === void 0 ? void 0 : data.reports) { for (const reportItem of data.reports) { for (const dataItem of reportItem.data) { bankTransactionsValue += dataItem.bankTransactionsTotalValue ? dataItem.bankTransactionsTotalValue : 0; accountingTransactionsValue += dataItem.accountingTransactionsTotalValue ? dataItem.accountingTransactionsTotalValue : 0; if (dataItem['unreconciledBankTransactions']) { unmatchedItems += dataItem['unreconciledBankTransactions'].length; } if (dataItem['reconciledBankTransactions']) { for (const transaction of dataItem['reconciledBankTransactions']) { matchedItems++; reconciledTransactionsAbsValue += Math.abs(transaction.amount); } } } } } return { accuracyScore: Math.round((reconciledTransactionsAbsValue / bankTransactionsValue) * 100), bankBalance: bankTransactionsValue, accountingBalance: accountingTransactionsValue, matchedTransactions: matchedItems, totalTransations: unmatchedItems + matchedItems, }; }; /** * Make API call based on expected parameters for score data type */ export const getReportData = async ({ filter, }) => { let reportData; try { let startDate; let endDate; try { startDate = format(parseISO(filter.startDate), RAILZ_DATE_FORMAT); } catch (error) { errorLog(Translations.RV_ERROR_START_DATE); } try { endDate = format(parseISO(filter.endDate), RAILZ_DATE_FORMAT); } catch (error) { errorLog(Translations.RV_ERROR_END_DATE); } const allParameters = pick(Object.assign(Object.assign({}, filter), { startDate, endDate }), [ 'startDate', 'endDate', 'connectionUuid', ]); allParameters.offset = 0; allParameters.limit = 100; allParameters.orderBy = '-date'; reportData = await RequestServiceInstance.getReportData({ path: RVReportTypesUrlMapping[filter.reportType], filter: allParameters, }); } catch (error) { errorLog(Translations.RV_NOT_ABLE_TO_RETRIEVE_REPORT_DATA, error); reportData = { error }; } return reportData; }; //# sourceMappingURL=bank-reconciliation.utils.js.map