{"version":3,"sources":["staffBillingSummary/StaffBillingSummaryColumns.tsx"],"names":["cellClassEnum","menuTabs","StaffBillingSummaryAggFuncs","params","getCustomAggFuncValue","getCustomDurationAggFuncValue","console","log","duration","length","hours","minutes","totalHours","totalMinutes","totalMinutesStr","forEach","value","split","parseInt","Math","trunc","toString","createDurationValueObject","varianceTotal","budgetValue","createValueObject","weekToDateBudgetBilledVariance","node","group","data","weekToDateBilled","weekToDateBudgetBilled","weekToDateBudgetCollectionVariance","weekToDateFeesCollected","weekToDateBudgetCollection","weekToDateBudgetProducedVariance","weekToDateFeesProduced","weekToDateBudgetProduced","monthToDateBudgetBilledVariance","monthToDateBilled","monthToDateBudgetBilled","monthToDateBudgetCollectionVariance","monthToDateFeesCollected","monthToDateBudgetCollection","yearToDateRealisation","yearToDateBilled","yearToDateFeesProduced","monthToDateCollection","yearToDateCollection","monthToDateRealisation","monthToDateFeesProduced","monthToDateBudgetProducedVariance","monthToDateBudgetProduced","yearToDateBudgetBilledVariance","yearToDateBudgetBilled","previousMonthYearToDateBudgetBilledVariance","previousMonthYearToDateBilled","previousMonthYearToDateBudgetBilled","previousMonthToMonthToDateBudgetBilledVariance","previousMonthToMonthToDateBilled","previousMonthToMonthToDateBudgetBilled","yearToDateBudgetCollectionVariance","yearToDateFeesCollected","yearToDateBudgetCollection","previousMonthYearToDateBudgetCollectionVariance","previousMonthYearToDateFeesCollected","previousMonthYearToDateBudgetCollection","previousMonthToMonthToDateBudgetCollectionVariance","previousMonthToMonthToDateFeesCollected","previousMonthToMonthToDateBudgetCollection","yearToDateBudgetProducedVariance","yearToDateBudgetProduced","previousMonthYearToDateBudgetProducedVariance","previousMonthYearToDateFeesProduced","previousMonthYearToDateBudgetProduced","previousMonthToMonthToDateBudgetProducedVariance","previousMonthToMonthToDateFeesProduced","previousMonthToMonthToDateBudgetProduced","weekToDateBillableHours","weekToDateNonBillableHours","weekToDateBudgetChargeableHours","weekToDateBudgetNonChargeableHours","monthToDateBillableHours","monthToDateNonBillableHours","monthToDateBudgetChargeableHours","monthToDateBudgetNonChargeableHours","yearToDateBillableHours","previousMonthYearToDateBillableHours","previousMonthToMonthToDateBillableHours","yearToDateNonBillableHours","previousMonthYearToDateNonBillableHours","previousMonthToMonthToDateNonBillableHours","yearToDateBudgetChargeableHours","previousMonthYearToDateBudgetChargeableHours","previousMonthToMonthToDateBudgetChargeableHours","yearToDateBudgetNonChargeableHours","previousMonthYearToDateBudgetNonChargeableHours","previousMonthToMonthToDateBudgetNonChargeableHours","fullFinancialYearBillableHoursBgt","fullFinancialYearNonBillableHoursBgt","percentageComparator","valueA","valueB","nodeA","nodeB","isInverted","parseFloat","String","replace","StaffBillingSummaryColumns","headerName","field","format","enableRowGroup","suppressSizeToFit","width","cellClass","stringType","Currency","aggFunc","enableValue","currencyType","Percentage","comparator","valueGetter","percentageType","Duration","durationType"],"mappings":"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","file":"static/js/main~988d2c5c.6614e996.chunk.js","sourcesContent":["// import { ActionCellRenderer } from './ActionCellRenderer';\r\nimport { RowNode, ValueGetterParams } from '@ag-grid-community/core';\r\nimport { DataType } from '../components/DataDisplay/ValueFormatter';\r\nimport { ColumnProperty } from '../matterSummary/MatterSummaryColumns';\r\n\r\nexport enum cellClassEnum {\r\n numberType = 'numberType',\r\n currencyType = 'currencyType',\r\n stringType = 'stringType',\r\n dateTimeType = 'dateTimeType',\r\n dateType = 'dateType',\r\n booleanType = 'booleanType',\r\n actionType = 'actionType',\r\n imageType = 'imageType',\r\n currencyWithoutDecimalsType = 'currencyWithoutDecimalsType',\r\n percentageType = 'percentageType',\r\n linkType = 'linkType',\r\n checkboxType = 'checkboxType',\r\n editorViewType = 'editorViewType',\r\n durationType = 'durationType',\r\n chipsType = 'chipsType',\r\n contextMenuStaffType = 'contextMenuStaffType',\r\n dueDateType = 'dueDateType',\r\n timeType = 'timeType',\r\n ratingType = 'ratingType',\r\n dateMonthYear = 'dateMonthYear'\r\n}\r\n\r\nvar menuTabs = ['filterMenuTab', 'generalMenuTab', 'columnsMenuTab'];\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const StaffBillingSummaryAggFuncs: any = {\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBudgetBilledVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBudgetCollectionVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBudgetProducedVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBudgetBilledVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBudgetCollectionVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBudgetProducedVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBudgetBilledVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBudgetCollectionVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBudgetProducedVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateNonBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBudgetChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'weekToDateBudgetNonChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateNonBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBudgetChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateBudgetNonChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateNonBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBudgetChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateBudgetNonChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateRealisation': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateRealisation': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'monthToDateCollection': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'yearToDateCollection': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'fullFinancialYearBillableHoursBgt': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'fullFinancialYearNonBillableHoursBgt': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBudgetBilledVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBudgetCollectionVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBudgetProducedVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateNonBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBudgetChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthYearToDateBudgetNonChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBudgetBilledVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBudgetCollectionVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBudgetProducedVariance': (params: any) => {\r\n return getCustomAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateNonBillableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBudgetChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n // tslint:disable-next-line: no-any\r\n 'previousMonthToMonthToDateBudgetNonChargeableHours': (params: any) => {\r\n return getCustomDurationAggFuncValue(params);\r\n },\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const getCustomDurationAggFuncValue = (params: any) => {\r\n // tslint:disable-next-line: no-console\r\n console.log('params', params);\r\n\r\n let duration = '';\r\n if (params && params.length > 0) { \r\n let splitTime: string[];\r\n var hours = 0;\r\n var minutes = 0;\r\n\r\n var totalHours = 0;\r\n var totalMinutes = 0;\r\n var totalMinutesStr = '';\r\n \r\n // tslint:disable-next-line: no-any\r\n params.forEach((value: any) => {\r\n if (value && value.value && value.value.length > 0) {\r\n splitTime = value.value.split(':');\r\n hours = hours + parseInt(splitTime[0], 10);\r\n minutes = minutes + parseInt(splitTime[1], 10);\r\n }\r\n });\r\n\r\n totalHours = hours + Math.trunc(minutes / 60);\r\n totalMinutes = minutes % 60;\r\n\r\n if (totalMinutes < 10) {\r\n totalMinutesStr = '0' + totalMinutes.toString();\r\n } else {\r\n totalMinutesStr = totalMinutes.toString();\r\n }\r\n\r\n duration = totalHours.toString() + ':' + totalMinutesStr;\r\n\r\n if (duration === '0:00') {\r\n duration = '';\r\n }\r\n \r\n return createDurationValueObject(duration); \r\n } \r\n return duration;\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const getCustomAggFuncValue = (params: any) => {\r\n let varianceTotal = 0;\r\n if (params && params.length > 0) {\r\n let budgetTotal = 0;\r\n let billedTotal = 0; \r\n // tslint:disable-next-line: no-any\r\n params.forEach((value: any) => {\r\n if (value) {\r\n billedTotal += value.value;\r\n budgetTotal += value.budgetValue;\r\n }\r\n });\r\n\r\n if (billedTotal > 0) {\r\n varianceTotal = (billedTotal / budgetTotal) * 100;\r\n }\r\n \r\n return createValueObject(billedTotal, budgetTotal); \r\n } \r\n return varianceTotal;\r\n};\r\n\r\nexport const createValueObject = (value: number, budgetValue: number) => {\r\n return {\r\n value: value,\r\n budgetValue: budgetValue,\r\n toString: function () {\r\n return (value && budgetValue ? (value / budgetValue) * 100 : 0).toString();\r\n },\r\n };\r\n};\r\n\r\nexport const createDurationValueObject = (value: string) => {\r\n return {\r\n value: value,\r\n toString: function () {\r\n return value;\r\n },\r\n };\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const weekToDateBudgetBilledVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.weekToDateBilled, params.data.weekToDateBudgetBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateBudgetCollectionVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.weekToDateFeesCollected, params.data.weekToDateBudgetCollection);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateBudgetProducedVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.weekToDateFeesProduced, params.data.weekToDateBudgetProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBudgetBilledVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.monthToDateBilled, params.data.monthToDateBudgetBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBudgetCollectionVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.monthToDateFeesCollected, params.data.monthToDateBudgetCollection);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateRealisation = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.yearToDateBilled, params.data.yearToDateFeesProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateCollection = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.monthToDateCollection, params.data.monthToDateBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateCollection = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.yearToDateCollection, params.data.yearToDateBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateRealisation = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.monthToDateBilled, params.data.monthToDateFeesProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBudgetProducedVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.monthToDateFeesProduced, params.data.monthToDateBudgetProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBudgetBilledVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.yearToDateBilled, params.data.yearToDateBudgetBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBudgetBilledVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthYearToDateBilled, params.data.previousMonthYearToDateBudgetBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBudgetBilledVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthToMonthToDateBilled, params.data.previousMonthToMonthToDateBudgetBilled);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBudgetCollectionVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.yearToDateFeesCollected, params.data.yearToDateBudgetCollection);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBudgetCollectionVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthYearToDateFeesCollected, params.data.previousMonthYearToDateBudgetCollection);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBudgetCollectionVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthToMonthToDateFeesCollected, params.data.previousMonthToMonthToDateBudgetCollection);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBudgetProducedVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.yearToDateFeesProduced, params.data.yearToDateBudgetProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBudgetProducedVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthYearToDateFeesProduced, params.data.previousMonthYearToDateBudgetProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBudgetProducedVariance = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createValueObject(params.data.previousMonthToMonthToDateFeesProduced, params.data.previousMonthToMonthToDateBudgetProduced);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.weekToDateBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateNonBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.weekToDateNonBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateBudgetChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.weekToDateBudgetChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const weekToDateBudgetNonChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.weekToDateBudgetNonChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.monthToDateBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateNonBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.monthToDateNonBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBudgetChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.monthToDateBudgetChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const monthToDateBudgetNonChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.monthToDateBudgetNonChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.yearToDateBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthYearToDateBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthToMonthToDateBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateNonBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.yearToDateNonBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateNonBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthYearToDateNonBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateNonBillableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthToMonthToDateNonBillableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBudgetChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.yearToDateBudgetChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBudgetChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthYearToDateBudgetChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBudgetChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthToMonthToDateBudgetChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const yearToDateBudgetNonChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.yearToDateBudgetNonChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthYearToDateBudgetNonChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthYearToDateBudgetNonChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const previousMonthToMonthToDateBudgetNonChargeableHours = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.previousMonthToMonthToDateBudgetNonChargeableHours);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const fullFinancialYearBillableHoursBgt = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.fullFinancialYearBillableHoursBgt);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const fullFinancialYearNonBillableHoursBgt = (params: ValueGetterParams) => {\r\n if (!params.node.group && params.data) {\r\n return createDurationValueObject(params.data.fullFinancialYearNonBillableHoursBgt);\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const percentageComparator = (valueA: any, valueB: any, nodeA: RowNode, nodeB: RowNode, isInverted: boolean) => {\r\n const percentageA = parseFloat(String(valueA).replace('%', ''));\r\n const percentageB = parseFloat(String(valueB).replace('%', ''));\r\n return percentageA - percentageB;\r\n};\r\n\r\nexport const StaffBillingSummaryColumns: Array = [\r\n {\r\n headerName: 'Staff Name',\r\n field: 'name',\r\n format: DataType.String, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 190,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'Email',\r\n field: 'email',\r\n format: DataType.String,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'Team',\r\n field: 'team',\r\n format: DataType.String,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'Department',\r\n field: 'department',\r\n format: DataType.String, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'Office',\r\n field: 'office',\r\n format: DataType.String, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'WTD Fees Billed',\r\n field: 'weekToDateBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 170,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Billed Bgt',\r\n field: 'weekToDateBudgetBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Billed Bgt %',\r\n field: 'weekToDateBudgetBilledVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBudgetBilledVariance',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBudgetBilledVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'WTD Fees W/Os',\r\n field: 'weekToDateWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Coll',\r\n field: 'weekToDateFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Coll Bgt',\r\n field: 'weekToDateBudgetCollection',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Coll Bgt %',\r\n field: 'weekToDateBudgetCollectionVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBudgetCollectionVariance',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBudgetCollectionVariance',\r\n cellClass: cellClassEnum.percentageType,\r\n },\r\n {\r\n headerName: 'WTD Debtor W/Os',\r\n field: 'weekToDateDebtorWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Produced',\r\n field: 'weekToDateFeesProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Produced Bgt',\r\n field: 'weekToDateBudgetProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'WTD Fees Produced Bgt %',\r\n field: 'weekToDateBudgetProducedVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 240,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBudgetProducedVariance',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBudgetProducedVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'WTD Billable Hrs',\r\n field: 'weekToDateBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBillableHours',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'WTD Non Billable Hrs',\r\n field: 'weekToDateNonBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateNonBillableHours',\r\n enableValue: true,\r\n valueGetter: 'weekToDateNonBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'WTD Billable Bgt Hrs',\r\n field: 'weekToDateBudgetChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBudgetChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBudgetChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'WTD Non Billable Bgt Hrs',\r\n field: 'weekToDateBudgetNonChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'weekToDateBudgetNonChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'weekToDateBudgetNonChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'MTD Fees Billed',\r\n field: 'monthToDateBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Billed Bgt',\r\n field: 'monthToDateBudgetBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Billed Bgt %',\r\n field: 'monthToDateBudgetBilledVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBudgetBilledVariance',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBudgetBilledVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'MTD Fees W/Os',\r\n field: 'monthToDateWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Coll',\r\n field: 'monthToDateFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Coll Bgt',\r\n field: 'monthToDateBudgetCollection',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Coll Bgt %',\r\n field: 'monthToDateBudgetCollectionVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBudgetCollectionVariance',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBudgetCollectionVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'MTD Debtor W/Os',\r\n field: 'monthToDateDebtorWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Produced',\r\n field: 'monthToDateFeesProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Produced Bgt',\r\n field: 'monthToDateBudgetProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'MTD Fees Produced Bgt %',\r\n field: 'monthToDateBudgetProducedVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBudgetProducedVariance',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBudgetProducedVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'MTD Billable Hrs',\r\n field: 'monthToDateBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBillableHours',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'MTD Non Billable Hrs',\r\n field: 'monthToDateNonBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateNonBillableHours',\r\n enableValue: true,\r\n valueGetter: 'monthToDateNonBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'MTD Billable Bgt Hrs',\r\n field: 'monthToDateBudgetChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBudgetChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBudgetChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'MTD Non Billable Bgt Hrs',\r\n field: 'monthToDateBudgetNonChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'monthToDateBudgetNonChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'monthToDateBudgetNonChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'YTD Fees Billed',\r\n field: 'yearToDateBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Billed Bgt',\r\n field: 'yearToDateBudgetBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Billed Bgt %',\r\n field: 'yearToDateBudgetBilledVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBudgetBilledVariance',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBudgetBilledVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'YTD Fees W/Os',\r\n field: 'yearToDateWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Coll',\r\n field: 'yearToDateFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Coll Bgt',\r\n field: 'yearToDateBudgetCollection',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Coll Bgt %',\r\n field: 'yearToDateBudgetCollectionVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBudgetCollectionVariance',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBudgetCollectionVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'YTD Debtor W/Os',\r\n field: 'yearToDateDebtorWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Produced',\r\n field: 'yearToDateFeesProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Produced Bgt',\r\n field: 'yearToDateBudgetProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'YTD Fees Produced Bgt %',\r\n field: 'yearToDateBudgetProducedVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBudgetProducedVariance',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBudgetProducedVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'YTD Billable Hrs',\r\n field: 'yearToDateBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBillableHours',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'YTD Non Billable Hrs',\r\n field: 'yearToDateNonBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateNonBillableHours',\r\n enableValue: true,\r\n valueGetter: 'yearToDateNonBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'YTD Billable Bgt Hrs',\r\n field: 'yearToDateBudgetChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBudgetChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBudgetChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'YTD Non Billable Bgt Hrs',\r\n field: 'yearToDateBudgetNonChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'yearToDateBudgetNonChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'yearToDateBudgetNonChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'MTD Realisation %',\r\n field: 'monthToDateRealisation',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n enableValue: true,\r\n cellClass: cellClassEnum.percentageType,\r\n aggFunc: 'monthToDateRealisation',\r\n valueGetter: 'monthToDateRealisation',\r\n\r\n },\r\n {\r\n headerName: 'YTD Realisation %',\r\n field: 'yearToDateRealisation',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n enableValue: true,\r\n cellClass: cellClassEnum.percentageType,\r\n aggFunc: 'yearToDateRealisation',\r\n valueGetter: 'yearToDateRealisation',\r\n\r\n },\r\n {\r\n headerName: 'YTD Collection %',\r\n field: 'yearToDateCollection',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n width: 210,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n menuTabs: menuTabs,\r\n enableValue: true,\r\n cellClass: cellClassEnum.percentageType,\r\n aggFunc: 'yearToDateCollection',\r\n valueGetter: 'yearToDateCollection',\r\n },\r\n {\r\n field: 'monthToDateCollection',\r\n headerName: 'MTD Collection %',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n width: 210,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.percentageType,\r\n enableValue: true,\r\n aggFunc: 'monthToDateCollection',\r\n valueGetter: 'monthToDateCollection',\r\n },\r\n {\r\n headerName: 'Full Year Fees Recorded Bgt',\r\n field: 'fullFinancialYearFeesRecordedBgt',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'Full Year Fees Billed Bgt',\r\n field: 'fullFinancialYearFeesBilledBgt',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'Full Year Fees Collected Bgt',\r\n field: 'fullFinancialYearFeesCollectedBgt',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'Full Year Billable Hrs Bgt',\r\n field: 'fullFinancialYearBillableHoursBgt',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'fullFinancialYearBillableHoursBgt',\r\n enableValue: true,\r\n valueGetter: 'fullFinancialYearBillableHoursBgt',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'Full Year Non-Billable Hrs Bgt',\r\n field: 'fullFinancialYearNonBillableHoursBgt',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'fullFinancialYearNonBillableHoursBgt',\r\n enableValue: true,\r\n valueGetter: 'fullFinancialYearNonBillableHoursBgt',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n // PYTD\r\n {\r\n headerName: 'PYTD Fees Billed',\r\n field: 'previousMonthYearToDateBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Billed Bgt',\r\n field: 'previousMonthYearToDateBudgetBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Produced Bgt %',\r\n field: 'previousMonthYearToDateBudgetBilledVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBudgetBilledVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBudgetBilledVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PYTD Fees W/Os',\r\n field: 'previousMonthYearToDateWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Coll',\r\n field: 'previousMonthYearToDateFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Coll Bgt',\r\n field: 'previousMonthYearToDateBudgetCollection',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Coll Bgt %',\r\n field: 'previousMonthYearToDateBudgetCollectionVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBudgetCollectionVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBudgetCollectionVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PYTD Debtor W/Os',\r\n field: 'previousMonthYearToDateDebtorWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Produced',\r\n field: 'previousMonthYearToDateFeesProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Produced Bgt',\r\n field: 'previousMonthYearToDateBudgetProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PYTD Fees Produced Bgt %',\r\n field: 'previousMonthYearToDateBudgetProducedVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBudgetProducedVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBudgetProducedVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PYTD Non Billable Hrs',\r\n field: 'previousMonthYearToDateBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBillableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PYTD Non Billable Hrs',\r\n field: 'previousMonthYearToDateNonBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateNonBillableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateNonBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PYTD Billable Bgt Hrs',\r\n field: 'previousMonthYearToDateBudgetChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBudgetChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBudgetChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PYTD Non Billable Bgt Hrs',\r\n field: 'previousMonthYearToDateBudgetNonChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthYearToDateBudgetNonChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthYearToDateBudgetNonChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n // PMTD\r\n {\r\n headerName: 'PMTD Fees Billed',\r\n field: 'previousMonthToMonthToDateBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Billed Bgt',\r\n field: 'previousMonthToMonthToDateBudgetBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Produced Bgt %',\r\n field: 'previousMonthToMonthToDateBudgetBilledVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBudgetBilledVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBudgetBilledVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PMTD Fees W/Os',\r\n field: 'previousMonthToMonthToDateWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Coll',\r\n field: 'previousMonthToMonthToDateFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Coll Bgt',\r\n field: 'previousMonthToMonthToDateBudgetCollection',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Coll Bgt %',\r\n field: 'previousMonthToMonthToDateBudgetCollectionVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 220,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBudgetCollectionVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBudgetCollectionVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PMTD Debtor W/Os',\r\n field: 'previousMonthToMonthToDateDebtorWriteOff',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 210,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Produced',\r\n field: 'previousMonthToMonthToDateFeesProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Produced Bgt',\r\n field: 'previousMonthToMonthToDateBudgetProduced',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'PMTD Fees Produced Bgt %',\r\n field: 'previousMonthToMonthToDateBudgetProducedVariance',\r\n format: DataType.Percentage,\r\n comparator: percentageComparator, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 230,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBudgetProducedVariance',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBudgetProducedVariance',\r\n cellClass: cellClassEnum.percentageType\r\n },\r\n {\r\n headerName: 'PMTD Billable Hrs',\r\n field: 'previousMonthToMonthToDateBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBillableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PMTD Non Billable Hrs',\r\n field: 'previousMonthToMonthToDateNonBillableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateNonBillableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateNonBillableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PMTD Billable Bgt Hrs',\r\n field: 'previousMonthToMonthToDateBudgetChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBudgetChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBudgetChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'PMTD Non Billable Bgt Hrs',\r\n field: 'previousMonthToMonthToDateBudgetNonChargeableHours',\r\n format: DataType.Duration,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'previousMonthToMonthToDateBudgetNonChargeableHours',\r\n enableValue: true,\r\n valueGetter: 'previousMonthToMonthToDateBudgetNonChargeableHours',\r\n cellClass: cellClassEnum.durationType\r\n },\r\n {\r\n headerName: 'Staff Classification',\r\n field: 'staffClassification',\r\n format: DataType.String, \r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 190,\r\n menuTabs: menuTabs,\r\n cellClass: cellClassEnum.stringType\r\n },\r\n {\r\n headerName: 'Bgt Remaining Fees Billed',\r\n field: 'budgetRemainingFeesBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'Bgt Remaining Recorded',\r\n field: 'budgetRemainingFeesRecorded',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'Bgt Remaining Fees Collected',\r\n field: 'budgetRemainingFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'FY Bgt Forecast Fees Billed',\r\n field: 'financialYearBudgetForecastFeesBilled',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'FY Bgt Forecast Fees Collected',\r\n field: 'financialYearBudgetForecastFeesCollected',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n },\r\n {\r\n headerName: 'FY Bgt Forecast Recorded',\r\n field: 'financialYearBudgetForecastFeesRecorded',\r\n format: DataType.Currency,\r\n enableRowGroup: true,\r\n suppressSizeToFit: true,\r\n width: 200,\r\n menuTabs: menuTabs,\r\n aggFunc: 'sum',\r\n enableValue: true,\r\n cellClass: cellClassEnum.currencyType\r\n }\r\n];\r\n"],"sourceRoot":""}