Built motion from commit 10af8726.|2.6.34
[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 _0x2b70=['path','json2xls','bluebird','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','XLSX','Setting','split','splitSizeXlsx','then','sequelize','num','length','range','isInteger','forEach','QueryTypes','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','push','query','dirname','basename','.xlsx','existsSync','join','mkdirSync','xlsx','%s.%s','writeFileSync','binary','zip','zip\x20finished','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit'];(function(_0x2c02b1,_0x46e653){var _0x333d21=function(_0x54a38c){while(--_0x54a38c){_0x2c02b1['push'](_0x2c02b1['shift']());}};_0x333d21(++_0x46e653);}(_0x2b70,0xc0));var _0x02b7=function(_0x5637a7,_0x3be357){_0x5637a7=_0x5637a7-0x0;var _0x2646b3=_0x2b70[_0x5637a7];return _0x2646b3;};'use strict';var util=require('util');var path=require(_0x02b7('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x02b7('0x1'));var BPromise=require(_0x02b7('0x2'));var zipdir=require('zip-dir');var rimraf=require(_0x02b7('0x3'));var db=require('../../mysqldb')['db'];var dbH=require(_0x02b7('0x4'))['dbH'];var logger=require(_0x02b7('0x5'))(_0x02b7('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0x02b7('0x7')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x02b7('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2545d4,_0x36e345){var _0x4de7d1={'status':_0x2545d4};var _0x478e3d={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x36e345){_0x4de7d1[_0x02b7('0x8')]=_0x36e345;}return db[_0x02b7('0x9')][_0x02b7('0xa')](_0x4de7d1,_0x478e3d);}function main(){var _0x9ad044=0x1388;var _0x12e3f6;logger[_0x02b7('0xb')](util[_0x02b7('0xc')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x02b7('0xd')));return db[_0x02b7('0xe')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x02b7('0xf'),_0x02b7('0x10')]})['then'](function(_0x1d7bc3){if(_0x1d7bc3){_0x12e3f6=_0x1d7bc3;_0x9ad044=_0x12e3f6[_0x02b7('0x10')]||0x1388;}})[_0x02b7('0x11')](function(){return dbH[_0x02b7('0x12')]['query'](util[_0x02b7('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x02b7('0x12')]['QueryTypes']['SELECT']});})['then'](function(_0x436123){if(!_0x436123[0x0][_0x02b7('0x13')]){return analyticExtractedReport('Empty');}var _0x5d5ef3=[];var _0x1afe35=0x0;if(_0x12e3f6[_0x02b7('0xf')]){if(_0x436123&&_0x436123[_0x02b7('0x14')]){var _0x19cc2a=_[_0x02b7('0x15')](_0x436123[0x0][_0x02b7('0x13')]/_0x9ad044);var _0xcef925=Number[_0x02b7('0x16')](_0x436123[0x0][_0x02b7('0x13')]/_0x9ad044)?_0x436123[0x0][_0x02b7('0x13')]%_0x9ad044:0x0;_0x19cc2a[_0x02b7('0x17')](function(_0xbe8356){if(_0xbe8356>0x0){_0x1afe35+=_0x9ad044;}_0x5d5ef3['push'](dbH[_0x02b7('0x12')]['query'](util[_0x02b7('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x9ad044,_0x1afe35),{'type':dbH[_0x02b7('0x12')][_0x02b7('0x18')][_0x02b7('0x19')]}));});if(_0xcef925>0x0){_0x1afe35+=_0x9ad044;_0x5d5ef3['push'](dbH['sequelize']['query'](util[_0x02b7('0xc')](_0x02b7('0x1a'),QUERY,_0xcef925,_0x1afe35),{'type':dbH[_0x02b7('0x12')]['QueryTypes'][_0x02b7('0x19')]}));}}}else{_0x5d5ef3[_0x02b7('0x1b')](dbH[_0x02b7('0x12')][_0x02b7('0x1c')](QUERY,{'type':dbH[_0x02b7('0x12')][_0x02b7('0x18')][_0x02b7('0x19')]}));}var _0x5bca2a=path[_0x02b7('0x1d')](PATH);var _0x138851=path[_0x02b7('0x1e')](PATH,_0x02b7('0x1f'));var _0x465b22=_0x12e3f6[_0x02b7('0xf')]&&_0x5d5ef3[_0x02b7('0x14')]>0x1;var _0x50f6c9=[];if(!fs[_0x02b7('0x20')](path[_0x02b7('0x21')](_0x5bca2a,_0x138851))&&_0x465b22){fs[_0x02b7('0x22')](path[_0x02b7('0x21')](_0x5bca2a,_0x138851));}return BPromise['each'](_0x5d5ef3,function(_0x2fa2b0){_0x50f6c9[_0x02b7('0x1b')](_0x2fa2b0);})['then'](function(){for(var _0x3c6a6a=0x0;_0x3c6a6a<_0x50f6c9['length'];_0x3c6a6a+=0x1){var _0x277050;var _0x3d3b2f=_0x50f6c9[_0x3c6a6a];if(_0x465b22){_0x277050=path['join'](_0x5bca2a,_0x138851,util['format']('%s%d.%s',_0x138851,_0x3c6a6a,_0x02b7('0x23')));}else{_0x277050=path[_0x02b7('0x21')](_0x5bca2a,util[_0x02b7('0xc')](_0x02b7('0x24'),_0x138851,_0x02b7('0x23')));}fs[_0x02b7('0x25')](_0x277050,json2xls(_0x3d3b2f),_0x02b7('0x26'));}})['then'](function(){if(_0x465b22){return new Promise(function(_0x49727b){zipdir(path[_0x02b7('0x21')](_0x5bca2a,_0x138851),{'saveTo':path[_0x02b7('0x21')](_0x5bca2a,util[_0x02b7('0xc')]('%s.%s',_0x138851,_0x02b7('0x27')))},function(_0x71b014,_0x19d13c){rimraf(path[_0x02b7('0x21')](_0x5bca2a,_0x138851),function(){});_0x49727b(_0x02b7('0x28'));});});}})['then'](function(){logger[_0x02b7('0xb')](util[_0x02b7('0xc')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x02b7('0xd')));return analyticExtractedReport(_0x02b7('0x29'),_0x465b22?util['format'](_0x02b7('0x24'),_0x138851,_0x465b22?_0x02b7('0x27'):_0x02b7('0x23')):null);});})[_0x02b7('0x2a')](function(_0x148e97){logger[_0x02b7('0xb')](util['format'](_0x02b7('0x2b'),EXTRACTED_REPORT_ID,_0x02b7('0xd')),util[_0x02b7('0x2c')](_0x148e97,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x02b7('0x2d'));})[_0x02b7('0x2e')](function(){process[_0x02b7('0x2f')](EXIT_CODE);});}main();