import moment from 'moment'; import { IDateRange, ITableColumn, ITableColumnAccessor } from '@/interfaces'; export const FinancialTablePreviousYear = (Base) => class extends Base { getTotalPreviousYear = () => { return this.query.PYToDate; }; // ------------------------------------ // # Columns. // ------------------------------------ /** * Retrive previous year total column. * @param {DateRange} previousYear - * @returns {ITableColumn} */ protected getPreviousYearTotalColumn = ( dateRange?: IDateRange ): ITableColumn => { const PYDate = dateRange ? dateRange.toDate : this.getTotalPreviousYear(); const PYFormatted = moment(PYDate).format('YYYY-MM-DD'); return { key: 'previous_year', label: this.i18n.__('financial_sheet.previous_year_date', { date: PYFormatted, }), }; }; /** * Retrieve previous year change column. * @returns {ITableColumn} */ protected getPreviousYearChangeColumn = (): ITableColumn => { return { key: 'previous_year_change', label: this.i18n.__('financial_sheet.previous_year_change'), }; }; /** * Retrieve previous year percentage column. * @returns {ITableColumn} */ protected getPreviousYearPercentageColumn = (): ITableColumn => { return { key: 'previous_year_percentage', label: this.i18n.__('financial_sheet.previous_year_percentage'), }; }; // ------------------------------------ // # Accessors. // ------------------------------------ /** * Retrieves previous year total column accessor. * @returns {ITableColumnAccessor} */ protected getPreviousYearTotalAccessor = (): ITableColumnAccessor => { return { key: 'previous_year', accessor: 'previousYear.formattedAmount', }; }; /** * Retrieves previous year change column accessor. * @returns {ITableColumnAccessor} */ protected getPreviousYearChangeAccessor = (): ITableColumnAccessor => { return { key: 'previous_year_change', accessor: 'previousYearChange.formattedAmount', }; }; /** * Retrieves previous year percentage column accessor. * @returns {ITableColumnAccessor} */ protected getPreviousYearPercentageAccessor = (): ITableColumnAccessor => { return { key: 'previous_year_percentage', accessor: 'previousYearPercentage.formattedAmount', }; }; /** * Retrieves previous year total horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousYearTotalHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_year', accessor: `horizontalTotals[${index}].previousYear.formattedAmount`, }; }; /** * Retrieves previous previous year change horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousYearChangeHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_year_change', accessor: `horizontalTotals[${index}].previousYearChange.formattedAmount`, }; }; /** * Retrieves previous year percentage horizontal column accessor. * @param {number} index * @returns {ITableColumnAccessor} */ protected getPreviousYearPercentageHorizAccessor = ( index: number ): ITableColumnAccessor => { return { key: 'previous_year_percentage', accessor: `horizontalTotals[${index}].previousYearPercentage.formattedAmount`, }; }; };