Built motion from commit e1760111.|2.6.18
[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 _0xb602=['pageBreak','margin','\x20/\x20','footer','Arial','black','right','num','Empty','splitSizePdf','then','split','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','join','mkdirSync','each','createPdfKitDocument','pdf','%s.%s','all','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','AnalyticExtractedReport','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','exit','/fonts/arial-regular.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','center','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','finish','util','path','moment','html-to-pdfmake','pdfmake/src/printer','rimraf','jsdom','JSDOM','window','../../mysqldb','dbH','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','map','pick','toString','length','auto','body','concat','keys','forEach','push','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','endDate','header'];(function(_0x19eddf,_0x3b50cf){var _0x1c10f6=function(_0x171010){while(--_0x171010){_0x19eddf['push'](_0x19eddf['shift']());}};_0x1c10f6(++_0x3b50cf);}(_0xb602,0xe1));var _0x2b60=function(_0x5a5678,_0x1f6eae){_0x5a5678=_0x5a5678-0x0;var _0x3138e9=_0xb602[_0x5a5678];return _0x3138e9;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0x2b60('0x0'));var path=require(_0x2b60('0x1'));var moment=require(_0x2b60('0x2'));var htmlToPdfmake=require(_0x2b60('0x3'));var PdfPrinter=require(_0x2b60('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x2b60('0x5'));var JSDOM=require(_0x2b60('0x6'))[_0x2b60('0x7')];var window=new JSDOM('')[_0x2b60('0x8')];var BPromise=require('bluebird');var db=require(_0x2b60('0x9'))['db'];var dbH=require(_0x2b60('0x9'))[_0x2b60('0xa')];var logger=require('../../config/logger')(_0x2b60('0xb'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x2b60('0xc')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0x2b60('0xc')][0x5];var FORMAT=_0x2b60('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x45a73a,_0x428856){var _0x5f54cf={'status':_0x45a73a};var _0x27bf5f={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x428856){_0x5f54cf[_0x2b60('0xe')]=_0x428856;}return db['AnalyticExtractedReport']['update'](_0x5f54cf,_0x27bf5f);}function getHeaders(_0x33581d){return _[_0x2b60('0xf')](_0x33581d,function(_0x494a03){return{'text':_0x494a03,'style':'tableHeader'};});}function getRows(_0x3716a6,_0x528d80){return _[_0x2b60('0xf')](_0x528d80,function(_0x4a49b2){return _(_0x4a49b2)[_0x2b60('0x10')](_0x3716a6)[_0x2b60('0xf')](function(_0x2a2e8b){return _0x2a2e8b?_[_0x2b60('0x11')](_0x2a2e8b):'';})['value']();});}function createTable(_0x3c910c,_0x23725a){var _0x2f9ac6={'widths':_['fill'](Array(_0x3c910c[_0x2b60('0x12')]),0x91),'heights':function(_0x195c44){return _0x195c44===0x0?_0x2b60('0x13'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x1f2c35=getHeaders(_0x3c910c);_0x2f9ac6[_0x2b60('0x14')]['push'](_0x1f2c35);var _0x55b756=getRows(_0x3c910c,_0x23725a);_0x2f9ac6[_0x2b60('0x14')]=_0x2f9ac6['body'][_0x2b60('0x15')](_0x55b756);return _0x2f9ac6;}function createTables(_0x2e68c6){var _0x48a4a1=[];var _0x2a91f1=_['chunk'](Object[_0x2b60('0x16')](_0x2e68c6[0x0]),0x5);_0x2a91f1[_0x2b60('0x17')](function(_0x2e367f){_0x48a4a1[_0x2b60('0x18')](createTable(_0x2e367f,_0x2e68c6));});return _0x48a4a1;}function getPDFDocDefinition(_0x536fba){var _0x2c94e0=util[_0x2b60('0x19')](_0x2b60('0x1a'),NAME,EXTRACTED_REPORT[_0x2b60('0x1b')],moment(EXTRACTED_REPORT['startDate'])[_0x2b60('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0x2b60('0x1c')])[_0x2b60('0x19')](FORMAT));var _0x7a0fd9=[];for(var _0x4b3330=0x0;_0x4b3330<_0x536fba[_0x2b60('0x12')];_0x4b3330++){var _0x1e36ce=[];if(_0x4b3330===0x0){_0x1e36ce[_0x2b60('0x18')]({'text':_0x2c94e0,'style':_0x2b60('0x1d')});}var _0x2e4d21={'table':_0x536fba[_0x4b3330]};if(_0x4b3330>0x0){_0x2e4d21[_0x2b60('0x1e')]='before';_0x2e4d21[_0x2b60('0x1f')]=[0x0,0x46,0x0,0x0];}_0x1e36ce['push'](_0x2e4d21);_0x7a0fd9[_0x2b60('0x18')](_0x1e36ce);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x7a0fd9,'footer':function(_0x3c42f7,_0x49663d){return{'text':_0x3c42f7['toString']()+_0x2b60('0x20')+_0x49663d,'style':_0x2b60('0x21')};},'defaultStyle':{'font':_0x2b60('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x2b60('0x23')},'footer':{'alignment':_0x2b60('0x24'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x110f7b){var _0x1cb460=0x1388;var _0x1e10a3;if(!_0x110f7b[0x0][_0x2b60('0x25')]){return analyticExtractedReport(_0x2b60('0x26'));}return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x2b60('0x27')]})[_0x2b60('0x28')](function(_0x2e6799){if(_0x2e6799){_0x1e10a3=_0x2e6799;_0x1cb460=_0x1e10a3['splitSizePdf']||0x3e8;}})['then'](function(){var _0x291f3c=[];var _0x50a697=0x0;if(_0x1e10a3[_0x2b60('0x29')]){if(_0x110f7b&&_0x110f7b[_0x2b60('0x12')]){var _0x44128e=_[_0x2b60('0x2a')](_0x110f7b[0x0][_0x2b60('0x25')]/_0x1cb460);var _0x2d462d=Number[_0x2b60('0x2b')](_0x110f7b[0x0][_0x2b60('0x25')]/_0x1cb460)?_0x110f7b[0x0][_0x2b60('0x25')]%_0x1cb460:0x0;_0x44128e[_0x2b60('0x17')](function(_0x450059){if(_0x450059>0x0){_0x50a697+=_0x1cb460;}_0x291f3c[_0x2b60('0x18')](dbH[_0x2b60('0x2c')][_0x2b60('0x2d')](util[_0x2b60('0x19')](_0x2b60('0x2e'),QUERY,_0x1cb460,_0x50a697),{'type':dbH[_0x2b60('0x2c')][_0x2b60('0x2f')][_0x2b60('0x30')]}));});if(_0x2d462d>0x0){_0x50a697+=_0x1cb460;_0x291f3c[_0x2b60('0x18')](dbH[_0x2b60('0x2c')]['query'](util['format'](_0x2b60('0x2e'),QUERY,_0x2d462d,_0x50a697),{'type':dbH[_0x2b60('0x2c')][_0x2b60('0x2f')][_0x2b60('0x30')]}));}}}else{_0x291f3c['push'](dbH['sequelize'][_0x2b60('0x2d')](QUERY,{'type':dbH[_0x2b60('0x2c')][_0x2b60('0x2f')][_0x2b60('0x30')]}));}var _0x5ef2ec=path[_0x2b60('0x31')](PATH);var _0x1596f8=path[_0x2b60('0x32')](PATH,_0x2b60('0x33'));var _0x11f477=_0x1e10a3[_0x2b60('0x29')]&&_0x291f3c[_0x2b60('0x12')]>0x1;var _0x1c831e=[];if(!fs[_0x2b60('0x34')](path[_0x2b60('0x35')](_0x5ef2ec,_0x1596f8))&&_0x11f477){fs[_0x2b60('0x36')](path[_0x2b60('0x35')](_0x5ef2ec,_0x1596f8));}return BPromise[_0x2b60('0x37')](_0x291f3c,function(_0x5d40d8){_0x1c831e[_0x2b60('0x18')](_0x5d40d8);})[_0x2b60('0x28')](function(){var _0x35bfdd=[];for(var _0x27c14e=0x0;_0x27c14e<_0x1c831e['length'];_0x27c14e+=0x1){var _0x2481a9=_0x1c831e[_0x27c14e];var _0x555724=createTables(_['flatten'](_0x2481a9));var _0x3d018b;var _0x3f4bc7=getPDFDocDefinition(_0x555724);var _0x318542=getPDFPrinter();var _0x11c0eb=_0x318542[_0x2b60('0x38')](_0x3f4bc7);if(_0x11f477){_0x3d018b=path[_0x2b60('0x35')](_0x5ef2ec,_0x1596f8,util[_0x2b60('0x19')]('%s%d.%s',_0x1596f8,_0x27c14e,_0x2b60('0x39')));}else{_0x3d018b=path[_0x2b60('0x35')](_0x5ef2ec,util[_0x2b60('0x19')](_0x2b60('0x3a'),_0x1596f8,_0x2b60('0x39')));}_0x35bfdd[_0x2b60('0x18')](writePDFDocument(_0x11c0eb,_0x3d018b));}return Promise[_0x2b60('0x3b')](_0x35bfdd);})[_0x2b60('0x28')](function(){if(_0x11f477){return new Promise(function(_0x2bade9){zipdir(path['join'](_0x5ef2ec,_0x1596f8),{'saveTo':path[_0x2b60('0x35')](_0x5ef2ec,util[_0x2b60('0x19')](_0x2b60('0x3a'),_0x1596f8,_0x2b60('0x3c')))},function(){rimraf(path['join'](_0x5ef2ec,_0x1596f8),function(){});_0x2bade9(_0x2b60('0x3d'));});});}})[_0x2b60('0x28')](function(){if(!_0x11f477)return;rimraf(path[_0x2b60('0x35')](_0x5ef2ec,_0x1596f8),function(){});})[_0x2b60('0x28')](function(){logger['info'](util['format'](_0x2b60('0x3e'),EXTRACTED_REPORT_ID,_0x2b60('0x3f')));return analyticExtractedReport(_0x2b60('0x40'),_0x11f477?util[_0x2b60('0x19')](_0x2b60('0x3a'),_0x1596f8,_0x11f477?_0x2b60('0x3c'):_0x2b60('0x39')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x2b60('0x41')](util['format'](_0x2b60('0x42'),EXTRACTED_REPORT_ID,_0x2b60('0x3f')));return db[_0x2b60('0x43')][_0x2b60('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x2b60('0x28')](function(_0x2e1f2b){EXTRACTED_REPORT=_0x2e1f2b;return dbH['sequelize'][_0x2b60('0x2d')](util[_0x2b60('0x19')](_0x2b60('0x45'),QUERY),{'type':dbH['sequelize'][_0x2b60('0x2f')][_0x2b60('0x30')]});})[_0x2b60('0x28')](extractReport)[_0x2b60('0x46')](function(_0x171ffb){logger[_0x2b60('0x41')](util[_0x2b60('0x19')](_0x2b60('0x47'),EXTRACTED_REPORT_ID,_0x2b60('0x3f')),util['inspect'](_0x171ffb,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x2b60('0x48'));})['finally'](function(){process[_0x2b60('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x4736d3=new PdfPrinter({'Arial':{'normal':__dirname+_0x2b60('0x4a'),'bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+_0x2b60('0x4b'),'bolditalics':__dirname+_0x2b60('0x4c')}});return _0x4736d3;}function getPDFDocDefinitionFromHTML(_0x1e0ccf,_0x1d10c4){var _0x5dd4c9=util[_0x2b60('0x19')](_0x2b60('0x4d'),_0x1d10c4[_0x2b60('0x4e')],_0x1d10c4[_0x2b60('0x4f')]);var _0x55ce4e=moment()[_0x2b60('0x19')](_0x2b60('0x50'))[_0x2b60('0x11')]();var _0x3b9a70=htmlToPdfmake(_0x1e0ccf,{'window':window,'tableAutoSize':!![]});return{'content':[_0x3b9a70],'defaultStyle':{'font':_0x2b60('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x2b60('0x51'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':'center','margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':'Interaction\x20Transcript','style':'header'}];},'footer':function(_0x5813fe,_0x562d29){return[{'text':util[_0x2b60('0x19')](_0x2b60('0x52'),_0x5dd4c9,_0x5813fe,_0x562d29,_0x55ce4e),'style':_0x2b60('0x21')}];}};}function writePDFDocument(_0x523d8c,_0x47fba5){return new Promise(function(_0x1f37d5,_0x4eea75){var _0x37bb10=_0x523d8c[_0x2b60('0x53')](fs['createWriteStream'](_0x47fba5));_0x37bb10['on'](_0x2b60('0x54'),function(){_0x1f37d5(_0x2b60('0x54'));});_0x37bb10['on']('error',function(_0x26a7e7){_0x4eea75(_0x26a7e7);});_0x523d8c['end']();});}exports['createPdfFromHTML']=function(_0x599d23,_0x12a6a5){var _0x174e83=getPDFPrinter();var _0x50d7bf=getPDFDocDefinitionFromHTML(_0x599d23,_0x12a6a5);var _0x118950=_0x174e83['createPdfKitDocument'](_0x50d7bf);return writePDFDocument(_0x118950,_0x12a6a5[_0x2b60('0x1')])[_0x2b60('0x46')](function(_0x2dd43e){throw _0x2dd43e;});};