fd703aa9f95a2b7aa7372c46a24fa08aa13102ac
[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 _0xf0e9=['each','contactId','contactTypeId','voice_queues_has_cm_lists','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns_has_cm_blacklists','CampaignId','DROP\x20TABLE\x20','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','server/files/tmp','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','map','parse','No\x20agent\x20available','SIGINT','uncaughtException','path','lodash','papaparse','bluebird','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/environment/shared','../../../config/logger','import','defaults','redis','localhost','format','YYYY-MM-DD\x20HH:mm:ss','select','field','phone','join','\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','then','length','all','split','push','isNil','filter','CmContactHasItem','findOne','update','create','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','into','cm_hopper','fromQuery','scheduledat','ListId','createdAt','priority','UserId','from','cm_contacts.ListId\x20=\x20','.CmListId','.id\x20=\x20','cm_contacts.createdAt\x20=\x20?','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_hopper_black','ContactId','fields','cm_contacts','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','ListId\x20=\x20?','date_add(cm_contacts.scheduledat,interval\x20','.offset-cm_contacts.utcOffset\x20minute)','cm_contacts.id','insert','updatedAt','recallme','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.updatedAt','cm_hopper_additional_phones','CmHopperId','OrderBy','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_contact_has_items','cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId','concat','keys','CompanyId','scheduledAt','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','exit','sequelize','query','catch','campaigns.id','campaigns.dialTimezone','campaigns','campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId','campaigns_has_cm_lists.CmListId=','voice_queues.id','voice_queues.dialTimezone','voice_queues_has_cm_lists.CmListId=','timezones','dialTimezone','set','spread','main','send','start','binding','root','.csv','includes','name','_description','writeFileSync','createReadStream','data','rows','errors','find','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','isValid','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','utcOffset','firstName','\x20not\x20specified','trim','itemTypeId','description','replace','SystemRow','appendFileSync','emit','contact:import:','step','duplicates','cm_contacts_','\x20LIKE\x20cm_contacts;','campaigns_','CREATE\x20TABLE\x20','(id\x20int,dialTimezone\x20varchar(255),offset\x20int);','dialTimezone,utcOffset','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',',\x20scheduledAt\x20=\x20NOW()'];(function(_0x4b1d53,_0x17cc7c){var _0x3d75b6=function(_0x1a75a0){while(--_0x1a75a0){_0x4b1d53['push'](_0x4b1d53['shift']());}};_0x3d75b6(++_0x17cc7c);}(_0xf0e9,0x18e));var _0x9f0e=function(_0x208bff,_0x280a10){_0x208bff=_0x208bff-0x0;var _0x32ed5a=_0xf0e9[_0x208bff];return _0x32ed5a;};'use strict';var fs=require('fs');var path=require(_0x9f0e('0x0'));var _=require(_0x9f0e('0x1'));var Papa=require(_0x9f0e('0x2'));var util=require('util');var BPromise=require(_0x9f0e('0x3'));var moment=require('moment');var squel=require(_0x9f0e('0x4'));var Redis=require(_0x9f0e('0x5'));var db=require(_0x9f0e('0x6'))['db'];var config=require(_0x9f0e('0x7'));var shared=require(_0x9f0e('0x8'));var logger=require(_0x9f0e('0x9'))(_0x9f0e('0xa'));config['redis']=_[_0x9f0e('0xb')](config[_0x9f0e('0xc')],{'host':_0x9f0e('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0x9f0e('0xe')](_0x9f0e('0xf'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0x9f0e('0xe')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x17bc6c){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))*$/['test'](_0x17bc6c);}function selectNotIn(_0x52da34,_0x42ef77,_0x26dc09,_0x9f570c,_0x2c8933){return squel[_0x9f0e('0x10')]()[_0x9f0e('0x11')](_0x9f0e('0x12'))['from'](_0x9f570c)[_0x9f0e('0x13')](_0x42ef77,null,_0x42ef77+'.id\x20=\x20'+_0x9f570c+'.'+_0x26dc09)['where'](_0x9f570c+'.'+_0x26dc09+_0x9f0e('0x14')+_0x52da34+'.'+_0x26dc09)[_0x9f0e('0x15')](_0x42ef77+_0x9f0e('0x16')+_0x2c8933[_0x9f0e('0x13')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0x435328,_0x53bfb5){promisesAdditionalPhones=[];return db[_0x9f0e('0x17')][_0x9f0e('0x18')]({'raw':!![],'attributes':['id',_0x9f0e('0x19')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0x9f0e('0x1a')](function(_0x38b3fe){if(_0x38b3fe!==null){var _0x3ee61f=[];for(var _0x279ec9=0x0;_0x279ec9<_0x38b3fe[_0x9f0e('0x1b')];_0x279ec9++){var _0x605bc4=_0x38b3fe[_0x279ec9];_0x3ee61f['push'](insertAdditionalPhones(_0x605bc4));}}Promise[_0x9f0e('0x1c')](_0x3ee61f)[_0x9f0e('0x1a')](function(){_0x435328({'val':0x1});});});});}function insertAdditionalPhones(_0x3daae7){return new Promise(function(_0x563643,_0x93db5){var _0x3938f7=_0x3daae7['AdditionalPhones'];var _0x3dfa0c=_0x3938f7[_0x9f0e('0x1d')](';');var _0x5a1739=[];orderBy=0x0;for(var _0x1f55b7=0x0;_0x1f55b7<_0x3dfa0c[_0x9f0e('0x1b')];_0x1f55b7++){_0x5a1739[_0x9f0e('0x1e')](splitAdditionalPhone(_0x3daae7['id'],_0x3dfa0c[_0x1f55b7]));}Promise[_0x9f0e('0x1c')](_0x5a1739)['then'](function(){_0x563643({'val':_0x3dfa0c['length']});});});}function splitAdditionalPhone(_0x37a7e2,_0x5e1742){return new Promise(function(_0x51432b,_0x227130){var _0x429cc2=_0x5e1742['split'](':');var _0x262e08=_0x429cc2[0x0];var _0x4e9bf4=_0x429cc2[0x1];if(!_[_0x9f0e('0x1f')](_0x4e9bf4)){var _0x1339d4=_0x4e9bf4[_0x9f0e('0x1d')]('|');var _0x596229=[];for(var _0x3cae0c=0x0;_0x3cae0c<_0x1339d4[_0x9f0e('0x1b')];_0x3cae0c++){if(_0x1339d4[_0x3cae0c]!==''){var _0x916660=_[_0x9f0e('0x20')](promisesAdditionalPhones,{'contactId':_0x37a7e2,'phone':_0x1339d4[_0x3cae0c]});if(_0x916660[_0x9f0e('0x1b')]==0x0){orderBy++;promisesAdditionalPhones[_0x9f0e('0x1e')]({'contactId':_0x37a7e2,'contactTypeId':_0x262e08,'phone':_0x1339d4[_0x3cae0c],'orderBy':orderBy});}}}_0x51432b({'ok':0x1});}else _0x51432b({'res':0x0});});}function createAdditionalPhone(_0x62b5d1,_0x5ca7f2,_0x4d0529,_0xb94d8a){var _0x36b1af='';var _0x3e6751='';var _0x266d61=_0x4d0529[_0x9f0e('0x1d')]('§');_0x36b1af=_0x266d61[0x0];if(_0x266d61['length']==0x2)_0x3e6751=_0x266d61[0x1];return new Promise(function(_0x256c56,_0x5bcfcf){return db[_0x9f0e('0x21')][_0x9f0e('0x22')]({'where':{'CmContactId':_0x62b5d1,'item':_0x36b1af}})[_0x9f0e('0x1a')](function(_0x5e5ab3){if(_0x5e5ab3){return db[_0x9f0e('0x21')][_0x9f0e('0x23')]({'ItemTypeId':_0x5ca7f2,'description':_0x3e6751,'OrderBy':_0xb94d8a},{'where':{'CmContactId':_0x62b5d1,'item':_0x36b1af}})[_0x9f0e('0x1a')](function(_0x52aacd){_0x256c56({'res':'updated'});});}else{return db[_0x9f0e('0x21')][_0x9f0e('0x24')]({'CmContactId':_0x62b5d1,'item':_0x36b1af,'description':_0x3e6751,'ItemTypeId':_0x5ca7f2,'OrderBy':_0xb94d8a,'ItemClass':'PHONE'})[_0x9f0e('0x1a')](function(_0x38948f){_0x256c56({'res':_0x9f0e('0x25')});});}});});}function insertCmHopper(_0x23df41,_0x320068,_0x105afa,_0x4c58c0,_0x3425e6){var _0x30a574=[_0x9f0e('0x26'),_0x9f0e('0x27'),'cm_contacts.id',_0x9f0e('0x28'),_0x320068+'.'+_0x4c58c0,_0x9f0e('0x29'),_0x9f0e('0x2a'),_0x9f0e('0x2b'),_0x9f0e('0x2c'),'\x22'+_0x3425e6+'\x22'];return squel['insert']()[_0x9f0e('0x2d')](_0x9f0e('0x2e'))[_0x9f0e('0x2f')]([_0x9f0e('0x12'),_0x9f0e('0x30'),'ContactId',_0x9f0e('0x31'),_0x4c58c0,_0x9f0e('0x32'),'updatedAt',_0x9f0e('0x33'),_0x9f0e('0x34'),'recallme'],squel[_0x9f0e('0x10')]()['fields'](_0x30a574)[_0x9f0e('0x35')](_0x320068)[_0x9f0e('0x13')]('cm_contacts',null,_0x9f0e('0x36')+_0x320068+_0x9f0e('0x37'))[_0x9f0e('0x13')](_0x105afa,null,_0x105afa+_0x9f0e('0x38')+_0x320068+'.'+_0x4c58c0)[_0x9f0e('0x15')](_0x320068+'.CmListId\x20=\x20?',_0x23df41)[_0x9f0e('0x15')](_0x9f0e('0x39'),NOW)[_0x9f0e('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x320068,_0x105afa,_0x4c58c0,'cm_hopper',[_0x9f0e('0x3a'),_0x9f0e('0x3b')]))[_0x9f0e('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x320068,_0x105afa,_0x4c58c0,_0x9f0e('0x2e'),[_0x9f0e('0x3a')])))[_0x9f0e('0x3c')]();}function insertCmHopperBlack(_0x248775,_0x38c5fb,_0x58084d,_0x470002){var _0x22f94e=['cm_contacts.phone','cm_contacts.id',_0x9f0e('0x28'),_0x38c5fb+'.'+_0x470002,_0x9f0e('0x29'),'cm_contacts.updatedAt'];return squel['insert']()[_0x9f0e('0x2d')](_0x9f0e('0x3d'))[_0x9f0e('0x2f')]([_0x9f0e('0x12'),_0x9f0e('0x3e'),_0x9f0e('0x31'),_0x470002,_0x9f0e('0x32'),'updatedAt'],squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')](_0x22f94e)[_0x9f0e('0x35')](_0x38c5fb)[_0x9f0e('0x13')](_0x9f0e('0x40'),null,_0x9f0e('0x36')+_0x38c5fb+'.CmListId')[_0x9f0e('0x13')](_0x58084d,null,_0x58084d+_0x9f0e('0x38')+_0x38c5fb+'.'+_0x470002)[_0x9f0e('0x15')](_0x38c5fb+_0x9f0e('0x41'),_0x248775)['where'](_0x9f0e('0x39'),NOW)[_0x9f0e('0x15')](_0x9f0e('0x42'),squel[_0x9f0e('0x10')]()[_0x9f0e('0x11')](_0x9f0e('0x12'))[_0x9f0e('0x35')](_0x9f0e('0x3d'))[_0x9f0e('0x15')](_0x9f0e('0x43'),_0x248775)[_0x9f0e('0x15')](_0x470002+_0x9f0e('0x14')+_0x38c5fb+'.'+_0x470002)))[_0x9f0e('0x3c')]();}function insertTzCmHopper(_0x495fac,_0x605677,_0x55c6ff,_0x44635d,_0x2515b7,_0x27e634){var _0xe04a44=[_0x9f0e('0x26'),_0x9f0e('0x44')+_0x27e634+_0x9f0e('0x45'),_0x9f0e('0x46'),'cm_contacts.ListId',_0x605677+'.'+_0x44635d,_0x9f0e('0x29'),_0x9f0e('0x2a'),_0x9f0e('0x2b'),'cm_contacts.UserId','\x22'+_0x2515b7+'\x22'];var _0x25d604=squel[_0x9f0e('0x47')]()[_0x9f0e('0x2d')](_0x9f0e('0x2e'))[_0x9f0e('0x2f')]([_0x9f0e('0x12'),_0x9f0e('0x30'),_0x9f0e('0x3e'),'ListId',_0x44635d,_0x9f0e('0x32'),_0x9f0e('0x48'),_0x9f0e('0x33'),'UserId',_0x9f0e('0x49')],squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')](_0xe04a44)['from'](_0x605677)[_0x9f0e('0x13')](_0x9f0e('0x40'),null,_0x9f0e('0x36')+_0x605677+_0x9f0e('0x37'))[_0x9f0e('0x13')](_0x55c6ff,null,_0x55c6ff+'.id\x20=\x20'+_0x605677+'.'+_0x44635d)[_0x9f0e('0x13')](_0x27e634,null,_0x27e634+_0x9f0e('0x38')+_0x605677+'.'+_0x44635d)[_0x9f0e('0x15')](_0x605677+_0x9f0e('0x41'),_0x495fac)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0x9f0e('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x605677,_0x55c6ff,_0x44635d,'cm_hopper',[_0x9f0e('0x3a'),_0x9f0e('0x3b')]))[_0x9f0e('0x15')](_0x9f0e('0x42'),selectNotIn(_0x605677,_0x55c6ff,_0x44635d,'cm_hopper',[_0x9f0e('0x3a')])))[_0x9f0e('0x3c')]();return _0x25d604;}function insertTzCmHopperBlack(_0x34799d,_0xa5e5c7,_0x64bdd6,_0x255063){var _0x4ce6ee=['cm_contacts.phone',_0x9f0e('0x46'),'cm_contacts.ListId',_0xa5e5c7+'.'+_0x255063,_0x9f0e('0x29'),'cm_contacts.updatedAt'];return squel[_0x9f0e('0x47')]()['into'](_0x9f0e('0x3d'))[_0x9f0e('0x2f')]([_0x9f0e('0x12'),_0x9f0e('0x3e'),_0x9f0e('0x31'),_0x255063,_0x9f0e('0x32'),_0x9f0e('0x48')],squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')](_0x4ce6ee)['from'](_0xa5e5c7)['join']('cm_contacts',null,_0x9f0e('0x36')+_0xa5e5c7+_0x9f0e('0x37'))[_0x9f0e('0x13')](_0x64bdd6,null,_0x64bdd6+_0x9f0e('0x38')+_0xa5e5c7+'.'+_0x255063)[_0x9f0e('0x15')](_0xa5e5c7+_0x9f0e('0x41'),_0x34799d)[_0x9f0e('0x15')](_0x9f0e('0x39'),NOW)[_0x9f0e('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0x9f0e('0x10')]()['field'](_0x9f0e('0x12'))[_0x9f0e('0x35')](_0x9f0e('0x3d'))[_0x9f0e('0x15')](_0x9f0e('0x43'),_0x34799d)[_0x9f0e('0x15')](_0x255063+'\x20=\x20'+_0xa5e5c7+'.'+_0x255063)))['toString']();}function insertCmHopperAdditionalPhones(_0x4836f8){var _0x17eb93=['cm_hopper.id',_0x9f0e('0x4a'),_0x9f0e('0x4b'),'cm_contact_has_items.createdAt',_0x9f0e('0x4c')];return squel[_0x9f0e('0x47')]()[_0x9f0e('0x2d')](_0x9f0e('0x4d'))[_0x9f0e('0x2f')]([_0x9f0e('0x4e'),_0x9f0e('0x12'),_0x9f0e('0x4f'),_0x9f0e('0x32'),'updatedAt'],squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')](_0x17eb93)[_0x9f0e('0x35')](_0x9f0e('0x2e'))[_0x9f0e('0x13')](_0x9f0e('0x40'),null,_0x9f0e('0x50'))[_0x9f0e('0x13')](_0x9f0e('0x51'),null,_0x9f0e('0x52'))[_0x9f0e('0x15')]('cm_hopper.ListId\x20=\x20?',_0x4836f8)['where'](_0x9f0e('0x39'),NOW))[_0x9f0e('0x3c')]();}function insertCmContact(_0x4b5de5,_0x205ed5,_0x12b149,_0x1f2ffd){var _0x21fdf9=_[_0x9f0e('0x53')](_[_0x9f0e('0x54')](_0x1f2ffd),['ListId',_0x9f0e('0x55'),_0x9f0e('0x32'),_0x9f0e('0x48'),_0x9f0e('0x56')]);return squel[_0x9f0e('0x47')]()['into'](_0x9f0e('0x40'))['fromQuery'](_0x21fdf9,squel['select']()[_0x9f0e('0x3f')](_0x21fdf9)['from'](_0x205ed5)[_0x9f0e('0x15')]('('+_0x12b149[_0x9f0e('0x13')](',')+')\x20NOT\x20IN\x20?',squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')](_0x12b149)[_0x9f0e('0x35')](_0x9f0e('0x40'))[_0x9f0e('0x15')](_0x9f0e('0x43'),_0x4b5de5)[_0x9f0e('0x15')](_0x9f0e('0x57')))[_0x9f0e('0x15')](_0x9f0e('0x58'),squel['select']()[_0x9f0e('0x11')](_0x9f0e('0x59'),_0x9f0e('0x5a'))[_0x9f0e('0x35')](_0x205ed5)[_0x9f0e('0x5b')](_0x12b149[_0x9f0e('0x13')](','))))[_0x9f0e('0x3c')]();}function handleStop(){logger[_0x9f0e('0x5c')](_0x9f0e('0x5d'));stopped=!![];}function handleUncaughtException(_0x507aa6){logger[_0x9f0e('0x5e')](_0x507aa6[_0x9f0e('0x5f')]);process[_0x9f0e('0x60')](0x1);}function handleError(_0x2c12c4,_0x3574f6){stats['errors'][_0x9f0e('0x1e')]({'name':_0x3574f6['code'],'message':_0x3574f6['message'],'row':_0x2c12c4});}function handleQuery(_0x53dcfa){logger[_0x9f0e('0x5c')](_0x53dcfa);return db[_0x9f0e('0x61')][_0x9f0e('0x62')](_0x53dcfa)['spread'](function(_0x498c77){results[_0x9f0e('0x1e')](_0x498c77);})[_0x9f0e('0x63')](function(_0x4f133){logger[_0x9f0e('0x5e')](_0x4f133[_0x9f0e('0x5f')]);});}function updateTzCampaigns(_0x1e5c37){return new Promise(function(_0x334a5e,_0x11d3f6){var _0x11768e=squel['select']()['fields']([_0x9f0e('0x64'),_0x9f0e('0x65')])[_0x9f0e('0x35')](_0x9f0e('0x66'))[_0x9f0e('0x13')]('campaigns_has_cm_lists',null,_0x9f0e('0x67'))['where'](_0x9f0e('0x68')+_0x1e5c37);db[_0x9f0e('0x61')][_0x9f0e('0x62')](_0x11768e['toString']())['spread'](function(_0xee23fc){var _0x46c2e4=[];for(var _0xd4527e=0x0;_0xd4527e<_0xee23fc[_0x9f0e('0x1b')];_0xd4527e++){_0x46c2e4[_0x9f0e('0x1e')](getTimezoneData(_0xee23fc[_0xd4527e],tmp_campaigns));}BPromise[_0x9f0e('0x1c')](_0x46c2e4)[_0x9f0e('0x1a')](function(){_0x334a5e({'val':0x1});});})['catch'](function(_0x2baeeb){logger[_0x9f0e('0x5e')](_0x2baeeb[_0x9f0e('0x5f')]);_0x334a5e({'val':0x0});});});}function updateTzVoiceQueues(_0x2423cb){return new Promise(function(_0x2e2b28,_0xb5d492){var _0x4b0e57=squel[_0x9f0e('0x10')]()[_0x9f0e('0x3f')]([_0x9f0e('0x69'),_0x9f0e('0x6a')])[_0x9f0e('0x35')]('voice_queues')['join']('voice_queues_has_cm_lists',null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')[_0x9f0e('0x15')](_0x9f0e('0x6b')+_0x2423cb);db['sequelize'][_0x9f0e('0x62')](_0x4b0e57[_0x9f0e('0x3c')]())['spread'](function(_0x57b11a){var _0x164996=[];for(var _0x54ead6=0x0;_0x54ead6<_0x57b11a[_0x9f0e('0x1b')];_0x54ead6++){_0x164996[_0x9f0e('0x1e')](getTimezoneData(_0x57b11a[_0x54ead6],tmp_voice_queues));}BPromise['all'](_0x164996)['then'](function(){_0x2e2b28({'val':0x1});});})[_0x9f0e('0x63')](function(_0x4cf1e0){logger['error'](_0x4cf1e0['message']);_0x2e2b28({'val':0x0});});});}function getTimezoneData(_0x2eaf70,_0x1180af){return new Promise(function(_0x538f08,_0x2551a0){var _0x2c01b2=shared[_0x9f0e('0x6c')];var _0x4f212b=_0x2c01b2[_0x2eaf70[_0x9f0e('0x6d')]];if(_['isNil'](_0x4f212b)){_0x538f08({'ret':0x1});}else{var _0x25b661=_0x4f212b['utcOffset'];var _0x49a3f2=squel['insert']()[_0x9f0e('0x2d')](_0x1180af)[_0x9f0e('0x6e')]('id',_0x2eaf70['id'])[_0x9f0e('0x6e')]('offset',_0x25b661)[_0x9f0e('0x6e')](_0x9f0e('0x6d'),_0x2eaf70['dialTimezone'])[_0x9f0e('0x3c')]();return db[_0x9f0e('0x61')][_0x9f0e('0x62')](_0x49a3f2)['spread'](function(_0x475ee6){_0x538f08({'ret':0x1});})['catch'](function(_0x29f7e7){logger['error'](_0x29f7e7[_0x9f0e('0x5f')]);_0x2551a0({'ret':0x1});});}});}function handleTZQuery(_0x49133f){logger[_0x9f0e('0x5c')](_0x49133f);return db[_0x9f0e('0x61')][_0x9f0e('0x62')](_0x49133f)[_0x9f0e('0x6f')](function(_0x308e32){})[_0x9f0e('0x63')](function(_0x5edb8a){logger[_0x9f0e('0x5e')](_0x5edb8a[_0x9f0e('0x5f')]);});}function main(_0x193d49,_0x589b07,_0x1b3e7a,_0x4f8838){logger[_0x9f0e('0x5c')](_0x9f0e('0x70'),_0x193d49,JSON['stringify'](_0x589b07));process[_0x9f0e('0x71')](_0x9f0e('0x72'));var _0x6ef6c9=_0x589b07[_0x9f0e('0x73')];var _0x517b5a=_['clone'](_0x6ef6c9);var _0x50c42d=_0x589b07['socket_timestamp'];var _0x50b16c=path[_0x9f0e('0x13')](config[_0x9f0e('0x74')],'server/files/tmp',_0x50c42d+_0x9f0e('0x75'));hasTZ=_[_0x9f0e('0x54')](_0x6ef6c9)[_0x9f0e('0x76')](_0x9f0e('0x6d'));var _0x42c576=_['keys'](_0x6ef6c9)[_0x9f0e('0x13')]();logger[_0x9f0e('0x5c')]('header',_0x42c576);db['ContactItemType'][_0x9f0e('0x18')]({'raw':!![],'attributes':['id',_0x9f0e('0x77')]})[_0x9f0e('0x1a')](function(_0x1ba586){for(var _0x7297c5=0x0;_0x7297c5<_0x1ba586[_0x9f0e('0x1b')];_0x7297c5++){if(_0x1ba586[_0x7297c5][_0x9f0e('0x77')]in _0x6ef6c9){contactItemTypes[_0x9f0e('0x1e')](_0x1ba586[_0x7297c5]);delete _0x517b5a[_0x1ba586[_0x7297c5][_0x9f0e('0x77')]];hasAdditionalPhones=!![];}for(var _0x36b711 in _0x6ef6c9){if(_0x1ba586[_0x7297c5][_0x9f0e('0x77')]+_0x9f0e('0x78')===_0x36b711){phoneDescriptions[_0x9f0e('0x1e')]({'itemTypeId':_0x1ba586[_0x7297c5]['id'],'description':_0x36b711});delete _0x517b5a[_0x36b711];}}}if(hasAdditionalPhones)_0x517b5a[_0x9f0e('0x19')]='';var _0x24c1c6=_[_0x9f0e('0x54')](_0x517b5a)['join']();logger[_0x9f0e('0x5c')]('header',_0x24c1c6);fs[_0x9f0e('0x79')](_0x50b16c,_0x24c1c6+'\x0a');Papa['parse'](fs[_0x9f0e('0x7a')](_0x193d49),{'header':!![],'skipEmptyLines':!![],'step':function(_0x5ad868,_0x1bf7d9){try{for(var _0x57c854=0x0,_0x4466bf=[];_0x57c854<_0x5ad868[_0x9f0e('0x7b')][_0x9f0e('0x1b')];_0x57c854++){stats[_0x9f0e('0x7c')]+=0x1;if(_0x5ad868[_0x9f0e('0x7d')][_0x57c854]){handleError(_0x5ad868[_0x9f0e('0x7b')][_0x57c854],_0x5ad868[_0x9f0e('0x7d')][_0x57c854]);}else{var _0xfbd099=[];var _0x32c54e=[];var _0x378e68={};for(var _0x2ccd97 in _0x6ef6c9){let _0x4346b1=contactItemTypes['find'](_0x275e86=>_0x275e86[_0x9f0e('0x77')]===_0x2ccd97);let _0x573c66=contactItemTypes[_0x9f0e('0x7e')](_0x53c7a8=>_0x53c7a8[_0x9f0e('0x77')]+_0x9f0e('0x78')===_0x2ccd97);if(_[_0x9f0e('0x1f')](_0x4346b1)&&_['isNil'](_0x573c66)){if(_0x6ef6c9['hasOwnProperty'](_0x2ccd97)){if(_0x5ad868[_0x9f0e('0x7b')][_0x57c854][_0x6ef6c9[_0x2ccd97]]){var _0x29204e=_['trim'](_0x5ad868[_0x9f0e('0x7b')][_0x57c854][_0x6ef6c9[_0x2ccd97]]['replace'](/"/g,'\x27'));switch(_0x2ccd97){case _0x9f0e('0x30'):var _0x295804=moment(_0x29204e,_0x9f0e('0xf'),!![]);if(_0x295804['isValid']()){_0x4466bf['push']('\x22'+_0x29204e+'\x22');}else{_0xfbd099[_0x9f0e('0x1e')](_0x9f0e('0x7f'));}break;case'priority':var _0xdab23=parseInt(_0x29204e);_0x29204e=_[_0x9f0e('0x80')](_0xdab23)||_0xdab23<0x0||_0xdab23>0x4?_0x4f8838?0x3:0x2:_0xdab23;_0x4466bf['push']('\x22'+_0x29204e+'\x22');break;case _0x9f0e('0x34'):var _0x17f3bb=parseInt(_0x29204e);if(_[_0x9f0e('0x81')](_0x17f3bb)&&_[_0x9f0e('0x76')](_0x1b3e7a,_0x17f3bb)){_0x4466bf['push']('\x22'+_0x17f3bb+'\x22');}else{_0xfbd099[_0x9f0e('0x1e')](_0x9f0e('0x82'));}break;case _0x9f0e('0x83'):if(isEmail(_0x29204e)){_0x4466bf['push']('\x22'+_0x29204e+'\x22');}else{_0xfbd099[_0x9f0e('0x1e')](_0x9f0e('0x84'));}break;case _0x9f0e('0x85'):var _0x4baf54=moment(_0x29204e,'YYYY-MM-DD',!![]);if(_0x4baf54[_0x9f0e('0x86')]()){_0x4466bf[_0x9f0e('0x1e')]('\x22'+_0x29204e+'\x22');}else{_0xfbd099[_0x9f0e('0x1e')](_0x9f0e('0x87'));}break;case _0x9f0e('0x6d'):var _0x49b85f=shared[_0x9f0e('0x6c')];var _0x367074=_0x49b85f[_0x29204e];if(!_[_0x9f0e('0x1f')](_0x367074)){var _0x518e1f=_0x367074[_0x9f0e('0x88')];_0x4466bf[_0x9f0e('0x1e')]('\x22'+_0x29204e+'\x22');_0x4466bf['push']('\x22'+_0x518e1f+'\x22');}break;default:_0x4466bf[_0x9f0e('0x1e')]('\x22'+_0x29204e+'\x22');}}else{switch(_0x2ccd97){case _0x9f0e('0x89'):case'phone':_0xfbd099[_0x9f0e('0x1e')](_0x2ccd97+_0x9f0e('0x8a'));break;default:_0x4466bf[_0x9f0e('0x1e')]('\x22\x22');}}}}else{var _0x146b8f='';if(!_['isNil'](_0x4346b1)){if(!_0x378e68['hasOwnProperty'](_0x4346b1['id'])){if(!_[_0x9f0e('0x1f')](_0x5ad868['data'][_0x57c854][_0x6ef6c9[_0x2ccd97]])){var _0x29204e=_[_0x9f0e('0x8b')](_0x5ad868[_0x9f0e('0x7b')][_0x57c854][_0x6ef6c9[_0x2ccd97]]['replace'](/"/g,'\x27'));var _0x293c55=phoneDescriptions[_0x9f0e('0x7e')](_0x368f32=>_0x368f32[_0x9f0e('0x8c')]===_0x4346b1['id']);if(!_[_0x9f0e('0x1f')](_0x293c55)){var _0x58d316=_[_0x9f0e('0x8b')](_0x5ad868[_0x9f0e('0x7b')][_0x57c854][_0x6ef6c9[_0x293c55[_0x9f0e('0x8d')]]][_0x9f0e('0x8e')](/"/g,'\x27'));if(!_[_0x9f0e('0x1f')](_0x58d316))_0x29204e=_0x29204e+'§'+_0x58d316;}if(_0x146b8f=='')_0x146b8f=_0x29204e;else _0x146b8f+='|'+_0x29204e;}_0x32c54e[_0x9f0e('0x1e')](_0x4346b1['id']+':'+_0x146b8f);_0x378e68[_0x4346b1['id']]=0x1;}}}}if(hasAdditionalPhones){_0x4466bf['push']('\x22'+_0x32c54e['join'](';')+'\x22');}if(_0xfbd099[_0x9f0e('0x1b')]){handleError(_0x5ad868[_0x9f0e('0x7b')][_0x57c854],{'code':_0x9f0e('0x8f'),'message':_0xfbd099['join']()});}else{fs[_0x9f0e('0x90')](_0x50b16c,_0x4466bf[_0x9f0e('0x13')]()+'\x0a');}_0x4466bf=[];}if(!(stats[_0x9f0e('0x7c')]%0xc8)){socket[_0x9f0e('0x91')](_0x9f0e('0x92')+_0x50c42d,stats);stats[_0x9f0e('0x7d')]=[];}}if(stopped){logger[_0x9f0e('0x5c')]('Abort\x20parser');_0x1bf7d9['abort']();}}catch(_0x1d6cf0){handleError(_0x5ad868[_0x9f0e('0x7b')][_0x57c854],{'code':'SystemError','message':_0x1d6cf0[_0x9f0e('0x5f')]});logger['error'](_0x9f0e('0x93'),_0x1d6cf0[_0x9f0e('0x5f')]);}},'complete':function(){try{var _0x13bf58=[];var _0x52bce7=[];var _0x33f17b=_0x9f0e('0x40');if(_0x589b07[_0x9f0e('0x94')]&&_0x589b07['duplicates']['length']){_0x33f17b=_0x9f0e('0x95')+_0x50c42d;_0x13bf58[_0x9f0e('0x1e')]('CREATE\x20TABLE\x20'+_0x33f17b+_0x9f0e('0x96'));}tmp_campaigns=_0x9f0e('0x97')+_0x50c42d;tmp_voice_queues='voice_queues_'+_0x50c42d;_0x52bce7['push'](_0x9f0e('0x98')+tmp_campaigns+_0x9f0e('0x99'));_0x52bce7[_0x9f0e('0x1e')](_0x9f0e('0x98')+tmp_voice_queues+_0x9f0e('0x99'));BPromise['each'](_0x52bce7,handleTZQuery)['then'](function(_0x41acde){updateTzCampaigns(_0x589b07['ListId'])['then'](function(_0x2eebd0){updateTzVoiceQueues(_0x589b07['ListId'])[_0x9f0e('0x1a')](function(_0x75e0c0){if(hasTZ)_0x24c1c6=_0x24c1c6[_0x9f0e('0x8e')]('dialTimezone',_0x9f0e('0x9a'));var _0x4114c1=util[_0x9f0e('0xe')](_0x9f0e('0x9b'),_0x50b16c,_0x33f17b,_0x24c1c6,_0x589b07[_0x9f0e('0x31')],_0x589b07[_0x9f0e('0x55')]||null,NOW,NOW);if(_[_0x9f0e('0x1f')](_0x6ef6c9[_0x9f0e('0x30')])){_0x4114c1+=_0x9f0e('0x9c');}_0x13bf58[_0x9f0e('0x1e')](_0x4114c1);if(_0x589b07[_0x9f0e('0x94')]&&_0x589b07[_0x9f0e('0x94')][_0x9f0e('0x1b')]){_0x13bf58[_0x9f0e('0x1e')](insertCmContact(_0x589b07[_0x9f0e('0x31')],_0x33f17b,_0x589b07['duplicates'],_0x6ef6c9));_0x13bf58['push']('DROP\x20TABLE\x20'+_0x33f17b+';');}BPromise[_0x9f0e('0x9d')](_0x13bf58,handleQuery)['then'](function(_0x5441ea){BPromise[_0x9f0e('0x1c')]([handleAdditionalPhones()])[_0x9f0e('0x1a')](function(){_0x13bf58=[];for(var _0x4e093f=0x0;_0x4e093f<promisesAdditionalPhones[_0x9f0e('0x1b')];_0x4e093f++){if(promisesAdditionalPhones[_0x4e093f][_0x9f0e('0x12')]!='§'){_0x13bf58[_0x9f0e('0x1e')](createAdditionalPhone(promisesAdditionalPhones[_0x4e093f][_0x9f0e('0x9e')],promisesAdditionalPhones[_0x4e093f][_0x9f0e('0x9f')],promisesAdditionalPhones[_0x4e093f][_0x9f0e('0x12')],promisesAdditionalPhones[_0x4e093f]['orderBy']));}}BPromise['all'](_0x13bf58)['then'](function(){_0x13bf58=[];if(hasTZ){_0x13bf58[_0x9f0e('0x1e')](insertTzCmHopper(_0x589b07[_0x9f0e('0x31')],_0x9f0e('0xa0'),_0x9f0e('0xa1'),_0x9f0e('0xa2'),_0x4f8838,tmp_voice_queues));_0x13bf58['push'](insertTzCmHopperBlack(_0x589b07['ListId'],_0x9f0e('0xa3'),_0x9f0e('0xa1'),_0x9f0e('0xa2')));_0x13bf58[_0x9f0e('0x1e')](insertTzCmHopper(_0x589b07['ListId'],_0x9f0e('0xa4'),'campaigns','CampaignId',_0x4f8838,tmp_campaigns));_0x13bf58[_0x9f0e('0x1e')](insertTzCmHopperBlack(_0x589b07[_0x9f0e('0x31')],_0x9f0e('0xa5'),_0x9f0e('0x66'),_0x9f0e('0xa6')));_0x13bf58[_0x9f0e('0x1e')](insertCmHopperAdditionalPhones(_0x589b07[_0x9f0e('0x31')]));}else{_0x13bf58['push'](insertCmHopper(_0x589b07[_0x9f0e('0x31')],_0x9f0e('0xa0'),_0x9f0e('0xa1'),'VoiceQueueId',_0x4f8838));_0x13bf58[_0x9f0e('0x1e')](insertCmHopperBlack(_0x589b07[_0x9f0e('0x31')],_0x9f0e('0xa3'),_0x9f0e('0xa1'),'VoiceQueueId'));_0x13bf58[_0x9f0e('0x1e')](insertCmHopper(_0x589b07['ListId'],_0x9f0e('0xa4'),_0x9f0e('0x66'),'CampaignId',_0x4f8838));_0x13bf58[_0x9f0e('0x1e')](insertCmHopperBlack(_0x589b07[_0x9f0e('0x31')],_0x9f0e('0xa5'),'campaigns',_0x9f0e('0xa6')));_0x13bf58[_0x9f0e('0x1e')](insertCmHopperAdditionalPhones(_0x589b07[_0x9f0e('0x31')]));}_0x13bf58[_0x9f0e('0x1e')]('DROP\x20TABLE\x20'+tmp_campaigns+';');_0x13bf58['push'](_0x9f0e('0xa7')+tmp_voice_queues+';');BPromise[_0x9f0e('0x9d')](_0x13bf58,handleQuery)[_0x9f0e('0x1a')](function(_0x3b1ced){stats[_0x9f0e('0xa8')]=!![];stats[_0x9f0e('0xa9')]=_0x589b07[_0x9f0e('0x94')]&&_0x589b07[_0x9f0e('0x94')][_0x9f0e('0x1b')]?results[0x2][_0x9f0e('0xa9')]:results[0x0][_0x9f0e('0xa9')];socket['emit'](_0x9f0e('0x92')+_0x50c42d,stats);fs[_0x9f0e('0xaa')](_0x193d49);fs[_0x9f0e('0xaa')](_0x50b16c);process[_0x9f0e('0x60')](0x0);})[_0x9f0e('0x63')](function(_0x2f28f0){logger[_0x9f0e('0x5e')](_0x2f28f0[_0x9f0e('0x5f')]);process[_0x9f0e('0x60')](0x1);});});});})[_0x9f0e('0x63')](function(_0x1a6d94){logger[_0x9f0e('0x5e')](_0x1a6d94[_0x9f0e('0x5f')]);process['exit'](0x1);});});});});}catch(_0x1822f8){logger['error'](_0x9f0e('0xab'),_0x1822f8['message']);process[_0x9f0e('0x60')](0x1);}},'error':function(_0x216192,_0x3838c2,_0x40adde,_0x381994){throw new Error(_0x381994);}});});}function validate(){if(process[_0x9f0e('0xac')]&&process[_0x9f0e('0xac')][_0x9f0e('0x1b')]<0x4){throw new Error(_0x9f0e('0xad'));}var _0x3c57b4=path[_0x9f0e('0x13')](config[_0x9f0e('0x74')],_0x9f0e('0xae'),process[_0x9f0e('0xac')][0x2]);if(!fs[_0x9f0e('0xaf')](_0x3c57b4)){throw new Error(_0x9f0e('0xb0'));}var _0x158864={};try{_0x158864=JSON['parse'](process[_0x9f0e('0xac')][0x3]);if(!_0x158864[_0x9f0e('0x73')]){throw new Error(_0x9f0e('0xb1'));}if(!_0x158864['binding']['phone']){throw new Error(_0x9f0e('0xb2'));}if(!_0x158864[_0x9f0e('0x73')][_0x9f0e('0x89')]){throw new Error(_0x9f0e('0xb3'));}var _0x3129ad=0x0;if(_0x158864['binding'][_0x9f0e('0x34')]){_0x3129ad=0x1;}if(!_0x158864[_0x9f0e('0x31')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x29ea61){throw new Error('body\x20id\x20mandatory');}var _0x92f54e=[];try{_0x92f54e=_[_0x9f0e('0xb4')](JSON[_0x9f0e('0xb5')](process[_0x9f0e('0xac')][0x4]),'id');}catch(_0x21a3ec){logger[_0x9f0e('0x5c')](_0x9f0e('0xb6'));}main(_0x3c57b4,_0x158864,_0x92f54e,_0x3129ad);}validate();process['on'](_0x9f0e('0xb7'),handleStop);process['on'](_0x9f0e('0xb8'),handleUncaughtException);