Built motion from commit ae138b72.|2.6.28
[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 _0x3dbb=['footer','right','num','Empty','Setting','find','then','splitSizePdf','split','range','isInteger','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','query','dirname','basename','.pdf','join','mkdirSync','each','flatten','%s%d.%s','all','zip','zip\x20finished','info','PDF','Completed','%s.%s','pdf','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','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-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','createWriteStream','finish','error','end','createPdfFromHTML','lodash','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','value','length','body','push','concat','chunk','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','endDate','header','pageBreak','before','margin','landscape'];(function(_0x82cd19,_0x4e65e6){var _0x47c15a=function(_0x42543d){while(--_0x42543d){_0x82cd19['push'](_0x82cd19['shift']());}};_0x47c15a(++_0x4e65e6);}(_0x3dbb,0x1bc));var _0xb3db=function(_0x1e3923,_0x477ce9){_0x1e3923=_0x1e3923-0x0;var _0x36cd0f=_0x3dbb[_0x1e3923];return _0x36cd0f;};'use strict';var _=require(_0xb3db('0x0'));var fs=require('fs');var util=require(_0xb3db('0x1'));var path=require(_0xb3db('0x2'));var moment=require(_0xb3db('0x3'));var htmlToPdfmake=require(_0xb3db('0x4'));var PdfPrinter=require(_0xb3db('0x5'));var zipdir=require(_0xb3db('0x6'));var rimraf=require(_0xb3db('0x7'));var JSDOM=require(_0xb3db('0x8'))[_0xb3db('0x9')];var window=new JSDOM('')[_0xb3db('0xa')];var BPromise=require(_0xb3db('0xb'));var db=require(_0xb3db('0xc'))['db'];var dbH=require(_0xb3db('0xc'))[_0xb3db('0xd')];var logger=require(_0xb3db('0xe'))(_0xb3db('0xf'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xb3db('0x10')][0x3];var PATH=process[_0xb3db('0x10')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xb3db('0x11');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x432f58,_0x50ad74){var _0x25d209={'status':_0x432f58};var _0x33fcd8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x50ad74){_0x25d209[_0xb3db('0x12')]=_0x50ad74;}return db[_0xb3db('0x13')][_0xb3db('0x14')](_0x25d209,_0x33fcd8);}function getHeaders(_0x175709){return _[_0xb3db('0x15')](_0x175709,function(_0x3aebb2){return{'text':_0x3aebb2,'style':_0xb3db('0x16')};});}function getRows(_0x100bec,_0x41498e){return _[_0xb3db('0x15')](_0x41498e,function(_0x94f2f3){return _(_0x94f2f3)[_0xb3db('0x17')](_0x100bec)[_0xb3db('0x15')](function(_0x1bc0aa){return _0x1bc0aa?_[_0xb3db('0x18')](_0x1bc0aa):'';})[_0xb3db('0x19')]();});}function createTable(_0x2bff3f,_0x33b8bc){var _0x5ada1d={'widths':_['fill'](Array(_0x2bff3f[_0xb3db('0x1a')]),0x91),'heights':function(_0x191fb7){return _0x191fb7===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x46147f=getHeaders(_0x2bff3f);_0x5ada1d[_0xb3db('0x1b')][_0xb3db('0x1c')](_0x46147f);var _0x9deff9=getRows(_0x2bff3f,_0x33b8bc);_0x5ada1d[_0xb3db('0x1b')]=_0x5ada1d[_0xb3db('0x1b')][_0xb3db('0x1d')](_0x9deff9);return _0x5ada1d;}function createTables(_0x3274dd){var _0x55f060=[];var _0x341485=_[_0xb3db('0x1e')](Object['keys'](_0x3274dd[0x0]),0x5);_0x341485['forEach'](function(_0x5b7163){_0x55f060[_0xb3db('0x1c')](createTable(_0x5b7163,_0x3274dd));});return _0x55f060;}function getPDFDocDefinition(_0x350722){var _0xc4151a=util['format'](_0xb3db('0x1f'),NAME,EXTRACTED_REPORT[_0xb3db('0x20')],moment(EXTRACTED_REPORT[_0xb3db('0x21')])[_0xb3db('0x22')](FORMAT),moment(EXTRACTED_REPORT[_0xb3db('0x23')])['format'](FORMAT));var _0x588ec1=[];for(var _0x2f4724=0x0;_0x2f4724<_0x350722[_0xb3db('0x1a')];_0x2f4724++){var _0x269e6b=[];if(_0x2f4724===0x0){_0x269e6b['push']({'text':_0xc4151a,'style':_0xb3db('0x24')});}var _0x16c45c={'table':_0x350722[_0x2f4724]};if(_0x2f4724>0x0){_0x16c45c[_0xb3db('0x25')]=_0xb3db('0x26');_0x16c45c[_0xb3db('0x27')]=[0x0,0x46,0x0,0x0];}_0x269e6b['push'](_0x16c45c);_0x588ec1[_0xb3db('0x1c')](_0x269e6b);}return{'pageSize':'A4','pageOrientation':_0xb3db('0x28'),'content':_0x588ec1,'footer':function(_0x5ee4db,_0x52f283){return{'text':_0x5ee4db[_0xb3db('0x18')]()+'\x20/\x20'+_0x52f283,'style':_0xb3db('0x29')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0xb3db('0x2a'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x40af86){var _0x91f5d7=0x1388;var _0x27c68e;if(!_0x40af86[0x0][_0xb3db('0x2b')]){return analyticExtractedReport(_0xb3db('0x2c'));}return db[_0xb3db('0x2d')][_0xb3db('0x2e')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})[_0xb3db('0x2f')](function(_0x539020){if(_0x539020){_0x27c68e=_0x539020;_0x91f5d7=_0x27c68e[_0xb3db('0x30')]||0x3e8;}})[_0xb3db('0x2f')](function(){var _0x2a0999=[];var _0x35eb4b=0x0;if(_0x27c68e[_0xb3db('0x31')]){if(_0x40af86&&_0x40af86['length']){var _0x346883=_[_0xb3db('0x32')](_0x40af86[0x0]['num']/_0x91f5d7);var _0xdf5f1c=Number[_0xb3db('0x33')](_0x40af86[0x0]['num']/_0x91f5d7)?_0x40af86[0x0]['num']%_0x91f5d7:0x0;_0x346883['forEach'](function(_0x44e2a7){if(_0x44e2a7>0x0){_0x35eb4b+=_0x91f5d7;}_0x2a0999[_0xb3db('0x1c')](dbH[_0xb3db('0x34')]['query'](util['format'](_0xb3db('0x35'),QUERY,_0x91f5d7,_0x35eb4b),{'type':dbH[_0xb3db('0x34')][_0xb3db('0x36')][_0xb3db('0x37')]}));});if(_0xdf5f1c>0x0){_0x35eb4b+=_0x91f5d7;_0x2a0999[_0xb3db('0x1c')](dbH[_0xb3db('0x34')]['query'](util[_0xb3db('0x22')](_0xb3db('0x35'),QUERY,_0xdf5f1c,_0x35eb4b),{'type':dbH[_0xb3db('0x34')][_0xb3db('0x36')][_0xb3db('0x37')]}));}}}else{_0x2a0999['push'](dbH['sequelize'][_0xb3db('0x38')](QUERY,{'type':dbH[_0xb3db('0x34')][_0xb3db('0x36')]['SELECT']}));}var _0x22cf9f=path[_0xb3db('0x39')](PATH);var _0x59d7b5=path[_0xb3db('0x3a')](PATH,_0xb3db('0x3b'));var _0x43b9c5=_0x27c68e[_0xb3db('0x31')]&&_0x2a0999[_0xb3db('0x1a')]>0x1;var _0x5d71ad=[];if(!fs['existsSync'](path[_0xb3db('0x3c')](_0x22cf9f,_0x59d7b5))&&_0x43b9c5){fs[_0xb3db('0x3d')](path['join'](_0x22cf9f,_0x59d7b5));}return BPromise[_0xb3db('0x3e')](_0x2a0999,function(_0x4458da){_0x5d71ad[_0xb3db('0x1c')](_0x4458da);})[_0xb3db('0x2f')](function(){var _0x8d6254=[];for(var _0x498ebd=0x0;_0x498ebd<_0x5d71ad[_0xb3db('0x1a')];_0x498ebd+=0x1){var _0x56f73c=_0x5d71ad[_0x498ebd];var _0x10a8d3=createTables(_[_0xb3db('0x3f')](_0x56f73c));var _0x4ec2a1;var _0x3158d8=getPDFDocDefinition(_0x10a8d3);var _0x135006=getPDFPrinter();var _0x367819=_0x135006['createPdfKitDocument'](_0x3158d8);if(_0x43b9c5){_0x4ec2a1=path['join'](_0x22cf9f,_0x59d7b5,util['format'](_0xb3db('0x40'),_0x59d7b5,_0x498ebd,'pdf'));}else{_0x4ec2a1=path[_0xb3db('0x3c')](_0x22cf9f,util[_0xb3db('0x22')]('%s.%s',_0x59d7b5,'pdf'));}_0x8d6254['push'](writePDFDocument(_0x367819,_0x4ec2a1));}return Promise[_0xb3db('0x41')](_0x8d6254);})[_0xb3db('0x2f')](function(){if(_0x43b9c5){return new Promise(function(_0x3f9e44){zipdir(path['join'](_0x22cf9f,_0x59d7b5),{'saveTo':path[_0xb3db('0x3c')](_0x22cf9f,util[_0xb3db('0x22')]('%s.%s',_0x59d7b5,_0xb3db('0x42')))},function(){rimraf(path['join'](_0x22cf9f,_0x59d7b5),function(){});_0x3f9e44(_0xb3db('0x43'));});});}})['then'](function(){if(!_0x43b9c5)return;rimraf(path[_0xb3db('0x3c')](_0x22cf9f,_0x59d7b5),function(){});})[_0xb3db('0x2f')](function(){logger[_0xb3db('0x44')](util[_0xb3db('0x22')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xb3db('0x45')));return analyticExtractedReport(_0xb3db('0x46'),_0x43b9c5?util[_0xb3db('0x22')](_0xb3db('0x47'),_0x59d7b5,_0x43b9c5?_0xb3db('0x42'):_0xb3db('0x48')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xb3db('0x44')](util[_0xb3db('0x22')](_0xb3db('0x49'),EXTRACTED_REPORT_ID,_0xb3db('0x45')));return db[_0xb3db('0x13')][_0xb3db('0x4a')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xb3db('0x2f')](function(_0x3b4017){EXTRACTED_REPORT=_0x3b4017;return dbH[_0xb3db('0x34')][_0xb3db('0x38')](util[_0xb3db('0x22')](_0xb3db('0x4b'),QUERY),{'type':dbH[_0xb3db('0x34')][_0xb3db('0x36')]['SELECT']});})[_0xb3db('0x2f')](extractReport)[_0xb3db('0x4c')](function(_0x44004e){logger[_0xb3db('0x44')](util[_0xb3db('0x22')](_0xb3db('0x4d'),EXTRACTED_REPORT_ID,_0xb3db('0x45')),util[_0xb3db('0x4e')](_0x44004e,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb3db('0x4f'));})[_0xb3db('0x50')](function(){process[_0xb3db('0x51')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x5984a8=new PdfPrinter({'Arial':{'normal':__dirname+_0xb3db('0x52'),'bold':__dirname+_0xb3db('0x53'),'italics':__dirname+_0xb3db('0x54'),'bolditalics':__dirname+_0xb3db('0x55')}});return _0x5984a8;}function getPDFDocDefinitionFromHTML(_0x55069e,_0x23c46b){var _0x1f5442=util[_0xb3db('0x22')](_0xb3db('0x56'),_0x23c46b[_0xb3db('0x57')],_0x23c46b[_0xb3db('0x58')]);var _0x3f7c5a=moment()[_0xb3db('0x22')](_0xb3db('0x59'))[_0xb3db('0x18')]();var _0x4cd22b=htmlToPdfmake(_0x55069e,{'window':window,'tableAutoSize':!![]});return{'content':[_0x4cd22b],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xb3db('0x5a'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xb3db('0x5b'),'style':_0xb3db('0x24')}];},'footer':function(_0x393235,_0x20c01b){return[{'text':util[_0xb3db('0x22')]('\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s',_0x1f5442,_0x393235,_0x20c01b,_0x3f7c5a),'style':'footer'}];}};}function writePDFDocument(_0x240f53,_0x32643d){return new Promise(function(_0x5c8ddb,_0x5ad142){var _0x7c7dbb=_0x240f53['pipe'](fs[_0xb3db('0x5c')](_0x32643d));_0x7c7dbb['on']('finish',function(){_0x5c8ddb(_0xb3db('0x5d'));});_0x7c7dbb['on'](_0xb3db('0x5e'),function(_0x24cd3a){_0x5ad142(_0x24cd3a);});_0x240f53[_0xb3db('0x5f')]();});}exports[_0xb3db('0x60')]=function(_0x3aa3f4,_0x506934){var _0x23417d=getPDFPrinter();var _0x4e0a85=getPDFDocDefinitionFromHTML(_0x3aa3f4,_0x506934);var _0x213b64=_0x23417d['createPdfKitDocument'](_0x4e0a85);return writePDFDocument(_0x213b64,_0x506934[_0xb3db('0x2')])[_0xb3db('0x4c')](function(_0x5df263){throw _0x5df263;});};