Built motion from commit 47436d59.|2.6.7
[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 _0xa8cc=['join','mkdirSync','xlsx','%s.%s','writeFileSync','binary','zip','zip\x20finished','Completed','catch','Failed','finally','exit','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find','split','splitSizeXlsx','then','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','Empty','isInteger','num','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','length'];(function(_0x4fe823,_0x16dbde){var _0x3693c9=function(_0xb17e01){while(--_0xb17e01){_0x4fe823['push'](_0x4fe823['shift']());}};_0x3693c9(++_0x16dbde);}(_0xa8cc,0xf8));var _0xca8c=function(_0x52fa85,_0x19bf87){_0x52fa85=_0x52fa85-0x0;var _0x3c8c52=_0xa8cc[_0x52fa85];return _0x3c8c52;};'use strict';var util=require('util');var path=require(_0xca8c('0x0'));var _=require(_0xca8c('0x1'));var fs=require('fs');var json2xls=require(_0xca8c('0x2'));var BPromise=require(_0xca8c('0x3'));var zipdir=require(_0xca8c('0x4'));var rimraf=require(_0xca8c('0x5'));var db=require(_0xca8c('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0xca8c('0x7'))(_0xca8c('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xca8c('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x1a8ec3,_0x38db37){var _0x1d25b1={'status':_0x1a8ec3};var _0x2dc803={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x38db37){_0x1d25b1[_0xca8c('0xa')]=_0x38db37;}return db[_0xca8c('0xb')]['update'](_0x1d25b1,_0x2dc803);}function main(){var _0x2d4b45=0x1388;var _0x376f3b;logger[_0xca8c('0xc')](util['format'](_0xca8c('0xd'),EXTRACTED_REPORT_ID,_0xca8c('0xe')));return db['Setting'][_0xca8c('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xca8c('0x10'),_0xca8c('0x11')]})[_0xca8c('0x12')](function(_0x4abb33){if(_0x4abb33){_0x376f3b=_0x4abb33;_0x2d4b45=_0x376f3b['splitSizeXlsx']||0x1388;}})['then'](function(){return dbH['sequelize'][_0xca8c('0x13')](util[_0xca8c('0x14')](_0xca8c('0x15'),QUERY),{'type':dbH[_0xca8c('0x16')][_0xca8c('0x17')][_0xca8c('0x18')]});})[_0xca8c('0x12')](function(_0x4683ff){if(!_0x4683ff[0x0]['num']){return analyticExtractedReport(_0xca8c('0x19'));}var _0x390207=[];var _0x3c7263=0x0;if(_0x376f3b[_0xca8c('0x10')]){if(_0x4683ff&&_0x4683ff['length']){var _0x210f83=_['range'](_0x4683ff[0x0]['num']/_0x2d4b45);var _0x457053=Number[_0xca8c('0x1a')](_0x4683ff[0x0][_0xca8c('0x1b')]/_0x2d4b45)?_0x4683ff[0x0][_0xca8c('0x1b')]%_0x2d4b45:0x0;_0x210f83[_0xca8c('0x1c')](function(_0x6432c0){if(_0x6432c0>0x0){_0x3c7263+=_0x2d4b45;}_0x390207[_0xca8c('0x1d')](dbH[_0xca8c('0x16')][_0xca8c('0x13')](util[_0xca8c('0x14')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x2d4b45,_0x3c7263),{'type':dbH[_0xca8c('0x16')]['QueryTypes']['SELECT']}));});if(_0x457053>0x0){_0x3c7263+=_0x2d4b45;_0x390207[_0xca8c('0x1d')](dbH[_0xca8c('0x16')][_0xca8c('0x13')](util['format'](_0xca8c('0x1e'),QUERY,_0x457053,_0x3c7263),{'type':dbH[_0xca8c('0x16')][_0xca8c('0x17')][_0xca8c('0x18')]}));}}}else{_0x390207[_0xca8c('0x1d')](dbH['sequelize'][_0xca8c('0x13')](QUERY,{'type':dbH[_0xca8c('0x16')][_0xca8c('0x17')]['SELECT']}));}var _0x499932=path[_0xca8c('0x1f')](PATH);var _0x1b9290=path[_0xca8c('0x20')](PATH,'.xlsx');var _0x42147f=_0x376f3b['split']&&_0x390207[_0xca8c('0x21')]>0x1;var _0x4daa00=[];if(!fs['existsSync'](path[_0xca8c('0x22')](_0x499932,_0x1b9290))&&_0x42147f){fs[_0xca8c('0x23')](path[_0xca8c('0x22')](_0x499932,_0x1b9290));}return BPromise['each'](_0x390207,function(_0x3101fd){_0x4daa00[_0xca8c('0x1d')](_0x3101fd);})[_0xca8c('0x12')](function(){for(var _0x4b6236=0x0;_0x4b6236<_0x4daa00[_0xca8c('0x21')];_0x4b6236+=0x1){var _0x58d88b;var _0x539347=_0x4daa00[_0x4b6236];if(_0x42147f){_0x58d88b=path[_0xca8c('0x22')](_0x499932,_0x1b9290,util[_0xca8c('0x14')]('%s%d.%s',_0x1b9290,_0x4b6236,_0xca8c('0x24')));}else{_0x58d88b=path[_0xca8c('0x22')](_0x499932,util[_0xca8c('0x14')](_0xca8c('0x25'),_0x1b9290,_0xca8c('0x24')));}fs[_0xca8c('0x26')](_0x58d88b,json2xls(_0x539347),_0xca8c('0x27'));}})[_0xca8c('0x12')](function(){if(_0x42147f){return new Promise(function(_0x3ca151){zipdir(path[_0xca8c('0x22')](_0x499932,_0x1b9290),{'saveTo':path[_0xca8c('0x22')](_0x499932,util[_0xca8c('0x14')]('%s.%s',_0x1b9290,_0xca8c('0x28')))},function(_0x19ded5,_0x160ad7){rimraf(path['join'](_0x499932,_0x1b9290),function(){});_0x3ca151(_0xca8c('0x29'));});});}})[_0xca8c('0x12')](function(){logger[_0xca8c('0xc')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xca8c('0x2a'),_0x42147f?util[_0xca8c('0x14')](_0xca8c('0x25'),_0x1b9290,_0x42147f?_0xca8c('0x28'):'xlsx'):null);});})[_0xca8c('0x2b')](function(_0x3a4593){logger[_0xca8c('0xc')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xca8c('0xe')),util['inspect'](_0x3a4593,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xca8c('0x2c'));})[_0xca8c('0x2d')](function(){process[_0xca8c('0x2e')](EXIT_CODE);});}main();