Built motion from commit 4ffc18b1.|2.6.31
[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 _0x2be2=['startDate','endDate','header','pageBreak','before','landscape','\x20/\x20','footer','black','right','num','Empty','Setting','find','split','splitSizePdf','then','isInteger','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','query','SELECT','dirname','.pdf','mkdirSync','join','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','zip','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','AnalyticExtractedReport','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','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','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','finish','error','end','createPdfFromHTML','path','lodash','util','moment','pdfmake/src/printer','rimraf','jsdom','JSDOM','window','../../mysqldb','dbH','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','tableHeader','map','toString','value','length','auto','body','push','concat','chunk','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s'];(function(_0x57dfec,_0x2d5893){var _0x5e6d8d=function(_0x19f23f){while(--_0x19f23f){_0x57dfec['push'](_0x57dfec['shift']());}};_0x5e6d8d(++_0x2d5893);}(_0x2be2,0x1a8));var _0x22be=function(_0x397fc3,_0x12caf7){_0x397fc3=_0x397fc3-0x0;var _0x412cb1=_0x2be2[_0x397fc3];return _0x412cb1;};'use strict';var _=require(_0x22be('0x0'));var fs=require('fs');var util=require(_0x22be('0x1'));var path=require('path');var moment=require(_0x22be('0x2'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0x22be('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0x22be('0x4'));var JSDOM=require(_0x22be('0x5'))[_0x22be('0x6')];var window=new JSDOM('')[_0x22be('0x7')];var BPromise=require('bluebird');var db=require(_0x22be('0x8'))['db'];var dbH=require(_0x22be('0x8'))[_0x22be('0x9')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x22be('0xa')][0x2]);var QUERY=process[_0x22be('0xa')][0x3];var PATH=process[_0x22be('0xa')][0x4];var NAME=process[_0x22be('0xa')][0x5];var FORMAT=_0x22be('0xb');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x1fca47,_0x5297b5){var _0x1c2a09={'status':_0x1fca47};var _0x366927={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5297b5){_0x1c2a09[_0x22be('0xc')]=_0x5297b5;}return db['AnalyticExtractedReport']['update'](_0x1c2a09,_0x366927);}function getHeaders(_0x381294){return _['map'](_0x381294,function(_0x228682){return{'text':_0x228682,'style':_0x22be('0xd')};});}function getRows(_0x4521db,_0x18e517){return _[_0x22be('0xe')](_0x18e517,function(_0x138897){return _(_0x138897)['pick'](_0x4521db)[_0x22be('0xe')](function(_0x4e5a93){return _0x4e5a93?_[_0x22be('0xf')](_0x4e5a93):'';})[_0x22be('0x10')]();});}function createTable(_0x18ac42,_0x3d85c3){var _0x5e5259={'widths':_['fill'](Array(_0x18ac42[_0x22be('0x11')]),0x91),'heights':function(_0x2ba46a){return _0x2ba46a===0x0?_0x22be('0x12'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x4b79ca=getHeaders(_0x18ac42);_0x5e5259[_0x22be('0x13')][_0x22be('0x14')](_0x4b79ca);var _0x164982=getRows(_0x18ac42,_0x3d85c3);_0x5e5259[_0x22be('0x13')]=_0x5e5259[_0x22be('0x13')][_0x22be('0x15')](_0x164982);return _0x5e5259;}function createTables(_0x3a5e9a){var _0x4e2d77=[];var _0x1b14e4=_[_0x22be('0x16')](Object['keys'](_0x3a5e9a[0x0]),0x5);_0x1b14e4[_0x22be('0x17')](function(_0x1fe797){_0x4e2d77['push'](createTable(_0x1fe797,_0x3a5e9a));});return _0x4e2d77;}function getPDFDocDefinition(_0x299744){var _0x29184c=util[_0x22be('0x18')](_0x22be('0x19'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0x22be('0x1a')])[_0x22be('0x18')](FORMAT),moment(EXTRACTED_REPORT[_0x22be('0x1b')])[_0x22be('0x18')](FORMAT));var _0x59d111=[];for(var _0x165b48=0x0;_0x165b48<_0x299744['length'];_0x165b48++){var _0x433098=[];if(_0x165b48===0x0){_0x433098[_0x22be('0x14')]({'text':_0x29184c,'style':_0x22be('0x1c')});}var _0x24eb01={'table':_0x299744[_0x165b48]};if(_0x165b48>0x0){_0x24eb01[_0x22be('0x1d')]=_0x22be('0x1e');_0x24eb01['margin']=[0x0,0x46,0x0,0x0];}_0x433098[_0x22be('0x14')](_0x24eb01);_0x59d111[_0x22be('0x14')](_0x433098);}return{'pageSize':'A4','pageOrientation':_0x22be('0x1f'),'content':_0x59d111,'footer':function(_0x21f122,_0x52f050){return{'text':_0x21f122[_0x22be('0xf')]()+_0x22be('0x20')+_0x52f050,'style':_0x22be('0x21')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x22be('0x22')},'footer':{'alignment':_0x22be('0x23'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x1d0d04){var _0x78fe83=0x1388;var _0x22d477;if(!_0x1d0d04[0x0][_0x22be('0x24')]){return analyticExtractedReport(_0x22be('0x25'));}return db[_0x22be('0x26')][_0x22be('0x27')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x22be('0x28'),_0x22be('0x29')]})[_0x22be('0x2a')](function(_0x20f99d){if(_0x20f99d){_0x22d477=_0x20f99d;_0x78fe83=_0x22d477['splitSizePdf']||0x3e8;}})[_0x22be('0x2a')](function(){var _0x378f6b=[];var _0x3301e3=0x0;if(_0x22d477[_0x22be('0x28')]){if(_0x1d0d04&&_0x1d0d04[_0x22be('0x11')]){var _0x410728=_['range'](_0x1d0d04[0x0]['num']/_0x78fe83);var _0x2cd0cf=Number[_0x22be('0x2b')](_0x1d0d04[0x0][_0x22be('0x24')]/_0x78fe83)?_0x1d0d04[0x0]['num']%_0x78fe83:0x0;_0x410728[_0x22be('0x17')](function(_0x1430d3){if(_0x1430d3>0x0){_0x3301e3+=_0x78fe83;}_0x378f6b[_0x22be('0x14')](dbH[_0x22be('0x2c')]['query'](util[_0x22be('0x18')](_0x22be('0x2d'),QUERY,_0x78fe83,_0x3301e3),{'type':dbH[_0x22be('0x2c')][_0x22be('0x2e')]['SELECT']}));});if(_0x2cd0cf>0x0){_0x3301e3+=_0x78fe83;_0x378f6b[_0x22be('0x14')](dbH[_0x22be('0x2c')][_0x22be('0x2f')](util['format'](_0x22be('0x2d'),QUERY,_0x2cd0cf,_0x3301e3),{'type':dbH[_0x22be('0x2c')][_0x22be('0x2e')][_0x22be('0x30')]}));}}}else{_0x378f6b['push'](dbH['sequelize'][_0x22be('0x2f')](QUERY,{'type':dbH[_0x22be('0x2c')][_0x22be('0x2e')][_0x22be('0x30')]}));}var _0x4b6d5b=path[_0x22be('0x31')](PATH);var _0x37f6cf=path['basename'](PATH,_0x22be('0x32'));var _0x1144f3=_0x22d477[_0x22be('0x28')]&&_0x378f6b[_0x22be('0x11')]>0x1;var _0x4c541e=[];if(!fs['existsSync'](path['join'](_0x4b6d5b,_0x37f6cf))&&_0x1144f3){fs[_0x22be('0x33')](path[_0x22be('0x34')](_0x4b6d5b,_0x37f6cf));}return BPromise[_0x22be('0x35')](_0x378f6b,function(_0x39b480){_0x4c541e[_0x22be('0x14')](_0x39b480);})[_0x22be('0x2a')](function(){var _0x3cc5f0=[];for(var _0x4dbe97=0x0;_0x4dbe97<_0x4c541e[_0x22be('0x11')];_0x4dbe97+=0x1){var _0x275027=_0x4c541e[_0x4dbe97];var _0x2dc992=createTables(_[_0x22be('0x36')](_0x275027));var _0x299a7b;var _0x35f4f1=getPDFDocDefinition(_0x2dc992);var _0xd8e485=getPDFPrinter();var _0x322f80=_0xd8e485[_0x22be('0x37')](_0x35f4f1);if(_0x1144f3){_0x299a7b=path[_0x22be('0x34')](_0x4b6d5b,_0x37f6cf,util[_0x22be('0x18')](_0x22be('0x38'),_0x37f6cf,_0x4dbe97,_0x22be('0x39')));}else{_0x299a7b=path[_0x22be('0x34')](_0x4b6d5b,util['format']('%s.%s',_0x37f6cf,_0x22be('0x39')));}_0x3cc5f0['push'](writePDFDocument(_0x322f80,_0x299a7b));}return Promise[_0x22be('0x3a')](_0x3cc5f0);})[_0x22be('0x2a')](function(){if(_0x1144f3){return new Promise(function(_0x655b1d){zipdir(path[_0x22be('0x34')](_0x4b6d5b,_0x37f6cf),{'saveTo':path[_0x22be('0x34')](_0x4b6d5b,util['format'](_0x22be('0x3b'),_0x37f6cf,'zip'))},function(){rimraf(path[_0x22be('0x34')](_0x4b6d5b,_0x37f6cf),function(){});_0x655b1d('zip\x20finished');});});}})[_0x22be('0x2a')](function(){if(!_0x1144f3)return;rimraf(path[_0x22be('0x34')](_0x4b6d5b,_0x37f6cf),function(){});})[_0x22be('0x2a')](function(){logger[_0x22be('0x3c')](util[_0x22be('0x18')](_0x22be('0x3d'),EXTRACTED_REPORT_ID,_0x22be('0x3e')));return analyticExtractedReport(_0x22be('0x3f'),_0x1144f3?util['format'](_0x22be('0x3b'),_0x37f6cf,_0x1144f3?_0x22be('0x40'):_0x22be('0x39')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x22be('0x3c')](util[_0x22be('0x18')](_0x22be('0x41'),EXTRACTED_REPORT_ID,'PDF'));return db[_0x22be('0x42')][_0x22be('0x43')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x22be('0x2a')](function(_0x2d0794){EXTRACTED_REPORT=_0x2d0794;return dbH['sequelize'][_0x22be('0x2f')](util[_0x22be('0x18')](_0x22be('0x44'),QUERY),{'type':dbH[_0x22be('0x2c')][_0x22be('0x2e')][_0x22be('0x30')]});})[_0x22be('0x2a')](extractReport)['catch'](function(_0xfbc754){logger[_0x22be('0x3c')](util['format'](_0x22be('0x45'),EXTRACTED_REPORT_ID,'PDF'),util[_0x22be('0x46')](_0xfbc754,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x22be('0x47'));})[_0x22be('0x48')](function(){process[_0x22be('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x3efaa4=new PdfPrinter({'Arial':{'normal':__dirname+_0x22be('0x4a'),'bold':__dirname+_0x22be('0x4b'),'italics':__dirname+_0x22be('0x4c'),'bolditalics':__dirname+_0x22be('0x4d')}});return _0x3efaa4;}function getPDFDocDefinitionFromHTML(_0x55c098,_0x2e68d8){var _0x11d005=util[_0x22be('0x18')](_0x22be('0x4e'),_0x2e68d8[_0x22be('0x4f')],_0x2e68d8['interactionId']);var _0x524ac9=moment()[_0x22be('0x18')](_0x22be('0x50'))[_0x22be('0xf')]();var _0xd0a2a1=htmlToPdfmake(_0x55c098,{'window':window,'tableAutoSize':!![]});return{'content':[_0xd0a2a1],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x22be('0x51'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0x22be('0x52'),'style':'header'}];},'footer':function(_0x232db7,_0x521350){return[{'text':util[_0x22be('0x18')](_0x22be('0x53'),_0x11d005,_0x232db7,_0x521350,_0x524ac9),'style':_0x22be('0x21')}];}};}function writePDFDocument(_0x99b51d,_0x1f9336){return new Promise(function(_0x24f613,_0x1678b2){var _0x39a936=_0x99b51d[_0x22be('0x54')](fs['createWriteStream'](_0x1f9336));_0x39a936['on']('finish',function(){_0x24f613(_0x22be('0x55'));});_0x39a936['on'](_0x22be('0x56'),function(_0x2a3042){_0x1678b2(_0x2a3042);});_0x99b51d[_0x22be('0x57')]();});}exports[_0x22be('0x58')]=function(_0x8bdf6b,_0x52f56a){var _0x5f2ee3=getPDFPrinter();var _0x1f520f=getPDFDocDefinitionFromHTML(_0x8bdf6b,_0x52f56a);var _0x4abf8d=_0x5f2ee3[_0x22be('0x37')](_0x1f520f);return writePDFDocument(_0x4abf8d,_0x52f56a[_0x22be('0x59')])['catch'](function(_0x35cc23){throw _0x35cc23;});};