Built motion from commit 1fa89557.|2.6.10
[motion2.git] / server / api / analyticCustomReport / analyticCustomReport.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x5612=['show','params','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','table','function','replace','orderBy','joins','parse','parentKey','foreignTable','format','%s.%s\x20=\x20%s.%s','foreignKey','conditions','clone','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','COUNT(%s)','MIN(%s)','UNIX_TIMESTAMP(%s)','Sequelize','MetricId','metric','groupBy','DESC','alias','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','from','countTable','COUNT(*)','run','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','count','set','Content-Range','json','apply','save','update','then','destroy','get','UserProfileResource','stack','name','send','map','AnalyticCustomReport','rawAttributes','type','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','limit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows'];(function(_0x52e0ee,_0x52f7c1){var _0x32534c=function(_0x535d65){while(--_0x535d65){_0x52e0ee['push'](_0x52e0ee['shift']());}};_0x32534c(++_0x52f7c1);}(_0x5612,0x111));var _0x2561=function(_0x44851e,_0x98a2a6){_0x44851e=_0x44851e-0x0;var _0x370aa3=_0x5612[_0x44851e];return _0x370aa3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2561('0x0'));var zipdir=require(_0x2561('0x1'));var jsonpatch=require(_0x2561('0x2'));var rp=require(_0x2561('0x3'));var moment=require(_0x2561('0x4'));var BPromise=require(_0x2561('0x5'));var Mustache=require('mustache');var util=require(_0x2561('0x6'));var path=require(_0x2561('0x7'));var sox=require(_0x2561('0x8'));var csv=require(_0x2561('0x9'));var ejs=require(_0x2561('0xa'));var fs=require('fs');var fs_extra=require(_0x2561('0xb'));var _=require(_0x2561('0xc'));var squel=require(_0x2561('0xd'));var crypto=require(_0x2561('0xe'));var jsforce=require(_0x2561('0xf'));var deskjs=require(_0x2561('0x10'));var toCsv=require(_0x2561('0x9'));var querystring=require(_0x2561('0x11'));var Papa=require(_0x2561('0x12'));var Redis=require(_0x2561('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2561('0x14'));var hardwareService=require(_0x2561('0x15'));var logger=require(_0x2561('0x16'))(_0x2561('0x17'));var utils=require(_0x2561('0x18'));var config=require(_0x2561('0x19'));var licenseUtil=require(_0x2561('0x1a'));var db=require(_0x2561('0x1b'))['db'];var dbH=require(_0x2561('0x1b'))['dbH'];function respondWithStatusCode(_0x42ef34,_0x41be8f){_0x41be8f=_0x41be8f||0xcc;return function(_0x139fd8){if(_0x139fd8){return _0x42ef34[_0x2561('0x1c')](_0x41be8f);}return _0x42ef34['status'](_0x41be8f)[_0x2561('0x1d')]();};}function respondWithResult(_0x7b81b4,_0x40affe){_0x40affe=_0x40affe||0xc8;return function(_0x53fd8a){if(_0x53fd8a){return _0x7b81b4[_0x2561('0x1e')](_0x40affe)['json'](_0x53fd8a);}};}function respondWithFilteredResult(_0x40fb3f,_0x4dfa59){return function(_0xa5f27b){if(_0xa5f27b){var _0xd16cb5=typeof _0x4dfa59[_0x2561('0x1f')]==='undefined'&&typeof _0x4dfa59['limit']===_0x2561('0x20');var _0x182eb8=_0xa5f27b[_0x2561('0x21')];var _0x1f9747=_0xd16cb5?0x0:_0x4dfa59[_0x2561('0x1f')];var _0x130c90=_0xd16cb5?_0xa5f27b[_0x2561('0x21')]:_0x4dfa59['offset']+_0x4dfa59['limit'];var _0x272eb6;if(_0x130c90>=_0x182eb8){_0x130c90=_0x182eb8;_0x272eb6=0xc8;}else{_0x272eb6=0xce;}_0x40fb3f[_0x2561('0x1e')](_0x272eb6);return _0x40fb3f[_0x2561('0x22')](_0x2561('0x23'),_0x1f9747+'-'+_0x130c90+'/'+_0x182eb8)[_0x2561('0x24')](_0xa5f27b);}return null;};}function patchUpdates(_0xe7e251){return function(_0x1c43d4){try{jsonpatch[_0x2561('0x25')](_0x1c43d4,_0xe7e251,!![]);}catch(_0x9c85d7){return BPromise['reject'](_0x9c85d7);}return _0x1c43d4[_0x2561('0x26')]();};}function saveUpdates(_0x42061b,_0x845f37){return function(_0x1dc68d){if(_0x1dc68d){return _0x1dc68d[_0x2561('0x27')](_0x42061b)[_0x2561('0x28')](function(_0x48a1ca){return _0x48a1ca;});}return null;};}function removeEntity(_0x1482e2,_0x3b34f8){return function(_0x15f36b){if(_0x15f36b){return _0x15f36b[_0x2561('0x29')]()['then'](function(){var _0x215311=_0x15f36b[_0x2561('0x2a')]({'plain':!![]});var _0x3dfa4a='CustomReports';return db[_0x2561('0x2b')][_0x2561('0x29')]({'where':{'type':_0x3dfa4a,'resourceId':_0x215311['id']}})[_0x2561('0x28')](function(){return _0x15f36b;});})[_0x2561('0x28')](function(){_0x1482e2[_0x2561('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x14399b,_0x5b8c7f){return function(_0x5b2006){if(!_0x5b2006){_0x14399b[_0x2561('0x1c')](0x194);}return _0x5b2006;};}function handleError(_0x3b9e38,_0x4e96e0){_0x4e96e0=_0x4e96e0||0x1f4;return function(_0x224997){logger['error'](_0x224997[_0x2561('0x2c')]);if(_0x224997[_0x2561('0x2d')]){delete _0x224997[_0x2561('0x2d')];}_0x3b9e38[_0x2561('0x1e')](_0x4e96e0)[_0x2561('0x2e')](_0x224997);};}exports['index']=function(_0x38ed64,_0xf56e81){var _0x369dc3={},_0x4cbef4={},_0x207679={'count':0x0,'rows':[]};var _0x465d33=_[_0x2561('0x2f')](db[_0x2561('0x30')][_0x2561('0x31')],function(_0x18fb2c){return{'name':_0x18fb2c['fieldName'],'type':_0x18fb2c[_0x2561('0x32')]['key']};});_0x4cbef4['model']=_['map'](_0x465d33,'name');_0x4cbef4[_0x2561('0x33')]=_[_0x2561('0x34')](_0x38ed64[_0x2561('0x33')]);_0x4cbef4[_0x2561('0x35')]=_['intersection'](_0x4cbef4['model'],_0x4cbef4[_0x2561('0x33')]);_0x369dc3[_0x2561('0x36')]=_[_0x2561('0x37')](_0x4cbef4[_0x2561('0x38')],qs[_0x2561('0x39')](_0x38ed64[_0x2561('0x33')]['fields']));_0x369dc3['attributes']=_0x369dc3['attributes'][_0x2561('0x3a')]?_0x369dc3[_0x2561('0x36')]:_0x4cbef4[_0x2561('0x38')];if(!_0x38ed64['query'][_0x2561('0x3b')]('nolimit')){_0x369dc3[_0x2561('0x3c')]=qs[_0x2561('0x3c')](_0x38ed64[_0x2561('0x33')]['limit']);_0x369dc3[_0x2561('0x1f')]=qs[_0x2561('0x1f')](_0x38ed64['query']['offset']);}_0x369dc3[_0x2561('0x3d')]=qs[_0x2561('0x3e')](_0x38ed64[_0x2561('0x33')][_0x2561('0x3e')]);_0x369dc3[_0x2561('0x3f')]=qs[_0x2561('0x35')](_['pick'](_0x38ed64['query'],_0x4cbef4[_0x2561('0x35')]),_0x465d33);if(_0x38ed64[_0x2561('0x33')][_0x2561('0x40')]){_0x369dc3['where']=_[_0x2561('0x41')](_0x369dc3[_0x2561('0x3f')],{'$or':_['map'](_0x465d33,function(_0x2c144e){if(_0x2c144e[_0x2561('0x32')]!==_0x2561('0x42')){var _0x5779ff={};_0x5779ff[_0x2c144e[_0x2561('0x2d')]]={'$like':'%'+_0x38ed64[_0x2561('0x33')]['filter']+'%'};return _0x5779ff;}})});}_0x369dc3=_[_0x2561('0x41')]({},_0x369dc3,_0x38ed64[_0x2561('0x43')]);var _0x36ba5a={'where':_0x369dc3[_0x2561('0x3f')]};return db[_0x2561('0x30')][_0x2561('0x21')](_0x36ba5a)['then'](function(_0x56b52c){_0x207679['count']=_0x56b52c;if(_0x38ed64[_0x2561('0x33')][_0x2561('0x44')]){_0x369dc3['include']=[{'all':!![]}];}return db[_0x2561('0x30')][_0x2561('0x45')](_0x369dc3);})[_0x2561('0x28')](function(_0x47d860){_0x207679[_0x2561('0x46')]=_0x47d860;return _0x207679;})['then'](respondWithFilteredResult(_0xf56e81,_0x369dc3))['catch'](handleError(_0xf56e81,null));};exports[_0x2561('0x47')]=function(_0x1190e3,_0x279e3d){var _0x4eac9b={'raw':![],'where':{'id':_0x1190e3[_0x2561('0x48')]['id']}},_0x31c025={};_0x31c025['model']=_['keys'](db[_0x2561('0x30')][_0x2561('0x31')]);_0x31c025['query']=_[_0x2561('0x34')](_0x1190e3['query']);_0x31c025[_0x2561('0x35')]=_[_0x2561('0x37')](_0x31c025[_0x2561('0x38')],_0x31c025[_0x2561('0x33')]);_0x4eac9b['attributes']=_['intersection'](_0x31c025[_0x2561('0x38')],qs[_0x2561('0x39')](_0x1190e3[_0x2561('0x33')][_0x2561('0x39')]));_0x4eac9b[_0x2561('0x36')]=_0x4eac9b[_0x2561('0x36')][_0x2561('0x3a')]?_0x4eac9b['attributes']:_0x31c025[_0x2561('0x38')];if(_0x1190e3[_0x2561('0x33')]['includeAll']){_0x4eac9b[_0x2561('0x49')]=[{'all':!![]}];}_0x4eac9b=_[_0x2561('0x41')]({},_0x4eac9b,_0x1190e3[_0x2561('0x43')]);return db[_0x2561('0x30')][_0x2561('0x4a')](_0x4eac9b)['then'](handleEntityNotFound(_0x279e3d,null))[_0x2561('0x28')](respondWithResult(_0x279e3d,null))[_0x2561('0x4b')](handleError(_0x279e3d,null));};exports[_0x2561('0x4c')]=function(_0x9882f9,_0x106726){return db['AnalyticCustomReport']['create'](_0x9882f9[_0x2561('0x4d')],{})[_0x2561('0x28')](function(_0x2aa625){var _0x2766d7=_0x9882f9[_0x2561('0x4e')][_0x2561('0x2a')]({'plain':!![]});if(!_0x2766d7)throw new Error(_0x2561('0x4f'));if(_0x2766d7[_0x2561('0x50')]==='user'){var _0xe1e888=_0x2aa625[_0x2561('0x2a')]({'plain':!![]});var _0x43168c=_0x2561('0x51');return db[_0x2561('0x52')]['find']({'where':{'name':_0x43168c,'userProfileId':_0x2766d7[_0x2561('0x53')]},'raw':!![]})[_0x2561('0x28')](function(_0x1a3ec3){if(_0x1a3ec3&&_0x1a3ec3[_0x2561('0x54')]===0x0){return db[_0x2561('0x2b')][_0x2561('0x4c')]({'name':_0xe1e888[_0x2561('0x2d')],'resourceId':_0xe1e888['id'],'type':_0x2561('0x55'),'sectionId':_0x1a3ec3['id']},{})[_0x2561('0x28')](function(){return _0x2aa625;});}else{return _0x2aa625;}})[_0x2561('0x4b')](function(_0x3b47f5){logger[_0x2561('0x56')](_0x2561('0x57'),_0x3b47f5);throw _0x3b47f5;});}return _0x2aa625;})[_0x2561('0x28')](respondWithResult(_0x106726,0xc9))[_0x2561('0x4b')](handleError(_0x106726,null));};exports[_0x2561('0x27')]=function(_0x124cb2,_0x2f61db){if(_0x124cb2[_0x2561('0x4d')]['id']){delete _0x124cb2[_0x2561('0x4d')]['id'];}return db[_0x2561('0x30')][_0x2561('0x4a')]({'where':{'id':_0x124cb2[_0x2561('0x48')]['id']}})[_0x2561('0x28')](handleEntityNotFound(_0x2f61db,null))[_0x2561('0x28')](saveUpdates(_0x124cb2['body'],null))[_0x2561('0x28')](respondWithResult(_0x2f61db,null))[_0x2561('0x4b')](handleError(_0x2f61db,null));};exports['destroy']=function(_0x398df9,_0x161608){return db[_0x2561('0x30')][_0x2561('0x4a')]({'where':{'id':_0x398df9[_0x2561('0x48')]['id']}})[_0x2561('0x28')](handleEntityNotFound(_0x161608,null))[_0x2561('0x28')](removeEntity(_0x161608,null))[_0x2561('0x4b')](handleError(_0x161608,null));};exports[_0x2561('0x58')]=function(_0x3dfcdf,_0x3c2a4c){var _0x3739c1=0xa;var _0x16dd97=[_0x2561('0x59'),_0x2561('0x5a'),_0x2561('0x5b'),_0x2561('0x5c')];var _0x25bc7a={'SUM':_0x2561('0x5d'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x2561('0x5e'),'MAX':_0x2561('0x5f'),'MIN':'MIN(%s)','AVG':_0x2561('0x60'),'GROUP_CONCAT':_0x2561('0x61'),'GROUP_CONCAT ASC':_0x2561('0x62'),'GROUP_CONCAT DESC':_0x2561('0x63')};var _0x34a1f1={'SEC_TO_TIME':_0x2561('0x64'),'DATE':_0x2561('0x65'),'HOUR':_0x2561('0x66'),'ROUND':_0x2561('0x67'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x4b7cf1=function(_0x27c095){return!_[_0x2561('0x68')]([_0x2561('0x69'),_0x2561('0x6a'),_0x2561('0x6b'),_0x2561('0x6c')],_0x27c095);};var _0x35ad86=function(_0x9b0138){if(!_0x9b0138||!_0x9b0138['rules']['length']){return'';}for(var _0x1da4f4='(',_0x4954df=0x0;_0x4954df<_0x9b0138[_0x2561('0x6d')][_0x2561('0x3a')];_0x4954df+=0x1){_0x4954df>0x0&&(_0x1da4f4+='\x20'+_0x9b0138[_0x2561('0x6e')]+'\x20');_0x1da4f4+=_0x9b0138['rules'][_0x4954df]['group']?_0x35ad86(_0x9b0138[_0x2561('0x6d')][_0x4954df][_0x2561('0x6f')]):_0x9b0138[_0x2561('0x6d')][_0x4954df][_0x2561('0x70')]+'\x20'+_0x9b0138[_0x2561('0x6d')][_0x4954df][_0x2561('0x71')]+(_0x4b7cf1(_0x9b0138[_0x2561('0x6d')][_0x4954df][_0x2561('0x71')])?'\x20'+_0x9b0138[_0x2561('0x6d')][_0x4954df][_0x2561('0x72')]:'');}return _0x1da4f4+')';};var _0x2f4ce5={'where':{'id':_0x3dfcdf[_0x2561('0x48')]['id']}},_0x5c37cf,_0x2c9789,_0x57fc63,_0x56b29e,_0x1921a4;_0x2f4ce5=_['merge']({},_0x2f4ce5,_0x3dfcdf['options']);return db[_0x2561('0x30')][_0x2561('0x4a')](_0x2f4ce5)[_0x2561('0x28')](function(_0x29170c){if(_0x29170c){_0x5c37cf=_0x29170c;return _0x29170c[_0x2561('0x73')]();}return null;})[_0x2561('0x28')](function(_0x433b14){if(_0x433b14){if(!_0x433b14[_0x2561('0x3a')]){throw new db['Sequelize'][(_0x2561('0x74'))](_0x2561('0x75'),0x193);}_0x2c9789=_0x433b14;return db[_0x2561('0x76')][_0x2561('0x45')]({'raw':!![]});}return null;})['then'](function(_0x46772b){if(_0x46772b){_0x57fc63=_[_0x2561('0x77')](_0x46772b,'id');var _0x25017e;var _0x8cee07=squel[_0x2561('0x78')]();_0x8cee07['from'](_0x5c37cf[_0x2561('0x79')]);for(var _0x329409=0x0;_0x329409<_0x2c9789[_0x2561('0x3a')];_0x329409+=0x1){_0x25017e=_0x2c9789[_0x329409]['MetricId']?_0x57fc63[_0x2c9789[_0x329409]['MetricId']]['metric']:_0x2c9789[_0x329409]['field'];_0x25017e=_0x2c9789[_0x329409][_0x2561('0x7a')]?_['replace'](_0x25bc7a[_0x2c9789[_0x329409][_0x2561('0x7a')]],'%s',_0x25017e):_0x25017e;_0x25017e=_0x2c9789[_0x329409]['format']?_[_0x2561('0x7b')](_0x34a1f1[_0x2c9789[_0x329409]['format']],'%s',_0x25017e):_0x25017e;if(_0x2c9789[_0x329409]['groupBy']){_0x8cee07[_0x2561('0x6f')](_0x25017e);}_0x2c9789[_0x329409][_0x2561('0x7c')]&&_0x8cee07[_0x2561('0x3d')](_0x25017e,_0x2c9789[_0x329409][_0x2561('0x7c')]==='DESC'?![]:!![]);_0x8cee07[_0x2561('0x70')](_0x25017e,_0x2c9789[_0x329409]['alias']||_0x25017e);}if(_0x5c37cf['joins']){_0x5c37cf[_0x2561('0x7d')]=JSON[_0x2561('0x7e')](_0x5c37cf['joins']);for(var _0x15ea87=0x0;_0x15ea87<_0x5c37cf[_0x2561('0x7d')]['length'];_0x15ea87+=0x1){if(_0x5c37cf[_0x2561('0x7d')][_0x15ea87][_0x2561('0x32')]&&_[_0x2561('0x68')](_0x16dd97,_0x5c37cf[_0x2561('0x7d')][_0x15ea87][_0x2561('0x32')])&&_0x5c37cf[_0x2561('0x7d')][_0x15ea87][_0x2561('0x7f')]&&_0x5c37cf[_0x2561('0x7d')][_0x15ea87]['foreignTable']&&_0x5c37cf['joins'][_0x15ea87]['foreignKey']){_0x8cee07[_0x5c37cf[_0x2561('0x7d')][_0x15ea87]['type']](_0x5c37cf['joins'][_0x15ea87][_0x2561('0x80')],null,util[_0x2561('0x81')](_0x2561('0x82'),_0x5c37cf[_0x2561('0x79')],_0x5c37cf[_0x2561('0x7d')][_0x15ea87]['parentKey'],_0x5c37cf['joins'][_0x15ea87]['foreignTable'],_0x5c37cf['joins'][_0x15ea87][_0x2561('0x83')]));}}}if(_0x5c37cf[_0x2561('0x84')]){_0x5c37cf[_0x2561('0x84')]=JSON[_0x2561('0x7e')](_0x5c37cf[_0x2561('0x84')]);_0x8cee07['where'](_0x35ad86(_0x5c37cf[_0x2561('0x84')]['group']));}_0x1921a4=_0x8cee07[_0x2561('0x85')]();_0x8cee07[_0x2561('0x3c')](_0x3739c1);_0x8cee07[_0x2561('0x1f')](0x0);logger[_0x2561('0x86')](_0x2561('0x87'),_0x8cee07['toString']());return dbH[_0x2561('0x88')][_0x2561('0x33')](_0x8cee07[_0x2561('0x89')](),{'type':dbH['sequelize'][_0x2561('0x8a')][_0x2561('0x8b')]});}})[_0x2561('0x28')](respondWithResult(_0x3c2a4c,null))[_0x2561('0x4b')](handleError(_0x3c2a4c,null));};function runReport(_0x372e30,_0x162fd9,_0x2af54e){var _0x1ac406=_0x162fd9[_0x2561('0x2d')];var _0x22b015=0xa;var _0x26dce9=[_0x2561('0x59'),_0x2561('0x5a'),_0x2561('0x5b'),_0x2561('0x5c')];var _0x377bed={'SUM':_0x2561('0x5d'),'COUNT':_0x2561('0x8c'),'COUNT DISTINCT':_0x2561('0x5e'),'MAX':_0x2561('0x5f'),'MIN':_0x2561('0x8d'),'AVG':_0x2561('0x60'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x2561('0x62'),'GROUP_CONCAT DESC':_0x2561('0x63')};var _0x5c440e={'SEC_TO_TIME':_0x2561('0x64'),'DATE':_0x2561('0x65'),'HOUR':_0x2561('0x66'),'ROUND':_0x2561('0x67'),'UNIX_TIMESTAMP':_0x2561('0x8e')};var _0x224fdf=function(_0x37043e){return!_['includes'](['IS\x20NULL',_0x2561('0x6a'),_0x2561('0x6b'),_0x2561('0x6c')],_0x37043e);};var _0x19c70f=function(_0x3289c9){if(!_0x3289c9||!_0x3289c9[_0x2561('0x6d')][_0x2561('0x3a')]){return'';}for(var _0xf77aaa='(',_0x66aa67=0x0;_0x66aa67<_0x3289c9[_0x2561('0x6d')][_0x2561('0x3a')];_0x66aa67+=0x1){_0x66aa67>0x0&&(_0xf77aaa+='\x20'+_0x3289c9[_0x2561('0x6e')]+'\x20');_0xf77aaa+=_0x3289c9[_0x2561('0x6d')][_0x66aa67][_0x2561('0x6f')]?_0x19c70f(_0x3289c9[_0x2561('0x6d')][_0x66aa67]['group']):_0x3289c9[_0x2561('0x6d')][_0x66aa67]['field']+'\x20'+_0x3289c9['rules'][_0x66aa67][_0x2561('0x71')]+(_0x224fdf(_0x3289c9[_0x2561('0x6d')][_0x66aa67][_0x2561('0x71')])?'\x20'+_0x3289c9[_0x2561('0x6d')][_0x66aa67][_0x2561('0x72')]:'');}return _0xf77aaa+')';};var _0x3ecd19={'where':{'id':_0x372e30['id']}},_0x45600e,_0x15d539,_0x26d4b8,_0x1cff05,_0x227801;_0x3ecd19=_[_0x2561('0x41')]({},_0x3ecd19,_0x2af54e);return db[_0x2561('0x30')][_0x2561('0x4a')](_0x3ecd19)[_0x2561('0x28')](function(_0x40cc83){if(_0x40cc83){_0x45600e=_0x40cc83;return _0x40cc83[_0x2561('0x73')]();}return null;})['then'](function(_0xc1558a){if(_0xc1558a){if(!_0xc1558a['length']){throw new db[(_0x2561('0x8f'))][(_0x2561('0x74'))](_0x2561('0x75'),0x193);}_0x15d539=_0xc1558a;return db[_0x2561('0x76')][_0x2561('0x45')]({'raw':!![]});}return null;})[_0x2561('0x28')](function(_0x3eac55){if(_0x3eac55){_0x26d4b8=_[_0x2561('0x77')](_0x3eac55,'id');var _0x4ac543;var _0x5a5c5a=squel['select']();_0x5a5c5a['from'](_0x45600e[_0x2561('0x79')]);for(var _0x4ba132=0x0;_0x4ba132<_0x15d539[_0x2561('0x3a')];_0x4ba132+=0x1){_0x4ac543=_0x15d539[_0x4ba132][_0x2561('0x90')]?_0x26d4b8[_0x15d539[_0x4ba132][_0x2561('0x90')]][_0x2561('0x91')]:_0x15d539[_0x4ba132]['field'];_0x4ac543=_0x15d539[_0x4ba132]['function']?_['replace'](_0x377bed[_0x15d539[_0x4ba132][_0x2561('0x7a')]],'%s',_0x4ac543):_0x4ac543;_0x4ac543=_0x15d539[_0x4ba132][_0x2561('0x81')]?_[_0x2561('0x7b')](_0x5c440e[_0x15d539[_0x4ba132][_0x2561('0x81')]],'%s',_0x4ac543):_0x4ac543;if(_0x15d539[_0x4ba132][_0x2561('0x92')]){_0x5a5c5a[_0x2561('0x6f')](_0x4ac543);}_0x15d539[_0x4ba132][_0x2561('0x7c')]&&_0x5a5c5a[_0x2561('0x3d')](_0x4ac543,_0x15d539[_0x4ba132][_0x2561('0x7c')]===_0x2561('0x93')?![]:!![]);_0x5a5c5a[_0x2561('0x70')](_0x4ac543,_0x15d539[_0x4ba132][_0x2561('0x94')]||_0x4ac543);}if(_0x45600e['joins']){_0x45600e[_0x2561('0x7d')]=JSON['parse'](_0x45600e[_0x2561('0x7d')]);for(var _0x566334=0x0;_0x566334<_0x45600e['joins']['length'];_0x566334+=0x1){if(_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x32')]&&_[_0x2561('0x68')](_0x26dce9,_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x32')])&&_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x7f')]&&_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x80')]&&_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x83')]){_0x5a5c5a[_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x32')]](_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x80')],null,util[_0x2561('0x81')]('%s.%s\x20=\x20%s.%s',_0x45600e[_0x2561('0x79')],_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x7f')],_0x45600e['joins'][_0x566334][_0x2561('0x80')],_0x45600e[_0x2561('0x7d')][_0x566334][_0x2561('0x83')]));}}}if(_0x45600e['conditions']){_0x45600e[_0x2561('0x84')]=JSON['parse'](_0x45600e[_0x2561('0x84')]);_0x5a5c5a[_0x2561('0x3f')](_0x19c70f(_0x45600e['conditions'][_0x2561('0x6f')]));}_0x227801=_0x5a5c5a[_0x2561('0x85')]();_0x5a5c5a['limit'](_0x22b015);_0x5a5c5a[_0x2561('0x1f')](0x0);return;}})[_0x2561('0x28')](function(){if(_0x162fd9[_0x2561('0x95')]===_0x2561('0x96')){return null;}var _0xb897e5=_[_0x2561('0x41')](_0x162fd9,{'name':_0x162fd9[_0x2561('0x97')]||_0x162fd9[_0x2561('0x2d')]||_0x45600e[_0x2561('0x2d')],'basename':_0x1ac406,'savename':util[_0x2561('0x81')](_0x2561('0x98'),_0x162fd9[_0x2561('0x2d')]||_0x45600e[_0x2561('0x2d')],require(_0x2561('0x99'))[_0x2561('0x9a')](0x4),_0x162fd9[_0x2561('0x95')]||_0x2561('0x9b')),'reportId':_0x45600e['id'],'reportType':_0x2561('0x9c')});return db[_0x2561('0x9d')][_0x2561('0x4c')](_0xb897e5,{'raw':!![]});})[_0x2561('0x28')](function(_0x525083){if(_0x45600e[_0x2561('0x79')]===_0x2561('0x9e')){_0x227801[_0x2561('0x3f')](_0x45600e[_0x2561('0x79')]+_0x2561('0x9f'),_0x162fd9['startDate'],_0x162fd9[_0x2561('0xa0')]);}else{_0x227801[_0x2561('0x3f')](_0x45600e[_0x2561('0x79')]+_0x2561('0xa1'),_0x162fd9[_0x2561('0xa2')],_0x162fd9[_0x2561('0xa0')]);}if(_0x525083){logger['info'](_0x2561('0xa3'),_0x227801[_0x2561('0x89')]());require(_0x2561('0xa4'))[_0x2561('0xa5')](path['join'](__dirname,_0x2561('0xa6'),_0x525083[_0x2561('0x95')]),[_0x525083['id'],_0x227801[_0x2561('0x89')](),path['join'](__dirname,_0x2561('0xa7'),_0x525083['savename']),_0x1ac406]);return _0x525083;}else{var _0x538a98=squel[_0x2561('0x78')]();_0x538a98[_0x2561('0xa8')]('('+_0x227801['toString']()+')',_0x2561('0xa9'));_0x538a98['field'](_0x2561('0xaa'),'count');_0x227801[_0x2561('0x3c')](_0x162fd9[_0x2561('0x3c')]||_0x22b015);_0x227801[_0x2561('0x1f')](_0x162fd9[_0x2561('0x1f')]||0x0);return dbH['sequelize'][_0x2561('0x33')](_0x538a98[_0x2561('0x89')](),{'type':dbH[_0x2561('0x88')][_0x2561('0x8a')][_0x2561('0x8b')]})[_0x2561('0x28')](function(_0x2746f8){if(!_0x2746f8[_0x2561('0x3a')]){_0x1cff05=0x0;}else{_0x1cff05=_0x2746f8[0x0][_0x2561('0x21')]||0x0;}return dbH[_0x2561('0x88')]['query'](_0x227801['toString'](),{'type':dbH['sequelize'][_0x2561('0x8a')][_0x2561('0x8b')]});})[_0x2561('0x28')](function(_0xb49570){return{'rows':_0xb49570||[],'count':_0x1cff05};});}});}exports[_0x2561('0xab')]=function(_0x4570fd,_0x53d01b){return runReport(_0x4570fd[_0x2561('0x48')],_0x4570fd[_0x2561('0x33')],_0x4570fd['options'])[_0x2561('0x28')](respondWithResult(_0x53d01b,null))['catch'](handleError(_0x53d01b,null));};exports['runReport']=runReport;exports[_0x2561('0x33')]=function(_0x4ea7cb,_0x528e1c){var _0x2e6447=0xa;var _0x4ba0b3=['join',_0x2561('0x5a'),_0x2561('0x5b'),'cross_join'];var _0xf98137={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x2561('0x5e'),'MAX':_0x2561('0x5f'),'MIN':_0x2561('0x8d'),'AVG':_0x2561('0x60'),'GROUP_CONCAT':_0x2561('0x61'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x352ab2={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x2561('0x65'),'HOUR':_0x2561('0x66'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x2561('0x8e')};var _0x2ed421=function(_0x8a922a){return!_[_0x2561('0x68')](['IS\x20NULL',_0x2561('0x6a'),_0x2561('0x6b'),_0x2561('0x6c')],_0x8a922a);};var _0x4ac43b=function(_0x4dfd2c){if(!_0x4dfd2c||!_0x4dfd2c[_0x2561('0x6d')]['length']){return'';}for(var _0x3392aa='(',_0x480e55=0x0;_0x480e55<_0x4dfd2c[_0x2561('0x6d')][_0x2561('0x3a')];_0x480e55+=0x1){_0x480e55>0x0&&(_0x3392aa+='\x20'+_0x4dfd2c[_0x2561('0x6e')]+'\x20');_0x3392aa+=_0x4dfd2c['rules'][_0x480e55][_0x2561('0x6f')]?_0x4ac43b(_0x4dfd2c[_0x2561('0x6d')][_0x480e55]['group']):_0x4dfd2c['rules'][_0x480e55][_0x2561('0x70')]+'\x20'+_0x4dfd2c[_0x2561('0x6d')][_0x480e55][_0x2561('0x71')]+(_0x2ed421(_0x4dfd2c[_0x2561('0x6d')][_0x480e55]['condition'])?'\x20'+_0x4dfd2c[_0x2561('0x6d')][_0x480e55][_0x2561('0x72')]:'');}return _0x3392aa+')';};var _0x49a18c={'where':{'id':_0x4ea7cb['params']['id']}},_0x1f599b,_0x4ca4b5,_0x1332b8,_0x53605,_0x4daf8e;_0x49a18c=_['merge']({},_0x49a18c,_0x4ea7cb[_0x2561('0x43')]);return db[_0x2561('0x30')][_0x2561('0x4a')](_0x49a18c)[_0x2561('0x28')](function(_0x1471de){if(_0x1471de){_0x1f599b=_0x1471de;return _0x1471de[_0x2561('0x73')]();}return null;})['then'](function(_0x14dd9f){if(_0x14dd9f){if(!_0x14dd9f['length']){throw new db[(_0x2561('0x8f'))][(_0x2561('0x74'))](_0x2561('0x75'),0x193);}_0x4ca4b5=_0x14dd9f;return db[_0x2561('0x76')][_0x2561('0x45')]({'raw':!![]});}return null;})[_0x2561('0x28')](function(_0x2f6685){if(_0x2f6685){_0x1332b8=_[_0x2561('0x77')](_0x2f6685,'id');var _0x45f4a9;var _0x25098c=squel['select']();_0x25098c[_0x2561('0xa8')](_0x1f599b[_0x2561('0x79')]);for(var _0x7f3927=0x0;_0x7f3927<_0x4ca4b5[_0x2561('0x3a')];_0x7f3927+=0x1){_0x45f4a9=_0x4ca4b5[_0x7f3927][_0x2561('0x90')]?_0x1332b8[_0x4ca4b5[_0x7f3927][_0x2561('0x90')]][_0x2561('0x91')]:_0x4ca4b5[_0x7f3927]['field'];_0x45f4a9=_0x4ca4b5[_0x7f3927][_0x2561('0x7a')]?_['replace'](_0xf98137[_0x4ca4b5[_0x7f3927]['function']],'%s',_0x45f4a9):_0x45f4a9;_0x45f4a9=_0x4ca4b5[_0x7f3927][_0x2561('0x81')]?_[_0x2561('0x7b')](_0x352ab2[_0x4ca4b5[_0x7f3927][_0x2561('0x81')]],'%s',_0x45f4a9):_0x45f4a9;if(_0x4ca4b5[_0x7f3927]['groupBy']){_0x25098c[_0x2561('0x6f')](_0x45f4a9);}_0x4ca4b5[_0x7f3927][_0x2561('0x7c')]&&_0x25098c[_0x2561('0x3d')](_0x45f4a9,_0x4ca4b5[_0x7f3927]['orderBy']===_0x2561('0x93')?![]:!![]);_0x25098c['field'](_0x45f4a9,_0x4ca4b5[_0x7f3927][_0x2561('0x94')]||_0x45f4a9);}if(_0x1f599b[_0x2561('0x7d')]){_0x1f599b[_0x2561('0x7d')]=JSON[_0x2561('0x7e')](_0x1f599b[_0x2561('0x7d')]);for(var _0x3040e6=0x0;_0x3040e6<_0x1f599b[_0x2561('0x7d')][_0x2561('0x3a')];_0x3040e6+=0x1){if(_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x32')]&&_[_0x2561('0x68')](_0x4ba0b3,_0x1f599b[_0x2561('0x7d')][_0x3040e6]['type'])&&_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x7f')]&&_0x1f599b['joins'][_0x3040e6][_0x2561('0x80')]&&_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x83')]){_0x25098c[_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x32')]](_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x80')],null,util[_0x2561('0x81')](_0x2561('0x82'),_0x1f599b[_0x2561('0x79')],_0x1f599b['joins'][_0x3040e6][_0x2561('0x7f')],_0x1f599b[_0x2561('0x7d')][_0x3040e6][_0x2561('0x80')],_0x1f599b['joins'][_0x3040e6]['foreignKey']));}}}if(_0x1f599b[_0x2561('0x84')]){_0x1f599b['conditions']=JSON['parse'](_0x1f599b[_0x2561('0x84')]);_0x25098c[_0x2561('0x3f')](_0x4ac43b(_0x1f599b['conditions']['group']));}_0x4daf8e=_0x25098c[_0x2561('0x85')]();_0x25098c[_0x2561('0x3c')](_0x2e6447);_0x25098c[_0x2561('0x1f')](0x0);logger['debug'](_0x2561('0x87'),_0x25098c['toString']());return dbH[_0x2561('0x88')]['query'](_0x25098c['toString'](),{'type':dbH[_0x2561('0x88')][_0x2561('0x8a')][_0x2561('0x8b')]});}})[_0x2561('0x28')](function(){return{'sql':_0x4daf8e[_0x2561('0x89')]()};})['then'](respondWithResult(_0x528e1c,null))[_0x2561('0x4b')](handleError(_0x528e1c,null));};