a0a2cd01616fae5c9f4a545d37b8c209806a1796
[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 _0x8185=['zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','update','info','format','Setting','find','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','length','existsSync','mkdirSync','join','%s%d.%s','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','XLSX','inspect','Failed','exit','util','path','lodash','bluebird'];(function(_0x1da0a2,_0x3d45e9){var _0x3477aa=function(_0x514326){while(--_0x514326){_0x1da0a2['push'](_0x1da0a2['shift']());}};_0x3477aa(++_0x3d45e9);}(_0x8185,0xb8));var _0x5818=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x8185[_0x209941];return _0x1e8729;};'use strict';var util=require(_0x5818('0x0'));var path=require(_0x5818('0x1'));var _=require(_0x5818('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x5818('0x3'));var zipdir=require(_0x5818('0x4'));var rimraf=require(_0x5818('0x5'));var db=require(_0x5818('0x6'))['db'];var dbH=require(_0x5818('0x6'))['dbH'];var logger=require(_0x5818('0x7'))(_0x5818('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x5818('0x9')][0x2]);var QUERY=process[_0x5818('0x9')][0x3];var PATH=process[_0x5818('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x3fe728,_0x1e011e){var _0x9201ee={'status':_0x3fe728};var _0x115c1a={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1e011e){_0x9201ee[_0x5818('0xa')]=_0x1e011e;}return db['AnalyticExtractedReport'][_0x5818('0xb')](_0x9201ee,_0x115c1a);}function main(){var _0x1196f7=0x1388;var _0x5ec895;logger[_0x5818('0xc')](util[_0x5818('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'));return db[_0x5818('0xe')][_0x5818('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x5818('0x10')]})[_0x5818('0x11')](function(_0x2ca1c0){if(_0x2ca1c0){_0x5ec895=_0x2ca1c0;_0x1196f7=_0x5ec895['splitSizeXlsx']||0x1388;}})[_0x5818('0x11')](function(){return dbH[_0x5818('0x12')][_0x5818('0x13')](util[_0x5818('0xd')](_0x5818('0x14'),QUERY),{'type':dbH['sequelize'][_0x5818('0x15')][_0x5818('0x16')]});})[_0x5818('0x11')](function(_0x1fe39e){if(!_0x1fe39e[0x0][_0x5818('0x17')]){return analyticExtractedReport(_0x5818('0x18'));}var _0x1b683e=[];var _0x58f32e=0x0;if(_0x5ec895[_0x5818('0x19')]){if(_0x1fe39e&&_0x1fe39e['length']){var _0x4ebd5d=_[_0x5818('0x1a')](_0x1fe39e[0x0]['num']/_0x1196f7);var _0x845081=Number[_0x5818('0x1b')](_0x1fe39e[0x0][_0x5818('0x17')]/_0x1196f7)?_0x1fe39e[0x0][_0x5818('0x17')]%_0x1196f7:0x0;_0x4ebd5d[_0x5818('0x1c')](function(_0x59254f){if(_0x59254f>0x0){_0x58f32e+=_0x1196f7;}_0x1b683e[_0x5818('0x1d')](dbH[_0x5818('0x12')][_0x5818('0x13')](util[_0x5818('0xd')](_0x5818('0x1e'),QUERY,_0x1196f7,_0x58f32e),{'type':dbH[_0x5818('0x12')][_0x5818('0x15')][_0x5818('0x16')]}));});if(_0x845081>0x0){_0x58f32e+=_0x1196f7;_0x1b683e[_0x5818('0x1d')](dbH[_0x5818('0x12')][_0x5818('0x13')](util[_0x5818('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x845081,_0x58f32e),{'type':dbH[_0x5818('0x12')]['QueryTypes'][_0x5818('0x16')]}));}}}else{_0x1b683e[_0x5818('0x1d')](dbH[_0x5818('0x12')][_0x5818('0x13')](QUERY,{'type':dbH['sequelize'][_0x5818('0x15')]['SELECT']}));}var _0x136185=path[_0x5818('0x1f')](PATH);var _0xaa31bc=path[_0x5818('0x20')](PATH,_0x5818('0x21'));var _0x48be1d=_0x5ec895[_0x5818('0x19')]&&_0x1b683e[_0x5818('0x22')]>0x1;var _0x305ebb=[];if(!fs[_0x5818('0x23')](path['join'](_0x136185,_0xaa31bc))&&_0x48be1d){fs[_0x5818('0x24')](path[_0x5818('0x25')](_0x136185,_0xaa31bc));}return BPromise['each'](_0x1b683e,function(_0x10795b){_0x305ebb[_0x5818('0x1d')](_0x10795b);})['then'](function(){for(var _0x576134=0x0;_0x576134<_0x305ebb[_0x5818('0x22')];_0x576134+=0x1){var _0x3a815b;var _0x2ae9b7=_0x305ebb[_0x576134];if(_0x48be1d){_0x3a815b=path['join'](_0x136185,_0xaa31bc,util[_0x5818('0xd')](_0x5818('0x26'),_0xaa31bc,_0x576134,'xlsx'));}else{_0x3a815b=path[_0x5818('0x25')](_0x136185,util['format'](_0x5818('0x27'),_0xaa31bc,'xlsx'));}fs['writeFileSync'](_0x3a815b,json2xls(_0x2ae9b7),'binary');}})[_0x5818('0x11')](function(){if(_0x48be1d){return new Promise(function(_0x367dc1){zipdir(path[_0x5818('0x25')](_0x136185,_0xaa31bc),{'saveTo':path[_0x5818('0x25')](_0x136185,util[_0x5818('0xd')](_0x5818('0x27'),_0xaa31bc,_0x5818('0x28')))},function(_0x417b42,_0x3bbc6e){rimraf(path[_0x5818('0x25')](_0x136185,_0xaa31bc),function(){});_0x367dc1('zip\x20finished');});});}})[_0x5818('0x11')](function(){logger[_0x5818('0xc')](util[_0x5818('0xd')](_0x5818('0x29'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x48be1d?util['format'](_0x5818('0x27'),_0xaa31bc,_0x48be1d?_0x5818('0x28'):'xlsx'):null);});})[_0x5818('0x2a')](function(_0x1509d2){logger[_0x5818('0xc')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x5818('0x2b')),util[_0x5818('0x2c')](_0x1509d2,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x5818('0x2d'));})['finally'](function(){process[_0x5818('0x2e')](EXIT_CODE);});}main();