Built motion from commit c1aa34a0.|2.6.28
[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 _0xbf95=['SELECT','Empty','split','range','num','forEach','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','length','existsSync','mkdirSync','join','each','xlsx','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','%s.%s','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Failed','finally','exit','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','info','Setting','find','splitSizeXlsx','then','sequelize','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes'];(function(_0x28ca3c,_0xbb754c){var _0x59230d=function(_0x3325f0){while(--_0x3325f0){_0x28ca3c['push'](_0x28ca3c['shift']());}};_0x59230d(++_0xbb754c);}(_0xbf95,0x7d));var _0x5bf9=function(_0x47f4ee,_0x191fd4){_0x47f4ee=_0x47f4ee-0x0;var _0x1fc86b=_0xbf95[_0x47f4ee];return _0x1fc86b;};'use strict';var util=require('util');var path=require('path');var _=require(_0x5bf9('0x0'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x5bf9('0x1'));var zipdir=require(_0x5bf9('0x2'));var rimraf=require(_0x5bf9('0x3'));var db=require(_0x5bf9('0x4'))['db'];var dbH=require(_0x5bf9('0x4'))[_0x5bf9('0x5')];var logger=require(_0x5bf9('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x5bf9('0x7')][0x3];var PATH=process[_0x5bf9('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2d0282,_0x3f2e78){var _0x4e2579={'status':_0x2d0282};var _0x2842d3={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3f2e78){_0x4e2579[_0x5bf9('0x8')]=_0x3f2e78;}return db[_0x5bf9('0x9')]['update'](_0x4e2579,_0x2842d3);}function main(){var _0x40a691=0x1388;var _0x14cf34;logger[_0x5bf9('0xa')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'));return db[_0x5bf9('0xb')][_0x5bf9('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x5bf9('0xd')]})[_0x5bf9('0xe')](function(_0x99f4b1){if(_0x99f4b1){_0x14cf34=_0x99f4b1;_0x40a691=_0x14cf34['splitSizeXlsx']||0x1388;}})[_0x5bf9('0xe')](function(){return dbH[_0x5bf9('0xf')]['query'](util[_0x5bf9('0x10')](_0x5bf9('0x11'),QUERY),{'type':dbH['sequelize'][_0x5bf9('0x12')][_0x5bf9('0x13')]});})[_0x5bf9('0xe')](function(_0x16afb1){if(!_0x16afb1[0x0]['num']){return analyticExtractedReport(_0x5bf9('0x14'));}var _0x47a882=[];var _0x19c96a=0x0;if(_0x14cf34[_0x5bf9('0x15')]){if(_0x16afb1&&_0x16afb1['length']){var _0x4a0118=_[_0x5bf9('0x16')](_0x16afb1[0x0][_0x5bf9('0x17')]/_0x40a691);var _0x48f19b=Number['isInteger'](_0x16afb1[0x0]['num']/_0x40a691)?_0x16afb1[0x0][_0x5bf9('0x17')]%_0x40a691:0x0;_0x4a0118[_0x5bf9('0x18')](function(_0x11109c){if(_0x11109c>0x0){_0x19c96a+=_0x40a691;}_0x47a882[_0x5bf9('0x19')](dbH[_0x5bf9('0xf')][_0x5bf9('0x1a')](util[_0x5bf9('0x10')](_0x5bf9('0x1b'),QUERY,_0x40a691,_0x19c96a),{'type':dbH[_0x5bf9('0xf')]['QueryTypes'][_0x5bf9('0x13')]}));});if(_0x48f19b>0x0){_0x19c96a+=_0x40a691;_0x47a882['push'](dbH[_0x5bf9('0xf')]['query'](util['format'](_0x5bf9('0x1b'),QUERY,_0x48f19b,_0x19c96a),{'type':dbH[_0x5bf9('0xf')][_0x5bf9('0x12')][_0x5bf9('0x13')]}));}}}else{_0x47a882[_0x5bf9('0x19')](dbH[_0x5bf9('0xf')]['query'](QUERY,{'type':dbH[_0x5bf9('0xf')]['QueryTypes'][_0x5bf9('0x13')]}));}var _0x4104c6=path[_0x5bf9('0x1c')](PATH);var _0x384f4e=path[_0x5bf9('0x1d')](PATH,_0x5bf9('0x1e'));var _0x15c2ed=_0x14cf34[_0x5bf9('0x15')]&&_0x47a882[_0x5bf9('0x1f')]>0x1;var _0x11e4e4=[];if(!fs[_0x5bf9('0x20')](path['join'](_0x4104c6,_0x384f4e))&&_0x15c2ed){fs[_0x5bf9('0x21')](path[_0x5bf9('0x22')](_0x4104c6,_0x384f4e));}return BPromise[_0x5bf9('0x23')](_0x47a882,function(_0x13d136){_0x11e4e4[_0x5bf9('0x19')](_0x13d136);})[_0x5bf9('0xe')](function(){for(var _0x44dffe=0x0;_0x44dffe<_0x11e4e4['length'];_0x44dffe+=0x1){var _0x3a1e93;var _0x1df599=_0x11e4e4[_0x44dffe];if(_0x15c2ed){_0x3a1e93=path['join'](_0x4104c6,_0x384f4e,util[_0x5bf9('0x10')]('%s%d.%s',_0x384f4e,_0x44dffe,_0x5bf9('0x24')));}else{_0x3a1e93=path['join'](_0x4104c6,util[_0x5bf9('0x10')]('%s.%s',_0x384f4e,_0x5bf9('0x24')));}fs[_0x5bf9('0x25')](_0x3a1e93,json2xls(_0x1df599),'binary');}})[_0x5bf9('0xe')](function(){if(_0x15c2ed){return new Promise(function(_0x1a6fdb){zipdir(path[_0x5bf9('0x22')](_0x4104c6,_0x384f4e),{'saveTo':path[_0x5bf9('0x22')](_0x4104c6,util[_0x5bf9('0x10')]('%s.%s',_0x384f4e,_0x5bf9('0x26')))},function(_0x3cd923,_0x536246){rimraf(path[_0x5bf9('0x22')](_0x4104c6,_0x384f4e),function(){});_0x1a6fdb('zip\x20finished');});});}})['then'](function(){logger['info'](util[_0x5bf9('0x10')](_0x5bf9('0x27'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x5bf9('0x28'),_0x15c2ed?util[_0x5bf9('0x10')](_0x5bf9('0x29'),_0x384f4e,_0x15c2ed?_0x5bf9('0x26'):'xlsx'):null);});})[_0x5bf9('0x2a')](function(_0x454f85){logger[_0x5bf9('0xa')](util[_0x5bf9('0x10')](_0x5bf9('0x2b'),EXTRACTED_REPORT_ID,_0x5bf9('0x2c')),util['inspect'](_0x454f85,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x5bf9('0x2d'));})[_0x5bf9('0x2e')](function(){process[_0x5bf9('0x2f')](EXIT_CODE);});}main();