@resolveio/server-lib 9.6.29 → 9.6.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -788,7 +788,9 @@ function loadCronJobMethods(methodManager) {
788
788
  datedUniqueDates_1.forEach(function (date) {
789
789
  tmpHeaders_2[date.dateString] = date.dateString;
790
790
  });
791
- tmpHeaders_2['Totals'] = 'Totals';
791
+ report.fields_total.forEach(function (total) {
792
+ tmpHeaders_2['Totals - ' + total.type.toUpperCase()] = 'Totals - ' + common_1.toTitleCase(total.type);
793
+ });
792
794
  lines_2.push(tmpHeaders_2);
793
795
  var selectedFields_1 = common_1.deepCopy(report.fields_selected);
794
796
  //add custom
@@ -866,47 +868,24 @@ function loadCronJobMethods(methodManager) {
866
868
  }
867
869
  }
868
870
  if (reportTotals) {
869
- var fieldsSelectedArr = selectedFields_1.filter(function (a) { return a.show; });
870
- for (var j = 0; j < fieldsSelectedArr.length; j++) {
871
- var field = selectedFields_1.filter(function (a) { return a.show; })[j];
871
+ for (var i = 0; i < report.fields_total.length; i++) {
872
+ var total = report.fields_total[i];
872
873
  var tmp = {};
873
- for (var k = 0; k <= report.groups_row.length - 1; k++) {
874
- for (var l = 0; l <= report.fields_total.length - 1; l++) {
875
- var total = report.fields_total[l];
876
- if (j === 0) {
877
- tmp[total.type + k] = total.type + ' TOTALS';
878
- }
879
- else {
880
- tmp[total.type + k] = '';
881
- }
882
- }
883
- }
884
- tmp[field.columnName] = field.columnName;
885
- for (var k = 0; k <= datedData_1.length - 1; k++) {
886
- var result = datedData_1[k];
887
- for (var l = 0; l <= report.fields_total.length - 1; l++) {
888
- var total = report.fields_total[l];
889
- if (total.fields.includes(field.id)) {
890
- tmp['total' + j + ' ' + k + ' ' + l] = reportTotalDates_1[k][field.id];
891
- }
892
- else {
893
- tmp['total' + j + ' ' + k + ' ' + l] = '';
894
- }
895
- }
874
+ tmp[total.type] = common_1.toTitleCase(total.type) + ' Totals';
875
+ for (var j = 0; j < report.groups_row.length - 1; j++) {
876
+ tmp['total_gr_j'] = '';
896
877
  }
897
- for (var k = 0; k <= report.groups_row.length - 1; k++) {
898
- var groupRow = report.groups_row[k];
899
- for (var l = 0; l <= report.fields_total.length - 1; l++) {
900
- var total = report.fields_total[l];
901
- if (total.fields.includes(groupRow.id)) {
902
- tmp['totalreportTotals' + j + ' ' + k + ' ' + l] = reportTotals[total.id + groupRow.id];
903
- }
904
- }
878
+ tmp['Total - Fields'] = '';
879
+ for (var j = 0; j < datedData_1.length; j++) {
880
+ tmp['Total - Dated ' + j] = '';
905
881
  }
906
- for (var l = 0; l <= report.fields_total.length - 1; l++) {
907
- var total = report.fields_total[l];
882
+ for (var j = 0; j <= report.fields_selected.filter(function (a) { return a.show; }).length - 1; j++) {
883
+ var field = report.fields_selected.filter(function (a) { return a.show; })[j];
908
884
  if (total.fields.includes(field.id)) {
909
- tmp['totalreportTotals' + j + ' ' + l] = reportTotals[total.id + '_' + field.id];
885
+ tmp['totalreportTotals' + j] = reportTotals[total.id + '_' + field.id];
886
+ }
887
+ else {
888
+ tmp['totalreportTotals' + j] = '';
910
889
  }
911
890
  }
912
891
  lines_2.push(tmp);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/cron-jobs.ts"],"names":[],"mappings":"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","file":"cron-jobs.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { ReportBuilderReports } from '../collections/report-builder-report.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { mergeDeep, deepCopy } from '../util/common';\nimport { PaginationOptions } from '../models/pagination.model';\nimport * as moment from 'moment';\nimport * as XLSX from 'xlsx';\nimport * as Excel from 'exceljs';\nimport { Files } from '../collections/file.collection';\n\nexport function loadCronJobMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcronEmailMergedDocsCleanUp: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet files = await Files.find({$and: [{type: 'Email Merged Docs'}, {createdAt: {$lte: moment().subtract(1, 'day').toDate()}}]});\n\t\t\t\t\t\n\t\t\t\t\tif (files.length) {\n\t\t\t\t\t\tthis.callMethodInternal('deleteFiles');\n\t\t\t\t\t\tFiles.deleteMany({_id: {$in: files.map(a => a._id)}});\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\treportbuilderCronJob: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdata: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(data: Object) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet report = await ReportBuilderReports.findById(data['id_report']);\n\n\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\tlet dotPath = field.fieldPath.replace(/\\.\\$/g, '');\n\t\t\t\t\t\tlet fieldData = dotPath.split('.');\n\t\t\t\t\t\tfield.fieldPathObj = null;\n\t\t\t\t\t\tfor (let i = fieldData.length - 1; i >= 0; i--) {\n\t\t\t\t\t\t\tif (!field.fieldPathObj) {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: 1};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: field.fieldPathObj};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif ((report.fields_selected && report.fields_selected.length) || (report.groups_row && report.groups_row.length)) {\n\t\t\t\t\t\tlet fieldsObj = {};\n\n\t\t\t\t\t\tlet count = 0;\n\n\t\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\t\tif (field.collection_name === report.collection_root) {\n\t\t\t\t\t\t\t\tfieldsObj = mergeDeep(fieldsObj, field.fieldPathObj);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet sortIndex = report.fields_sort.findIndex(a => a.field === field['id']);\n\n\t\t\t\t\t\t\tif (sortIndex >= 0) {\n\t\t\t\t\t\t\t\treport.fields_sort[sortIndex].field = ('f_' + count);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfield['id'] = 'f_' + count;\n\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tlet sortObj = {};\n\t\t\t\t\t\tif (report.fields_sort.length) {\n\t\t\t\t\t\t\treport.fields_sort.forEach(sortField => {\n\t\t\t\t\t\t\t\tif (sortField.field.startsWith('gr_')) {\n\t\t\t\t\t\t\t\t\tsortObj['_id.' + sortField.field] = (sortField.order === 'asc' ? 1 : -1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tsortObj[sortField.field] = (sortField.order === 'asc' ? 1 : -1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsortObj = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet rootOptions: PaginationOptions = {\n\t\t\t\t\t\t\tlimit: 0,\n\t\t\t\t\t\t\tskip: 0,\n\t\t\t\t\t\t\tfields: fieldsObj,\n\t\t\t\t\t\t\tsort: sortObj\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet filters = [];\n\t\t\t\t\t\treport.fields_filter.forEach(filterAnd => {\n\t\t\t\t\t\t\tlet ors = [];\n\t\t\t\t\t\t\tfilterAnd.ors.filter(a => !a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\t\tif (filter.condition && filter.field && ((filter.value !== null && (!Array.isArray(filter.value) || filter.value.length)) || filter.condition === 'null' || filter.condition === 'nnull')) {\n\t\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tendDate.setHours(23);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setMinutes(59);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setSeconds(59);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setMilliseconds(999);\n\n\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field]: {'$gte': startDate}}, {[filter.field]: {'$lte': endDate}}]});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field]: {'$gte': filter.value}}, {[filter.field]: {'$lte': filter.highValue}}]});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (filter.condition === 'nnull') {\n\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$exists': true}});\n\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$ne': null}});\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$ne': ''}});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (filter.condition === 'null') {\n\t\t\t\t\t\t\t\t\t\tors.push({[filter.field]: {'$eq': null}});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'ne') {\n\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (and.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(and[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tlet or = [];\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tif (or.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$or: or});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(or[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field]: {['$' + filter.condition]: filter.value}});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (ors.length) {\n\t\t\t\t\t\t\t\tfilters.push({$or: ors});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.callMethodInternal('reportBuilderBuildTree', report.collection_root, (errCollTree, collectionTree) => {\n\t\t\t\t\t\t\tif (collectionTree) {\n\t\t\t\t\t\t\t\tcollectionTree.layers = [collectionTree];\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet treeLeaves = [];\n\t\t\t\t\t\t\t\tlet allLeaves = [];\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, treeLeaves);\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, allLeaves, true);\n\n\t\t\t\t\t\t\t\tlet filterArrayFields = [];\n\t\t\t\t\t\t\t\tlet filterArrays = [];\n\t\t\t\t\t\t\t\treport.fields_filter.forEach(filterAnd => {\n\t\t\t\t\t\t\t\t\tlet ors = [];\n\t\t\t\t\t\t\t\t\tfilterAnd.ors.filter(a => a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\t\t\t\tif (allLeaves.filter(a => a.fieldPath === filter.field)[0]) {\n\t\t\t\t\t\t\t\t\t\t\tfilterArrayFields.push(allLeaves.filter(a => a.fieldPath === filter.field)[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (filter.condition && filter.field && ((filter.value !== null && (!Array.isArray(filter.value) || filter.value.length)) || filter.condition === 'null' || filter.condition === 'nnull')) {\n\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setHours(23);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setMinutes(59);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setSeconds(59);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setMilliseconds(999);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field.replace(/\\.\\$/g, '')]: {'$gte': startDate}}, {[filter.field.replace(/\\.\\$/g, '')]: {'$lte': endDate}}]});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({$and: [{[filter.field.replace(/\\.\\$/g, '')]: {'$gte': filter.value}}, {[filter.field.replace(/\\.\\$/g, '')]: {'$lte': filter.highValue}}]});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.condition === 'nnull') {\n\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$exists': true}});\n\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$ne': null}});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$ne': ''}});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.condition === 'null') {\n\t\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field.replace(/\\.\\$/g, '')]: {'$eq': null}});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'ne') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (and.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(and[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet or = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (or.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$or: or});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(or[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: filter.value}});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (ors.length) {\n\t\t\t\t\t\t\t\t\t\tfilterArrays.push({$or: ors});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tthis.callMethodInternal('reportBuilderGetResults', report.type, report.collection_root, rootOptions, filters, filterArrays, filterArrayFields, report.fields_selected, report.fields_custom, report.groups_row, report.fields_total, report.fields_link, report.id_date_field || null, report.date_interval || null, report.group_type, (err, res) => {\n\t\t\t\t\t\t\t\t\tif (res && res[0]) {\n\t\t\t\t\t\t\t\t\t\tlet results = res[0].results;\n\t\t\t\t\t\t\t\t\t\tlet reportTotals = res[0].totals;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (report.type === 'List') {\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined ).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'True' : 'False';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'Yes' : 'No';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 1 : 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('L');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LT');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('MM/DD/YYYY h:mm A');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LLL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).toDate().getTime();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet lines: any = [];\n\n\t\t\t\t\t\t\t\t\t\t\tlet tmpHeaders = {};\n\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[group.id] = group.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(header => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[header.columnName] = header.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet wb = XLSX.utils.book_new();\n\n\t\t\t\t\t\t\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(result._id[group.id])) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id].join(',');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (group.treeItem.fieldType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id] ? (typeof(result._id[group.id]) === 'string' ? parseFloat(result._id[group.id].replace(/,/g, '').replace(/\\$/g, '')) : result._id[group.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id] || '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(header => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(result[header.id])) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id].join(',');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (header.fieldType === 'Number' || header.leafValueType === 'Count') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id] ? (typeof(result[header.id]) === 'string' ? parseFloat(result[header.id].replace(/,/g, '').replace(/\\$/g, '')) : result[header.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id] || '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet ws = XLSX.utils.json_to_sheet(lines);\n\t\t\t\t\t\t\t\t\t\t\tXLSX.utils.book_append_sheet(wb, ws, 'RB Data');\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet wbout = XLSX.write(wb, {bookType: 'xlsx', type: 'base64'});\n\n\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.xlsx',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: wbout,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tencoding: 'base64'\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (report.type === 'Group') {\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodifyDataTypeField(report, result, field, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet wb = new Excel.Workbook();\n\t\t\t\t\t\t\t\t\t\t\tlet ws = wb.addWorksheet('RB_1', {views: [{showGridLines: false}]});\n\t\t\t\t\t\t\t\t\t\t\twb.properties.date1904 = false;\n\t\t\t\t\t\t\t\t\t\t\twb.calcProperties.fullCalcOnLoad = true;\n\n\t\t\t\t\t\t\t\t\t\t\tlet currentRow = 1;\n\t\t\t\t\t\t\t\t\t\t\tlet row = ws.getRow(currentRow);\n\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).value = 'Report Name:';\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).value = report.report_name;\n\n\t\t\t\t\t\t\t\t\t\t\tcurrentRow += 1;\n\t\t\t\t\t\t\t\t\t\t\trow = ws.getRow(currentRow);\n\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).value = 'Run Date:';\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).value = moment().format('LLL');\n\n\t\t\t\t\t\t\t\t\t\t\tcurrentRow += 2;\n\n\t\t\t\t\t\t\t\t\t\t\tlet copy = deepCopy(results);\n\t\t\t\t\t\t\t\t\t\t\tlet widths = [];\n\t\t\t\t\t\t\t\t\t\t\tcopy.forEach(res => {\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentRow = tabGroupExcelRecursive(report, ws, currentRow, 1, res);\n\t\t\t\t\t\t\t\t\t\t\t\ttabGroupExcelWidthRecursive(report, 1, res, widths);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 1; i < ws.columns.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tws.columns[i].width = widths[i - 1];\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet now = new Date();\n\n\t\t\t\t\t\t\t\t\t\t\twb.xlsx.writeBuffer().then(buffer => {\n\t\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: 'Group_Report_' + report.report_name + '_' + now.getFullYear() + '_' + (now.getMonth() + 1) + '_' + now.getDate() + '.xlsx',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: buffer\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}).catch(err => console.log('Error writing excel export', err));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (report.type === 'Dated') {\n\t\t\t\t\t\t\t\t\t\t\tlet lines: any = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet tmpHeaders = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[group.id] = group.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[''] = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueGroups = [];\n\n\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\tresults.forEach(dataPt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (dataPt._id.month < 4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 7) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 10) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete dataPt._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = results.length - 1; i >= 1; i--) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet dataPt = results[i];\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id)).length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id))[0];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpData).filter(a => a !== '_id').forEach(key => {\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData[key] += dataPt[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet tmpResults = deepCopy(results);\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.day;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.week;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.quarter;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.year;\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueGroups.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\ttmpResults = deepCopy(results);\n\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueDates.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!result.year) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'No Date';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Daily') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month - 1, result.day, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM DD YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Weekly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().day('Monday').isoWeekYear(result.year).isoWeek(result.week).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateLast = moment().day('Sunday').isoWeekYear(result.year).isoWeek(result.week).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Week #' + result.week + ' ' + result.year + '(' + moment(result.date).format('MM/DD/YY') + ' - ' + moment(result.dateLast).format('MM/DD/YY') + ')';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Monthly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month - 1, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().quarter(result.quarter).year(result.year).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Q' + result.quarter + ' ' + result.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Yearly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = result.year.toString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates = datedUniqueDates.filter(a => !a.date).concat(datedUniqueDates.filter(a => a.date).sort((a, b) => a.date.getTime() - b.date.getTime()));\n\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalGroups = [];\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedData = [];\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = [];\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalDated = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalCnt = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalType = {};\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = true;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(date).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== date[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t\t})[0];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(result);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result).filter(a => a && a !== '_id').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpTotalType).forEach(totalKey => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (tmpTotalType[totalKey] === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = tmpTotalDated[totalKey] / tmpTotalCnt[totalKey];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = Math.round(tmpTotalDated[totalKey] * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalDates.push(tmpTotalDated);\n\t\t\t\t\t\t\t\t\t\t\t\tdatedData.push(tmpData);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalGroup = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet filteredData = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = (!Object.keys(group).length || group._id === null) ? false : true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString' && a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_total.forEach(total => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttotal.fields.forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (filteredData.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = filteredData.filter(a => a && a[field]).map(a => a[field]).reduce((a, b) => a + b, 0);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.type === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = Math.round(tmpTotalGroup[field] / filteredData.length * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalGroups.push(tmpTotalGroup);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[date.dateString] = date.dateString;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\ttmpHeaders['Totals'] = 'Totals';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlines.push(tmpHeaders);\n\n\t\t\t\t\t\t\t\t\t\t\tlet selectedFields = deepCopy(report.fields_selected);\n\t\t\t\t\t\t\t\t\t\t\t//add custom\n\t\t\t\t\t\t\t\t\t\t\treport.fields_custom.forEach(customField => {\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFields.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\tcollection_name : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnName : customField.columnName,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldType : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldTypeName : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tdistinctFieldValues : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldPath : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldPathName : 'Custom Field',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_collection : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_local_key : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_foreign_key : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_as : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tisLeaf : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tisActive : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdepth : 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafValueType : customField.leafValueType,\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafValueTypes : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafFormatType : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafFormatTypes : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tid : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tshow: true\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < datedUniqueGroups.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet group = datedUniqueGroups[i];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldsSelectedArr = selectedFields.filter(a => a.show);\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < fieldsSelectedArr.length; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = fieldsSelectedArr[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (j === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = group[groupRow.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[field.columnName] = field.columnName;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= datedData.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = datedData[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (result[i]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allLeaves.filter(a => a.id === field.id)[0] && allLeaves.filter(a => a.id === field.id)[0].fieldType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = result[i][field.id] ? (typeof(result[i][field.id]) === 'string' ? parseInt(result[i][field.id].replace(/,/g, '')) : result[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = result[i][field.id] ? (typeof(result[i][field.id]) === 'string' ? result[i][field.id].replace(/,/g, '') : result[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.fields_total.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = reportTotalGroups[i][field.id] ? (typeof(reportTotalGroups[i][field.id]) === 'string' ? parseInt(reportTotalGroups[i][field.id].replace(/,/g, '')) : reportTotalGroups[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tif (reportTotals) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldsSelectedArr = selectedFields.filter(a => a.show);\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < fieldsSelectedArr.length; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = selectedFields.filter(a => a.show)[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (j === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[total.type + k] = total.type + ' TOTALS';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[total.type + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[field.columnName] = field.columnName;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= datedData.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = datedData[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + j + ' ' + k + ' ' + l] = reportTotalDates[k][field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + j + ' ' + k + ' ' + l] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(groupRow.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j + ' ' + k + ' ' + l] = reportTotals[total.id + groupRow.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j + ' ' + l] = reportTotals[total.id + '_' + field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet newCSV = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlines.forEach((row, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(row).forEach((key, keyIndex) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (row[key] && typeof(row[key]) === 'string') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trow[key] = row[key].replace(new RegExp(/,/g), '');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += row[key];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (keyIndex < Object.keys(row).length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += ',';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (index < lines.length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += '\\r\\n';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.csv',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: newCSV\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Report Builder Cron Job - Report Builder Get Results', [\n\t\t\t\t\t\t\t\t\t\t\terr\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction getTreeLeaves(items, resArray, allowLookups = false) {\n\titems.forEach(item => {\n\t\tif (item.isLeaf) {\n\t\t\tresArray.push(item);\n\t\t}\n\t\telse {\n\t\t\tif (!item.lookup_collection || allowLookups) {\n\t\t\t\tgetTreeLeaves(item.children, resArray, allowLookups);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction modifyDataTypeField(report, result, field, index) {\n\tif (index < report.groups_row.length) {\n\t\tresult = result['gr_' + (index + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tmodifyDataTypeField(report, tDataRes, field, index + 1)\n\t\t});\n\t}\n\telse {\n\t\tif (Array.isArray(result[field.id])) {\n\t\t\tresult[field.id].forEach((arr, arrIndex) => {\n\t\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toLocaleString());\n\t\t\t\t}\n\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toString());\n\t\t\t\t}\n\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toLocaleString('en-US', { style: 'currency', currency: 'USD' }));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 'True' : 'False');\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 'Yes' : 'No');\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 1 : 0);\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('L'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LT'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('MM/DD/YYYY h:mm A'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LL'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LLL'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).toDate().getTime());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\tresult[field.id] = result[field.id].toLocaleString();\n\t\t\t}\n\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\tresult[field.id] = result[field.id].toString();\n\t\t\t}\n\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 'True' : 'False';\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 'Yes' : 'No';\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 1 : 0;\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('L');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LT');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('MM/DD/YYYY h:mm A');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LL');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LLL');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).toDate().getTime();\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction tabGroupExcelRecursive(report, ws: Excel.Worksheet, currentRow, level, result) {\n\tlet row = ws.getRow(currentRow);\n\n\tif (level < report.groups_row.length) {\n\t\trow.getCell(2).fill = {\n\t\t\tfgColor: {argb: report.groups_row[level - 1].fill_color ? report.groups_row[level - 1].fill_color.replace('#', '') : 'ffffff'},\n\t\t\ttype: 'pattern',\n\t\t\tpattern: 'solid'\n\t\t};\n\t\trow.getCell(2).font = {\n\t\t\tcolor: {argb: report.groups_row[level - 1].font_color ? report.groups_row[level - 1].font_color.replace('#', '') : '000000'},\n\t\t\tname: 'Arial',\n\t\t\tbold: true,\n\t\t\tsize: 14\n\t\t};\n\n\t\trow.getCell(2).value = report.groups_row[level - 1].columnName + ': ' + result._id['gr_' + level];\n\t\tws.mergeCells(row.getCell(2).$col$row + ':' + row.getCell(report.fields_selected.filter(a => a.show).length + 1).$col$row);\n\t\t\n\t\trow.getCell(2).border = {\n\t\t\ttop: {style:'thick'},\n\t\t\tleft: {style:'thick'},\n\t\t\tright: {style: 'thick'}\n\t\t};\n\n\t\tif (report.fields_total.length) {\n\t\t\treport.fields_total.forEach(total => {\n\t\t\t\tcurrentRow += 1;\n\t\t\t\trow = ws.getRow(currentRow);\n\n\t\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).value = field.columnName;\n\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\tsize: 10\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t\n\t\t// Totals\n\t\treport.fields_total.forEach(total => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[total.id + '_' + field.id];\n\n\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tsize: 10\n\t\t\t\t\t};\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tleft: {style:'thick'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'},\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t\n\t\tcurrentRow += 1;\n\n\t\tresult = result['gr_' + (level + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tcurrentRow = tabGroupExcelRecursive(report, ws, currentRow, level + 1, tDataRes);\n\t\t});\n\t}\n\telse {\n\t\trow.getCell(2).fill = {\n\t\t\tfgColor: {argb: report.groups_row[level - 1].fill_color ? report.groups_row[level - 1].fill_color.replace('#', '') : 'ffffff'},\n\t\t\ttype: 'pattern',\n\t\t\tpattern: 'solid'\n\t\t};\n\t\trow.getCell(2).font = {\n\t\t\tcolor: {argb: report.groups_row[level - 1].font_color ? report.groups_row[level - 1].font_color.replace('#', '') : '000000'},\n\t\t\tname: 'Arial',\n\t\t\tbold: true,\n\t\t\tsize: 12\n\t\t};\n\n\t\trow.getCell(2).value = report.groups_row[level - 1].columnName + ': ' + result._id['gr_' + level];\n\t\tws.mergeCells(row.getCell(2).$col$row + ':' + row.getCell(report.fields_selected.filter(a => a.show).length + 1).$col$row);\n\n\t\trow.getCell(2).border = {\n\t\t\ttop: {style:'thick'},\n\t\t\tleft: {style:'thick'},\n\t\t\tright: {style: 'thick'}\n\t\t};\n\n\t\tcurrentRow += 1;\n\t\trow = ws.getRow(currentRow);\n\t\t// Headers\n\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\trow.getCell(fieldIndex + 2).value = field.columnName;\n\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\tname: 'Arial',\n\t\t\t\tbold: true,\n\t\t\t\tsize: 10\n\t\t\t};\n\n\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t}\n\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t}\n\n\t\t\tif (fieldIndex === 0) {\n\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\t// Data\n\t\tresult['f_0'].forEach((res, resIndex) => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (field.fieldType === 'Number' && typeof(result[field.id][resIndex] === 'string') && result[field.id][resIndex]) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = parseFloat(result[field.id][resIndex].replace(new RegExp(/\\,/g), '').replace(new RegExp(/\\$/g), ''));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[field.id][resIndex];\n\t\t\t\t}\n\n\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t}\n\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t}\n\n\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\tname: 'Arial',\n\t\t\t\t\tsize: 10\n\t\t\t\t};\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t\n\t\t// Totals\n\t\treport.fields_total.forEach(total => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[total.id + '_' + field.id];\n\n\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tsize: 10\n\t\t\t\t\t};\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tleft: {style:'thick'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'},\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn currentRow + 1;\n}\n\nfunction tabGroupExcelWidthRecursive(report, level, result, cols) {\n\tif (level < report.groups_row.length) {\n\t\tresult = result['gr_' + (level + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tcols = tabGroupExcelWidthRecursive(report, level + 1, tDataRes, cols);\n\t\t});\n\t}\n\telse {\n\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\tif (Array.isArray(result[field.id])) {\n\t\t\t\tresult[field.id].forEach(res => {\n\t\t\t\t\tlet length = 10;\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tlength = res.length + 3;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!cols[fieldIndex]) {\n\t\t\t\t\t\tcols[fieldIndex] = Math.max(10, field.columnName.length);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (length > cols[fieldIndex]) {\n\t\t\t\t\t\tcols[fieldIndex] = length;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet res = result[field.id];\n\n\t\t\t\tif (res) {\n\t\t\t\t\tlength = res.length + 3;\n\t\t\t\t}\n\n\t\t\t\tif (!cols[fieldIndex]) {\n\t\t\t\t\tcols[fieldIndex] = Math.max(10, field.columnName.length);\n\t\t\t\t}\n\n\t\t\t\tif (length > cols[fieldIndex]) {\n\t\t\t\t\tcols[fieldIndex] = length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\treturn cols;\n}"]}
