Built motion from commit 9d7072cc.|2.5.39
[motion2.git] / server / components / export / pdf.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 _0x7c9b=['then','isInteger','sequelize','query','QueryTypes','SELECT','dirname','basename','existsSync','join','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','AnalyticExtractedReport','findOne','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','end','createPdfFromHTML','util','path','html-to-pdfmake','zip-dir','rimraf','JSDOM','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','map','tableHeader','pick','toString','value','length','auto','body','push','concat','chunk','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','header','margin','\x20/\x20','footer','Arial','right','num','Setting','find','split','splitSizePdf'];(function(_0x228ac9,_0x42f065){var _0x69fe02=function(_0x210551){while(--_0x210551){_0x228ac9['push'](_0x228ac9['shift']());}};_0x69fe02(++_0x42f065);}(_0x7c9b,0x1cf));var _0xb7c9=function(_0xc4d2ff,_0x4488f2){_0xc4d2ff=_0xc4d2ff-0x0;var _0x500f45=_0x7c9b[_0xc4d2ff];return _0x500f45;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xb7c9('0x0'));var path=require(_0xb7c9('0x1'));var moment=require('moment');var htmlToPdfmake=require(_0xb7c9('0x2'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0xb7c9('0x3'));var rimraf=require(_0xb7c9('0x4'));var JSDOM=require('jsdom')[_0xb7c9('0x5')];var window=new JSDOM('')['window'];var BPromise=require('bluebird');var db=require('../../mysqldb')['db'];var dbH=require(_0xb7c9('0x6'))[_0xb7c9('0x7')];var logger=require(_0xb7c9('0x8'))(_0xb7c9('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xb7c9('0xa')][0x2]);var QUERY=process[_0xb7c9('0xa')][0x3];var PATH=process[_0xb7c9('0xa')][0x4];var NAME=process[_0xb7c9('0xa')][0x5];var FORMAT=_0xb7c9('0xb');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xfade09,_0x22ab28){var _0x2e2bf1={'status':_0xfade09};var _0x319465={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x22ab28){_0x2e2bf1[_0xb7c9('0xc')]=_0x22ab28;}return db['AnalyticExtractedReport']['update'](_0x2e2bf1,_0x319465);}function getHeaders(_0x23a901){return _[_0xb7c9('0xd')](_0x23a901,function(_0x572464){return{'text':_0x572464,'style':_0xb7c9('0xe')};});}function getRows(_0x24449d,_0x3234fb){return _[_0xb7c9('0xd')](_0x3234fb,function(_0x32eaf9){return _(_0x32eaf9)[_0xb7c9('0xf')](_0x24449d)[_0xb7c9('0xd')](function(_0x302458){return _0x302458?_[_0xb7c9('0x10')](_0x302458):'';})[_0xb7c9('0x11')]();});}function createTable(_0x1d46e0,_0x252c86){var _0x424ab6={'widths':_['fill'](Array(_0x1d46e0[_0xb7c9('0x12')]),0x91),'heights':function(_0x5873b1){return _0x5873b1===0x0?_0xb7c9('0x13'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x26d5e5=getHeaders(_0x1d46e0);_0x424ab6[_0xb7c9('0x14')][_0xb7c9('0x15')](_0x26d5e5);var _0xe16a6e=getRows(_0x1d46e0,_0x252c86);_0x424ab6[_0xb7c9('0x14')]=_0x424ab6[_0xb7c9('0x14')][_0xb7c9('0x16')](_0xe16a6e);return _0x424ab6;}function createTables(_0xd4c9e1){var _0x316b2e=[];var _0x30c86c=_[_0xb7c9('0x17')](Object[_0xb7c9('0x18')](_0xd4c9e1[0x0]),0x5);_0x30c86c[_0xb7c9('0x19')](function(_0x9cb484){_0x316b2e[_0xb7c9('0x15')](createTable(_0x9cb484,_0xd4c9e1));});return _0x316b2e;}function getPDFDocDefinition(_0x4fc9be){var _0xffc097=util['format'](_0xb7c9('0x1a'),NAME,EXTRACTED_REPORT[_0xb7c9('0x1b')],moment(EXTRACTED_REPORT[_0xb7c9('0x1c')])[_0xb7c9('0x1d')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0xb7c9('0x1d')](FORMAT));var _0x4e9730=[];for(var _0x212880=0x0;_0x212880<_0x4fc9be[_0xb7c9('0x12')];_0x212880++){var _0x1b0712=[];if(_0x212880===0x0){_0x1b0712[_0xb7c9('0x15')]({'text':_0xffc097,'style':_0xb7c9('0x1e')});}var _0x16b5f9={'table':_0x4fc9be[_0x212880]};if(_0x212880>0x0){_0x16b5f9['pageBreak']='before';_0x16b5f9[_0xb7c9('0x1f')]=[0x0,0x46,0x0,0x0];}_0x1b0712[_0xb7c9('0x15')](_0x16b5f9);_0x4e9730[_0xb7c9('0x15')](_0x1b0712);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x4e9730,'footer':function(_0xe52fc0,_0x5eae82){return{'text':_0xe52fc0[_0xb7c9('0x10')]()+_0xb7c9('0x20')+_0x5eae82,'style':_0xb7c9('0x21')};},'defaultStyle':{'font':_0xb7c9('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0xb7c9('0x23'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x177437){var _0x2b331d=0x1388;var _0x2f0bf3;if(!_0x177437[0x0][_0xb7c9('0x24')]){return analyticExtractedReport('Empty');}return db[_0xb7c9('0x25')][_0xb7c9('0x26')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb7c9('0x27'),_0xb7c9('0x28')]})[_0xb7c9('0x29')](function(_0x5ca144){if(_0x5ca144){_0x2f0bf3=_0x5ca144;_0x2b331d=_0x2f0bf3[_0xb7c9('0x28')]||0x3e8;}})['then'](function(){var _0x290ff4=[];var _0x2e621a=0x0;if(_0x2f0bf3[_0xb7c9('0x27')]){if(_0x177437&&_0x177437[_0xb7c9('0x12')]){var _0x1fafa2=_['range'](_0x177437[0x0]['num']/_0x2b331d);var _0x5a025d=Number[_0xb7c9('0x2a')](_0x177437[0x0][_0xb7c9('0x24')]/_0x2b331d)?_0x177437[0x0][_0xb7c9('0x24')]%_0x2b331d:0x0;_0x1fafa2[_0xb7c9('0x19')](function(_0x511469){if(_0x511469>0x0){_0x2e621a+=_0x2b331d;}_0x290ff4[_0xb7c9('0x15')](dbH[_0xb7c9('0x2b')][_0xb7c9('0x2c')](util[_0xb7c9('0x1d')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x2b331d,_0x2e621a),{'type':dbH[_0xb7c9('0x2b')][_0xb7c9('0x2d')]['SELECT']}));});if(_0x5a025d>0x0){_0x2e621a+=_0x2b331d;_0x290ff4[_0xb7c9('0x15')](dbH[_0xb7c9('0x2b')][_0xb7c9('0x2c')](util[_0xb7c9('0x1d')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x5a025d,_0x2e621a),{'type':dbH[_0xb7c9('0x2b')][_0xb7c9('0x2d')][_0xb7c9('0x2e')]}));}}}else{_0x290ff4[_0xb7c9('0x15')](dbH[_0xb7c9('0x2b')][_0xb7c9('0x2c')](QUERY,{'type':dbH['sequelize'][_0xb7c9('0x2d')]['SELECT']}));}var _0x4be295=path[_0xb7c9('0x2f')](PATH);var _0x520bf2=path[_0xb7c9('0x30')](PATH,'.pdf');var _0x359fdc=_0x2f0bf3[_0xb7c9('0x27')]&&_0x290ff4[_0xb7c9('0x12')]>0x1;var _0x62174d=[];if(!fs[_0xb7c9('0x31')](path[_0xb7c9('0x32')](_0x4be295,_0x520bf2))&&_0x359fdc){fs['mkdirSync'](path['join'](_0x4be295,_0x520bf2));}return BPromise[_0xb7c9('0x33')](_0x290ff4,function(_0x1a0ef0){_0x62174d[_0xb7c9('0x15')](_0x1a0ef0);})[_0xb7c9('0x29')](function(){var _0x55f046=[];for(var _0x521a44=0x0;_0x521a44<_0x62174d[_0xb7c9('0x12')];_0x521a44+=0x1){var _0x557d96=_0x62174d[_0x521a44];var _0x2d6ece=createTables(_[_0xb7c9('0x34')](_0x557d96));var _0x3e0293;var _0x191e05=getPDFDocDefinition(_0x2d6ece);var _0x3b85e8=getPDFPrinter();var _0x9d068f=_0x3b85e8[_0xb7c9('0x35')](_0x191e05);if(_0x359fdc){_0x3e0293=path['join'](_0x4be295,_0x520bf2,util[_0xb7c9('0x1d')](_0xb7c9('0x36'),_0x520bf2,_0x521a44,_0xb7c9('0x37')));}else{_0x3e0293=path[_0xb7c9('0x32')](_0x4be295,util[_0xb7c9('0x1d')]('%s.%s',_0x520bf2,_0xb7c9('0x37')));}_0x55f046['push'](writePDFDocument(_0x9d068f,_0x3e0293));}return Promise[_0xb7c9('0x38')](_0x55f046);})[_0xb7c9('0x29')](function(){if(_0x359fdc){return new Promise(function(_0x4bcf1f){zipdir(path['join'](_0x4be295,_0x520bf2),{'saveTo':path['join'](_0x4be295,util['format']('%s.%s',_0x520bf2,_0xb7c9('0x39')))},function(){rimraf(path[_0xb7c9('0x32')](_0x4be295,_0x520bf2),function(){});_0x4bcf1f(_0xb7c9('0x3a'));});});}})[_0xb7c9('0x29')](function(){if(!_0x359fdc)return;rimraf(path[_0xb7c9('0x32')](_0x4be295,_0x520bf2),function(){});})[_0xb7c9('0x29')](function(){logger[_0xb7c9('0x3b')](util['format'](_0xb7c9('0x3c'),EXTRACTED_REPORT_ID,_0xb7c9('0x3d')));return analyticExtractedReport(_0xb7c9('0x3e'),_0x359fdc?util[_0xb7c9('0x1d')]('%s.%s',_0x520bf2,_0x359fdc?_0xb7c9('0x39'):_0xb7c9('0x37')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xb7c9('0x3b')](util[_0xb7c9('0x1d')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xb7c9('0x3d')));return db[_0xb7c9('0x3f')][_0xb7c9('0x40')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xb7c9('0x29')](function(_0x1ebb0e){EXTRACTED_REPORT=_0x1ebb0e;return dbH[_0xb7c9('0x2b')]['query'](util[_0xb7c9('0x1d')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0xb7c9('0x29')](extractReport)['catch'](function(_0x4ce21b){logger[_0xb7c9('0x3b')](util[_0xb7c9('0x1d')](_0xb7c9('0x41'),EXTRACTED_REPORT_ID,_0xb7c9('0x3d')),util['inspect'](_0x4ce21b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0xb7c9('0x42')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x57ba42=new PdfPrinter({'Arial':{'normal':__dirname+_0xb7c9('0x43'),'bold':__dirname+_0xb7c9('0x44'),'italics':__dirname+_0xb7c9('0x45'),'bolditalics':__dirname+_0xb7c9('0x46')}});return _0x57ba42;}function getPDFDocDefinitionFromHTML(_0x4a138e,_0x155503){var _0x4c1c95=util['format'](_0xb7c9('0x47'),_0x155503[_0xb7c9('0x48')],_0x155503[_0xb7c9('0x49')]);var _0x49afb5=moment()[_0xb7c9('0x1d')](_0xb7c9('0x4a'))[_0xb7c9('0x10')]();var _0x2572c7=htmlToPdfmake(_0x4a138e,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2572c7],'defaultStyle':{'font':_0xb7c9('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xb7c9('0x4b'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xb7c9('0x4b')}},'header':function(){return[{'text':_0xb7c9('0x4c'),'style':_0xb7c9('0x1e')}];},'footer':function(_0x2f7606,_0x130cac){return[{'text':util[_0xb7c9('0x1d')](_0xb7c9('0x4d'),_0x4c1c95,_0x2f7606,_0x130cac,_0x49afb5),'style':_0xb7c9('0x21')}];}};}function writePDFDocument(_0x2c2f75,_0x743331){return new Promise(function(_0x135aff,_0x33e297){var _0x3aa262=_0x2c2f75[_0xb7c9('0x4e')](fs[_0xb7c9('0x4f')](_0x743331));_0x3aa262['on'](_0xb7c9('0x50'),function(){_0x135aff('finish');});_0x3aa262['on'](_0xb7c9('0x51'),function(_0x50d734){_0x33e297(_0x50d734);});_0x2c2f75[_0xb7c9('0x52')]();});}exports[_0xb7c9('0x53')]=function(_0x2abaed,_0x401a3e){var _0x57e333=getPDFPrinter();var _0x1533d3=getPDFDocDefinitionFromHTML(_0x2abaed,_0x401a3e);var _0x1c55fa=_0x57e333[_0xb7c9('0x35')](_0x1533d3);return writePDFDocument(_0x1c55fa,_0x401a3e[_0xb7c9('0x1')])['catch'](function(_0x1204ab){throw _0x1204ab;});};