Built motion from commit da24aabd.|2.6.20
[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 _0x61c0=['query','format','sequelize','QueryTypes','SELECT','num','length','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.xlsx','each','join','%s%d.%s','xlsx','writeFileSync','binary','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','exit','util','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','update','info','Setting','split','splitSizeXlsx','then'];(function(_0xea343d,_0x311197){var _0x2c6e9c=function(_0x454bd6){while(--_0x454bd6){_0xea343d['push'](_0xea343d['shift']());}};_0x2c6e9c(++_0x311197);}(_0x61c0,0x1b1));var _0x061c=function(_0x1a550a,_0x238578){_0x1a550a=_0x1a550a-0x0;var _0xee8d93=_0x61c0[_0x1a550a];return _0xee8d93;};'use strict';var util=require(_0x061c('0x0'));var path=require('path');var _=require(_0x061c('0x1'));var fs=require('fs');var json2xls=require(_0x061c('0x2'));var BPromise=require(_0x061c('0x3'));var zipdir=require(_0x061c('0x4'));var rimraf=require(_0x061c('0x5'));var db=require(_0x061c('0x6'))['db'];var dbH=require(_0x061c('0x6'))[_0x061c('0x7')];var logger=require('../../config/logger')(_0x061c('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x061c('0x9')][0x3];var PATH=process[_0x061c('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x4c2c49,_0x5a12bc){var _0x331246={'status':_0x4c2c49};var _0x366e51={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5a12bc){_0x331246[_0x061c('0xa')]=_0x5a12bc;}return db['AnalyticExtractedReport'][_0x061c('0xb')](_0x331246,_0x366e51);}function main(){var _0x275825=0x1388;var _0x562d74;logger[_0x061c('0xc')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'));return db[_0x061c('0xd')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x061c('0xe'),_0x061c('0xf')]})[_0x061c('0x10')](function(_0xe3b2be){if(_0xe3b2be){_0x562d74=_0xe3b2be;_0x275825=_0x562d74[_0x061c('0xf')]||0x1388;}})[_0x061c('0x10')](function(){return dbH['sequelize'][_0x061c('0x11')](util[_0x061c('0x12')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x061c('0x13')][_0x061c('0x14')][_0x061c('0x15')]});})['then'](function(_0x2f601e){if(!_0x2f601e[0x0][_0x061c('0x16')]){return analyticExtractedReport('Empty');}var _0x4d9cc0=[];var _0x57daf5=0x0;if(_0x562d74['split']){if(_0x2f601e&&_0x2f601e[_0x061c('0x17')]){var _0x12551c=_['range'](_0x2f601e[0x0][_0x061c('0x16')]/_0x275825);var _0x26e192=Number[_0x061c('0x18')](_0x2f601e[0x0]['num']/_0x275825)?_0x2f601e[0x0][_0x061c('0x16')]%_0x275825:0x0;_0x12551c[_0x061c('0x19')](function(_0x3d608e){if(_0x3d608e>0x0){_0x57daf5+=_0x275825;}_0x4d9cc0['push'](dbH['sequelize'][_0x061c('0x11')](util[_0x061c('0x12')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x275825,_0x57daf5),{'type':dbH[_0x061c('0x13')][_0x061c('0x14')]['SELECT']}));});if(_0x26e192>0x0){_0x57daf5+=_0x275825;_0x4d9cc0[_0x061c('0x1a')](dbH[_0x061c('0x13')][_0x061c('0x11')](util['format'](_0x061c('0x1b'),QUERY,_0x26e192,_0x57daf5),{'type':dbH['sequelize'][_0x061c('0x14')]['SELECT']}));}}}else{_0x4d9cc0[_0x061c('0x1a')](dbH[_0x061c('0x13')][_0x061c('0x11')](QUERY,{'type':dbH[_0x061c('0x13')][_0x061c('0x14')]['SELECT']}));}var _0x39aaf1=path[_0x061c('0x1c')](PATH);var _0xfc1378=path['basename'](PATH,_0x061c('0x1d'));var _0x42871f=_0x562d74[_0x061c('0xe')]&&_0x4d9cc0[_0x061c('0x17')]>0x1;var _0x325a15=[];if(!fs['existsSync'](path['join'](_0x39aaf1,_0xfc1378))&&_0x42871f){fs['mkdirSync'](path['join'](_0x39aaf1,_0xfc1378));}return BPromise[_0x061c('0x1e')](_0x4d9cc0,function(_0x389e5e){_0x325a15[_0x061c('0x1a')](_0x389e5e);})[_0x061c('0x10')](function(){for(var _0x51a0a3=0x0;_0x51a0a3<_0x325a15['length'];_0x51a0a3+=0x1){var _0x4938bd;var _0x530e1f=_0x325a15[_0x51a0a3];if(_0x42871f){_0x4938bd=path[_0x061c('0x1f')](_0x39aaf1,_0xfc1378,util['format'](_0x061c('0x20'),_0xfc1378,_0x51a0a3,_0x061c('0x21')));}else{_0x4938bd=path['join'](_0x39aaf1,util[_0x061c('0x12')]('%s.%s',_0xfc1378,_0x061c('0x21')));}fs[_0x061c('0x22')](_0x4938bd,json2xls(_0x530e1f),_0x061c('0x23'));}})['then'](function(){if(_0x42871f){return new Promise(function(_0x58eb6f){zipdir(path['join'](_0x39aaf1,_0xfc1378),{'saveTo':path[_0x061c('0x1f')](_0x39aaf1,util[_0x061c('0x12')](_0x061c('0x24'),_0xfc1378,_0x061c('0x25')))},function(_0xaa6847,_0x16e8e9){rimraf(path[_0x061c('0x1f')](_0x39aaf1,_0xfc1378),function(){});_0x58eb6f(_0x061c('0x26'));});});}})[_0x061c('0x10')](function(){logger[_0x061c('0xc')](util[_0x061c('0x12')](_0x061c('0x27'),EXTRACTED_REPORT_ID,_0x061c('0x28')));return analyticExtractedReport('Completed',_0x42871f?util[_0x061c('0x12')](_0x061c('0x24'),_0xfc1378,_0x42871f?_0x061c('0x25'):_0x061c('0x21')):null);});})[_0x061c('0x29')](function(_0x534bda){logger[_0x061c('0xc')](util[_0x061c('0x12')](_0x061c('0x2a'),EXTRACTED_REPORT_ID,'XLSX'),util['inspect'](_0x534bda,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x061c('0x2b')](function(){process[_0x061c('0x2c')](EXIT_CODE);});}main();