import moment from 'moment'; import { ITableColumn, IDateRange, ITableColumnAccessor } from '@/interfaces'; export const FinancialTablePreviousPeriod = (Base) => class extends Base { getTotalPreviousPeriod = () => { return this.query.PPToDate; }; // ---------------------------- // # Columns // ---------------------------- /** * Retrive previous period total column. * @param {IDateRange} dateRange - * @returns {ITableColumn} */ protected getPreviousPeriodTotalColumn = ( dateRange?: IDateRange ): ITableColumn => { const PPDate = dateRange ? dateRange.toDate : this.getTotalPreviousPeriod(); const PPFormatted = moment(PPDate).format('YYYY-MM-DD'); return { key: 'previous_period', label: this.i18n.__(`financial_sheet.previoud_period_date`, { date: PPFormatted, }), }; }; /** * Retrieve previous period change column. * @returns {ITableColumn} */ protected getPreviousPeriodChangeColumn = (): ITableColumn => { return { key: 'previous_period_change', label: this.i18n.__('fianncial_sheet.previous_period_change'), }; }; /** * Retrieve previous period percentage column. * @returns {ITableColumn} */ protected getPreviousPeriodPercentageColumn = (): ITableColumn => { return { key: 'previous_period_percentage', label: this.i18n.__('financial_sheet.previous_period_percentage'), }; }; /** * Retrieves previous period total accessor. * @returns {ITableColumnAccessor} */ protected getPreviousPeriodTotalAccessor = (): ITableColumnAccessor => { return { key: 'previous_period', accessor: 'previousPeriod.formattedAmount', }; }; /** * Retrieves previous period change accessor. * @returns */ protected getPreviousPeriodChangeAccessor = () => { return { key: 'previous_period_change', accessor: 'previousPeriodChange.formattedAmount', }; }; /** * Retrieves previous period percentage accessor. * @returns {ITableColumnAccessor} */ protected getPreviousPeriodPercentageAccessor = (): ITableColumnAccessor => { return { key: 'previous_period_percentage', accessor: 'previousPeriodPercentage.formattedAmount', }; }; /** * Retrieves previous period total horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousPeriodTotalHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_period', accessor: `horizontalTotals[${index}].previousPeriod.formattedAmount`, }; }; /** * Retrieves previous period change horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousPeriodChangeHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_period_change', accessor: `horizontalTotals[${index}].previousPeriodChange.formattedAmount`, }; }; /** * Retrieves pervious period percentage horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousPeriodPercentageHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_period_percentage', accessor: `horizontalTotals[${index}].previousPeriodPercentage.formattedAmount`, }; }; };