1
+ {"version":3,"sources":["../../src/methods/cron-jobs.ts"],"names":[],"mappings":"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","file":"cron-jobs.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { ReportBuilderReports } from '../collections/report-builder-report.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { mergeDeep, deepCopy, toTitleCase } from '../util/common';\nimport { PaginationOptions } from '../models/pagination.model';\nimport * as moment from 'moment';\nimport * as XLSX from 'xlsx';\nimport * as Excel from 'exceljs';\nimport { Files } from '../collections/file.collection';\n\nexport function loadCronJobMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcronEmailMergedDocsCleanUp: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet files = await Files.find({$and: [{type: 'Email Merged Docs'}, {createdAt: {$lte: moment().subtract(1, 'day').toDate()}}]});\n\t\t\t\t\t\n\t\t\t\t\tif (files.length) {\n\t\t\t\t\t\tthis.callMethodInternal('deleteFiles');\n\t\t\t\t\t\tFiles.deleteMany({_id: {$in: files.map(a => a._id)}});\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\treportbuilderCronJob: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdata: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(data: Object) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet report = await ReportBuilderReports.findById(data['id_report']);\n\n\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\tlet dotPath = field.fieldPath.replace(/\\.\\$/g, '');\n\t\t\t\t\t\tlet fieldData = dotPath.split('.');\n\t\t\t\t\t\tfield.fieldPathObj = null;\n\t\t\t\t\t\tfor (let i = fieldData.length - 1; i >= 0; i--) {\n\t\t\t\t\t\t\tif (!field.fieldPathObj) {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: 1};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: field.fieldPathObj};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif ((report.fields_selected && report.fields_selected.length) || (report.groups_row && report.groups_row.length)) {\n\t\t\t\t\t\tlet fieldsObj = {};\n\n\t\t\t\t\t\tlet count = 0;\n\n\t\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\t\tif (field.collection_name === report.collection_root) {\n\t\t\t\t\t\t\t\tfieldsObj = mergeDeep(fieldsObj, field.fieldPathObj);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet sortIndex = report.fields_sort.findIndex(a => a.field === field['id']);\n\n\t\t\t\t\t\t\tif (sortIndex >= 0) {\n\t\t\t\t\t\t\t\treport.fields_sort[sortIndex].field = ('f_' + count);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfield['id'] = 'f_' + count;\n\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tlet sortObj = {};\n\t\t\t\t\t\tif (report.fields_sort.length) {\n\t\t\t\t\t\t\treport.fields_sort.forEach(sortField => {\n\t\t\t\t\t\t\t\tif (sortField.field.startsWith('gr_')) {\n\t\t\t\t\t\t\t\t\tsortObj['_id.' + sortField.field] = (sortField.order === 'asc' ? 1 : -1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tsortObj[sortField.field] = (sortField.order === 'asc' ? 1 : -1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsortObj = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet rootOptions: PaginationOptions = {\n\t\t\t\t\t\t\tlimit: 0,\n\t\t\t\t\t\t\tskip: 0,\n\t\t\t\t\t\t\tfields: fieldsObj,\n\t\t\t\t\t\t\tsort: sortObj\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet filters = [];\n\t\t\t\t\t\treport.fields_filter.forEach(filterAnd => {\n\t\t\t\t\t\t\tlet ors = [];\n\t\t\t\t\t\t\tfilterAnd.ors.filter(a => !a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\t\tif (filter.condition && filter.field && ((filter.value !== null && (!Array.isArray(filter.value) || filter.value.length)) || filter.condition === 'null' || filter.condition === 'nnull')) {\n\t\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tendDate.setHours(23);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setMinutes(59);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setSeconds(59);\n\t\t\t\t\t\t\t\t\t\t\tendDate.setMilliseconds(999);\n\n\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field]: {'$gte': startDate}}, {[filter.field]: {'$lte': endDate}}]});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field]: {'$gte': filter.value}}, {[filter.field]: {'$lte': filter.highValue}}]});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (filter.condition === 'nnull') {\n\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$exists': true}});\n\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$ne': null}});\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {'$ne': ''}});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (filter.condition === 'null') {\n\t\t\t\t\t\t\t\t\t\tors.push({[filter.field]: {'$eq': null}});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'ne') {\n\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (and.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(and[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tlet or = [];\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tif (or.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$or: or});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(or[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field]: {['$' + filter.condition]: filter.value}});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (ors.length) {\n\t\t\t\t\t\t\t\tfilters.push({$or: ors});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.callMethodInternal('reportBuilderBuildTree', report.collection_root, (errCollTree, collectionTree) => {\n\t\t\t\t\t\t\tif (collectionTree) {\n\t\t\t\t\t\t\t\tcollectionTree.layers = [collectionTree];\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet treeLeaves = [];\n\t\t\t\t\t\t\t\tlet allLeaves = [];\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, treeLeaves);\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, allLeaves, true);\n\n\t\t\t\t\t\t\t\tlet filterArrayFields = [];\n\t\t\t\t\t\t\t\tlet filterArrays = [];\n\t\t\t\t\t\t\t\treport.fields_filter.forEach(filterAnd => {\n\t\t\t\t\t\t\t\t\tlet ors = [];\n\t\t\t\t\t\t\t\t\tfilterAnd.ors.filter(a => a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\t\t\t\tif (allLeaves.filter(a => a.fieldPath === filter.field)[0]) {\n\t\t\t\t\t\t\t\t\t\t\tfilterArrayFields.push(allLeaves.filter(a => a.fieldPath === filter.field)[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (filter.condition && filter.field && ((filter.value !== null && (!Array.isArray(filter.value) || filter.value.length)) || filter.condition === 'null' || filter.condition === 'nnull')) {\n\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setHours(23);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setMinutes(59);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setSeconds(59);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate.setMilliseconds(999);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: [{[filter.field.replace(/\\.\\$/g, '')]: {'$gte': startDate}}, {[filter.field.replace(/\\.\\$/g, '')]: {'$lte': endDate}}]});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({$and: [{[filter.field.replace(/\\.\\$/g, '')]: {'$gte': filter.value}}, {[filter.field.replace(/\\.\\$/g, '')]: {'$lte': filter.highValue}}]});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.condition === 'nnull') {\n\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$exists': true}});\n\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$ne': null}});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {'$ne': ''}});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (filter.condition === 'null') {\n\t\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field.replace(/\\.\\$/g, '')]: {'$eq': null}});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'ne') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet and = [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tand.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (and.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$and: and});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(and[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet or = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (or.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({$or: or});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tors.push(or[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tors.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: filter.value}});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (ors.length) {\n\t\t\t\t\t\t\t\t\t\tfilterArrays.push({$or: ors});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tthis.callMethodInternal('reportBuilderGetResults', report.type, report.collection_root, rootOptions, filters, filterArrays, filterArrayFields, report.fields_selected, report.fields_custom, report.groups_row, report.fields_total, report.fields_link, report.id_date_field || null, report.date_interval || null, report.group_type, (err, res) => {\n\t\t\t\t\t\t\t\t\tif (res && res[0]) {\n\t\t\t\t\t\t\t\t\t\tlet results = res[0].results;\n\t\t\t\t\t\t\t\t\t\tlet reportTotals = res[0].totals;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (report.type === 'List') {\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined ).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'True' : 'False';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'Yes' : 'No';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 1 : 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('L');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LT');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('MM/DD/YYYY h:mm A');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LLL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null && a[field.id] !== undefined).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).toDate().getTime();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet lines: any = [];\n\n\t\t\t\t\t\t\t\t\t\t\tlet tmpHeaders = {};\n\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[group.id] = group.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(header => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[header.columnName] = header.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet wb = XLSX.utils.book_new();\n\n\t\t\t\t\t\t\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(result._id[group.id])) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id].join(',');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (group.treeItem.fieldType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id] ? (typeof(result._id[group.id]) === 'string' ? parseFloat(result._id[group.id].replace(/,/g, '').replace(/\\$/g, '')) : result._id[group.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group.columnName] = result._id[group.id] || '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(header => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(result[header.id])) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id].join(',');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (header.fieldType === 'Number' || header.leafValueType === 'Count') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id] ? (typeof(result[header.id]) === 'string' ? parseFloat(result[header.id].replace(/,/g, '').replace(/\\$/g, '')) : result[header.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[header.columnName] = result[header.id] || '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet ws = XLSX.utils.json_to_sheet(lines);\n\t\t\t\t\t\t\t\t\t\t\tXLSX.utils.book_append_sheet(wb, ws, 'RB Data');\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet wbout = XLSX.write(wb, {bookType: 'xlsx', type: 'base64'});\n\n\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.xlsx',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: wbout,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tencoding: 'base64'\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (report.type === 'Group') {\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.filter(a => a.show).forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodifyDataTypeField(report, result, field, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tlet wb = new Excel.Workbook();\n\t\t\t\t\t\t\t\t\t\t\tlet ws = wb.addWorksheet('RB_1', {views: [{showGridLines: false}]});\n\t\t\t\t\t\t\t\t\t\t\twb.properties.date1904 = false;\n\t\t\t\t\t\t\t\t\t\t\twb.calcProperties.fullCalcOnLoad = true;\n\n\t\t\t\t\t\t\t\t\t\t\tlet currentRow = 1;\n\t\t\t\t\t\t\t\t\t\t\tlet row = ws.getRow(currentRow);\n\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).value = 'Report Name:';\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).value = report.report_name;\n\n\t\t\t\t\t\t\t\t\t\t\tcurrentRow += 1;\n\t\t\t\t\t\t\t\t\t\t\trow = ws.getRow(currentRow);\n\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).font = {\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\t\t\t\t\t\tsize: 14\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(2).value = 'Run Date:';\n\t\t\t\t\t\t\t\t\t\t\trow.getCell(4).value = moment().format('LLL');\n\n\t\t\t\t\t\t\t\t\t\t\tcurrentRow += 2;\n\n\t\t\t\t\t\t\t\t\t\t\tlet copy = deepCopy(results);\n\t\t\t\t\t\t\t\t\t\t\tlet widths = [];\n\t\t\t\t\t\t\t\t\t\t\tcopy.forEach(res => {\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentRow = tabGroupExcelRecursive(report, ws, currentRow, 1, res);\n\t\t\t\t\t\t\t\t\t\t\t\ttabGroupExcelWidthRecursive(report, 1, res, widths);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 1; i < ws.columns.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tws.columns[i].width = widths[i - 1];\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet now = new Date();\n\n\t\t\t\t\t\t\t\t\t\t\twb.xlsx.writeBuffer().then(buffer => {\n\t\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: 'Group_Report_' + report.report_name + '_' + now.getFullYear() + '_' + (now.getMonth() + 1) + '_' + now.getDate() + '.xlsx',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: buffer\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}).catch(err => console.log('Error writing excel export', err));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (report.type === 'Dated') {\n\t\t\t\t\t\t\t\t\t\t\tlet lines: any = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet tmpHeaders = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[group.id] = group.columnName;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[''] = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueGroups = [];\n\n\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\tresults.forEach(dataPt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (dataPt._id.month < 4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 7) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 10) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete dataPt._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = results.length - 1; i >= 1; i--) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet dataPt = results[i];\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id)).length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id))[0];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpData).filter(a => a !== '_id').forEach(key => {\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData[key] += dataPt[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet tmpResults = deepCopy(results);\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.day;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.week;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.quarter;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.year;\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueGroups.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\ttmpResults = deepCopy(results);\n\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueDates.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!result.year) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'No Date';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Daily') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month - 1, result.day, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM DD YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Weekly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().day('Monday').isoWeekYear(result.year).isoWeek(result.week).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateLast = moment().day('Sunday').isoWeekYear(result.year).isoWeek(result.week).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Week #' + result.week + ' ' + result.year + '(' + moment(result.date).format('MM/DD/YY') + ' - ' + moment(result.dateLast).format('MM/DD/YY') + ')';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Monthly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month - 1, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().quarter(result.quarter).year(result.year).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Q' + result.quarter + ' ' + result.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Yearly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = result.year.toString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates = datedUniqueDates.filter(a => !a.date).concat(datedUniqueDates.filter(a => a.date).sort((a, b) => a.date.getTime() - b.date.getTime()));\n\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalGroups = [];\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedData = [];\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = [];\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalDated = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalCnt = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalType = {};\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = true;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(date).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== date[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t\t})[0];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(result);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result).filter(a => a && a !== '_id').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpTotalType).forEach(totalKey => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (tmpTotalType[totalKey] === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = tmpTotalDated[totalKey] / tmpTotalCnt[totalKey];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = Math.round(tmpTotalDated[totalKey] * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalDates.push(tmpTotalDated);\n\t\t\t\t\t\t\t\t\t\t\t\tdatedData.push(tmpData);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalGroup = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet filteredData = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = (!Object.keys(group).length || group._id === null) ? false : true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString' && a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_total.forEach(total => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttotal.fields.forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (filteredData.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = filteredData.filter(a => a && a[field]).map(a => a[field]).reduce((a, b) => a + b, 0);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.type === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = Math.round(tmpTotalGroup[field] / filteredData.length * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalGroups.push(tmpTotalGroup);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[date.dateString] = date.dateString;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treport.fields_total.forEach(total => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders['Totals - ' + total.type.toUpperCase()] = 'Totals - ' + toTitleCase(total.type);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlines.push(tmpHeaders);\n\n\t\t\t\t\t\t\t\t\t\t\tlet selectedFields = deepCopy(report.fields_selected);\n\t\t\t\t\t\t\t\t\t\t\t//add custom\n\t\t\t\t\t\t\t\t\t\t\treport.fields_custom.forEach(customField => {\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFields.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\tcollection_name : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnName : customField.columnName,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldName : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldType : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldTypeName : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tdistinctFieldValues : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldPath : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfieldPathName : 'Custom Field',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_collection : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_local_key : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_foreign_key : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tlookup_as : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue : '',\n\t\t\t\t\t\t\t\t\t\t\t\t\tisLeaf : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tisActive : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected : true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdepth : 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafValueType : customField.leafValueType,\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafValueTypes : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafFormatType : 'Number',\n\t\t\t\t\t\t\t\t\t\t\t\t\tleafFormatTypes : [],\n\t\t\t\t\t\t\t\t\t\t\t\t\tid : customField.selFieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tshow: true\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < datedUniqueGroups.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet group = datedUniqueGroups[i];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldsSelectedArr = selectedFields.filter(a => a.show);\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < fieldsSelectedArr.length; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = fieldsSelectedArr[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (j === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = group[groupRow.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[field.columnName] = field.columnName;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= datedData.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = datedData[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (result[i]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allLeaves.filter(a => a.id === field.id)[0] && allLeaves.filter(a => a.id === field.id)[0].fieldType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = result[i][field.id] ? (typeof(result[i][field.id]) === 'string' ? parseInt(result[i][field.id].replace(/,/g, '')) : result[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = result[i][field.id] ? (typeof(result[i][field.id]) === 'string' ? result[i][field.id].replace(/,/g, '') : result[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.fields_total.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = reportTotalGroups[i][field.id] ? (typeof(reportTotalGroups[i][field.id]) === 'string' ? parseInt(reportTotalGroups[i][field.id].replace(/,/g, '')) : reportTotalGroups[i][field.id]) : '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tif (reportTotals) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < report.fields_total.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[i];\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[total.type] = toTitleCase(total.type) + ' Totals';\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < report.groups_row.length - 1; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total_gr_j'] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['Total - Fields'] = '';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j < datedData.length; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['Total - Dated ' + j] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j <= report.fields_selected.filter(a => a.show).length - 1; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = report.fields_selected.filter(a => a.show)[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j] = reportTotals[total.id + '_' + field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet newCSV = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlines.forEach((row, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(row).forEach((key, keyIndex) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (row[key] && typeof(row[key]) === 'string') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trow[key] = row[key].replace(new RegExp(/,/g), '');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += row[key];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (keyIndex < Object.keys(row).length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += ',';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (index < lines.length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += '\\r\\n';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['CLIENT_NAME'] + ' Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t<b>` + this.serverConfig['CLIENT_NAME'] + ` Automated Report</b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Report Name: </b>` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t<b>Prepared By: </b>` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this automated report.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.csv',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: newCSV\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Report Builder Cron Job - Report Builder Get Results', [\n\t\t\t\t\t\t\t\t\t\t\terr\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction getTreeLeaves(items, resArray, allowLookups = false) {\n\titems.forEach(item => {\n\t\tif (item.isLeaf) {\n\t\t\tresArray.push(item);\n\t\t}\n\t\telse {\n\t\t\tif (!item.lookup_collection || allowLookups) {\n\t\t\t\tgetTreeLeaves(item.children, resArray, allowLookups);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction modifyDataTypeField(report, result, field, index) {\n\tif (index < report.groups_row.length) {\n\t\tresult = result['gr_' + (index + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tmodifyDataTypeField(report, tDataRes, field, index + 1)\n\t\t});\n\t}\n\telse {\n\t\tif (Array.isArray(result[field.id])) {\n\t\t\tresult[field.id].forEach((arr, arrIndex) => {\n\t\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toLocaleString());\n\t\t\t\t}\n\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toString());\n\t\t\t\t}\n\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr.toLocaleString('en-US', { style: 'currency', currency: 'USD' }));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 'True' : 'False');\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 'Yes' : 'No');\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, arr === true ? 1 : 0);\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('L'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LT'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('MM/DD/YYYY h:mm A'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LL'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).format('LLL'));\n\t\t\t\t}\n\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\t\tresult[field.id].splice(arrIndex, 1, moment(arr).toDate().getTime());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tif ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Number') {\n\t\t\t\tresult[field.id] = result[field.id].toLocaleString();\n\t\t\t}\n\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\tresult[field.id] = result[field.id].toString();\n\t\t\t}\n\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 'True' : 'False';\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 'Yes' : 'No';\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\tresult[field.id] = result[field.id] === true ? 1 : 0;\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('L');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LT');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('MM/DD/YYYY h:mm A');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LL');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).format('LLL');\n\t\t\t}\n\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\tresult[field.id] = moment(result[field.id]).toDate().getTime();\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction tabGroupExcelRecursive(report, ws: Excel.Worksheet, currentRow, level, result) {\n\tlet row = ws.getRow(currentRow);\n\n\tif (level < report.groups_row.length) {\n\t\trow.getCell(2).fill = {\n\t\t\tfgColor: {argb: report.groups_row[level - 1].fill_color ? report.groups_row[level - 1].fill_color.replace('#', '') : 'ffffff'},\n\t\t\ttype: 'pattern',\n\t\t\tpattern: 'solid'\n\t\t};\n\t\trow.getCell(2).font = {\n\t\t\tcolor: {argb: report.groups_row[level - 1].font_color ? report.groups_row[level - 1].font_color.replace('#', '') : '000000'},\n\t\t\tname: 'Arial',\n\t\t\tbold: true,\n\t\t\tsize: 14\n\t\t};\n\n\t\trow.getCell(2).value = report.groups_row[level - 1].columnName + ': ' + result._id['gr_' + level];\n\t\tws.mergeCells(row.getCell(2).$col$row + ':' + row.getCell(report.fields_selected.filter(a => a.show).length + 1).$col$row);\n\t\t\n\t\trow.getCell(2).border = {\n\t\t\ttop: {style:'thick'},\n\t\t\tleft: {style:'thick'},\n\t\t\tright: {style: 'thick'}\n\t\t};\n\n\t\tif (report.fields_total.length) {\n\t\t\treport.fields_total.forEach(total => {\n\t\t\t\tcurrentRow += 1;\n\t\t\t\trow = ws.getRow(currentRow);\n\n\t\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).value = field.columnName;\n\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\tsize: 10\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t\n\t\t// Totals\n\t\treport.fields_total.forEach(total => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[total.id + '_' + field.id];\n\n\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tsize: 10\n\t\t\t\t\t};\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tleft: {style:'thick'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'},\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t\n\t\tcurrentRow += 1;\n\n\t\tresult = result['gr_' + (level + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tcurrentRow = tabGroupExcelRecursive(report, ws, currentRow, level + 1, tDataRes);\n\t\t});\n\t}\n\telse {\n\t\trow.getCell(2).fill = {\n\t\t\tfgColor: {argb: report.groups_row[level - 1].fill_color ? report.groups_row[level - 1].fill_color.replace('#', '') : 'ffffff'},\n\t\t\ttype: 'pattern',\n\t\t\tpattern: 'solid'\n\t\t};\n\t\trow.getCell(2).font = {\n\t\t\tcolor: {argb: report.groups_row[level - 1].font_color ? report.groups_row[level - 1].font_color.replace('#', '') : '000000'},\n\t\t\tname: 'Arial',\n\t\t\tbold: true,\n\t\t\tsize: 12\n\t\t};\n\n\t\trow.getCell(2).value = report.groups_row[level - 1].columnName + ': ' + result._id['gr_' + level];\n\t\tws.mergeCells(row.getCell(2).$col$row + ':' + row.getCell(report.fields_selected.filter(a => a.show).length + 1).$col$row);\n\n\t\trow.getCell(2).border = {\n\t\t\ttop: {style:'thick'},\n\t\t\tleft: {style:'thick'},\n\t\t\tright: {style: 'thick'}\n\t\t};\n\n\t\tcurrentRow += 1;\n\t\trow = ws.getRow(currentRow);\n\t\t// Headers\n\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\trow.getCell(fieldIndex + 2).value = field.columnName;\n\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\tname: 'Arial',\n\t\t\t\tbold: true,\n\t\t\t\tsize: 10\n\t\t\t};\n\n\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t}\n\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t}\n\n\t\t\tif (fieldIndex === 0) {\n\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\t// Data\n\t\tresult['f_0'].forEach((res, resIndex) => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (field.fieldType === 'Number' && typeof(result[field.id][resIndex] === 'string') && result[field.id][resIndex]) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = parseFloat(result[field.id][resIndex].replace(new RegExp(/\\,/g), '').replace(new RegExp(/\\$/g), ''));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[field.id][resIndex];\n\t\t\t\t}\n\n\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t}\n\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t}\n\n\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\tname: 'Arial',\n\t\t\t\t\tsize: 10\n\t\t\t\t};\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\tleft: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t\n\t\t// Totals\n\t\treport.fields_total.forEach(total => {\n\t\t\tcurrentRow += 1;\n\t\t\trow = ws.getRow(currentRow);\n\n\t\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).value = result[total.id + '_' + field.id];\n\n\t\t\t\t\trow.getCell(fieldIndex + 2).font = {\n\t\t\t\t\t\tname: 'Arial',\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tsize: 10\n\t\t\t\t\t};\n\n\t\t\t\t\tif (field.leafFormatType === 'Currency') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '\"$\"#,##0.00';\n\t\t\t\t\t}\n\t\t\t\t\telse if (field.leafFormatType === 'Number') {\n\t\t\t\t\t\trow.getCell(fieldIndex + 2).numFmt = '#,##0';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (fieldIndex === 0) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tleft: {style:'thick'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (fieldIndex === report.fields_selected.filter(a => a.show).length - 1) {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'},\n\t\t\t\t\t\tright: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trow.getCell(fieldIndex + 2).border = {\n\t\t\t\t\t\ttop: {style:'thin'},\n\t\t\t\t\t\tbottom: {style:'thick'}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn currentRow + 1;\n}\n\nfunction tabGroupExcelWidthRecursive(report, level, result, cols) {\n\tif (level < report.groups_row.length) {\n\t\tresult = result['gr_' + (level + 1)];\n\t\tresult.forEach((tDataRes, tIndex) => {\n\t\t\tcols = tabGroupExcelWidthRecursive(report, level + 1, tDataRes, cols);\n\t\t});\n\t}\n\telse {\n\t\treport.fields_selected.filter(a => a.show).forEach((field, fieldIndex) => {\n\t\t\tif (Array.isArray(result[field.id])) {\n\t\t\t\tresult[field.id].forEach(res => {\n\t\t\t\t\tlet length = 10;\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tlength = res.length + 3;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!cols[fieldIndex]) {\n\t\t\t\t\t\tcols[fieldIndex] = Math.max(10, field.columnName.length);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (length > cols[fieldIndex]) {\n\t\t\t\t\t\tcols[fieldIndex] = length;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet res = result[field.id];\n\n\t\t\t\tif (res) {\n\t\t\t\t\tlength = res.length + 3;\n\t\t\t\t}\n\n\t\t\t\tif (!cols[fieldIndex]) {\n\t\t\t\t\tcols[fieldIndex] = Math.max(10, field.columnName.length);\n\t\t\t\t}\n\n\t\t\t\tif (length > cols[fieldIndex]) {\n\t\t\t\t\tcols[fieldIndex] = length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\treturn cols;\n}"]}
@@ -271,7 +271,6 @@ function loadMonitorMethods(methodManager) {
271
271
  data: 0
272
272
  }
