Built motion from commit (unavailable).|2.4.18
[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 _0xdac3=['dirname','basename','.xlsx','split','join','each','%s%d.%s','xlsx','writeFileSync','binary','zip','%s.%s','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','info','format','XLSX','Setting','find','splitSizeXlsx','then','sequelize','query','QueryTypes','Empty','length','num','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT'];(function(_0x110558,_0x33bc2d){var _0x2816c8=function(_0x3fee31){while(--_0x3fee31){_0x110558['push'](_0x110558['shift']());}};_0x2816c8(++_0x33bc2d);}(_0xdac3,0x19c));var _0x3dac=function(_0x45b5bd,_0x1b2655){_0x45b5bd=_0x45b5bd-0x0;var _0x1af8bb=_0xdac3[_0x45b5bd];return _0x1af8bb;};'use strict';var util=require(_0x3dac('0x0'));var path=require(_0x3dac('0x1'));var _=require(_0x3dac('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x3dac('0x3'));var zipdir=require(_0x3dac('0x4'));var rimraf=require(_0x3dac('0x5'));var db=require(_0x3dac('0x6'))['db'];var dbH=require(_0x3dac('0x6'))[_0x3dac('0x7')];var logger=require('../../config/logger')(_0x3dac('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x3dac('0x9')][0x2]);var QUERY=process[_0x3dac('0x9')][0x3];var PATH=process[_0x3dac('0x9')][0x4];function analyticExtractedReport(_0x3b0591,_0x17d5ca){var _0x2bc422={'status':_0x3b0591};var _0x31f4df={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x17d5ca){_0x2bc422[_0x3dac('0xa')]=_0x17d5ca;}return db[_0x3dac('0xb')]['update'](_0x2bc422,_0x31f4df);}function main(){var _0x2ee37d=0x1388;var _0x4cdf50;logger[_0x3dac('0xc')](util[_0x3dac('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x3dac('0xe')));return db[_0x3dac('0xf')][_0x3dac('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x3dac('0x11')]})[_0x3dac('0x12')](function(_0x54ff42){if(_0x54ff42){_0x4cdf50=_0x54ff42;_0x2ee37d=_0x4cdf50['splitSizeXlsx']||0x1388;}})[_0x3dac('0x12')](function(){return dbH[_0x3dac('0x13')][_0x3dac('0x14')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x3dac('0x13')][_0x3dac('0x15')]['SELECT']});})[_0x3dac('0x12')](function(_0x1562b4){if(!_0x1562b4[0x0]['num']){return analyticExtractedReport(_0x3dac('0x16'));}var _0x583a62=[];var _0x2093ac=0x0;var _0x1c4622=!![];if(_0x4cdf50['split']){if(_0x1562b4&&_0x1562b4[_0x3dac('0x17')]){var _0x2b1efc=_0x1562b4[0x0][_0x3dac('0x18')]%(_0x2093ac+_0x2ee37d);for(;_0x1c4622;_0x2093ac+=_0x2ee37d,_0x2b1efc=_0x1562b4[0x0]['num']%(_0x2093ac+_0x2ee37d)){if(_0x2b1efc==0x0||_0x2b1efc==_0x1562b4[0x0]['num']){_0x1c4622=![];}_0x583a62[_0x3dac('0x19')](dbH[_0x3dac('0x13')]['query'](util[_0x3dac('0xd')](_0x3dac('0x1a'),QUERY,_0x2ee37d,_0x2093ac),{'type':dbH[_0x3dac('0x13')]['QueryTypes'][_0x3dac('0x1b')]}));}}}else{_0x583a62['push'](dbH[_0x3dac('0x13')]['query'](QUERY,{'type':dbH[_0x3dac('0x13')][_0x3dac('0x15')][_0x3dac('0x1b')]}));}var _0x3cb50e=path[_0x3dac('0x1c')](PATH);var _0x38e0f0=path[_0x3dac('0x1d')](PATH,_0x3dac('0x1e'));var _0x733c8c=_0x4cdf50[_0x3dac('0x1f')]&&_0x583a62[_0x3dac('0x17')]>0x1;var _0x4231ef=[];if(!fs['existsSync'](path[_0x3dac('0x20')](_0x3cb50e,_0x38e0f0))&&_0x733c8c){fs['mkdirSync'](path[_0x3dac('0x20')](_0x3cb50e,_0x38e0f0));}return BPromise[_0x3dac('0x21')](_0x583a62,function(_0x982f8){_0x4231ef[_0x3dac('0x19')](_0x982f8);})['then'](function(){for(var _0x535afb=0x0;_0x535afb<_0x4231ef['length'];_0x535afb+=0x1){var _0x2c0299;var _0x93ff08=_0x4231ef[_0x535afb];if(_0x733c8c){_0x2c0299=path[_0x3dac('0x20')](_0x3cb50e,_0x38e0f0,util[_0x3dac('0xd')](_0x3dac('0x22'),_0x38e0f0,_0x535afb,_0x3dac('0x23')));}else{_0x2c0299=path[_0x3dac('0x20')](_0x3cb50e,util[_0x3dac('0xd')]('%s.%s',_0x38e0f0,_0x3dac('0x23')));}fs[_0x3dac('0x24')](_0x2c0299,json2xls(_0x93ff08),_0x3dac('0x25'));}})[_0x3dac('0x12')](function(){if(_0x733c8c){zipdir(path[_0x3dac('0x20')](_0x3cb50e,_0x38e0f0),{'saveTo':path[_0x3dac('0x20')](_0x3cb50e,util['format']('%s.%s',_0x38e0f0,_0x3dac('0x26')))},function(_0x424568,_0x2794da){});rimraf(path[_0x3dac('0x20')](_0x3cb50e,_0x38e0f0),function(){});}})['then'](function(){logger[_0x3dac('0xc')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x3dac('0xe')));return analyticExtractedReport('Completed',_0x733c8c?util[_0x3dac('0xd')](_0x3dac('0x27'),_0x38e0f0,_0x733c8c?_0x3dac('0x26'):'xlsx'):null);});})[_0x3dac('0x28')](function(_0x358849){logger[_0x3dac('0xc')](util[_0x3dac('0xd')](_0x3dac('0x29'),EXTRACTED_REPORT_ID,_0x3dac('0xe')),util[_0x3dac('0x2a')](_0x358849,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x3dac('0x2b'));});}main();