d8a8e7b9f5053ace4245877c1a39518faf9264d3
[motion2.git] / server / components / import / cm / csv2.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 _0xe767=['cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','cm_hopper.ListId\x20=\x20?','concat','keys',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','exit','errors','code','sequelize','campaigns.id','campaigns.dialTimezone','campaigns','campaigns_has_cm_lists','spread','voice_queues.dialTimezone','voice_queues','voice_queues_has_cm_lists.CmListId=','query','catch','timezones','dialTimezone','utcOffset','set','offset','main','stringify','send','clone','socket_timestamp','server/files/tmp','.csv','includes','header','ContactItemType','name','_description','writeFileSync','parse','createReadStream','data','find','hasOwnProperty','trim','replace','YYYY-MM-DD\x20HH:mm:ss','isValid','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','description','rows','emit','Abort\x20parser','abort','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','campaigns_','voice_queues_','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','each','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','CompanyId',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','contactId','contactTypeId','orderBy','voice_queues_has_cm_lists','voice_queues_has_cm_blacklists','VoiceQueueId','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','unlink','complete','argv','root','existsSync','file\x20doesn\x27t\x20exists','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','No\x20agent\x20available','SIGINT','lodash','papaparse','util','bluebird','moment','squel','../../../config/environment','../../../config/logger','redis','defaults','localhost','socket.io-emitter','format','test','field','phone','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','CmContact','findAll','then','push','all','AdditionalPhones','length','split','isNil','filter','CmContactHasItem','PHONE','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','fromQuery','scheduledat','ListId','createdAt','updatedAt','priority','UserId','recallme','select','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','cm_hopper','\x22always\x22','toString','cm_contacts.id','into','cm_hopper_black','ContactId','fields','ListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_hopper.id','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','CmHopperId','cm_contacts.id\x20=\x20cm_hopper.ContactId'];(function(_0x3a8dc1,_0x2f03b8){var _0x4b3595=function(_0x1c19e7){while(--_0x1c19e7){_0x3a8dc1['push'](_0x3a8dc1['shift']());}};_0x4b3595(++_0x2f03b8);}(_0xe767,0x11e));var _0x7e76=function(_0x2a2998,_0x10367c){_0x2a2998=_0x2a2998-0x0;var _0x695b58=_0xe767[_0x2a2998];return _0x695b58;};'use strict';var fs=require('fs');var path=require('path');var _=require(_0x7e76('0x0'));var Papa=require(_0x7e76('0x1'));var util=require(_0x7e76('0x2'));var BPromise=require(_0x7e76('0x3'));var moment=require(_0x7e76('0x4'));var squel=require(_0x7e76('0x5'));var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require(_0x7e76('0x6'));var shared=require('../../../config/environment/shared');var logger=require(_0x7e76('0x7'))('import');config[_0x7e76('0x8')]=_[_0x7e76('0x9')](config[_0x7e76('0x8')],{'host':_0x7e76('0xa'),'port':0x18eb});var socket=require(_0x7e76('0xb'))(new Redis(config[_0x7e76('0x8')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0x7e76('0xc')]('YYYY-MM-DD\x20HH:mm:ss');var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x572469){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x7e76('0xd')](_0x572469);}function selectNotIn(_0x2dec6b,_0x7b60e,_0x5aefc7,_0x5229d3,_0x447e89){return squel['select']()[_0x7e76('0xe')](_0x7e76('0xf'))[_0x7e76('0x10')](_0x5229d3)['join'](_0x7b60e,null,_0x7b60e+_0x7e76('0x11')+_0x5229d3+'.'+_0x5aefc7)[_0x7e76('0x12')](_0x5229d3+'.'+_0x5aefc7+_0x7e76('0x13')+_0x2dec6b+'.'+_0x5aefc7)[_0x7e76('0x12')](_0x7b60e+_0x7e76('0x14')+_0x447e89[_0x7e76('0x15')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x4cdde8,_0x4606ca){promisesAdditionalPhones=[];return db[_0x7e76('0x16')][_0x7e76('0x17')]({'raw':!![],'attributes':['id','AdditionalPhones'],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x7e76('0x18')](function(_0x39a406){if(_0x39a406!==null){var _0x354625=[];for(var _0xdd6c33=0x0;_0xdd6c33<_0x39a406['length'];_0xdd6c33++){var _0x2390b4=_0x39a406[_0xdd6c33];_0x354625[_0x7e76('0x19')](insertAdditionalPhones(_0x2390b4));}}Promise[_0x7e76('0x1a')](_0x354625)['then'](function(){_0x4cdde8({'val':0x1});});});});}function insertAdditionalPhones(_0x21d37c){return new Promise(function(_0x329a4d,_0x28d658){var _0x53b4f5=_0x21d37c[_0x7e76('0x1b')];var _0x2d1509=_0x53b4f5['split'](';');var _0x3ea240=[];orderBy=0x0;for(var _0x5d2625=0x0;_0x5d2625<_0x2d1509[_0x7e76('0x1c')];_0x5d2625++){_0x3ea240[_0x7e76('0x19')](splitAdditionalPhone(_0x21d37c['id'],_0x2d1509[_0x5d2625]));}Promise[_0x7e76('0x1a')](_0x3ea240)[_0x7e76('0x18')](function(){_0x329a4d({'val':_0x2d1509[_0x7e76('0x1c')]});});});}function splitAdditionalPhone(_0x2ca063,_0x5e4303){return new Promise(function(_0x241e5b,_0x49b23a){var _0x1b5ca1=_0x5e4303[_0x7e76('0x1d')](':');var _0x2343b0=_0x1b5ca1[0x0];var _0x49644c=_0x1b5ca1[0x1];if(!_[_0x7e76('0x1e')](_0x49644c)){var _0x3178ce=_0x49644c['split']('|');var _0x5b09f2=[];for(var _0x5286ef=0x0;_0x5286ef<_0x3178ce[_0x7e76('0x1c')];_0x5286ef++){if(_0x3178ce[_0x5286ef]!==''){var _0xeb6410=_[_0x7e76('0x1f')](promisesAdditionalPhones,{'contactId':_0x2ca063,'phone':_0x3178ce[_0x5286ef]});if(_0xeb6410[_0x7e76('0x1c')]==0x0){orderBy++;promisesAdditionalPhones[_0x7e76('0x19')]({'contactId':_0x2ca063,'contactTypeId':_0x2343b0,'phone':_0x3178ce[_0x5286ef],'orderBy':orderBy});}}}_0x241e5b({'ok':0x1});}else _0x241e5b({'res':0x0});});}function createAdditionalPhone(_0x553b47,_0x398b57,_0x3ea474,_0x3e5716){var _0x17c249='';var _0x31ab2f='';var _0x920ba9=_0x3ea474[_0x7e76('0x1d')]('§');_0x17c249=_0x920ba9[0x0];if(_0x920ba9['length']==0x2)_0x31ab2f=_0x920ba9[0x1];return new Promise(function(_0x784a94,_0x58b3e1){return db[_0x7e76('0x20')]['findOne']({'where':{'CmContactId':_0x553b47,'item':_0x17c249}})['then'](function(_0x7e631a){if(_0x7e631a){return db[_0x7e76('0x20')]['update']({'ItemTypeId':_0x398b57,'description':_0x31ab2f,'OrderBy':_0x3e5716},{'where':{'CmContactId':_0x553b47,'item':_0x17c249}})[_0x7e76('0x18')](function(_0x596503){_0x784a94({'res':'updated'});});}else{return db[_0x7e76('0x20')]['create']({'CmContactId':_0x553b47,'item':_0x17c249,'description':_0x31ab2f,'ItemTypeId':_0x398b57,'OrderBy':_0x3e5716,'ItemClass':_0x7e76('0x21')})[_0x7e76('0x18')](function(_0x3dbcf0){_0x784a94({'res':_0x7e76('0x22')});});}});});}function insertCmHopper(_0x42bcc1,_0x4ff347,_0x590eba,_0x28d102,_0x58651e){var _0x5389fe=[_0x7e76('0x23'),_0x7e76('0x24'),'cm_contacts.id',_0x7e76('0x25'),_0x4ff347+'.'+_0x28d102,_0x7e76('0x26'),_0x7e76('0x27'),_0x7e76('0x28'),_0x7e76('0x29'),'\x22'+_0x58651e+'\x22'];return squel[_0x7e76('0x2a')]()['into']('cm_hopper')[_0x7e76('0x2b')]([_0x7e76('0xf'),_0x7e76('0x2c'),'ContactId',_0x7e76('0x2d'),_0x28d102,_0x7e76('0x2e'),_0x7e76('0x2f'),_0x7e76('0x30'),_0x7e76('0x31'),_0x7e76('0x32')],squel[_0x7e76('0x33')]()['fields'](_0x5389fe)['from'](_0x4ff347)[_0x7e76('0x15')](_0x7e76('0x34'),null,_0x7e76('0x35')+_0x4ff347+_0x7e76('0x36'))['join'](_0x590eba,null,_0x590eba+'.id\x20=\x20'+_0x4ff347+'.'+_0x28d102)[_0x7e76('0x12')](_0x4ff347+_0x7e76('0x37'),_0x42bcc1)[_0x7e76('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x7e76('0x12')](_0x7e76('0x38'),selectNotIn(_0x4ff347,_0x590eba,_0x28d102,_0x7e76('0x39'),[_0x7e76('0x3a'),'\x22onlyIfOpen\x22']))[_0x7e76('0x12')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x4ff347,_0x590eba,_0x28d102,_0x7e76('0x39'),[_0x7e76('0x3a')])))[_0x7e76('0x3b')]();}function insertCmHopperBlack(_0xca216e,_0x38faf1,_0x48cd8c,_0x43a3e3){var _0x367a38=[_0x7e76('0x23'),_0x7e76('0x3c'),_0x7e76('0x25'),_0x38faf1+'.'+_0x43a3e3,_0x7e76('0x26'),'cm_contacts.updatedAt'];return squel['insert']()[_0x7e76('0x3d')](_0x7e76('0x3e'))[_0x7e76('0x2b')]([_0x7e76('0xf'),_0x7e76('0x3f'),_0x7e76('0x2d'),_0x43a3e3,_0x7e76('0x2e'),_0x7e76('0x2f')],squel[_0x7e76('0x33')]()[_0x7e76('0x40')](_0x367a38)[_0x7e76('0x10')](_0x38faf1)[_0x7e76('0x15')]('cm_contacts',null,_0x7e76('0x35')+_0x38faf1+_0x7e76('0x36'))[_0x7e76('0x15')](_0x48cd8c,null,_0x48cd8c+_0x7e76('0x11')+_0x38faf1+'.'+_0x43a3e3)[_0x7e76('0x12')](_0x38faf1+'.CmListId\x20=\x20?',_0xca216e)[_0x7e76('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x7e76('0x12')](_0x7e76('0x38'),squel[_0x7e76('0x33')]()[_0x7e76('0xe')](_0x7e76('0xf'))[_0x7e76('0x10')](_0x7e76('0x3e'))[_0x7e76('0x12')](_0x7e76('0x41'),_0xca216e)[_0x7e76('0x12')](_0x43a3e3+_0x7e76('0x13')+_0x38faf1+'.'+_0x43a3e3)))[_0x7e76('0x3b')]();}function insertTzCmHopper(_0x4e6641,_0x7741d0,_0x99d46a,_0x4515dc,_0x21a812,_0x57364e){var _0x5892e5=[_0x7e76('0x23'),'date_add(cm_contacts.scheduledat,interval\x20'+_0x57364e+'.offset-cm_contacts.utcOffset\x20minute)',_0x7e76('0x3c'),_0x7e76('0x25'),_0x7741d0+'.'+_0x4515dc,_0x7e76('0x26'),_0x7e76('0x27'),_0x7e76('0x28'),_0x7e76('0x29'),'\x22'+_0x21a812+'\x22'];var _0x2160b9=squel[_0x7e76('0x2a')]()[_0x7e76('0x3d')](_0x7e76('0x39'))[_0x7e76('0x2b')]([_0x7e76('0xf'),_0x7e76('0x2c'),_0x7e76('0x3f'),_0x7e76('0x2d'),_0x4515dc,_0x7e76('0x2e'),_0x7e76('0x2f'),_0x7e76('0x30'),'UserId',_0x7e76('0x32')],squel[_0x7e76('0x33')]()['fields'](_0x5892e5)[_0x7e76('0x10')](_0x7741d0)[_0x7e76('0x15')](_0x7e76('0x34'),null,_0x7e76('0x35')+_0x7741d0+_0x7e76('0x36'))[_0x7e76('0x15')](_0x99d46a,null,_0x99d46a+_0x7e76('0x11')+_0x7741d0+'.'+_0x4515dc)[_0x7e76('0x15')](_0x57364e,null,_0x57364e+_0x7e76('0x11')+_0x7741d0+'.'+_0x4515dc)[_0x7e76('0x12')](_0x7741d0+_0x7e76('0x37'),_0x4e6641)[_0x7e76('0x12')](_0x7e76('0x42'),NOW)[_0x7e76('0x12')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x7741d0,_0x99d46a,_0x4515dc,_0x7e76('0x39'),['\x22always\x22','\x22onlyIfOpen\x22']))['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x7741d0,_0x99d46a,_0x4515dc,_0x7e76('0x39'),[_0x7e76('0x3a')])))['toString']();return _0x2160b9;}function insertTzCmHopperBlack(_0x1fc216,_0x41b59c,_0x142e83,_0x55b65e){var _0x12b63e=[_0x7e76('0x23'),_0x7e76('0x3c'),_0x7e76('0x25'),_0x41b59c+'.'+_0x55b65e,_0x7e76('0x26'),_0x7e76('0x27')];return squel[_0x7e76('0x2a')]()[_0x7e76('0x3d')](_0x7e76('0x3e'))[_0x7e76('0x2b')]([_0x7e76('0xf'),_0x7e76('0x3f'),_0x7e76('0x2d'),_0x55b65e,_0x7e76('0x2e'),_0x7e76('0x2f')],squel['select']()[_0x7e76('0x40')](_0x12b63e)['from'](_0x41b59c)[_0x7e76('0x15')]('cm_contacts',null,_0x7e76('0x35')+_0x41b59c+_0x7e76('0x36'))['join'](_0x142e83,null,_0x142e83+_0x7e76('0x11')+_0x41b59c+'.'+_0x55b65e)[_0x7e76('0x12')](_0x41b59c+_0x7e76('0x37'),_0x1fc216)['where'](_0x7e76('0x42'),NOW)[_0x7e76('0x12')](_0x7e76('0x38'),squel[_0x7e76('0x33')]()['field'](_0x7e76('0xf'))[_0x7e76('0x10')](_0x7e76('0x3e'))['where']('ListId\x20=\x20?',_0x1fc216)[_0x7e76('0x12')](_0x55b65e+'\x20=\x20'+_0x41b59c+'.'+_0x55b65e)))['toString']();}function insertCmHopperAdditionalPhones(_0x47096b){var _0x57f72e=[_0x7e76('0x43'),_0x7e76('0x44'),_0x7e76('0x45'),'cm_contact_has_items.createdAt',_0x7e76('0x46')];return squel['insert']()[_0x7e76('0x3d')](_0x7e76('0x47'))['fromQuery']([_0x7e76('0x48'),'phone','OrderBy',_0x7e76('0x2e'),_0x7e76('0x2f')],squel['select']()['fields'](_0x57f72e)['from'](_0x7e76('0x39'))[_0x7e76('0x15')](_0x7e76('0x34'),null,_0x7e76('0x49'))[_0x7e76('0x15')](_0x7e76('0x4a'),null,_0x7e76('0x4b'))[_0x7e76('0x12')](_0x7e76('0x4c'),_0x47096b)[_0x7e76('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW))[_0x7e76('0x3b')]();}function insertCmContact(_0x57ff13,_0x5a345f,_0x276f84,_0x4a2b6a){var _0x3f9640=_[_0x7e76('0x4d')](_[_0x7e76('0x4e')](_0x4a2b6a),[_0x7e76('0x2d'),'CompanyId',_0x7e76('0x2e'),_0x7e76('0x2f')]);return squel['insert']()['into']('cm_contacts')['fromQuery'](_0x3f9640,squel[_0x7e76('0x33')]()[_0x7e76('0x40')](_0x3f9640)[_0x7e76('0x10')](_0x5a345f)[_0x7e76('0x12')]('('+_0x276f84[_0x7e76('0x15')](',')+_0x7e76('0x4f'),squel['select']()[_0x7e76('0x40')](_0x276f84)[_0x7e76('0x10')](_0x7e76('0x34'))[_0x7e76('0x12')](_0x7e76('0x41'),_0x57ff13)[_0x7e76('0x12')](_0x7e76('0x50')))[_0x7e76('0x12')](_0x7e76('0x51'),squel[_0x7e76('0x33')]()[_0x7e76('0xe')](_0x7e76('0x52'),_0x7e76('0x53'))['from'](_0x5a345f)[_0x7e76('0x54')](_0x276f84['join'](','))))[_0x7e76('0x3b')]();}function handleStop(){logger[_0x7e76('0x55')](_0x7e76('0x56'));stopped=!![];}function handleUncaughtException(_0x25b8b9){logger[_0x7e76('0x57')](_0x25b8b9[_0x7e76('0x58')]);process[_0x7e76('0x59')](0x1);}function handleError(_0x2a97b8,_0x32df86){stats[_0x7e76('0x5a')]['push']({'name':_0x32df86[_0x7e76('0x5b')],'message':_0x32df86[_0x7e76('0x58')],'row':_0x2a97b8});}function handleQuery(_0x5790be){logger[_0x7e76('0x55')](_0x5790be);return db[_0x7e76('0x5c')]['query'](_0x5790be)['spread'](function(_0x3c9565){results[_0x7e76('0x19')](_0x3c9565);})['catch'](function(_0x1ad6d0){logger[_0x7e76('0x57')](_0x1ad6d0[_0x7e76('0x58')]);});}function updateTzCampaigns(_0xb6447a){return new Promise(function(_0x3c6be5,_0xbfc9c9){var _0x34cebe=squel[_0x7e76('0x33')]()[_0x7e76('0x40')]([_0x7e76('0x5d'),_0x7e76('0x5e')])['from'](_0x7e76('0x5f'))[_0x7e76('0x15')](_0x7e76('0x60'),null,'campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId')[_0x7e76('0x12')]('campaigns_has_cm_lists.CmListId='+_0xb6447a);db[_0x7e76('0x5c')]['query'](_0x34cebe[_0x7e76('0x3b')]())[_0x7e76('0x61')](function(_0x73970f){var _0x2b72c0=[];for(var _0x5ce7cc=0x0;_0x5ce7cc<_0x73970f[_0x7e76('0x1c')];_0x5ce7cc++){_0x2b72c0[_0x7e76('0x19')](getTimezoneData(_0x73970f[_0x5ce7cc],tmp_campaigns));}BPromise[_0x7e76('0x1a')](_0x2b72c0)[_0x7e76('0x18')](function(){_0x3c6be5({'val':0x1});});})['catch'](function(_0x1d368e){logger[_0x7e76('0x57')](_0x1d368e[_0x7e76('0x58')]);_0x3c6be5({'val':0x0});});});}function updateTzVoiceQueues(_0x4014c1){return new Promise(function(_0xfe9bc,_0x52ad5c){var _0x3563b2=squel[_0x7e76('0x33')]()[_0x7e76('0x40')](['voice_queues.id',_0x7e76('0x62')])[_0x7e76('0x10')](_0x7e76('0x63'))[_0x7e76('0x15')]('voice_queues_has_cm_lists',null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')[_0x7e76('0x12')](_0x7e76('0x64')+_0x4014c1);db['sequelize'][_0x7e76('0x65')](_0x3563b2[_0x7e76('0x3b')]())['spread'](function(_0x20276c){var _0x1e5772=[];for(var _0x259249=0x0;_0x259249<_0x20276c[_0x7e76('0x1c')];_0x259249++){_0x1e5772[_0x7e76('0x19')](getTimezoneData(_0x20276c[_0x259249],tmp_voice_queues));}BPromise[_0x7e76('0x1a')](_0x1e5772)[_0x7e76('0x18')](function(){_0xfe9bc({'val':0x1});});})[_0x7e76('0x66')](function(_0x5bd70d){logger[_0x7e76('0x57')](_0x5bd70d[_0x7e76('0x58')]);_0xfe9bc({'val':0x0});});});}function getTimezoneData(_0x2a2a48,_0x25c7e1){return new Promise(function(_0x28e0a7,_0x134e8e){var _0x4adc4b=shared[_0x7e76('0x67')];var _0x19d9a1=_0x4adc4b[_0x2a2a48[_0x7e76('0x68')]];if(_[_0x7e76('0x1e')](_0x19d9a1)){_0x28e0a7({'ret':0x1});}else{var _0x41279e=_0x19d9a1[_0x7e76('0x69')];var _0x32c3e4=squel['insert']()[_0x7e76('0x3d')](_0x25c7e1)[_0x7e76('0x6a')]('id',_0x2a2a48['id'])[_0x7e76('0x6a')](_0x7e76('0x6b'),_0x41279e)[_0x7e76('0x6a')]('dialTimezone',_0x2a2a48[_0x7e76('0x68')])[_0x7e76('0x3b')]();return db['sequelize'][_0x7e76('0x65')](_0x32c3e4)[_0x7e76('0x61')](function(_0xb010c2){_0x28e0a7({'ret':0x1});})[_0x7e76('0x66')](function(_0x2e3fcd){logger[_0x7e76('0x57')](_0x2e3fcd[_0x7e76('0x58')]);_0x134e8e({'ret':0x1});});}});}function handleTZQuery(_0x194a30){logger[_0x7e76('0x55')](_0x194a30);return db[_0x7e76('0x5c')][_0x7e76('0x65')](_0x194a30)['spread'](function(_0x7be35a){})[_0x7e76('0x66')](function(_0x4119e3){logger[_0x7e76('0x57')](_0x4119e3['message']);});}function main(_0x66d331,_0x1ad5af,_0x16c302,_0x1a9834){logger[_0x7e76('0x55')](_0x7e76('0x6c'),_0x66d331,JSON[_0x7e76('0x6d')](_0x1ad5af));process[_0x7e76('0x6e')]('start');var _0x5a6893=_0x1ad5af['binding'];var _0x18c209=_[_0x7e76('0x6f')](_0x5a6893);var _0x3b92d6=_0x1ad5af[_0x7e76('0x70')];var _0x221381=path[_0x7e76('0x15')](config['root'],_0x7e76('0x71'),_0x3b92d6+_0x7e76('0x72'));hasTZ=_[_0x7e76('0x4e')](_0x5a6893)[_0x7e76('0x73')]('dialTimezone');var _0x49857f=_[_0x7e76('0x4e')](_0x5a6893)[_0x7e76('0x15')]();logger[_0x7e76('0x55')](_0x7e76('0x74'),_0x49857f);db[_0x7e76('0x75')][_0x7e76('0x17')]({'raw':!![],'attributes':['id',_0x7e76('0x76')]})[_0x7e76('0x18')](function(_0x3d2bcb){for(var _0x2f858d=0x0;_0x2f858d<_0x3d2bcb[_0x7e76('0x1c')];_0x2f858d++){if(_0x3d2bcb[_0x2f858d]['name']in _0x5a6893){contactItemTypes['push'](_0x3d2bcb[_0x2f858d]);delete _0x18c209[_0x3d2bcb[_0x2f858d][_0x7e76('0x76')]];hasAdditionalPhones=!![];}for(var _0x24ccd0 in _0x5a6893){if(_0x3d2bcb[_0x2f858d][_0x7e76('0x76')]+_0x7e76('0x77')===_0x24ccd0){phoneDescriptions[_0x7e76('0x19')]({'itemTypeId':_0x3d2bcb[_0x2f858d]['id'],'description':_0x24ccd0});delete _0x18c209[_0x24ccd0];}}}if(hasAdditionalPhones)_0x18c209[_0x7e76('0x1b')]='';var _0x5173e9=_['keys'](_0x18c209)[_0x7e76('0x15')]();logger['info']('header',_0x5173e9);fs[_0x7e76('0x78')](_0x221381,_0x5173e9+'\x0a');Papa[_0x7e76('0x79')](fs[_0x7e76('0x7a')](_0x66d331),{'header':!![],'skipEmptyLines':!![],'step':function(_0x5293e6,_0x35c200){try{for(var _0x4d554b=0x0,_0x5d3a7e=[];_0x4d554b<_0x5293e6['data'][_0x7e76('0x1c')];_0x4d554b++){stats['rows']+=0x1;if(_0x5293e6[_0x7e76('0x5a')][_0x4d554b]){handleError(_0x5293e6[_0x7e76('0x7b')][_0x4d554b],_0x5293e6['errors'][_0x4d554b]);}else{var _0x14d976=[];var _0x22ed46=[];var _0x20abbc={};for(var _0x230f1a in _0x5a6893){let _0xce303a=contactItemTypes[_0x7e76('0x7c')](_0x53ec89=>_0x53ec89[_0x7e76('0x76')]===_0x230f1a);let _0x3da4e3=contactItemTypes[_0x7e76('0x7c')](_0x4bd5a6=>_0x4bd5a6[_0x7e76('0x76')]+'_description'===_0x230f1a);if(_['isNil'](_0xce303a)&&_[_0x7e76('0x1e')](_0x3da4e3)){if(_0x5a6893[_0x7e76('0x7d')](_0x230f1a)){if(_0x5293e6['data'][_0x4d554b][_0x5a6893[_0x230f1a]]){var _0x2ed1a5=_[_0x7e76('0x7e')](_0x5293e6[_0x7e76('0x7b')][_0x4d554b][_0x5a6893[_0x230f1a]][_0x7e76('0x7f')](/"/g,'\x27'));switch(_0x230f1a){case'scheduledat':var _0x466396=moment(_0x2ed1a5,_0x7e76('0x80'),!![]);if(_0x466396[_0x7e76('0x81')]()){_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x2ed1a5+'\x22');}else{_0x14d976[_0x7e76('0x19')]('scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)');}break;case'priority':var _0x3965f3=parseInt(_0x2ed1a5);_0x2ed1a5=_[_0x7e76('0x82')](_0x3965f3)||_0x3965f3<0x0||_0x3965f3>0x4?_0x1a9834?0x3:0x2:_0x3965f3;_0x5d3a7e['push']('\x22'+_0x2ed1a5+'\x22');break;case'UserId':var _0x247401=parseInt(_0x2ed1a5);if(_[_0x7e76('0x83')](_0x247401)&&_[_0x7e76('0x73')](_0x16c302,_0x247401)){_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x247401+'\x22');}else{_0x14d976[_0x7e76('0x19')](_0x7e76('0x84'));}break;case _0x7e76('0x85'):if(isEmail(_0x2ed1a5)){_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x2ed1a5+'\x22');}else{_0x14d976[_0x7e76('0x19')](_0x7e76('0x86'));}break;case _0x7e76('0x87'):var _0x44f53c=moment(_0x2ed1a5,'YYYY-MM-DD',!![]);if(_0x44f53c[_0x7e76('0x81')]()){_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x2ed1a5+'\x22');}else{_0x14d976[_0x7e76('0x19')](_0x7e76('0x88'));}break;case'dialTimezone':var _0x2f5237=shared['timezones'];var _0x468761=_0x2f5237[_0x2ed1a5];if(!_[_0x7e76('0x1e')](_0x468761)){var _0x5e697a=_0x468761['utcOffset'];_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x2ed1a5+'\x22');_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x5e697a+'\x22');}break;default:_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x2ed1a5+'\x22');}}else{switch(_0x230f1a){case _0x7e76('0x89'):case _0x7e76('0xf'):_0x14d976[_0x7e76('0x19')](_0x230f1a+_0x7e76('0x8a'));break;default:_0x5d3a7e[_0x7e76('0x19')]('\x22\x22');}}}}else{var _0x39593c='';if(!_[_0x7e76('0x1e')](_0xce303a)){if(!_0x20abbc[_0x7e76('0x7d')](_0xce303a['id'])){if(!_[_0x7e76('0x1e')](_0x5293e6['data'][_0x4d554b][_0x5a6893[_0x230f1a]])){var _0x2ed1a5=_['trim'](_0x5293e6[_0x7e76('0x7b')][_0x4d554b][_0x5a6893[_0x230f1a]][_0x7e76('0x7f')](/"/g,'\x27'));var _0x1dd075=phoneDescriptions[_0x7e76('0x7c')](_0x260624=>_0x260624['itemTypeId']===_0xce303a['id']);if(!_['isNil'](_0x1dd075)){var _0x2ca0e=_[_0x7e76('0x7e')](_0x5293e6[_0x7e76('0x7b')][_0x4d554b][_0x5a6893[_0x1dd075[_0x7e76('0x8b')]]][_0x7e76('0x7f')](/"/g,'\x27'));if(!_[_0x7e76('0x1e')](_0x2ca0e))_0x2ed1a5=_0x2ed1a5+'§'+_0x2ca0e;}if(_0x39593c=='')_0x39593c=_0x2ed1a5;else _0x39593c+='|'+_0x2ed1a5;}_0x22ed46[_0x7e76('0x19')](_0xce303a['id']+':'+_0x39593c);_0x20abbc[_0xce303a['id']]=0x1;}}}}if(hasAdditionalPhones){_0x5d3a7e[_0x7e76('0x19')]('\x22'+_0x22ed46[_0x7e76('0x15')](';')+'\x22');}if(_0x14d976[_0x7e76('0x1c')]){handleError(_0x5293e6['data'][_0x4d554b],{'code':'SystemRow','message':_0x14d976[_0x7e76('0x15')]()});}else{fs['appendFileSync'](_0x221381,_0x5d3a7e[_0x7e76('0x15')]()+'\x0a');}_0x5d3a7e=[];}if(!(stats[_0x7e76('0x8c')]%0xc8)){socket[_0x7e76('0x8d')]('contact:import:'+_0x3b92d6,stats);stats[_0x7e76('0x5a')]=[];}}if(stopped){logger[_0x7e76('0x55')](_0x7e76('0x8e'));_0x35c200[_0x7e76('0x8f')]();}}catch(_0x28157e){handleError(_0x5293e6['data'][_0x4d554b],{'code':'SystemError','message':_0x28157e[_0x7e76('0x58')]});logger[_0x7e76('0x57')]('step',_0x28157e[_0x7e76('0x58')]);}},'complete':function(){try{var _0x2c26c5=[];var _0x199aa7=[];var _0x2762f4='cm_contacts';if(_0x1ad5af[_0x7e76('0x90')]&&_0x1ad5af[_0x7e76('0x90')]['length']){_0x2762f4=_0x7e76('0x91')+_0x3b92d6;_0x2c26c5['push'](_0x7e76('0x92')+_0x2762f4+_0x7e76('0x93'));}tmp_campaigns=_0x7e76('0x94')+_0x3b92d6;tmp_voice_queues=_0x7e76('0x95')+_0x3b92d6;_0x199aa7[_0x7e76('0x19')](_0x7e76('0x92')+tmp_campaigns+_0x7e76('0x96'));_0x199aa7[_0x7e76('0x19')](_0x7e76('0x92')+tmp_voice_queues+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');BPromise[_0x7e76('0x97')](_0x199aa7,handleTZQuery)[_0x7e76('0x18')](function(_0xda206c){updateTzCampaigns(_0x1ad5af[_0x7e76('0x2d')])[_0x7e76('0x18')](function(_0x23190a){updateTzVoiceQueues(_0x1ad5af[_0x7e76('0x2d')])[_0x7e76('0x18')](function(_0x3b88c7){if(hasTZ)_0x5173e9=_0x5173e9[_0x7e76('0x7f')](_0x7e76('0x68'),'dialTimezone,utcOffset');var _0x548dc9=util['format'](_0x7e76('0x98'),_0x221381,_0x2762f4,_0x5173e9,_0x1ad5af['ListId'],_0x1ad5af[_0x7e76('0x99')]||null,NOW,NOW);if(_[_0x7e76('0x1e')](_0x5a6893['scheduledat'])){_0x548dc9+=_0x7e76('0x9a');}_0x2c26c5['push'](_0x548dc9);if(_0x1ad5af[_0x7e76('0x90')]&&_0x1ad5af[_0x7e76('0x90')]['length']){_0x2c26c5[_0x7e76('0x19')](insertCmContact(_0x1ad5af[_0x7e76('0x2d')],_0x2762f4,_0x1ad5af[_0x7e76('0x90')],_0x5a6893));_0x2c26c5[_0x7e76('0x19')](_0x7e76('0x9b')+_0x2762f4+';');}BPromise['each'](_0x2c26c5,handleQuery)[_0x7e76('0x18')](function(_0x4797bb){BPromise['all']([handleAdditionalPhones()])[_0x7e76('0x18')](function(){_0x2c26c5=[];for(var _0x16bdf4=0x0;_0x16bdf4<promisesAdditionalPhones[_0x7e76('0x1c')];_0x16bdf4++){if(promisesAdditionalPhones[_0x16bdf4][_0x7e76('0xf')]!='§'){_0x2c26c5[_0x7e76('0x19')](createAdditionalPhone(promisesAdditionalPhones[_0x16bdf4][_0x7e76('0x9c')],promisesAdditionalPhones[_0x16bdf4][_0x7e76('0x9d')],promisesAdditionalPhones[_0x16bdf4]['phone'],promisesAdditionalPhones[_0x16bdf4][_0x7e76('0x9e')]));}}BPromise[_0x7e76('0x1a')](_0x2c26c5)[_0x7e76('0x18')](function(){_0x2c26c5=[];if(hasTZ){_0x2c26c5[_0x7e76('0x19')](insertTzCmHopper(_0x1ad5af[_0x7e76('0x2d')],_0x7e76('0x9f'),'voice_queues','VoiceQueueId',_0x1a9834,tmp_voice_queues));_0x2c26c5['push'](insertTzCmHopperBlack(_0x1ad5af[_0x7e76('0x2d')],_0x7e76('0xa0'),_0x7e76('0x63'),_0x7e76('0xa1')));_0x2c26c5[_0x7e76('0x19')](insertTzCmHopper(_0x1ad5af['ListId'],_0x7e76('0x60'),'campaigns',_0x7e76('0xa2'),_0x1a9834,tmp_campaigns));_0x2c26c5[_0x7e76('0x19')](insertTzCmHopperBlack(_0x1ad5af[_0x7e76('0x2d')],_0x7e76('0xa3'),_0x7e76('0x5f'),_0x7e76('0xa2')));_0x2c26c5[_0x7e76('0x19')](insertCmHopperAdditionalPhones(_0x1ad5af[_0x7e76('0x2d')]));}else{_0x2c26c5['push'](insertCmHopper(_0x1ad5af[_0x7e76('0x2d')],'voice_queues_has_cm_lists',_0x7e76('0x63'),_0x7e76('0xa1'),_0x1a9834));_0x2c26c5[_0x7e76('0x19')](insertCmHopperBlack(_0x1ad5af[_0x7e76('0x2d')],_0x7e76('0xa0'),'voice_queues',_0x7e76('0xa1')));_0x2c26c5['push'](insertCmHopper(_0x1ad5af[_0x7e76('0x2d')],_0x7e76('0x60'),_0x7e76('0x5f'),'CampaignId',_0x1a9834));_0x2c26c5[_0x7e76('0x19')](insertCmHopperBlack(_0x1ad5af[_0x7e76('0x2d')],'campaigns_has_cm_blacklists',_0x7e76('0x5f'),_0x7e76('0xa2')));_0x2c26c5[_0x7e76('0x19')](insertCmHopperAdditionalPhones(_0x1ad5af[_0x7e76('0x2d')]));}_0x2c26c5['push'](_0x7e76('0x9b')+tmp_campaigns+';');_0x2c26c5['push']('DROP\x20TABLE\x20'+tmp_voice_queues+';');BPromise[_0x7e76('0x97')](_0x2c26c5,handleQuery)[_0x7e76('0x18')](function(_0x2437ae){stats[_0x7e76('0xa4')]=!![];stats['affectedRows']=_0x1ad5af[_0x7e76('0x90')]&&_0x1ad5af[_0x7e76('0x90')][_0x7e76('0x1c')]?results[0x2][_0x7e76('0xa5')]:results[0x0][_0x7e76('0xa5')];socket[_0x7e76('0x8d')]('contact:import:'+_0x3b92d6,stats);fs['unlink'](_0x66d331);fs[_0x7e76('0xa6')](_0x221381);process[_0x7e76('0x59')](0x0);})[_0x7e76('0x66')](function(_0x156bda){logger[_0x7e76('0x57')](_0x156bda[_0x7e76('0x58')]);process[_0x7e76('0x59')](0x1);});});});})[_0x7e76('0x66')](function(_0x6b7541){logger[_0x7e76('0x57')](_0x6b7541[_0x7e76('0x58')]);process[_0x7e76('0x59')](0x1);});});});});}catch(_0x10175d){logger['error'](_0x7e76('0xa7'),_0x10175d[_0x7e76('0x58')]);process[_0x7e76('0x59')](0x1);}},'error':function(_0x1079ec,_0x47abc0,_0x5496b1,_0x1bc6d1){throw new Error(_0x1bc6d1);}});});}function validate(){if(process['argv']&&process[_0x7e76('0xa8')][_0x7e76('0x1c')]<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x1f20dc=path[_0x7e76('0x15')](config[_0x7e76('0xa9')],_0x7e76('0x71'),process['argv'][0x2]);if(!fs[_0x7e76('0xaa')](_0x1f20dc)){throw new Error(_0x7e76('0xab'));}var _0x592c73={};try{_0x592c73=JSON[_0x7e76('0x79')](process[_0x7e76('0xa8')][0x3]);if(!_0x592c73[_0x7e76('0xac')]){throw new Error(_0x7e76('0xad'));}if(!_0x592c73['binding'][_0x7e76('0xf')]){throw new Error(_0x7e76('0xae'));}if(!_0x592c73[_0x7e76('0xac')]['firstName']){throw new Error(_0x7e76('0xaf'));}var _0x1b310a=0x0;if(_0x592c73['binding'][_0x7e76('0x31')]){_0x1b310a=0x1;}if(!_0x592c73[_0x7e76('0x2d')]){throw new Error(_0x7e76('0xb0'));}}catch(_0x24b099){throw new Error(_0x7e76('0xb1'));}var _0x303a4a=[];try{_0x303a4a=_['map'](JSON[_0x7e76('0x79')](process[_0x7e76('0xa8')][0x4]),'id');}catch(_0x11a27a){logger[_0x7e76('0x55')](_0x7e76('0xb2'));}main(_0x1f20dc,_0x592c73,_0x303a4a,_0x1b310a);}validate();process['on'](_0x7e76('0xb3'),handleStop);process['on']('uncaughtException',handleUncaughtException);