Built motion from commit 9d0783e6.|2.6.13
[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 _0xbae8=['split','splitSizeXlsx','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','then','num','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','length','existsSync','mkdirSync','each','join','%s%d.%s','xlsx','writeFileSync','binary','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','exit','util','path','lodash','json2xls','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','XLSX','Setting','find'];(function(_0x468572,_0x3edd19){var _0x40bf5a=function(_0x3084f5){while(--_0x3084f5){_0x468572['push'](_0x468572['shift']());}};_0x40bf5a(++_0x3edd19);}(_0xbae8,0x195));var _0x8bae=function(_0x650e11,_0x284f86){_0x650e11=_0x650e11-0x0;var _0x1a9b47=_0xbae8[_0x650e11];return _0x1a9b47;};'use strict';var util=require(_0x8bae('0x0'));var path=require(_0x8bae('0x1'));var _=require(_0x8bae('0x2'));var fs=require('fs');var json2xls=require(_0x8bae('0x3'));var BPromise=require('bluebird');var zipdir=require(_0x8bae('0x4'));var rimraf=require(_0x8bae('0x5'));var db=require(_0x8bae('0x6'))['db'];var dbH=require(_0x8bae('0x6'))[_0x8bae('0x7')];var logger=require(_0x8bae('0x8'))(_0x8bae('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x8bae('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x239142,_0x1770f5){var _0x5eac90={'status':_0x239142};var _0x51ceeb={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1770f5){_0x5eac90[_0x8bae('0xb')]=_0x1770f5;}return db[_0x8bae('0xc')][_0x8bae('0xd')](_0x5eac90,_0x51ceeb);}function main(){var _0x466b75=0x1388;var _0x2c2291;logger[_0x8bae('0xe')](util[_0x8bae('0xf')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x8bae('0x10')));return db[_0x8bae('0x11')][_0x8bae('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x8bae('0x13'),_0x8bae('0x14')]})['then'](function(_0x2433d0){if(_0x2433d0){_0x2c2291=_0x2433d0;_0x466b75=_0x2c2291['splitSizeXlsx']||0x1388;}})['then'](function(){return dbH[_0x8bae('0x15')][_0x8bae('0x16')](util[_0x8bae('0xf')](_0x8bae('0x17'),QUERY),{'type':dbH['sequelize'][_0x8bae('0x18')][_0x8bae('0x19')]});})[_0x8bae('0x1a')](function(_0x5113b9){if(!_0x5113b9[0x0][_0x8bae('0x1b')]){return analyticExtractedReport('Empty');}var _0x213a57=[];var _0x460656=0x0;if(_0x2c2291['split']){if(_0x5113b9&&_0x5113b9['length']){var _0x304a6f=_[_0x8bae('0x1c')](_0x5113b9[0x0][_0x8bae('0x1b')]/_0x466b75);var _0xd0b15d=Number[_0x8bae('0x1d')](_0x5113b9[0x0][_0x8bae('0x1b')]/_0x466b75)?_0x5113b9[0x0][_0x8bae('0x1b')]%_0x466b75:0x0;_0x304a6f[_0x8bae('0x1e')](function(_0x3c8a5f){if(_0x3c8a5f>0x0){_0x460656+=_0x466b75;}_0x213a57[_0x8bae('0x1f')](dbH[_0x8bae('0x15')][_0x8bae('0x16')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x466b75,_0x460656),{'type':dbH[_0x8bae('0x15')][_0x8bae('0x18')][_0x8bae('0x19')]}));});if(_0xd0b15d>0x0){_0x460656+=_0x466b75;_0x213a57[_0x8bae('0x1f')](dbH[_0x8bae('0x15')][_0x8bae('0x16')](util[_0x8bae('0xf')](_0x8bae('0x20'),QUERY,_0xd0b15d,_0x460656),{'type':dbH['sequelize']['QueryTypes'][_0x8bae('0x19')]}));}}}else{_0x213a57[_0x8bae('0x1f')](dbH[_0x8bae('0x15')][_0x8bae('0x16')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0x8bae('0x19')]}));}var _0x5ca8da=path[_0x8bae('0x21')](PATH);var _0x4ae4bc=path[_0x8bae('0x22')](PATH,_0x8bae('0x23'));var _0x67f74a=_0x2c2291['split']&&_0x213a57[_0x8bae('0x24')]>0x1;var _0x3cde49=[];if(!fs[_0x8bae('0x25')](path['join'](_0x5ca8da,_0x4ae4bc))&&_0x67f74a){fs[_0x8bae('0x26')](path['join'](_0x5ca8da,_0x4ae4bc));}return BPromise[_0x8bae('0x27')](_0x213a57,function(_0x99e4e8){_0x3cde49[_0x8bae('0x1f')](_0x99e4e8);})['then'](function(){for(var _0x885482=0x0;_0x885482<_0x3cde49[_0x8bae('0x24')];_0x885482+=0x1){var _0x1ac7d7;var _0x591647=_0x3cde49[_0x885482];if(_0x67f74a){_0x1ac7d7=path[_0x8bae('0x28')](_0x5ca8da,_0x4ae4bc,util[_0x8bae('0xf')](_0x8bae('0x29'),_0x4ae4bc,_0x885482,_0x8bae('0x2a')));}else{_0x1ac7d7=path['join'](_0x5ca8da,util['format']('%s.%s',_0x4ae4bc,'xlsx'));}fs[_0x8bae('0x2b')](_0x1ac7d7,json2xls(_0x591647),_0x8bae('0x2c'));}})[_0x8bae('0x1a')](function(){if(_0x67f74a){return new Promise(function(_0x464680){zipdir(path[_0x8bae('0x28')](_0x5ca8da,_0x4ae4bc),{'saveTo':path[_0x8bae('0x28')](_0x5ca8da,util['format'](_0x8bae('0x2d'),_0x4ae4bc,_0x8bae('0x2e')))},function(_0x4c4e70,_0x4cc183){rimraf(path['join'](_0x5ca8da,_0x4ae4bc),function(){});_0x464680(_0x8bae('0x2f'));});});}})[_0x8bae('0x1a')](function(){logger[_0x8bae('0xe')](util[_0x8bae('0xf')](_0x8bae('0x30'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x67f74a?util[_0x8bae('0xf')](_0x8bae('0x2d'),_0x4ae4bc,_0x67f74a?_0x8bae('0x2e'):_0x8bae('0x2a')):null);});})[_0x8bae('0x31')](function(_0x51c55a){logger[_0x8bae('0xe')](util[_0x8bae('0xf')](_0x8bae('0x32'),EXTRACTED_REPORT_ID,'XLSX'),util[_0x8bae('0x33')](_0x51c55a,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0x8bae('0x34')](EXIT_CODE);});}main();