91472f53571165996a630983488b7d1590990855
[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 _0x6e9c=['Failed','finally','exit','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','argv','savename','AnalyticExtractedReport','update','info','format','find','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','split','range','num','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','.xlsx','existsSync','join','mkdirSync','each','length','%s.%s','xlsx','zip\x20finished','XLSX','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x6e9c,0x153));var _0xc6e9=function(_0x28f667,_0x287bf8){_0x28f667=_0x28f667-0x0;var _0x4859d4=_0x6e9c[_0x28f667];return _0x4859d4;};'use strict';var util=require(_0xc6e9('0x0'));var path=require(_0xc6e9('0x1'));var _=require(_0xc6e9('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0xc6e9('0x3'));var zipdir=require(_0xc6e9('0x4'));var rimraf=require(_0xc6e9('0x5'));var db=require('../../mysqldb')['db'];var dbH=require(_0xc6e9('0x6'))['dbH'];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xc6e9('0x7')][0x2]);var QUERY=process[_0xc6e9('0x7')][0x3];var PATH=process[_0xc6e9('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xe0c9b0,_0x5a2a8c){var _0x160b7d={'status':_0xe0c9b0};var _0x453385={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5a2a8c){_0x160b7d[_0xc6e9('0x8')]=_0x5a2a8c;}return db[_0xc6e9('0x9')][_0xc6e9('0xa')](_0x160b7d,_0x453385);}function main(){var _0x2125ef=0x1388;var _0x2e0c69;logger[_0xc6e9('0xb')](util[_0xc6e9('0xc')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xc6e9('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xc6e9('0xe')]})[_0xc6e9('0xf')](function(_0x37f2ac){if(_0x37f2ac){_0x2e0c69=_0x37f2ac;_0x2125ef=_0x2e0c69[_0xc6e9('0xe')]||0x1388;}})[_0xc6e9('0xf')](function(){return dbH[_0xc6e9('0x10')][_0xc6e9('0x11')](util['format'](_0xc6e9('0x12'),QUERY),{'type':dbH['sequelize'][_0xc6e9('0x13')][_0xc6e9('0x14')]});})[_0xc6e9('0xf')](function(_0x4939da){if(!_0x4939da[0x0]['num']){return analyticExtractedReport('Empty');}var _0xf615e5=[];var _0x44eb58=0x0;if(_0x2e0c69[_0xc6e9('0x15')]){if(_0x4939da&&_0x4939da['length']){var _0x4d7f6b=_[_0xc6e9('0x16')](_0x4939da[0x0][_0xc6e9('0x17')]/_0x2125ef);var _0x321c99=Number[_0xc6e9('0x18')](_0x4939da[0x0][_0xc6e9('0x17')]/_0x2125ef)?_0x4939da[0x0]['num']%_0x2125ef:0x0;_0x4d7f6b[_0xc6e9('0x19')](function(_0x28d935){if(_0x28d935>0x0){_0x44eb58+=_0x2125ef;}_0xf615e5['push'](dbH['sequelize'][_0xc6e9('0x11')](util['format'](_0xc6e9('0x1a'),QUERY,_0x2125ef,_0x44eb58),{'type':dbH[_0xc6e9('0x10')]['QueryTypes'][_0xc6e9('0x14')]}));});if(_0x321c99>0x0){_0x44eb58+=_0x2125ef;_0xf615e5[_0xc6e9('0x1b')](dbH[_0xc6e9('0x10')][_0xc6e9('0x11')](util[_0xc6e9('0xc')](_0xc6e9('0x1a'),QUERY,_0x321c99,_0x44eb58),{'type':dbH[_0xc6e9('0x10')][_0xc6e9('0x13')][_0xc6e9('0x14')]}));}}}else{_0xf615e5[_0xc6e9('0x1b')](dbH['sequelize'][_0xc6e9('0x11')](QUERY,{'type':dbH[_0xc6e9('0x10')][_0xc6e9('0x13')]['SELECT']}));}var _0x5257cc=path[_0xc6e9('0x1c')](PATH);var _0x56ec8a=path[_0xc6e9('0x1d')](PATH,_0xc6e9('0x1e'));var _0x87928e=_0x2e0c69[_0xc6e9('0x15')]&&_0xf615e5['length']>0x1;var _0x12e2be=[];if(!fs[_0xc6e9('0x1f')](path[_0xc6e9('0x20')](_0x5257cc,_0x56ec8a))&&_0x87928e){fs[_0xc6e9('0x21')](path[_0xc6e9('0x20')](_0x5257cc,_0x56ec8a));}return BPromise[_0xc6e9('0x22')](_0xf615e5,function(_0x2ccead){_0x12e2be['push'](_0x2ccead);})['then'](function(){for(var _0x26cbc5=0x0;_0x26cbc5<_0x12e2be[_0xc6e9('0x23')];_0x26cbc5+=0x1){var _0xae31bb;var _0x54890c=_0x12e2be[_0x26cbc5];if(_0x87928e){_0xae31bb=path[_0xc6e9('0x20')](_0x5257cc,_0x56ec8a,util[_0xc6e9('0xc')]('%s%d.%s',_0x56ec8a,_0x26cbc5,'xlsx'));}else{_0xae31bb=path[_0xc6e9('0x20')](_0x5257cc,util[_0xc6e9('0xc')](_0xc6e9('0x24'),_0x56ec8a,_0xc6e9('0x25')));}fs['writeFileSync'](_0xae31bb,json2xls(_0x54890c),'binary');}})[_0xc6e9('0xf')](function(){if(_0x87928e){return new Promise(function(_0x961a70){zipdir(path[_0xc6e9('0x20')](_0x5257cc,_0x56ec8a),{'saveTo':path[_0xc6e9('0x20')](_0x5257cc,util['format']('%s.%s',_0x56ec8a,'zip'))},function(_0x31669a,_0x47733a){rimraf(path['join'](_0x5257cc,_0x56ec8a),function(){});_0x961a70(_0xc6e9('0x26'));});});}})[_0xc6e9('0xf')](function(){logger[_0xc6e9('0xb')](util[_0xc6e9('0xc')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xc6e9('0x27')));return analyticExtractedReport(_0xc6e9('0x28'),_0x87928e?util[_0xc6e9('0xc')](_0xc6e9('0x24'),_0x56ec8a,_0x87928e?_0xc6e9('0x29'):'xlsx'):null);});})[_0xc6e9('0x2a')](function(_0x43a715){logger[_0xc6e9('0xb')](util[_0xc6e9('0xc')](_0xc6e9('0x2b'),EXTRACTED_REPORT_ID,'XLSX'),util[_0xc6e9('0x2c')](_0x43a715,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xc6e9('0x2d'));})[_0xc6e9('0x2e')](function(){process[_0xc6e9('0x2f')](EXIT_CODE);});}main();