Built motion from commit (unavailable).|2.2.4
[motion2.git] / server / components / export / xlsx.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 _0xeef1=['join','each','length','%s%d.%s','xlsx','%s.%s','binary','Completed','zip','catch','info','inspect','Failed','util','path','lodash','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','XLSX','Setting','find','split','splitSizeXlsx','then','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','num','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','existsSync'];(function(_0x503af,_0x29a735){var _0x48d20b=function(_0x4c651f){while(--_0x4c651f){_0x503af['push'](_0x503af['shift']());}};_0x48d20b(++_0x29a735);}(_0xeef1,0x199));var _0x1eef=function(_0x2e7f67,_0x3c3f8c){_0x2e7f67=_0x2e7f67-0x0;var _0x1f0485=_0xeef1[_0x2e7f67];return _0x1f0485;};'use strict';var util=require(_0x1eef('0x0'));var path=require(_0x1eef('0x1'));var _=require(_0x1eef('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x1eef('0x3'));var zipdir=require(_0x1eef('0x4'));var rimraf=require('rimraf');var db=require(_0x1eef('0x5'))['db'];var dbH=require(_0x1eef('0x5'))[_0x1eef('0x6')];var logger=require(_0x1eef('0x7'))(_0x1eef('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x1eef('0x9')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x1eef('0x9')][0x4];function analyticExtractedReport(_0x1dd89d,_0x1bb22a){var _0x3d92a4={'status':_0x1dd89d};var _0x4193cc={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1bb22a){_0x3d92a4[_0x1eef('0xa')]=_0x1bb22a;}return db[_0x1eef('0xb')][_0x1eef('0xc')](_0x3d92a4,_0x4193cc);}function main(){var _0x28c993=0x1388;var _0x4477da;logger['info'](util[_0x1eef('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1eef('0xe')));return db[_0x1eef('0xf')][_0x1eef('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1eef('0x11'),_0x1eef('0x12')]})[_0x1eef('0x13')](function(_0x54f251){if(_0x54f251){_0x4477da=_0x54f251;_0x28c993=_0x4477da[_0x1eef('0x12')]||0x1388;}})[_0x1eef('0x13')](function(){return dbH['sequelize']['query'](util[_0x1eef('0xd')](_0x1eef('0x14'),QUERY),{'type':dbH[_0x1eef('0x15')][_0x1eef('0x16')][_0x1eef('0x17')]});})['then'](function(_0x14a9bb){if(!_0x14a9bb[0x0][_0x1eef('0x18')]){return analyticExtractedReport('Empty');}var _0x11c7db=[];var _0x50d0d2=0x0;var _0x101466=!![];if(_0x4477da['split']){if(_0x14a9bb&&_0x14a9bb['length']){var _0x26b2eb=_0x14a9bb[0x0]['num']%(_0x50d0d2+_0x28c993);for(;_0x101466;_0x50d0d2+=_0x28c993,_0x26b2eb=_0x14a9bb[0x0]['num']%(_0x50d0d2+_0x28c993)){if(_0x26b2eb==0x0||_0x26b2eb==_0x14a9bb[0x0][_0x1eef('0x18')]){_0x101466=![];}_0x11c7db[_0x1eef('0x19')](dbH[_0x1eef('0x15')][_0x1eef('0x1a')](util[_0x1eef('0xd')](_0x1eef('0x1b'),QUERY,_0x28c993,_0x50d0d2),{'type':dbH[_0x1eef('0x15')]['QueryTypes']['SELECT']}));}}}else{_0x11c7db['push'](dbH['sequelize'][_0x1eef('0x1a')](QUERY,{'type':dbH[_0x1eef('0x15')]['QueryTypes'][_0x1eef('0x17')]}));}var _0x60116=path[_0x1eef('0x1c')](PATH);var _0x520c7e=path[_0x1eef('0x1d')](PATH,'.xlsx');var _0x406546=_0x4477da['split']&&_0x11c7db['length']>0x1;var _0x5dbebb=[];if(!fs[_0x1eef('0x1e')](path['join'](_0x60116,_0x520c7e))&&_0x406546){fs['mkdirSync'](path[_0x1eef('0x1f')](_0x60116,_0x520c7e));}return BPromise[_0x1eef('0x20')](_0x11c7db,function(_0x2b49aa){_0x5dbebb[_0x1eef('0x19')](_0x2b49aa);})[_0x1eef('0x13')](function(){for(var _0x146f83=0x0;_0x146f83<_0x5dbebb[_0x1eef('0x21')];_0x146f83+=0x1){var _0x464df7;var _0x25b910=_0x5dbebb[_0x146f83];if(_0x406546){_0x464df7=path[_0x1eef('0x1f')](_0x60116,_0x520c7e,util[_0x1eef('0xd')](_0x1eef('0x22'),_0x520c7e,_0x146f83,_0x1eef('0x23')));}else{_0x464df7=path[_0x1eef('0x1f')](_0x60116,util[_0x1eef('0xd')](_0x1eef('0x24'),_0x520c7e,'xlsx'));}fs['writeFileSync'](_0x464df7,json2xls(_0x25b910),_0x1eef('0x25'));}})['then'](function(){if(_0x406546){zipdir(path[_0x1eef('0x1f')](_0x60116,_0x520c7e),{'saveTo':path[_0x1eef('0x1f')](_0x60116,util[_0x1eef('0xd')](_0x1eef('0x24'),_0x520c7e,'zip'))},function(_0x3bb1ae,_0x1b95ea){});rimraf(path[_0x1eef('0x1f')](_0x60116,_0x520c7e),function(){});}})['then'](function(){logger['info'](util[_0x1eef('0xd')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x1eef('0xe')));return analyticExtractedReport(_0x1eef('0x26'),_0x406546?util[_0x1eef('0xd')](_0x1eef('0x24'),_0x520c7e,_0x406546?_0x1eef('0x27'):_0x1eef('0x23')):null);});})[_0x1eef('0x28')](function(_0x4933ef){logger[_0x1eef('0x29')](util[_0x1eef('0xd')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1eef('0xe')),util[_0x1eef('0x2a')](_0x4933ef,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x1eef('0x2b'));});}main();