Built motion from commit b3fbe50d.|2.6.22
[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 _0x8998=['analytics','argv','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','sequelize','query','format','QueryTypes','SELECT','num','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','length','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','zip','zip\x20finished','Completed','Failed','finally','path','lodash','json2xls','rimraf','../../mysqldb','../../config/logger'];(function(_0x3bb384,_0x1df90b){var _0x31607a=function(_0x2eccd3){while(--_0x2eccd3){_0x3bb384['push'](_0x3bb384['shift']());}};_0x31607a(++_0x1df90b);}(_0x8998,0x152));var _0x8899=function(_0x3b60cc,_0x3d835a){_0x3b60cc=_0x3b60cc-0x0;var _0x2a8f3a=_0x8998[_0x3b60cc];return _0x2a8f3a;};'use strict';var util=require('util');var path=require(_0x8899('0x0'));var _=require(_0x8899('0x1'));var fs=require('fs');var json2xls=require(_0x8899('0x2'));var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0x8899('0x3'));var db=require(_0x8899('0x4'))['db'];var dbH=require(_0x8899('0x4'))['dbH'];var logger=require(_0x8899('0x5'))(_0x8899('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0x8899('0x7')][0x2]);var QUERY=process[_0x8899('0x7')][0x3];var PATH=process[_0x8899('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x321334,_0x5e0d7b){var _0x28d163={'status':_0x321334};var _0x3a6794={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5e0d7b){_0x28d163['savename']=_0x5e0d7b;}return db['AnalyticExtractedReport'][_0x8899('0x8')](_0x28d163,_0x3a6794);}function main(){var _0x27c71e=0x1388;var _0x437d9c;logger[_0x8899('0x9')](util['format'](_0x8899('0xa'),EXTRACTED_REPORT_ID,_0x8899('0xb')));return db[_0x8899('0xc')][_0x8899('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x8899('0xe'),_0x8899('0xf')]})[_0x8899('0x10')](function(_0x11e58c){if(_0x11e58c){_0x437d9c=_0x11e58c;_0x27c71e=_0x437d9c[_0x8899('0xf')]||0x1388;}})['then'](function(){return dbH[_0x8899('0x11')][_0x8899('0x12')](util[_0x8899('0x13')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x8899('0x14')][_0x8899('0x15')]});})[_0x8899('0x10')](function(_0x518d20){if(!_0x518d20[0x0][_0x8899('0x16')]){return analyticExtractedReport('Empty');}var _0x2db210=[];var _0x4ffa87=0x0;if(_0x437d9c[_0x8899('0xe')]){if(_0x518d20&&_0x518d20['length']){var _0x5d532c=_[_0x8899('0x17')](_0x518d20[0x0][_0x8899('0x16')]/_0x27c71e);var _0x33cf9c=Number[_0x8899('0x18')](_0x518d20[0x0]['num']/_0x27c71e)?_0x518d20[0x0][_0x8899('0x16')]%_0x27c71e:0x0;_0x5d532c[_0x8899('0x19')](function(_0x5e05db){if(_0x5e05db>0x0){_0x4ffa87+=_0x27c71e;}_0x2db210[_0x8899('0x1a')](dbH[_0x8899('0x11')][_0x8899('0x12')](util[_0x8899('0x13')](_0x8899('0x1b'),QUERY,_0x27c71e,_0x4ffa87),{'type':dbH[_0x8899('0x11')][_0x8899('0x14')]['SELECT']}));});if(_0x33cf9c>0x0){_0x4ffa87+=_0x27c71e;_0x2db210[_0x8899('0x1a')](dbH[_0x8899('0x11')][_0x8899('0x12')](util[_0x8899('0x13')](_0x8899('0x1b'),QUERY,_0x33cf9c,_0x4ffa87),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}}}else{_0x2db210[_0x8899('0x1a')](dbH[_0x8899('0x11')][_0x8899('0x12')](QUERY,{'type':dbH[_0x8899('0x11')][_0x8899('0x14')][_0x8899('0x15')]}));}var _0x32c37e=path['dirname'](PATH);var _0x12ba59=path[_0x8899('0x1c')](PATH,'.xlsx');var _0x3806d7=_0x437d9c[_0x8899('0xe')]&&_0x2db210[_0x8899('0x1d')]>0x1;var _0x5545c7=[];if(!fs[_0x8899('0x1e')](path[_0x8899('0x1f')](_0x32c37e,_0x12ba59))&&_0x3806d7){fs[_0x8899('0x20')](path[_0x8899('0x1f')](_0x32c37e,_0x12ba59));}return BPromise[_0x8899('0x21')](_0x2db210,function(_0x1d8c25){_0x5545c7['push'](_0x1d8c25);})['then'](function(){for(var _0x5decd4=0x0;_0x5decd4<_0x5545c7[_0x8899('0x1d')];_0x5decd4+=0x1){var _0x45b2e7;var _0x31e4b9=_0x5545c7[_0x5decd4];if(_0x3806d7){_0x45b2e7=path['join'](_0x32c37e,_0x12ba59,util[_0x8899('0x13')](_0x8899('0x22'),_0x12ba59,_0x5decd4,_0x8899('0x23')));}else{_0x45b2e7=path['join'](_0x32c37e,util[_0x8899('0x13')](_0x8899('0x24'),_0x12ba59,_0x8899('0x23')));}fs[_0x8899('0x25')](_0x45b2e7,json2xls(_0x31e4b9),'binary');}})[_0x8899('0x10')](function(){if(_0x3806d7){return new Promise(function(_0x2161d5){zipdir(path['join'](_0x32c37e,_0x12ba59),{'saveTo':path['join'](_0x32c37e,util[_0x8899('0x13')](_0x8899('0x24'),_0x12ba59,_0x8899('0x26')))},function(_0x2b43f5,_0xbfe437){rimraf(path[_0x8899('0x1f')](_0x32c37e,_0x12ba59),function(){});_0x2161d5(_0x8899('0x27'));});});}})['then'](function(){logger['info'](util[_0x8899('0x13')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x8899('0xb')));return analyticExtractedReport(_0x8899('0x28'),_0x3806d7?util[_0x8899('0x13')](_0x8899('0x24'),_0x12ba59,_0x3806d7?'zip':'xlsx'):null);});})['catch'](function(_0x5d2321){logger[_0x8899('0x9')](util[_0x8899('0x13')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x8899('0xb')),util['inspect'](_0x5d2321,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x8899('0x29'));})[_0x8899('0x2a')](function(){process['exit'](EXIT_CODE);});}main();