Built motion from commit (unavailable).|2.5.4
[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 _0x7fea=['xlsx','%s.%s','writeFileSync','binary','zip','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','path','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find','splitSizeXlsx','then','sequelize','query','format','QueryTypes','SELECT','num','split','length','push','dirname','basename','.xlsx','existsSync','join','each','%s%d.%s'];(function(_0x181c12,_0x42241d){var _0x219ffd=function(_0x2808aa){while(--_0x2808aa){_0x181c12['push'](_0x181c12['shift']());}};_0x219ffd(++_0x42241d);}(_0x7fea,0x149));var _0xa7fe=function(_0x4d867d,_0x155b8d){_0x4d867d=_0x4d867d-0x0;var _0x4971ec=_0x7fea[_0x4d867d];return _0x4971ec;};'use strict';var util=require('util');var path=require(_0xa7fe('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0xa7fe('0x1'));var zipdir=require(_0xa7fe('0x2'));var rimraf=require(_0xa7fe('0x3'));var db=require(_0xa7fe('0x4'))['db'];var dbH=require(_0xa7fe('0x4'))[_0xa7fe('0x5')];var logger=require('../../config/logger')(_0xa7fe('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0xa7fe('0x7')][0x2]);var QUERY=process[_0xa7fe('0x7')][0x3];var PATH=process[_0xa7fe('0x7')][0x4];function analyticExtractedReport(_0x45f967,_0x3597b0){var _0x4668f0={'status':_0x45f967};var _0x3d9135={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3597b0){_0x4668f0['savename']=_0x3597b0;}return db['AnalyticExtractedReport'][_0xa7fe('0x8')](_0x4668f0,_0x3d9135);}function main(){var _0x2d1bea=0x1388;var _0x39e1f9;logger[_0xa7fe('0x9')](util['format'](_0xa7fe('0xa'),EXTRACTED_REPORT_ID,_0xa7fe('0xb')));return db['Setting'][_0xa7fe('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xa7fe('0xd')]})['then'](function(_0x50a806){if(_0x50a806){_0x39e1f9=_0x50a806;_0x2d1bea=_0x39e1f9[_0xa7fe('0xd')]||0x1388;}})[_0xa7fe('0xe')](function(){return dbH[_0xa7fe('0xf')][_0xa7fe('0x10')](util[_0xa7fe('0x11')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0xa7fe('0x12')][_0xa7fe('0x13')]});})[_0xa7fe('0xe')](function(_0x43ae73){if(!_0x43ae73[0x0][_0xa7fe('0x14')]){return analyticExtractedReport('Empty');}var _0x137dc9=[];var _0x292ad1=0x0;var _0x132586=!![];if(_0x39e1f9[_0xa7fe('0x15')]){if(_0x43ae73&&_0x43ae73[_0xa7fe('0x16')]){var _0x4ac6eb=_0x43ae73[0x0][_0xa7fe('0x14')]%(_0x292ad1+_0x2d1bea);for(;_0x132586;_0x292ad1+=_0x2d1bea,_0x4ac6eb=_0x43ae73[0x0][_0xa7fe('0x14')]%(_0x292ad1+_0x2d1bea)){if(_0x4ac6eb==0x0||_0x4ac6eb==_0x43ae73[0x0][_0xa7fe('0x14')]){_0x132586=![];}_0x137dc9[_0xa7fe('0x17')](dbH[_0xa7fe('0xf')][_0xa7fe('0x10')](util[_0xa7fe('0x11')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x2d1bea,_0x292ad1),{'type':dbH['sequelize'][_0xa7fe('0x12')][_0xa7fe('0x13')]}));}}}else{_0x137dc9[_0xa7fe('0x17')](dbH[_0xa7fe('0xf')][_0xa7fe('0x10')](QUERY,{'type':dbH[_0xa7fe('0xf')][_0xa7fe('0x12')]['SELECT']}));}var _0x29649c=path[_0xa7fe('0x18')](PATH);var _0x1619c1=path[_0xa7fe('0x19')](PATH,_0xa7fe('0x1a'));var _0x300a91=_0x39e1f9[_0xa7fe('0x15')]&&_0x137dc9[_0xa7fe('0x16')]>0x1;var _0x4ac7e0=[];if(!fs[_0xa7fe('0x1b')](path['join'](_0x29649c,_0x1619c1))&&_0x300a91){fs['mkdirSync'](path[_0xa7fe('0x1c')](_0x29649c,_0x1619c1));}return BPromise[_0xa7fe('0x1d')](_0x137dc9,function(_0x24ec1b){_0x4ac7e0[_0xa7fe('0x17')](_0x24ec1b);})[_0xa7fe('0xe')](function(){for(var _0x5d3b9d=0x0;_0x5d3b9d<_0x4ac7e0[_0xa7fe('0x16')];_0x5d3b9d+=0x1){var _0x12b558;var _0xa3fde9=_0x4ac7e0[_0x5d3b9d];if(_0x300a91){_0x12b558=path[_0xa7fe('0x1c')](_0x29649c,_0x1619c1,util[_0xa7fe('0x11')](_0xa7fe('0x1e'),_0x1619c1,_0x5d3b9d,_0xa7fe('0x1f')));}else{_0x12b558=path[_0xa7fe('0x1c')](_0x29649c,util[_0xa7fe('0x11')](_0xa7fe('0x20'),_0x1619c1,_0xa7fe('0x1f')));}fs[_0xa7fe('0x21')](_0x12b558,json2xls(_0xa3fde9),_0xa7fe('0x22'));}})[_0xa7fe('0xe')](function(){if(_0x300a91){zipdir(path[_0xa7fe('0x1c')](_0x29649c,_0x1619c1),{'saveTo':path[_0xa7fe('0x1c')](_0x29649c,util[_0xa7fe('0x11')](_0xa7fe('0x20'),_0x1619c1,_0xa7fe('0x23')))},function(_0x429df4,_0x5bd01d){});rimraf(path[_0xa7fe('0x1c')](_0x29649c,_0x1619c1),function(){});}})[_0xa7fe('0xe')](function(){logger['info'](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xa7fe('0xb')));return analyticExtractedReport(_0xa7fe('0x24'),_0x300a91?util['format'](_0xa7fe('0x20'),_0x1619c1,_0x300a91?_0xa7fe('0x23'):_0xa7fe('0x1f')):null);});})[_0xa7fe('0x25')](function(_0x3af408){logger[_0xa7fe('0x9')](util[_0xa7fe('0x11')](_0xa7fe('0x26'),EXTRACTED_REPORT_ID,_0xa7fe('0xb')),util['inspect'](_0x3af408,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xa7fe('0x27'));});}main();