Built motion from commit 85328c08.|2.5.50
[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 _0xb077=['inspect','Failed','finally','exit','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','split','splitSizeXlsx','then','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','SELECT','Empty','length','range','num','forEach','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','basename','existsSync','join','each','%s%d.%s','%s.%s','xlsx','binary','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch'];(function(_0x54c695,_0x5d6677){var _0x3ce06b=function(_0x55bdf1){while(--_0x55bdf1){_0x54c695['push'](_0x54c695['shift']());}};_0x3ce06b(++_0x5d6677);}(_0xb077,0x1c6));var _0x7b07=function(_0x580451,_0x138171){_0x580451=_0x580451-0x0;var _0x2966ec=_0xb077[_0x580451];return _0x2966ec;};'use strict';var util=require(_0x7b07('0x0'));var path=require(_0x7b07('0x1'));var _=require(_0x7b07('0x2'));var fs=require('fs');var json2xls=require(_0x7b07('0x3'));var BPromise=require(_0x7b07('0x4'));var zipdir=require(_0x7b07('0x5'));var rimraf=require(_0x7b07('0x6'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x7b07('0x7')];var logger=require(_0x7b07('0x8'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x7b07('0x9')][0x2]);var QUERY=process[_0x7b07('0x9')][0x3];var PATH=process[_0x7b07('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x68e367,_0x26c5e2){var _0x57bf92={'status':_0x68e367};var _0x4c82c5={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26c5e2){_0x57bf92[_0x7b07('0xa')]=_0x26c5e2;}return db[_0x7b07('0xb')]['update'](_0x57bf92,_0x4c82c5);}function main(){var _0x22f9f2=0x1388;var _0x46c104;logger[_0x7b07('0xc')](util['format'](_0x7b07('0xd'),EXTRACTED_REPORT_ID,_0x7b07('0xe')));return db[_0x7b07('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7b07('0x10'),_0x7b07('0x11')]})[_0x7b07('0x12')](function(_0x11c3c7){if(_0x11c3c7){_0x46c104=_0x11c3c7;_0x22f9f2=_0x46c104[_0x7b07('0x11')]||0x1388;}})['then'](function(){return dbH['sequelize']['query'](util[_0x7b07('0x13')](_0x7b07('0x14'),QUERY),{'type':dbH[_0x7b07('0x15')]['QueryTypes'][_0x7b07('0x16')]});})[_0x7b07('0x12')](function(_0x2bde66){if(!_0x2bde66[0x0]['num']){return analyticExtractedReport(_0x7b07('0x17'));}var _0x366910=[];var _0xf6d592=0x0;if(_0x46c104['split']){if(_0x2bde66&&_0x2bde66[_0x7b07('0x18')]){var _0x10b147=_[_0x7b07('0x19')](_0x2bde66[0x0][_0x7b07('0x1a')]/_0x22f9f2);var _0x1b09d7=Number['isInteger'](_0x2bde66[0x0][_0x7b07('0x1a')]/_0x22f9f2)?_0x2bde66[0x0][_0x7b07('0x1a')]%_0x22f9f2:0x0;_0x10b147[_0x7b07('0x1b')](function(_0x4ecf98){if(_0x4ecf98>0x0){_0xf6d592+=_0x22f9f2;}_0x366910[_0x7b07('0x1c')](dbH[_0x7b07('0x15')][_0x7b07('0x1d')](util[_0x7b07('0x13')](_0x7b07('0x1e'),QUERY,_0x22f9f2,_0xf6d592),{'type':dbH['sequelize']['QueryTypes'][_0x7b07('0x16')]}));});if(_0x1b09d7>0x0){_0xf6d592+=_0x22f9f2;_0x366910[_0x7b07('0x1c')](dbH['sequelize'][_0x7b07('0x1d')](util[_0x7b07('0x13')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1b09d7,_0xf6d592),{'type':dbH[_0x7b07('0x15')]['QueryTypes'][_0x7b07('0x16')]}));}}}else{_0x366910['push'](dbH[_0x7b07('0x15')][_0x7b07('0x1d')](QUERY,{'type':dbH[_0x7b07('0x15')][_0x7b07('0x1f')][_0x7b07('0x16')]}));}var _0x296f14=path[_0x7b07('0x20')](PATH);var _0x4b23a8=path[_0x7b07('0x21')](PATH,'.xlsx');var _0x2ac8a4=_0x46c104[_0x7b07('0x10')]&&_0x366910['length']>0x1;var _0x5f2fc0=[];if(!fs[_0x7b07('0x22')](path[_0x7b07('0x23')](_0x296f14,_0x4b23a8))&&_0x2ac8a4){fs['mkdirSync'](path[_0x7b07('0x23')](_0x296f14,_0x4b23a8));}return BPromise[_0x7b07('0x24')](_0x366910,function(_0x19a355){_0x5f2fc0[_0x7b07('0x1c')](_0x19a355);})[_0x7b07('0x12')](function(){for(var _0x172893=0x0;_0x172893<_0x5f2fc0[_0x7b07('0x18')];_0x172893+=0x1){var _0x17c593;var _0x180f26=_0x5f2fc0[_0x172893];if(_0x2ac8a4){_0x17c593=path['join'](_0x296f14,_0x4b23a8,util[_0x7b07('0x13')](_0x7b07('0x25'),_0x4b23a8,_0x172893,'xlsx'));}else{_0x17c593=path['join'](_0x296f14,util[_0x7b07('0x13')](_0x7b07('0x26'),_0x4b23a8,_0x7b07('0x27')));}fs['writeFileSync'](_0x17c593,json2xls(_0x180f26),_0x7b07('0x28'));}})[_0x7b07('0x12')](function(){if(_0x2ac8a4){return new Promise(function(_0x570df9){zipdir(path[_0x7b07('0x23')](_0x296f14,_0x4b23a8),{'saveTo':path['join'](_0x296f14,util[_0x7b07('0x13')](_0x7b07('0x26'),_0x4b23a8,_0x7b07('0x29')))},function(_0x213f1b,_0x536df7){rimraf(path[_0x7b07('0x23')](_0x296f14,_0x4b23a8),function(){});_0x570df9(_0x7b07('0x2a'));});});}})[_0x7b07('0x12')](function(){logger[_0x7b07('0xc')](util[_0x7b07('0x13')](_0x7b07('0x2b'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x7b07('0x2c'),_0x2ac8a4?util['format']('%s.%s',_0x4b23a8,_0x2ac8a4?_0x7b07('0x29'):_0x7b07('0x27')):null);});})[_0x7b07('0x2d')](function(_0x5430ee){logger[_0x7b07('0xc')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x7b07('0xe')),util[_0x7b07('0x2e')](_0x5430ee,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x7b07('0x2f'));})[_0x7b07('0x30')](function(){process[_0x7b07('0x31')](EXIT_CODE);});}main();