Built motion from commit 87cd5f02.|2.5.48
[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 _0x91ab=['num','Empty','length','range','isInteger','forEach','push','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.xlsx','existsSync','join','mkdirSync','each','xlsx','writeFileSync','binary','%s.%s','zip','XLSX','Completed','catch','inspect','Failed','finally','exit','path','json2xls','bluebird','zip-dir','rimraf','dbH','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes'];(function(_0x529b35,_0x35387b){var _0x42bdef=function(_0x328cb0){while(--_0x328cb0){_0x529b35['push'](_0x529b35['shift']());}};_0x42bdef(++_0x35387b);}(_0x91ab,0x7b));var _0xb91a=function(_0x1ae5ab,_0xc5d441){_0x1ae5ab=_0x1ae5ab-0x0;var _0x1ce001=_0x91ab[_0x1ae5ab];return _0x1ce001;};'use strict';var util=require('util');var path=require(_0xb91a('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xb91a('0x1'));var BPromise=require(_0xb91a('0x2'));var zipdir=require(_0xb91a('0x3'));var rimraf=require(_0xb91a('0x4'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xb91a('0x5')];var logger=require('../../config/logger')(_0xb91a('0x6'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xb91a('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x512ab8,_0x1491e8){var _0x5ae123={'status':_0x512ab8};var _0x3ff640={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1491e8){_0x5ae123[_0xb91a('0x8')]=_0x1491e8;}return db[_0xb91a('0x9')]['update'](_0x5ae123,_0x3ff640);}function main(){var _0x239b9b=0x1388;var _0x362b43;logger[_0xb91a('0xa')](util[_0xb91a('0xb')](_0xb91a('0xc'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0xb91a('0xd')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb91a('0xe'),_0xb91a('0xf')]})[_0xb91a('0x10')](function(_0x577f4b){if(_0x577f4b){_0x362b43=_0x577f4b;_0x239b9b=_0x362b43[_0xb91a('0xf')]||0x1388;}})[_0xb91a('0x10')](function(){return dbH[_0xb91a('0x11')][_0xb91a('0x12')](util[_0xb91a('0xb')](_0xb91a('0x13'),QUERY),{'type':dbH[_0xb91a('0x11')][_0xb91a('0x14')]['SELECT']});})['then'](function(_0x28a218){if(!_0x28a218[0x0][_0xb91a('0x15')]){return analyticExtractedReport(_0xb91a('0x16'));}var _0x3b154c=[];var _0x1a10a2=0x0;if(_0x362b43['split']){if(_0x28a218&&_0x28a218[_0xb91a('0x17')]){var _0xc8fa46=_[_0xb91a('0x18')](_0x28a218[0x0]['num']/_0x239b9b);var _0x3bdade=Number[_0xb91a('0x19')](_0x28a218[0x0][_0xb91a('0x15')]/_0x239b9b)?_0x28a218[0x0][_0xb91a('0x15')]%_0x239b9b:0x0;_0xc8fa46[_0xb91a('0x1a')](function(_0x556fa2){if(_0x556fa2>0x0){_0x1a10a2+=_0x239b9b;}_0x3b154c[_0xb91a('0x1b')](dbH[_0xb91a('0x11')][_0xb91a('0x12')](util[_0xb91a('0xb')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x239b9b,_0x1a10a2),{'type':dbH['sequelize'][_0xb91a('0x14')][_0xb91a('0x1c')]}));});if(_0x3bdade>0x0){_0x1a10a2+=_0x239b9b;_0x3b154c[_0xb91a('0x1b')](dbH['sequelize'][_0xb91a('0x12')](util[_0xb91a('0xb')](_0xb91a('0x1d'),QUERY,_0x3bdade,_0x1a10a2),{'type':dbH[_0xb91a('0x11')][_0xb91a('0x14')][_0xb91a('0x1c')]}));}}}else{_0x3b154c[_0xb91a('0x1b')](dbH[_0xb91a('0x11')][_0xb91a('0x12')](QUERY,{'type':dbH[_0xb91a('0x11')][_0xb91a('0x14')]['SELECT']}));}var _0x1e001a=path['dirname'](PATH);var _0x1478a0=path[_0xb91a('0x1e')](PATH,_0xb91a('0x1f'));var _0x3ef361=_0x362b43[_0xb91a('0xe')]&&_0x3b154c[_0xb91a('0x17')]>0x1;var _0x437d2=[];if(!fs[_0xb91a('0x20')](path[_0xb91a('0x21')](_0x1e001a,_0x1478a0))&&_0x3ef361){fs[_0xb91a('0x22')](path[_0xb91a('0x21')](_0x1e001a,_0x1478a0));}return BPromise[_0xb91a('0x23')](_0x3b154c,function(_0x3be1f5){_0x437d2[_0xb91a('0x1b')](_0x3be1f5);})[_0xb91a('0x10')](function(){for(var _0x286e3d=0x0;_0x286e3d<_0x437d2[_0xb91a('0x17')];_0x286e3d+=0x1){var _0x1d4f85;var _0x2f60ca=_0x437d2[_0x286e3d];if(_0x3ef361){_0x1d4f85=path[_0xb91a('0x21')](_0x1e001a,_0x1478a0,util[_0xb91a('0xb')]('%s%d.%s',_0x1478a0,_0x286e3d,_0xb91a('0x24')));}else{_0x1d4f85=path[_0xb91a('0x21')](_0x1e001a,util[_0xb91a('0xb')]('%s.%s',_0x1478a0,_0xb91a('0x24')));}fs[_0xb91a('0x25')](_0x1d4f85,json2xls(_0x2f60ca),_0xb91a('0x26'));}})[_0xb91a('0x10')](function(){if(_0x3ef361){return new Promise(function(_0x2c8e15){zipdir(path['join'](_0x1e001a,_0x1478a0),{'saveTo':path['join'](_0x1e001a,util[_0xb91a('0xb')](_0xb91a('0x27'),_0x1478a0,_0xb91a('0x28')))},function(_0x56b401,_0x2d2efd){rimraf(path[_0xb91a('0x21')](_0x1e001a,_0x1478a0),function(){});_0x2c8e15('zip\x20finished');});});}})[_0xb91a('0x10')](function(){logger[_0xb91a('0xa')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xb91a('0x29')));return analyticExtractedReport(_0xb91a('0x2a'),_0x3ef361?util['format'](_0xb91a('0x27'),_0x1478a0,_0x3ef361?_0xb91a('0x28'):'xlsx'):null);});})[_0xb91a('0x2b')](function(_0x35f2e8){logger[_0xb91a('0xa')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xb91a('0x29')),util[_0xb91a('0x2c')](_0x35f2e8,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb91a('0x2d'));})[_0xb91a('0x2e')](function(){process[_0xb91a('0x2f')](EXIT_CODE);});}main();