273
273
  });
274
- console.log(JSON.stringify(query, null, 2));
275
274
  return [4 /*yield*/, __1.ResolveIOServer.getMongoManager().collection(collection).aggregate(query, { allowDiskUse: true, readPreference: 'secondary' })];
276
275
  case 1:
277
276
  graphData = _c.sent();
@@ -288,9 +287,9 @@ function loadMonitorMethods(methodManager) {
288
287
  var _this = this;
289
288
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
290
289
  var groupId, groupDate, query, firstGroupId, graphData;
291
- var _a, _b, _c, _d, _e, _f, _g;
292
- return __generator(this, function (_h) {
293
- switch (_h.label) {
290
+ var _a, _b, _c, _d, _e;
291
+ return __generator(this, function (_f) {
292
+ switch (_f.label) {
294
293
  case 0:
295
294
  groupId = {};
296
295
  groupDate = {};
@@ -478,8 +477,6 @@ function loadMonitorMethods(methodManager) {
478
477
  groupDate[variable] = '$' + variable;
479
478
  groupDate['date'] = '$date';
480
479
  groupDate['data'] = '$data';
481
- }
482
- if (collection === 'monitor-mongos') {
483
480
  query.push({
484
481
  $group: (_a = {
485
482
  _id: firstGroupId
@@ -517,7 +514,7 @@ function loadMonitorMethods(methodManager) {
517
514
  '$sum': '$data.' + variable
518
515
  },
519
516
  _c.date = {
520
- $push: '$date'
517
+ $first: '$date'
521
518
  },
522
519
  _c.data = {
523
520
  $push: '$data'
@@ -546,47 +543,56 @@ function loadMonitorMethods(methodManager) {
546
543
  });
547
544
  }
548
545
  else {
549
- query.push({
550
- $group: (_f = {
551
- _id: groupId
552
- },
553
- _f[variable] = (_g = {},
554
- _g['$' + variableType] = '$' + variable,
555
- _g),
556
- _f)
557
- });
558
- query.push({
559
- $group: {
560
- _id: groupDate,
561
- data: {
562
- $push: { k: { $concat: ['$_id.client', ' - ', { $replaceAll: { input: '$_id.instance', find: ".", replacement: "-" } }] }, v: '$' + variable }
563
- }
564
- }
565
- });
566
- query.push({
567
- $addFields: {
568
- data: {
569
- $arrayToObject: '$data'
570
- }
571
- }
572
- });
573
- query.push({
574
- $replaceRoot: {
575
- newRoot: {
576
- $mergeObjects: ['$data', '$$ROOT']
577
- }
578
- }
579
- });
580
- query.push({
581
- $project: {
582
- data: 0
583
- }
584
- });
546
+ // query.push(
547
+ // {
548
+ // $group: {
549
+ // _id: groupId,
550
+ // [variable]: {
551
+ // ['$' + variableType]: '$' + variable
552
+ // }
553
+ // }
554
+ // }
555
+ // );
556
+ // query.push(
557
+ // {
558
+ // $group: {
559
+ // _id: groupDate,
560
+ // data: {
561
+ // $push: {k: {$concat: ['$_id.client', ' - ', {$replaceAll: { input: '$_id.instance', find: ".", replacement: "-" }}]}, v: '$' + variable}
562
+ // }
563
+ // }
564
+ // }
565
+ // );
566
+ // query.push(
567
+ // {
568
+ // $addFields: {
569
+ // data: {
570
+ // $arrayToObject: '$data'
571
+ // }
572
+ // }
573
+ // }
574
+ // );
575
+ // query.push(
576
+ // {
577
+ // $replaceRoot: {
578
+ // newRoot: {
579
+ // $mergeObjects: ['$data', '$$ROOT']
580
+ // }
581
+ // }
582
+ // }
583
+ // );
584
+ // query.push(
585
+ // {
586
+ // $project: {
587
+ // data: 0
588
+ // }
589
+ // }
590
+ // );
585
591
  }
586
592
  console.log(JSON.stringify(query, null, 2));
587
593
  return [4 /*yield*/, __1.ResolveIOServer.getMongoManager().collection(collection).aggregate(query, { allowDiskUse: true, readPreference: 'secondary' })];
588
594
  case 1:
589
- graphData = _h.sent();
595
+ graphData = _f.sent();
590
596
  resolve(graphData);
591
597
  return [2 /*return*/];
592
598
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/monitor.ts"],"names":[],"mappings":"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","file":"monitor.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorHTTPSOutbounds } from '../collections/monitor-https-outbound.collection';\nimport { MonitorHTTPSInbounds } from '../collections/monitor-https-inbound.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { ResolveIOServer } from '..';\nimport { deepCopy } from '../util/common';\n\nexport function loadMonitorMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n superadminMonitorGraphData: {\n function: function(date_start: Date, date_end: Date, collection: string, instance: string, client: string, graphInterval: string, variable: string, variableType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet groupId = {};\n\t\t\t\t\tlet groupDate = {};\n\n\t\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute',\n\t\t\t\t\t\t\t'second': '$_id.second'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day'\n\t\t\t\t\t\t};\n }\n\n let query = <any>[\n {\n $match: {\n $and: [\n {\n date: {$gte: date_start}\n },\n {\n date: {$lte: date_end}\n }\n ]\n }\n }\n ];\n\n if (client) {\n query[0]['$match'].$and.push({client: client});\n }\n\n if (instance) {\n query[0]['$match'].$and.push({instance: instance});\n\t\t\t\t\t}\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\t\t[variable]: variableType === 'count' ? {$sum: 1} : {\n\t\t\t\t\t\t\t\t\t['$' + variableType]: '$' + variable\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupDate,\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$push: {k: {$concat: ['$_id.client', ' - ', {$replaceAll: { input: '$_id.instance', find: \".\", replacement: \"-\" }}]}, v: '$' + variable}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$arrayToObject: '$data'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$replaceRoot: {\n\t\t\t\t\t\t\t\tnewRoot: {\n\t\t\t\t\t\t\t\t\t$mergeObjects: ['$data', '$$ROOT']\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$project: {\n\t\t\t\t\t\t\t\tdata: 0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tconsole.log(JSON.stringify(query, null, 2));\n\n\t\t\t\t\tlet graphData = await ResolveIOServer.getMongoManager().collection(collection).aggregate(query, {allowDiskUse: true, readPreference: 'secondary'});\n\n\t\t\t\t\tresolve(graphData);\n\t\t\t\t});\n\t\t\t},\n\t\t\tskipValidation: true\n },\n\t\tsuperadminMonitorTableData: {\n function: function(date_start: Date, date_end: Date, collection: string, instance: string, client: string, graphInterval: string, variable: string, variableType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet groupId = {};\n\t\t\t\t\tlet groupDate = {};\n\n\t\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute',\n\t\t\t\t\t\t\t'second': '$_id.second'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day'\n\t\t\t\t\t\t};\n }\n\n let query = <any>[\n {\n $match: {\n $and: [\n {\n date: {$gte: date_start}\n },\n {\n date: {$lte: date_end}\n }\n ]\n }\n }\n ];\n\n if (client) {\n query[0]['$match'].$and.push({client: client});\n }\n\n if (instance) {\n query[0]['$match'].$and.push({instance: instance});\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tlet firstGroupId = deepCopy(groupId);\n\t\t\t\t\t\n\t\t\t\t\tif (collection === 'monitor-mongos') {\n\t\t\t\t\t\tfirstGroupId[variable] = '$' + variable;\n\t\t\t\t\t\tgroupDate[variable] = '$' + variable;\n\t\t\t\t\t\tgroupDate['date'] = '$date';\n\t\t\t\t\t\tgroupDate['data'] = '$data';\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (collection === 'monitor-mongos') {\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: firstGroupId,\n\t\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t\t'$sum': 1\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[variable + '_name']: {\n\t\t\t\t\t\t\t\t\t\t$first: '$' + [variable]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\t\t$first: '$date'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tclient: {\n\t\t\t\t\t\t\t\t\t\t$first: '$client'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t$first: '$instance'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t[variable]: '$' + variable,\n\t\t\t\t\t\t\t\t\t[variable + '_name']: '$' + variable + '_name'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t'$sum': '$data.' + variable\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\t$push: '$date'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$push: '$data'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\t[variable]: groupDate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\tclient: '$_id.client',\n\t\t\t\t\t\t\t\t\t\tinstance: '$_id.instance'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t$push: '$' + variable\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t\t$sum: '$' + variable + '.' + variable\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t\t['$' + variableType]: '$' + variable\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: groupDate,\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t$push: {k: {$concat: ['$_id.client', ' - ', {$replaceAll: { input: '$_id.instance', find: \".\", replacement: \"-\" }}]}, v: '$' + variable}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t$arrayToObject: '$data'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$replaceRoot: {\n\t\t\t\t\t\t\t\t\tnewRoot: {\n\t\t\t\t\t\t\t\t\t\t$mergeObjects: ['$data', '$$ROOT']\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$project: {\n\t\t\t\t\t\t\t\t\tdata: 0\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(JSON.stringify(query, null, 2));\n\n\t\t\t\t\tlet graphData = await ResolveIOServer.getMongoManager().collection(collection).aggregate(query, {allowDiskUse: true, readPreference: 'secondary'});\n\n\t\t\t\t\tresolve(graphData);\n\t\t\t\t});\n\t\t\t},\n\t\t\tskipValidation: true\n },\n monitorMongos: {\n function: function() {\n return MonitorMongos.find({}, {readPreference: 'secondary'});\n }\n },\n monitorCPUs: {\n function: function() {\n return MonitorCPUs.find({}, {readPreference: 'secondary'});\n }\n },\n monitorMemorys: {\n function: function() {\n return MonitorMemorys.find({}, {readPreference: 'secondary'});\n }\n },\n monitorHTTPSOutbounds: {\n function: function() {\n return MonitorHTTPSOutbounds.find({}, {readPreference: 'secondary'});\n }\n },\n monitorHTTPSInbounds: {\n function: function() {\n return MonitorHTTPSInbounds.find({}, {readPreference: 'secondary'});\n }\n },\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/monitor.ts"],"names":[],"mappings":"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","file":"monitor.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { MonitorMongos } from '../collections/monitor-mongo.collection';\nimport { MonitorCPUs } from '../collections/monitor-cpu.collection';\nimport { MonitorHTTPSOutbounds } from '../collections/monitor-https-outbound.collection';\nimport { MonitorHTTPSInbounds } from '../collections/monitor-https-inbound.collection';\nimport { MonitorMemorys } from '../collections/monitor-memory.collection';\nimport { ResolveIOServer } from '..';\nimport { deepCopy } from '../util/common';\n\nexport function loadMonitorMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n superadminMonitorGraphData: {\n function: function(date_start: Date, date_end: Date, collection: string, instance: string, client: string, graphInterval: string, variable: string, variableType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet groupId = {};\n\t\t\t\t\tlet groupDate = {};\n\n\t\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute',\n\t\t\t\t\t\t\t'second': '$_id.second'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day'\n\t\t\t\t\t\t};\n }\n\n let query = <any>[\n {\n $match: {\n $and: [\n {\n date: {$gte: date_start}\n },\n {\n date: {$lte: date_end}\n }\n ]\n }\n }\n ];\n\n if (client) {\n query[0]['$match'].$and.push({client: client});\n }\n\n if (instance) {\n query[0]['$match'].$and.push({instance: instance});\n\t\t\t\t\t}\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\t\t[variable]: variableType === 'count' ? {$sum: 1} : {\n\t\t\t\t\t\t\t\t\t['$' + variableType]: '$' + variable\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupDate,\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$push: {k: {$concat: ['$_id.client', ' - ', {$replaceAll: { input: '$_id.instance', find: \".\", replacement: \"-\" }}]}, v: '$' + variable}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$arrayToObject: '$data'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$replaceRoot: {\n\t\t\t\t\t\t\t\tnewRoot: {\n\t\t\t\t\t\t\t\t\t$mergeObjects: ['$data', '$$ROOT']\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tquery.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$project: {\n\t\t\t\t\t\t\t\tdata: 0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\t// console.log(JSON.stringify(query, null, 2));\n\n\t\t\t\t\tlet graphData = await ResolveIOServer.getMongoManager().collection(collection).aggregate(query, {allowDiskUse: true, readPreference: 'secondary'});\n\n\t\t\t\t\tresolve(graphData);\n\t\t\t\t});\n\t\t\t},\n\t\t\tskipValidation: true\n },\n\t\tsuperadminMonitorTableData: {\n function: function(date_start: Date, date_end: Date, collection: string, instance: string, client: string, graphInterval: string, variable: string, variableType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet groupId = {};\n\t\t\t\t\tlet groupDate = {};\n\n\t\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute',\n\t\t\t\t\t\t\t'second': '$_id.second'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour',\n\t\t\t\t\t\t\t'minute': '$_id.minute'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day',\n\t\t\t\t\t\t\t'hour': '$_id.hour'\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tgroupId = {\n\t\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\t\tdate: '$date',\n\t\t\t\t\t\t\t\t\ttimezone: \"America/Chicago\"\n\t\t\t\t\t\t\t\t} \n },\n client: '$client',\n instance: '$instance'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgroupDate = {\n\t\t\t\t\t\t\t'year': '$_id.year',\n\t\t\t\t\t\t\t'month': '$_id.month',\n\t\t\t\t\t\t\t'day': '$_id.day'\n\t\t\t\t\t\t};\n }\n\n let query = <any>[\n {\n $match: {\n $and: [\n {\n date: {$gte: date_start}\n },\n {\n date: {$lte: date_end}\n }\n ]\n }\n }\n ];\n\n if (client) {\n query[0]['$match'].$and.push({client: client});\n }\n\n if (instance) {\n query[0]['$match'].$and.push({instance: instance});\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tlet firstGroupId = deepCopy(groupId);\n\t\t\t\t\t\n\t\t\t\t\tif (collection === 'monitor-mongos') {\n\t\t\t\t\t\tfirstGroupId[variable] = '$' + variable;\n\t\t\t\t\t\tgroupDate[variable] = '$' + variable;\n\t\t\t\t\t\tgroupDate['date'] = '$date';\n\t\t\t\t\t\tgroupDate['data'] = '$data';\n\t\t\t\t\t\t\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: firstGroupId,\n\t\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t\t'$sum': 1\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[variable + '_name']: {\n\t\t\t\t\t\t\t\t\t\t$first: '$' + [variable]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\t\t$first: '$date'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tclient: {\n\t\t\t\t\t\t\t\t\t\t$first: '$client'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t$first: '$instance'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t[variable]: '$' + variable,\n\t\t\t\t\t\t\t\t\t[variable + '_name']: '$' + variable + '_name'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t'$sum': '$data.' + variable\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\t$first: '$date'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t$push: '$data'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tquery.push({\n\t\t\t\t\t\t\t$addFields: {\n\t\t\t\t\t\t\t\t[variable]: groupDate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquery.push(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\tclient: '$_id.client',\n\t\t\t\t\t\t\t\t\t\tinstance: '$_id.instance'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t$push: '$' + variable\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[variable]: {\n\t\t\t\t\t\t\t\t\t\t$sum: '$' + variable + '.' + variable\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// query.push(\n\t\t\t\t\t\t// \t{\n\t\t\t\t\t\t// \t\t$group: {\n\t\t\t\t\t\t// \t\t\t_id: groupId,\n\t\t\t\t\t\t// \t\t\t[variable]: {\n\t\t\t\t\t\t// \t\t\t\t['$' + variableType]: '$' + variable\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// );\n\n\t\t\t\t\t\t// query.push(\n\t\t\t\t\t\t// \t{\n\t\t\t\t\t\t// \t\t$group: {\n\t\t\t\t\t\t// \t\t\t_id: groupDate,\n\t\t\t\t\t\t// \t\t\tdata: {\n\t\t\t\t\t\t// \t\t\t\t$push: {k: {$concat: ['$_id.client', ' - ', {$replaceAll: { input: '$_id.instance', find: \".\", replacement: \"-\" }}]}, v: '$' + variable}\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// );\n\n\t\t\t\t\t\t// query.push(\n\t\t\t\t\t\t// \t{\n\t\t\t\t\t\t// \t\t$addFields: {\n\t\t\t\t\t\t// \t\t\tdata: {\n\t\t\t\t\t\t// \t\t\t\t$arrayToObject: '$data'\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// );\n\n\t\t\t\t\t\t// query.push(\n\t\t\t\t\t\t// \t{\n\t\t\t\t\t\t// \t\t$replaceRoot: {\n\t\t\t\t\t\t// \t\t\tnewRoot: {\n\t\t\t\t\t\t// \t\t\t\t$mergeObjects: ['$data', '$$ROOT']\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// );\n\n\t\t\t\t\t\t// query.push(\n\t\t\t\t\t\t// \t{\n\t\t\t\t\t\t// \t\t$project: {\n\t\t\t\t\t\t// \t\t\tdata: 0\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// );\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(JSON.stringify(query, null, 2));\n\n\t\t\t\t\tlet graphData = await ResolveIOServer.getMongoManager().collection(collection).aggregate(query, {allowDiskUse: true, readPreference: 'secondary'});\n\n\t\t\t\t\tresolve(graphData);\n\t\t\t\t});\n\t\t\t},\n\t\t\tskipValidation: true\n },\n monitorMongos: {\n function: function() {\n return MonitorMongos.find({}, {readPreference: 'secondary'});\n }\n },\n monitorCPUs: {\n function: function() {\n return MonitorCPUs.find({}, {readPreference: 'secondary'});\n }\n },\n monitorMemorys: {\n function: function() {\n return MonitorMemorys.find({}, {readPreference: 'secondary'});\n }\n },\n monitorHTTPSOutbounds: {\n function: function() {\n return MonitorHTTPSOutbounds.find({}, {readPreference: 'secondary'});\n }\n },\n monitorHTTPSInbounds: {\n function: function() {\n return MonitorHTTPSInbounds.find({}, {readPreference: 'secondary'});\n }\n },\n\t});\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "9.6.29",
3
+ "version": "9.6.31",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {