b52ccc162d182b47ecd6edc196018b1a27b9b25c
[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 _0x032e=['basename','.xlsx','existsSync','join','mkdirSync','each','xlsx','%s.%s','writeFileSync','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find','split','splitSizeXlsx','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','num','%s\x20limit\x20%d\x20OFFSET\x20%d','push'];(function(_0x5b9a7c,_0x10ecb2){var _0x281ca8=function(_0x565bf1){while(--_0x565bf1){_0x5b9a7c['push'](_0x5b9a7c['shift']());}};_0x281ca8(++_0x10ecb2);}(_0x032e,0x6d));var _0xe032=function(_0x24237f,_0x4cf32c){_0x24237f=_0x24237f-0x0;var _0x48298e=_0x032e[_0x24237f];return _0x48298e;};'use strict';var util=require('util');var path=require('path');var _=require(_0xe032('0x0'));var fs=require('fs');var json2xls=require(_0xe032('0x1'));var BPromise=require(_0xe032('0x2'));var zipdir=require(_0xe032('0x3'));var rimraf=require(_0xe032('0x4'));var db=require(_0xe032('0x5'))['db'];var dbH=require(_0xe032('0x5'))[_0xe032('0x6')];var logger=require('../../config/logger')(_0xe032('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xe032('0x8')][0x2]);var QUERY=process[_0xe032('0x8')][0x3];var PATH=process[_0xe032('0x8')][0x4];function analyticExtractedReport(_0x2ee0a6,_0x333b82){var _0x2d70fa={'status':_0x2ee0a6};var _0x341efc={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x333b82){_0x2d70fa[_0xe032('0x9')]=_0x333b82;}return db[_0xe032('0xa')]['update'](_0x2d70fa,_0x341efc);}function main(){var _0x552d43=0x1388;var _0x4205a2;logger[_0xe032('0xb')](util['format'](_0xe032('0xc'),EXTRACTED_REPORT_ID,_0xe032('0xd')));return db['Setting'][_0xe032('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xe032('0xf'),'splitSizeXlsx']})['then'](function(_0x4309e7){if(_0x4309e7){_0x4205a2=_0x4309e7;_0x552d43=_0x4205a2[_0xe032('0x10')]||0x1388;}})[_0xe032('0x11')](function(){return dbH[_0xe032('0x12')][_0xe032('0x13')](util[_0xe032('0x14')](_0xe032('0x15'),QUERY),{'type':dbH[_0xe032('0x12')][_0xe032('0x16')][_0xe032('0x17')]});})['then'](function(_0x372365){if(!_0x372365[0x0]['num']){return analyticExtractedReport(_0xe032('0x18'));}var _0x3ca0dd=[];var _0x281579=0x0;var _0x172a40=!![];if(_0x4205a2['split']){if(_0x372365&&_0x372365[_0xe032('0x19')]){var _0x5f2ea1=_0x372365[0x0][_0xe032('0x1a')]%(_0x281579+_0x552d43);for(;_0x172a40;_0x281579+=_0x552d43,_0x5f2ea1=_0x372365[0x0][_0xe032('0x1a')]%(_0x281579+_0x552d43)){if(_0x5f2ea1==0x0||_0x5f2ea1==_0x372365[0x0][_0xe032('0x1a')]){_0x172a40=![];}_0x3ca0dd['push'](dbH[_0xe032('0x12')][_0xe032('0x13')](util[_0xe032('0x14')](_0xe032('0x1b'),QUERY,_0x552d43,_0x281579),{'type':dbH[_0xe032('0x12')]['QueryTypes'][_0xe032('0x17')]}));}}}else{_0x3ca0dd[_0xe032('0x1c')](dbH['sequelize'][_0xe032('0x13')](QUERY,{'type':dbH[_0xe032('0x12')][_0xe032('0x16')][_0xe032('0x17')]}));}var _0x249f99=path['dirname'](PATH);var _0x34c0d1=path[_0xe032('0x1d')](PATH,_0xe032('0x1e'));var _0x455e55=_0x4205a2['split']&&_0x3ca0dd[_0xe032('0x19')]>0x1;var _0x1419d9=[];if(!fs[_0xe032('0x1f')](path[_0xe032('0x20')](_0x249f99,_0x34c0d1))&&_0x455e55){fs[_0xe032('0x21')](path['join'](_0x249f99,_0x34c0d1));}return BPromise[_0xe032('0x22')](_0x3ca0dd,function(_0x1610ef){_0x1419d9[_0xe032('0x1c')](_0x1610ef);})[_0xe032('0x11')](function(){for(var _0x387c16=0x0;_0x387c16<_0x1419d9[_0xe032('0x19')];_0x387c16+=0x1){var _0x45813c;var _0x1fcce7=_0x1419d9[_0x387c16];if(_0x455e55){_0x45813c=path['join'](_0x249f99,_0x34c0d1,util[_0xe032('0x14')]('%s%d.%s',_0x34c0d1,_0x387c16,_0xe032('0x23')));}else{_0x45813c=path[_0xe032('0x20')](_0x249f99,util[_0xe032('0x14')](_0xe032('0x24'),_0x34c0d1,_0xe032('0x23')));}fs[_0xe032('0x25')](_0x45813c,json2xls(_0x1fcce7),_0xe032('0x26'));}})[_0xe032('0x11')](function(){if(_0x455e55){zipdir(path['join'](_0x249f99,_0x34c0d1),{'saveTo':path[_0xe032('0x20')](_0x249f99,util['format'](_0xe032('0x24'),_0x34c0d1,'zip'))},function(_0x24acba,_0x42ce60){});rimraf(path[_0xe032('0x20')](_0x249f99,_0x34c0d1),function(){});}})[_0xe032('0x11')](function(){logger[_0xe032('0xb')](util[_0xe032('0x14')](_0xe032('0x27'),EXTRACTED_REPORT_ID,_0xe032('0xd')));return analyticExtractedReport(_0xe032('0x28'),_0x455e55?util['format'](_0xe032('0x24'),_0x34c0d1,_0x455e55?_0xe032('0x29'):_0xe032('0x23')):null);});})[_0xe032('0x2a')](function(_0xd54b66){logger[_0xe032('0xb')](util[_0xe032('0x14')](_0xe032('0x2b'),EXTRACTED_REPORT_ID,_0xe032('0xd')),util[_0xe032('0x2c')](_0xd54b66,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xe032('0x2d'));});}main();