Built motion from commit f7863d46.|2.5.41
[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 _0xe13c=['join','mkdirSync','each','flatten','createPdfKitDocument','pdf','%s.%s','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','footer','pipe','createWriteStream','finish','error','path','util','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','bluebird','../../mysqldb','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','fill','length','auto','body','push','concat','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','header','pageBreak','landscape','\x20/\x20','Arial','black','right','Empty','Setting','find','split','splitSizePdf','then','range','num','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','QueryTypes','basename','existsSync'];(function(_0x3f32e4,_0x4681c7){var _0x18fbef=function(_0x14ccc9){while(--_0x14ccc9){_0x3f32e4['push'](_0x3f32e4['shift']());}};_0x18fbef(++_0x4681c7);}(_0xe13c,0x7f));var _0xce13=function(_0x468e62,_0x5f137a){_0x468e62=_0x468e62-0x0;var _0x5801ac=_0xe13c[_0x468e62];return _0x5801ac;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xce13('0x0'));var path=require('path');var moment=require(_0xce13('0x1'));var htmlToPdfmake=require(_0xce13('0x2'));var PdfPrinter=require(_0xce13('0x3'));var zipdir=require(_0xce13('0x4'));var rimraf=require('rimraf');var JSDOM=require(_0xce13('0x5'))[_0xce13('0x6')];var window=new JSDOM('')[_0xce13('0x7')];var BPromise=require(_0xce13('0x8'));var db=require(_0xce13('0x9'))['db'];var dbH=require(_0xce13('0x9'))['dbH'];var logger=require('../../config/logger')(_0xce13('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0xce13('0xb')][0x2]);var QUERY=process[_0xce13('0xb')][0x3];var PATH=process['argv'][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xce13('0xc');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x39545d,_0x17a984){var _0x4090fb={'status':_0x39545d};var _0x4699b4={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x17a984){_0x4090fb[_0xce13('0xd')]=_0x17a984;}return db[_0xce13('0xe')][_0xce13('0xf')](_0x4090fb,_0x4699b4);}function getHeaders(_0x83e270){return _[_0xce13('0x10')](_0x83e270,function(_0x422b51){return{'text':_0x422b51,'style':_0xce13('0x11')};});}function getRows(_0x30c536,_0x381266){return _[_0xce13('0x10')](_0x381266,function(_0x31c07c){return _(_0x31c07c)[_0xce13('0x12')](_0x30c536)[_0xce13('0x10')](function(_0x5dc6a0){return _0x5dc6a0?_[_0xce13('0x13')](_0x5dc6a0):'';})['value']();});}function createTable(_0x564c04,_0x28dc53){var _0x3e32b5={'widths':_[_0xce13('0x14')](Array(_0x564c04[_0xce13('0x15')]),0x91),'heights':function(_0x533d40){return _0x533d40===0x0?_0xce13('0x16'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x262ef4=getHeaders(_0x564c04);_0x3e32b5[_0xce13('0x17')][_0xce13('0x18')](_0x262ef4);var _0x283188=getRows(_0x564c04,_0x28dc53);_0x3e32b5['body']=_0x3e32b5[_0xce13('0x17')][_0xce13('0x19')](_0x283188);return _0x3e32b5;}function createTables(_0x4fa671){var _0x1c4f88=[];var _0x27842a=_['chunk'](Object[_0xce13('0x1a')](_0x4fa671[0x0]),0x5);_0x27842a[_0xce13('0x1b')](function(_0x3b9f60){_0x1c4f88[_0xce13('0x18')](createTable(_0x3b9f60,_0x4fa671));});return _0x1c4f88;}function getPDFDocDefinition(_0x4bc78b){var _0x589986=util['format'](_0xce13('0x1c'),NAME,EXTRACTED_REPORT[_0xce13('0x1d')],moment(EXTRACTED_REPORT[_0xce13('0x1e')])[_0xce13('0x1f')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0xce13('0x1f')](FORMAT));var _0x5a4b99=[];for(var _0x4a1c96=0x0;_0x4a1c96<_0x4bc78b['length'];_0x4a1c96++){var _0xef0a73=[];if(_0x4a1c96===0x0){_0xef0a73[_0xce13('0x18')]({'text':_0x589986,'style':_0xce13('0x20')});}var _0x5e71de={'table':_0x4bc78b[_0x4a1c96]};if(_0x4a1c96>0x0){_0x5e71de[_0xce13('0x21')]='before';_0x5e71de['margin']=[0x0,0x46,0x0,0x0];}_0xef0a73[_0xce13('0x18')](_0x5e71de);_0x5a4b99[_0xce13('0x18')](_0xef0a73);}return{'pageSize':'A4','pageOrientation':_0xce13('0x22'),'content':_0x5a4b99,'footer':function(_0x20cf4b,_0x498acc){return{'text':_0x20cf4b[_0xce13('0x13')]()+_0xce13('0x23')+_0x498acc,'style':'footer'};},'defaultStyle':{'font':_0xce13('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xce13('0x25')},'footer':{'alignment':_0xce13('0x26'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x20d3bf){var _0x466c25=0x1388;var _0x2182b0;if(!_0x20d3bf[0x0]['num']){return analyticExtractedReport(_0xce13('0x27'));}return db[_0xce13('0x28')][_0xce13('0x29')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xce13('0x2a'),_0xce13('0x2b')]})['then'](function(_0x4cc46c){if(_0x4cc46c){_0x2182b0=_0x4cc46c;_0x466c25=_0x2182b0['splitSizePdf']||0x3e8;}})[_0xce13('0x2c')](function(){var _0x4cfeaf=[];var _0x1f56ed=0x0;if(_0x2182b0[_0xce13('0x2a')]){if(_0x20d3bf&&_0x20d3bf[_0xce13('0x15')]){var _0x2b9797=_[_0xce13('0x2d')](_0x20d3bf[0x0][_0xce13('0x2e')]/_0x466c25);var _0x58aa8d=Number[_0xce13('0x2f')](_0x20d3bf[0x0][_0xce13('0x2e')]/_0x466c25)?_0x20d3bf[0x0]['num']%_0x466c25:0x0;_0x2b9797[_0xce13('0x1b')](function(_0x3feda6){if(_0x3feda6>0x0){_0x1f56ed+=_0x466c25;}_0x4cfeaf[_0xce13('0x18')](dbH[_0xce13('0x30')][_0xce13('0x31')](util[_0xce13('0x1f')](_0xce13('0x32'),QUERY,_0x466c25,_0x1f56ed),{'type':dbH['sequelize']['QueryTypes'][_0xce13('0x33')]}));});if(_0x58aa8d>0x0){_0x1f56ed+=_0x466c25;_0x4cfeaf[_0xce13('0x18')](dbH[_0xce13('0x30')]['query'](util[_0xce13('0x1f')](_0xce13('0x32'),QUERY,_0x58aa8d,_0x1f56ed),{'type':dbH[_0xce13('0x30')][_0xce13('0x34')][_0xce13('0x33')]}));}}}else{_0x4cfeaf[_0xce13('0x18')](dbH[_0xce13('0x30')][_0xce13('0x31')](QUERY,{'type':dbH[_0xce13('0x30')]['QueryTypes']['SELECT']}));}var _0x3b4ff8=path['dirname'](PATH);var _0x2c335a=path[_0xce13('0x35')](PATH,'.pdf');var _0x137bf5=_0x2182b0[_0xce13('0x2a')]&&_0x4cfeaf[_0xce13('0x15')]>0x1;var _0x4d1f1f=[];if(!fs[_0xce13('0x36')](path[_0xce13('0x37')](_0x3b4ff8,_0x2c335a))&&_0x137bf5){fs[_0xce13('0x38')](path['join'](_0x3b4ff8,_0x2c335a));}return BPromise[_0xce13('0x39')](_0x4cfeaf,function(_0x4999a6){_0x4d1f1f[_0xce13('0x18')](_0x4999a6);})[_0xce13('0x2c')](function(){var _0x4e877c=[];for(var _0xddc1d1=0x0;_0xddc1d1<_0x4d1f1f[_0xce13('0x15')];_0xddc1d1+=0x1){var _0x3a002c=_0x4d1f1f[_0xddc1d1];var _0x3ec876=createTables(_[_0xce13('0x3a')](_0x3a002c));var _0x29eee0;var _0x1ba212=getPDFDocDefinition(_0x3ec876);var _0x1ae4a1=getPDFPrinter();var _0x4e2540=_0x1ae4a1[_0xce13('0x3b')](_0x1ba212);if(_0x137bf5){_0x29eee0=path['join'](_0x3b4ff8,_0x2c335a,util[_0xce13('0x1f')]('%s%d.%s',_0x2c335a,_0xddc1d1,_0xce13('0x3c')));}else{_0x29eee0=path[_0xce13('0x37')](_0x3b4ff8,util[_0xce13('0x1f')](_0xce13('0x3d'),_0x2c335a,_0xce13('0x3c')));}_0x4e877c[_0xce13('0x18')](writePDFDocument(_0x4e2540,_0x29eee0));}return Promise[_0xce13('0x3e')](_0x4e877c);})[_0xce13('0x2c')](function(){if(_0x137bf5){return new Promise(function(_0xc12c3f){zipdir(path[_0xce13('0x37')](_0x3b4ff8,_0x2c335a),{'saveTo':path[_0xce13('0x37')](_0x3b4ff8,util[_0xce13('0x1f')](_0xce13('0x3d'),_0x2c335a,_0xce13('0x3f')))},function(){rimraf(path[_0xce13('0x37')](_0x3b4ff8,_0x2c335a),function(){});_0xc12c3f(_0xce13('0x40'));});});}})[_0xce13('0x2c')](function(){if(!_0x137bf5)return;rimraf(path[_0xce13('0x37')](_0x3b4ff8,_0x2c335a),function(){});})[_0xce13('0x2c')](function(){logger[_0xce13('0x41')](util[_0xce13('0x1f')](_0xce13('0x42'),EXTRACTED_REPORT_ID,_0xce13('0x43')));return analyticExtractedReport(_0xce13('0x44'),_0x137bf5?util[_0xce13('0x1f')](_0xce13('0x3d'),_0x2c335a,_0x137bf5?_0xce13('0x3f'):_0xce13('0x3c')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xce13('0x41')](util[_0xce13('0x1f')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xce13('0x43')));return db[_0xce13('0xe')][_0xce13('0x45')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xce13('0x2c')](function(_0x5d8a26){EXTRACTED_REPORT=_0x5d8a26;return dbH['sequelize'][_0xce13('0x31')](util[_0xce13('0x1f')](_0xce13('0x46'),QUERY),{'type':dbH[_0xce13('0x30')]['QueryTypes'][_0xce13('0x33')]});})[_0xce13('0x2c')](extractReport)[_0xce13('0x47')](function(_0x33a6f7){logger[_0xce13('0x41')](util[_0xce13('0x1f')](_0xce13('0x48'),EXTRACTED_REPORT_ID,_0xce13('0x43')),util[_0xce13('0x49')](_0x33a6f7,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xce13('0x4a'));})[_0xce13('0x4b')](function(){process[_0xce13('0x4c')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x167faa=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+_0xce13('0x4d'),'bolditalics':__dirname+_0xce13('0x4e')}});return _0x167faa;}function getPDFDocDefinitionFromHTML(_0x1ce2cc,_0x53249b){var _0x5ef852=util[_0xce13('0x1f')](_0xce13('0x4f'),_0x53249b[_0xce13('0x50')],_0x53249b['interactionId']);var _0x354913=moment()[_0xce13('0x1f')](_0xce13('0x51'))[_0xce13('0x13')]();var _0x4fa2c6=htmlToPdfmake(_0x1ce2cc,{'window':window,'tableAutoSize':!![]});return{'content':[_0x4fa2c6],'defaultStyle':{'font':_0xce13('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xce13('0x52'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xce13('0x52'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xce13('0x53'),'style':_0xce13('0x20')}];},'footer':function(_0x21c5fc,_0x4ca9c7){return[{'text':util[_0xce13('0x1f')](_0xce13('0x54'),_0x5ef852,_0x21c5fc,_0x4ca9c7,_0x354913),'style':_0xce13('0x55')}];}};}function writePDFDocument(_0x301936,_0x5aa74b){return new Promise(function(_0x7d2a3c,_0x471418){var _0xbe77f3=_0x301936[_0xce13('0x56')](fs[_0xce13('0x57')](_0x5aa74b));_0xbe77f3['on'](_0xce13('0x58'),function(){_0x7d2a3c('finish');});_0xbe77f3['on'](_0xce13('0x59'),function(_0x43297c){_0x471418(_0x43297c);});_0x301936['end']();});}exports['createPdfFromHTML']=function(_0x299145,_0x5a6054){var _0x513a35=getPDFPrinter();var _0x2eef5e=getPDFDocDefinitionFromHTML(_0x299145,_0x5a6054);var _0x3173ec=_0x513a35[_0xce13('0x3b')](_0x2eef5e);return writePDFDocument(_0x3173ec,_0x5a6054[_0xce13('0x5a')])[_0xce13('0x47')](function(_0x8624d0){throw _0x8624d0;});};