Built motion from commit 25580385.|2.6.2
[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 _0x590a=['zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','inspect','Failed','finally','exit','path','lodash','json2xls','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger','argv','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','sequelize','query','format','QueryTypes','Empty','length','range','num','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','.xlsx','join','mkdirSync','each','xlsx','%s.%s','writeFileSync'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x590a,0x159));var _0xa590=function(_0xb304f6,_0x2a67f7){_0xb304f6=_0xb304f6-0x0;var _0x46e039=_0x590a[_0xb304f6];return _0x46e039;};'use strict';var util=require('util');var path=require(_0xa590('0x0'));var _=require(_0xa590('0x1'));var fs=require('fs');var json2xls=require(_0xa590('0x2'));var BPromise=require(_0xa590('0x3'));var zipdir=require(_0xa590('0x4'));var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0xa590('0x5'))[_0xa590('0x6')];var logger=require(_0xa590('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xa590('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xa590('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x163d19,_0x2ad01a){var _0x27a5fa={'status':_0x163d19};var _0x5d9565={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2ad01a){_0x27a5fa['savename']=_0x2ad01a;}return db[_0xa590('0x9')]['update'](_0x27a5fa,_0x5d9565);}function main(){var _0x397b6c=0x1388;var _0x3e59f3;logger[_0xa590('0xa')](util['format'](_0xa590('0xb'),EXTRACTED_REPORT_ID,_0xa590('0xc')));return db[_0xa590('0xd')][_0xa590('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xa590('0xf'),_0xa590('0x10')]})[_0xa590('0x11')](function(_0x570b51){if(_0x570b51){_0x3e59f3=_0x570b51;_0x397b6c=_0x3e59f3['splitSizeXlsx']||0x1388;}})[_0xa590('0x11')](function(){return dbH[_0xa590('0x12')][_0xa590('0x13')](util[_0xa590('0x14')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xa590('0x12')][_0xa590('0x15')]['SELECT']});})['then'](function(_0x2954af){if(!_0x2954af[0x0]['num']){return analyticExtractedReport(_0xa590('0x16'));}var _0x6ca5c8=[];var _0x1d218c=0x0;if(_0x3e59f3[_0xa590('0xf')]){if(_0x2954af&&_0x2954af[_0xa590('0x17')]){var _0x114654=_[_0xa590('0x18')](_0x2954af[0x0][_0xa590('0x19')]/_0x397b6c);var _0x4f4075=Number[_0xa590('0x1a')](_0x2954af[0x0][_0xa590('0x19')]/_0x397b6c)?_0x2954af[0x0][_0xa590('0x19')]%_0x397b6c:0x0;_0x114654[_0xa590('0x1b')](function(_0x5b4317){if(_0x5b4317>0x0){_0x1d218c+=_0x397b6c;}_0x6ca5c8[_0xa590('0x1c')](dbH[_0xa590('0x12')][_0xa590('0x13')](util[_0xa590('0x14')](_0xa590('0x1d'),QUERY,_0x397b6c,_0x1d218c),{'type':dbH[_0xa590('0x12')][_0xa590('0x15')][_0xa590('0x1e')]}));});if(_0x4f4075>0x0){_0x1d218c+=_0x397b6c;_0x6ca5c8['push'](dbH[_0xa590('0x12')][_0xa590('0x13')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4f4075,_0x1d218c),{'type':dbH[_0xa590('0x12')][_0xa590('0x15')][_0xa590('0x1e')]}));}}}else{_0x6ca5c8[_0xa590('0x1c')](dbH[_0xa590('0x12')]['query'](QUERY,{'type':dbH[_0xa590('0x12')][_0xa590('0x15')][_0xa590('0x1e')]}));}var _0x257297=path[_0xa590('0x1f')](PATH);var _0x457a32=path['basename'](PATH,_0xa590('0x20'));var _0x4fdc6e=_0x3e59f3[_0xa590('0xf')]&&_0x6ca5c8[_0xa590('0x17')]>0x1;var _0x46f7dd=[];if(!fs['existsSync'](path[_0xa590('0x21')](_0x257297,_0x457a32))&&_0x4fdc6e){fs[_0xa590('0x22')](path[_0xa590('0x21')](_0x257297,_0x457a32));}return BPromise[_0xa590('0x23')](_0x6ca5c8,function(_0x51612e){_0x46f7dd['push'](_0x51612e);})[_0xa590('0x11')](function(){for(var _0x391f8c=0x0;_0x391f8c<_0x46f7dd[_0xa590('0x17')];_0x391f8c+=0x1){var _0x115e45;var _0x3b47f1=_0x46f7dd[_0x391f8c];if(_0x4fdc6e){_0x115e45=path[_0xa590('0x21')](_0x257297,_0x457a32,util[_0xa590('0x14')]('%s%d.%s',_0x457a32,_0x391f8c,_0xa590('0x24')));}else{_0x115e45=path[_0xa590('0x21')](_0x257297,util[_0xa590('0x14')](_0xa590('0x25'),_0x457a32,_0xa590('0x24')));}fs[_0xa590('0x26')](_0x115e45,json2xls(_0x3b47f1),'binary');}})['then'](function(){if(_0x4fdc6e){return new Promise(function(_0x5e86e2){zipdir(path[_0xa590('0x21')](_0x257297,_0x457a32),{'saveTo':path['join'](_0x257297,util['format'](_0xa590('0x25'),_0x457a32,_0xa590('0x27')))},function(_0x41782a,_0x2cbe1a){rimraf(path['join'](_0x257297,_0x457a32),function(){});_0x5e86e2(_0xa590('0x28'));});});}})[_0xa590('0x11')](function(){logger['info'](util[_0xa590('0x14')](_0xa590('0x29'),EXTRACTED_REPORT_ID,_0xa590('0xc')));return analyticExtractedReport(_0xa590('0x2a'),_0x4fdc6e?util[_0xa590('0x14')]('%s.%s',_0x457a32,_0x4fdc6e?_0xa590('0x27'):'xlsx'):null);});})[_0xa590('0x2b')](function(_0x15f2c5){logger[_0xa590('0xa')](util[_0xa590('0x14')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xa590('0xc')),util[_0xa590('0x2c')](_0x15f2c5,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa590('0x2d'));})[_0xa590('0x2e')](function(){process[_0xa590('0x2f')](EXIT_CODE);});}main();