Built motion from commit 00bf23f6.|2.6.16
[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 _0xe0cf=['server/files/tmp','.csv','includes','header','ContactItemType','name','_description','writeFileSync','createReadStream','data','rows','find','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','utcOffset','firstName','\x20not\x20specified','itemTypeId','description','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','campaigns_','(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','DROP\x20TABLE\x20','contactId','orderBy','VoiceQueueId','voice_queues_has_cm_blacklists','voice_queues','campaigns','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','unlink','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','file\x20doesn\x27t\x20exists','parse','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','path','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment/shared','../../../config/logger','import','redis','defaults','format','YYYY-MM-DD\x20HH:mm:ss','test','select','phone','from','join','.id\x20=\x20','where','.dialCheckDuplicateType\x20IN\x20(','CmContact','findAll','AdditionalPhones','then','length','push','split','isNil','filter','CmContactHasItem','findOne','update','updated','create','inserted','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','into','cm_hopper','fromQuery','ContactId','ListId','createdAt','updatedAt','priority','UserId','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_hopper_black','\x20=\x20','.offset-cm_contacts.utcOffset\x20minute)','insert','scheduledat','ListId\x20=\x20?','cm_contact_has_items.item','cm_contact_has_items.OrderBy','cm_contact_has_items.createdAt','cm_contact_has_items.updatedAt','CmHopperId','cm_contacts.id\x20=\x20cm_hopper.ContactId','cm_hopper.ListId\x20=\x20?','concat','keys','scheduledAt',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','group','info','Received\x20SIGINT','error','message','exit','errors','code','sequelize','campaigns.id','campaigns.dialTimezone','campaigns_has_cm_lists','campaigns_has_cm_lists.CmListId=','query','all','catch','voice_queues.id','spread','timezones','dialTimezone','set','offset','stringify','send','start','binding','clone','socket_timestamp','root'];(function(_0x16c467,_0x53d6fa){var _0x22db4f=function(_0x498d3f){while(--_0x498d3f){_0x16c467['push'](_0x16c467['shift']());}};_0x22db4f(++_0x53d6fa);}(_0xe0cf,0x1b5));var _0xfe0c=function(_0x4d9bb2,_0x3db50d){_0x4d9bb2=_0x4d9bb2-0x0;var _0x3179fe=_0xe0cf[_0x4d9bb2];return _0x3179fe;};'use strict';var fs=require('fs');var path=require(_0xfe0c('0x0'));var _=require('lodash');var Papa=require(_0xfe0c('0x1'));var util=require(_0xfe0c('0x2'));var BPromise=require(_0xfe0c('0x3'));var moment=require(_0xfe0c('0x4'));var squel=require(_0xfe0c('0x5'));var Redis=require(_0xfe0c('0x6'));var db=require(_0xfe0c('0x7'))['db'];var config=require('../../../config/environment');var shared=require(_0xfe0c('0x8'));var logger=require(_0xfe0c('0x9'))(_0xfe0c('0xa'));config[_0xfe0c('0xb')]=_[_0xfe0c('0xc')](config[_0xfe0c('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfe0c('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var promisesAdditionalPhones=[];var orderBy=0x0;var stopped=![];var NOW=moment()[_0xfe0c('0xd')](_0xfe0c('0xe'));var contactItemTypes=[];var phoneDescriptions=[];var hasAdditionalPhones=![];var tmp_voice_queues;var tmp_campaigns;var tzOffset=0x0;var hasTZ;var NOW=moment()[_0xfe0c('0xd')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x21de1e){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))*$/[_0xfe0c('0xf')](_0x21de1e);}function selectNotIn(_0x56f079,_0x3babc0,_0x4d7e1e,_0x370a9b,_0x14074a){return squel[_0xfe0c('0x10')]()['field'](_0xfe0c('0x11'))[_0xfe0c('0x12')](_0x370a9b)[_0xfe0c('0x13')](_0x3babc0,null,_0x3babc0+_0xfe0c('0x14')+_0x370a9b+'.'+_0x4d7e1e)[_0xfe0c('0x15')](_0x370a9b+'.'+_0x4d7e1e+'\x20=\x20'+_0x56f079+'.'+_0x4d7e1e)[_0xfe0c('0x15')](_0x3babc0+_0xfe0c('0x16')+_0x14074a[_0xfe0c('0x13')]()+')');}function handleAdditionalPhones(){return new Promise(function(_0xc154df,_0x2b4687){promisesAdditionalPhones=[];return db[_0xfe0c('0x17')][_0xfe0c('0x18')]({'raw':!![],'attributes':['id',_0xfe0c('0x19')],'where':{'createdAt':NOW,'AdditionalPhones':{'$ne':null}}})[_0xfe0c('0x1a')](function(_0xf95c4b){if(_0xf95c4b!==null){var _0x5e42eb=[];for(var _0xa6715f=0x0;_0xa6715f<_0xf95c4b[_0xfe0c('0x1b')];_0xa6715f++){var _0x2c2ddb=_0xf95c4b[_0xa6715f];_0x5e42eb[_0xfe0c('0x1c')](insertAdditionalPhones(_0x2c2ddb));}}Promise['all'](_0x5e42eb)[_0xfe0c('0x1a')](function(){_0xc154df({'val':0x1});});});});}function insertAdditionalPhones(_0x4bfa95){return new Promise(function(_0x1e74ba,_0x2e1298){var _0x57573d=_0x4bfa95[_0xfe0c('0x19')];var _0x233c50=_0x57573d[_0xfe0c('0x1d')](';');var _0x2430e8=[];orderBy=0x0;for(var _0x1efaa6=0x0;_0x1efaa6<_0x233c50[_0xfe0c('0x1b')];_0x1efaa6++){_0x2430e8['push'](splitAdditionalPhone(_0x4bfa95['id'],_0x233c50[_0x1efaa6]));}Promise['all'](_0x2430e8)['then'](function(){_0x1e74ba({'val':_0x233c50[_0xfe0c('0x1b')]});});});}function splitAdditionalPhone(_0x1830cf,_0xa320ca){return new Promise(function(_0x2fd105,_0x342649){var _0x3465a4=_0xa320ca['split'](':');var _0x4444af=_0x3465a4[0x0];var _0x30b182=_0x3465a4[0x1];if(!_[_0xfe0c('0x1e')](_0x30b182)){var _0x1615c0=_0x30b182[_0xfe0c('0x1d')]('|');var _0x54c2e3=[];for(var _0x38c3c2=0x0;_0x38c3c2<_0x1615c0[_0xfe0c('0x1b')];_0x38c3c2++){if(_0x1615c0[_0x38c3c2]!==''){var _0x4b91e6=_[_0xfe0c('0x1f')](promisesAdditionalPhones,{'contactId':_0x1830cf,'phone':_0x1615c0[_0x38c3c2]});if(_0x4b91e6['length']==0x0){orderBy++;promisesAdditionalPhones[_0xfe0c('0x1c')]({'contactId':_0x1830cf,'contactTypeId':_0x4444af,'phone':_0x1615c0[_0x38c3c2],'orderBy':orderBy});}}}_0x2fd105({'ok':0x1});}else _0x2fd105({'res':0x0});});}function createAdditionalPhone(_0x3d5325,_0x7f8b8,_0x26f58e,_0x23fae1){var _0x206232='';var _0x18398b='';var _0x3e1ace=_0x26f58e[_0xfe0c('0x1d')]('§');_0x206232=_0x3e1ace[0x0];if(_0x3e1ace[_0xfe0c('0x1b')]==0x2)_0x18398b=_0x3e1ace[0x1];return new Promise(function(_0x22c074,_0x3d52de){return db[_0xfe0c('0x20')][_0xfe0c('0x21')]({'where':{'CmContactId':_0x3d5325,'item':_0x206232}})['then'](function(_0x1b6163){if(_0x1b6163){return db[_0xfe0c('0x20')][_0xfe0c('0x22')]({'ItemTypeId':_0x7f8b8,'description':_0x18398b,'OrderBy':_0x23fae1},{'where':{'CmContactId':_0x3d5325,'item':_0x206232}})[_0xfe0c('0x1a')](function(_0x1f781a){_0x22c074({'res':_0xfe0c('0x23')});});}else{return db[_0xfe0c('0x20')][_0xfe0c('0x24')]({'CmContactId':_0x3d5325,'item':_0x206232,'description':_0x18398b,'ItemTypeId':_0x7f8b8,'OrderBy':_0x23fae1,'ItemClass':'PHONE'})[_0xfe0c('0x1a')](function(_0x308c37){_0x22c074({'res':_0xfe0c('0x25')});});}});});}function insertCmHopper(_0x3f993d,_0xf9d3bf,_0x153db7,_0x5876fc,_0x48ee1c){var _0x4e1476=[_0xfe0c('0x26'),_0xfe0c('0x27'),_0xfe0c('0x28'),_0xfe0c('0x29'),_0xf9d3bf+'.'+_0x5876fc,_0xfe0c('0x2a'),_0xfe0c('0x2b'),_0xfe0c('0x2c'),_0xfe0c('0x2d'),'\x22'+_0x48ee1c+'\x22'];return squel['insert']()[_0xfe0c('0x2e')](_0xfe0c('0x2f'))[_0xfe0c('0x30')]([_0xfe0c('0x11'),'scheduledat',_0xfe0c('0x31'),_0xfe0c('0x32'),_0x5876fc,_0xfe0c('0x33'),_0xfe0c('0x34'),_0xfe0c('0x35'),_0xfe0c('0x36'),_0xfe0c('0x37')],squel['select']()[_0xfe0c('0x38')](_0x4e1476)[_0xfe0c('0x12')](_0xf9d3bf)[_0xfe0c('0x13')](_0xfe0c('0x39'),null,_0xfe0c('0x3a')+_0xf9d3bf+_0xfe0c('0x3b'))[_0xfe0c('0x13')](_0x153db7,null,_0x153db7+'.id\x20=\x20'+_0xf9d3bf+'.'+_0x5876fc)[_0xfe0c('0x15')](_0xf9d3bf+_0xfe0c('0x3c'),_0x3f993d)[_0xfe0c('0x15')](_0xfe0c('0x3d'),NOW)[_0xfe0c('0x15')](_0xfe0c('0x3e'),selectNotIn(_0xf9d3bf,_0x153db7,_0x5876fc,'cm_hopper',[_0xfe0c('0x3f'),_0xfe0c('0x40')]))[_0xfe0c('0x15')](_0xfe0c('0x3e'),selectNotIn(_0xf9d3bf,_0x153db7,_0x5876fc,_0xfe0c('0x2f'),[_0xfe0c('0x3f')])))[_0xfe0c('0x41')]();}function insertCmHopperBlack(_0x40e491,_0x44829d,_0x252e96,_0x27f307){var _0x1ac9f6=[_0xfe0c('0x26'),_0xfe0c('0x28'),_0xfe0c('0x29'),_0x44829d+'.'+_0x27f307,_0xfe0c('0x2a'),_0xfe0c('0x2b')];return squel['insert']()[_0xfe0c('0x2e')](_0xfe0c('0x42'))[_0xfe0c('0x30')]([_0xfe0c('0x11'),'ContactId',_0xfe0c('0x32'),_0x27f307,_0xfe0c('0x33'),'updatedAt'],squel['select']()[_0xfe0c('0x38')](_0x1ac9f6)['from'](_0x44829d)[_0xfe0c('0x13')](_0xfe0c('0x39'),null,'cm_contacts.ListId\x20=\x20'+_0x44829d+_0xfe0c('0x3b'))['join'](_0x252e96,null,_0x252e96+'.id\x20=\x20'+_0x44829d+'.'+_0x27f307)[_0xfe0c('0x15')](_0x44829d+'.CmListId\x20=\x20?',_0x40e491)['where']('cm_contacts.createdAt\x20=\x20?',NOW)[_0xfe0c('0x15')](_0xfe0c('0x3e'),squel[_0xfe0c('0x10')]()['field'](_0xfe0c('0x11'))['from'](_0xfe0c('0x42'))[_0xfe0c('0x15')]('ListId\x20=\x20?',_0x40e491)[_0xfe0c('0x15')](_0x27f307+_0xfe0c('0x43')+_0x44829d+'.'+_0x27f307)))[_0xfe0c('0x41')]();}function insertTzCmHopper(_0x4404d6,_0x18abd9,_0x2a4e14,_0x16e62c,_0x23071b,_0x3a1908){var _0x9c2b0c=[_0xfe0c('0x26'),'date_add(cm_contacts.scheduledat,interval\x20'+_0x3a1908+_0xfe0c('0x44'),'cm_contacts.id','cm_contacts.ListId',_0x18abd9+'.'+_0x16e62c,_0xfe0c('0x2a'),_0xfe0c('0x2b'),_0xfe0c('0x2c'),_0xfe0c('0x2d'),'\x22'+_0x23071b+'\x22'];var _0x1b25ea=squel[_0xfe0c('0x45')]()['into']('cm_hopper')[_0xfe0c('0x30')]([_0xfe0c('0x11'),_0xfe0c('0x46'),_0xfe0c('0x31'),_0xfe0c('0x32'),_0x16e62c,_0xfe0c('0x33'),_0xfe0c('0x34'),_0xfe0c('0x35'),_0xfe0c('0x36'),_0xfe0c('0x37')],squel[_0xfe0c('0x10')]()['fields'](_0x9c2b0c)[_0xfe0c('0x12')](_0x18abd9)[_0xfe0c('0x13')](_0xfe0c('0x39'),null,_0xfe0c('0x3a')+_0x18abd9+'.CmListId')[_0xfe0c('0x13')](_0x2a4e14,null,_0x2a4e14+'.id\x20=\x20'+_0x18abd9+'.'+_0x16e62c)[_0xfe0c('0x13')](_0x3a1908,null,_0x3a1908+'.id\x20=\x20'+_0x18abd9+'.'+_0x16e62c)[_0xfe0c('0x15')](_0x18abd9+_0xfe0c('0x3c'),_0x4404d6)['where']('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0xfe0c('0x3e'),selectNotIn(_0x18abd9,_0x2a4e14,_0x16e62c,_0xfe0c('0x2f'),[_0xfe0c('0x3f'),_0xfe0c('0x40')]))[_0xfe0c('0x15')](_0xfe0c('0x3e'),selectNotIn(_0x18abd9,_0x2a4e14,_0x16e62c,'cm_hopper',[_0xfe0c('0x3f')])))[_0xfe0c('0x41')]();return _0x1b25ea;}function insertTzCmHopperBlack(_0x3aea08,_0x1e0175,_0xf72c37,_0x849944){var _0x312473=[_0xfe0c('0x26'),'cm_contacts.id',_0xfe0c('0x29'),_0x1e0175+'.'+_0x849944,_0xfe0c('0x2a'),_0xfe0c('0x2b')];return squel[_0xfe0c('0x45')]()[_0xfe0c('0x2e')](_0xfe0c('0x42'))[_0xfe0c('0x30')]([_0xfe0c('0x11'),_0xfe0c('0x31'),_0xfe0c('0x32'),_0x849944,_0xfe0c('0x33'),'updatedAt'],squel[_0xfe0c('0x10')]()[_0xfe0c('0x38')](_0x312473)[_0xfe0c('0x12')](_0x1e0175)[_0xfe0c('0x13')](_0xfe0c('0x39'),null,'cm_contacts.ListId\x20=\x20'+_0x1e0175+_0xfe0c('0x3b'))[_0xfe0c('0x13')](_0xf72c37,null,_0xf72c37+_0xfe0c('0x14')+_0x1e0175+'.'+_0x849944)['where'](_0x1e0175+'.CmListId\x20=\x20?',_0x3aea08)[_0xfe0c('0x15')](_0xfe0c('0x3d'),NOW)['where'](_0xfe0c('0x3e'),squel[_0xfe0c('0x10')]()['field']('phone')[_0xfe0c('0x12')]('cm_hopper_black')[_0xfe0c('0x15')](_0xfe0c('0x47'),_0x3aea08)['where'](_0x849944+_0xfe0c('0x43')+_0x1e0175+'.'+_0x849944)))[_0xfe0c('0x41')]();}function insertCmHopperAdditionalPhones(_0x24c77c){var _0x1c6e10=['cm_hopper.id',_0xfe0c('0x48'),_0xfe0c('0x49'),_0xfe0c('0x4a'),_0xfe0c('0x4b')];return squel[_0xfe0c('0x45')]()[_0xfe0c('0x2e')]('cm_hopper_additional_phones')[_0xfe0c('0x30')]([_0xfe0c('0x4c'),_0xfe0c('0x11'),'OrderBy',_0xfe0c('0x33'),_0xfe0c('0x34')],squel[_0xfe0c('0x10')]()[_0xfe0c('0x38')](_0x1c6e10)[_0xfe0c('0x12')](_0xfe0c('0x2f'))[_0xfe0c('0x13')]('cm_contacts',null,_0xfe0c('0x4d'))[_0xfe0c('0x13')]('cm_contact_has_items',null,'cm_contacts.id\x20=\x20cm_contact_has_items.CmContactId')[_0xfe0c('0x15')](_0xfe0c('0x4e'),_0x24c77c)[_0xfe0c('0x15')](_0xfe0c('0x3d'),NOW))[_0xfe0c('0x41')]();}function insertCmContact(_0x4663af,_0x5744a4,_0x1334a7,_0x2f27f0){var _0x440d7a=_[_0xfe0c('0x4f')](_[_0xfe0c('0x50')](_0x2f27f0),[_0xfe0c('0x32'),'CompanyId',_0xfe0c('0x33'),_0xfe0c('0x34'),_0xfe0c('0x51')]);return squel['insert']()[_0xfe0c('0x2e')](_0xfe0c('0x39'))[_0xfe0c('0x30')](_0x440d7a,squel[_0xfe0c('0x10')]()[_0xfe0c('0x38')](_0x440d7a)[_0xfe0c('0x12')](_0x5744a4)[_0xfe0c('0x15')]('('+_0x1334a7['join'](',')+_0xfe0c('0x52'),squel['select']()[_0xfe0c('0x38')](_0x1334a7)[_0xfe0c('0x12')](_0xfe0c('0x39'))[_0xfe0c('0x15')](_0xfe0c('0x47'),_0x4663af)[_0xfe0c('0x15')](_0xfe0c('0x53')))[_0xfe0c('0x15')](_0xfe0c('0x54'),squel['select']()['field'](_0xfe0c('0x55'),'min_id')[_0xfe0c('0x12')](_0x5744a4)[_0xfe0c('0x56')](_0x1334a7[_0xfe0c('0x13')](','))))[_0xfe0c('0x41')]();}function handleStop(){logger[_0xfe0c('0x57')](_0xfe0c('0x58'));stopped=!![];}function handleUncaughtException(_0x3fe3aa){logger[_0xfe0c('0x59')](_0x3fe3aa[_0xfe0c('0x5a')]);process[_0xfe0c('0x5b')](0x1);}function handleError(_0x5409e5,_0x38a528){stats[_0xfe0c('0x5c')]['push']({'name':_0x38a528[_0xfe0c('0x5d')],'message':_0x38a528[_0xfe0c('0x5a')],'row':_0x5409e5});}function handleQuery(_0x413dd5){logger['info'](_0x413dd5);return db[_0xfe0c('0x5e')]['query'](_0x413dd5)['spread'](function(_0x3ccdbc){results[_0xfe0c('0x1c')](_0x3ccdbc);})['catch'](function(_0x544d68){logger[_0xfe0c('0x59')](_0x544d68['message']);});}function updateTzCampaigns(_0xb8b88f){return new Promise(function(_0x945ecf,_0x2bdb55){var _0x526622=squel[_0xfe0c('0x10')]()[_0xfe0c('0x38')]([_0xfe0c('0x5f'),_0xfe0c('0x60')])[_0xfe0c('0x12')]('campaigns')[_0xfe0c('0x13')](_0xfe0c('0x61'),null,'campaigns.id\x20=\x20campaigns_has_cm_lists.CampaignId')[_0xfe0c('0x15')](_0xfe0c('0x62')+_0xb8b88f);db[_0xfe0c('0x5e')][_0xfe0c('0x63')](_0x526622[_0xfe0c('0x41')]())['spread'](function(_0x290b97){var _0x2488b=[];for(var _0x81549=0x0;_0x81549<_0x290b97[_0xfe0c('0x1b')];_0x81549++){_0x2488b[_0xfe0c('0x1c')](getTimezoneData(_0x290b97[_0x81549],tmp_campaigns));}BPromise[_0xfe0c('0x64')](_0x2488b)[_0xfe0c('0x1a')](function(){_0x945ecf({'val':0x1});});})[_0xfe0c('0x65')](function(_0x4e92f2){logger[_0xfe0c('0x59')](_0x4e92f2[_0xfe0c('0x5a')]);_0x945ecf({'val':0x0});});});}function updateTzVoiceQueues(_0x349451){return new Promise(function(_0x2fdab1,_0x589aad){var _0x1953ca=squel[_0xfe0c('0x10')]()[_0xfe0c('0x38')]([_0xfe0c('0x66'),'voice_queues.dialTimezone'])['from']('voice_queues')[_0xfe0c('0x13')]('voice_queues_has_cm_lists',null,'voice_queues.id\x20=\x20voice_queues_has_cm_lists.VoiceQueueId')['where']('voice_queues_has_cm_lists.CmListId='+_0x349451);db[_0xfe0c('0x5e')][_0xfe0c('0x63')](_0x1953ca[_0xfe0c('0x41')]())[_0xfe0c('0x67')](function(_0x2166f1){var _0x3c8fec=[];for(var _0x473a24=0x0;_0x473a24<_0x2166f1[_0xfe0c('0x1b')];_0x473a24++){_0x3c8fec['push'](getTimezoneData(_0x2166f1[_0x473a24],tmp_voice_queues));}BPromise['all'](_0x3c8fec)[_0xfe0c('0x1a')](function(){_0x2fdab1({'val':0x1});});})[_0xfe0c('0x65')](function(_0x5b3027){logger[_0xfe0c('0x59')](_0x5b3027[_0xfe0c('0x5a')]);_0x2fdab1({'val':0x0});});});}function getTimezoneData(_0x21c53e,_0xca697){return new Promise(function(_0x31250d,_0x2892d3){var _0x8640da=shared[_0xfe0c('0x68')];var _0x692dea=_0x8640da[_0x21c53e[_0xfe0c('0x69')]];if(_[_0xfe0c('0x1e')](_0x692dea)){_0x31250d({'ret':0x1});}else{var _0x24f23c=_0x692dea['utcOffset'];var _0x41b02d=squel[_0xfe0c('0x45')]()[_0xfe0c('0x2e')](_0xca697)[_0xfe0c('0x6a')]('id',_0x21c53e['id'])[_0xfe0c('0x6a')](_0xfe0c('0x6b'),_0x24f23c)['set'](_0xfe0c('0x69'),_0x21c53e[_0xfe0c('0x69')])[_0xfe0c('0x41')]();return db[_0xfe0c('0x5e')][_0xfe0c('0x63')](_0x41b02d)[_0xfe0c('0x67')](function(_0x55a2a0){_0x31250d({'ret':0x1});})[_0xfe0c('0x65')](function(_0x1470a5){logger[_0xfe0c('0x59')](_0x1470a5[_0xfe0c('0x5a')]);_0x2892d3({'ret':0x1});});}});}function handleTZQuery(_0x57f895){logger[_0xfe0c('0x57')](_0x57f895);return db[_0xfe0c('0x5e')]['query'](_0x57f895)[_0xfe0c('0x67')](function(_0x5f2c66){})[_0xfe0c('0x65')](function(_0x5a4dee){logger[_0xfe0c('0x59')](_0x5a4dee[_0xfe0c('0x5a')]);});}function main(_0x20c18f,_0x34a971,_0x3c85d4,_0x5f1ab7){logger[_0xfe0c('0x57')]('main',_0x20c18f,JSON[_0xfe0c('0x6c')](_0x34a971));process[_0xfe0c('0x6d')](_0xfe0c('0x6e'));var _0x6a47e9=_0x34a971[_0xfe0c('0x6f')];var _0xb826b0=_[_0xfe0c('0x70')](_0x6a47e9);var _0x43fdc9=_0x34a971[_0xfe0c('0x71')];var _0x3c61a7=path[_0xfe0c('0x13')](config[_0xfe0c('0x72')],_0xfe0c('0x73'),_0x43fdc9+_0xfe0c('0x74'));hasTZ=_[_0xfe0c('0x50')](_0x6a47e9)[_0xfe0c('0x75')]('dialTimezone');var _0x550de9=_[_0xfe0c('0x50')](_0x6a47e9)[_0xfe0c('0x13')]();logger[_0xfe0c('0x57')](_0xfe0c('0x76'),_0x550de9);db[_0xfe0c('0x77')]['findAll']({'raw':!![],'attributes':['id',_0xfe0c('0x78')]})['then'](function(_0x161acc){for(var _0x5060bd=0x0;_0x5060bd<_0x161acc['length'];_0x5060bd++){if(_0x161acc[_0x5060bd][_0xfe0c('0x78')]in _0x6a47e9){contactItemTypes[_0xfe0c('0x1c')](_0x161acc[_0x5060bd]);delete _0xb826b0[_0x161acc[_0x5060bd][_0xfe0c('0x78')]];hasAdditionalPhones=!![];}for(var _0x15183a in _0x6a47e9){if(_0x161acc[_0x5060bd][_0xfe0c('0x78')]+_0xfe0c('0x79')===_0x15183a){phoneDescriptions[_0xfe0c('0x1c')]({'itemTypeId':_0x161acc[_0x5060bd]['id'],'description':_0x15183a});delete _0xb826b0[_0x15183a];}}}if(hasAdditionalPhones)_0xb826b0[_0xfe0c('0x19')]='';var _0x54375c=_[_0xfe0c('0x50')](_0xb826b0)['join']();logger[_0xfe0c('0x57')](_0xfe0c('0x76'),_0x54375c);fs[_0xfe0c('0x7a')](_0x3c61a7,_0x54375c+'\x0a');Papa['parse'](fs[_0xfe0c('0x7b')](_0x20c18f),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1b8e1b,_0x342889){try{for(var _0x30caa6=0x0,_0x53ad00=[];_0x30caa6<_0x1b8e1b[_0xfe0c('0x7c')][_0xfe0c('0x1b')];_0x30caa6++){stats[_0xfe0c('0x7d')]+=0x1;if(_0x1b8e1b[_0xfe0c('0x5c')][_0x30caa6]){handleError(_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6],_0x1b8e1b['errors'][_0x30caa6]);}else{var _0x2e932d=[];var _0x1127e6=[];var _0x337150={};for(var _0x212524 in _0x6a47e9){let _0x49f860=contactItemTypes[_0xfe0c('0x7e')](_0x3882e4=>_0x3882e4[_0xfe0c('0x78')]===_0x212524);let _0x42d4c5=contactItemTypes[_0xfe0c('0x7e')](_0x3327e0=>_0x3327e0[_0xfe0c('0x78')]+_0xfe0c('0x79')===_0x212524);if(_['isNil'](_0x49f860)&&_[_0xfe0c('0x1e')](_0x42d4c5)){if(_0x6a47e9[_0xfe0c('0x7f')](_0x212524)){if(_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6][_0x6a47e9[_0x212524]]){var _0x5c3d97=_[_0xfe0c('0x80')](_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6][_0x6a47e9[_0x212524]][_0xfe0c('0x81')](/"/g,'\x27'));switch(_0x212524){case _0xfe0c('0x46'):var _0xcbdeb6=moment(_0x5c3d97,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0xcbdeb6[_0xfe0c('0x82')]()){_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x5c3d97+'\x22');}else{_0x2e932d['push'](_0xfe0c('0x83'));}break;case _0xfe0c('0x35'):var _0x584624=parseInt(_0x5c3d97);_0x5c3d97=_[_0xfe0c('0x84')](_0x584624)||_0x584624<0x0||_0x584624>0x4?_0x5f1ab7?0x3:0x2:_0x584624;_0x53ad00['push']('\x22'+_0x5c3d97+'\x22');break;case _0xfe0c('0x36'):var _0x4d3d36=parseInt(_0x5c3d97);if(_['isNumber'](_0x4d3d36)&&_[_0xfe0c('0x75')](_0x3c85d4,_0x4d3d36)){_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x4d3d36+'\x22');}else{_0x2e932d[_0xfe0c('0x1c')](_0xfe0c('0x85'));}break;case _0xfe0c('0x86'):if(isEmail(_0x5c3d97)){_0x53ad00['push']('\x22'+_0x5c3d97+'\x22');}else{_0x2e932d[_0xfe0c('0x1c')](_0xfe0c('0x87'));}break;case _0xfe0c('0x88'):var _0x156692=moment(_0x5c3d97,_0xfe0c('0x89'),!![]);if(_0x156692[_0xfe0c('0x82')]()){_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x5c3d97+'\x22');}else{_0x2e932d[_0xfe0c('0x1c')](_0xfe0c('0x8a'));}break;case'dialTimezone':var _0x615d25=shared[_0xfe0c('0x68')];var _0x2567b3=_0x615d25[_0x5c3d97];if(!_[_0xfe0c('0x1e')](_0x2567b3)){var _0xc7f100=_0x2567b3[_0xfe0c('0x8b')];_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x5c3d97+'\x22');_0x53ad00['push']('\x22'+_0xc7f100+'\x22');}break;default:_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x5c3d97+'\x22');}}else{switch(_0x212524){case _0xfe0c('0x8c'):case _0xfe0c('0x11'):_0x2e932d[_0xfe0c('0x1c')](_0x212524+_0xfe0c('0x8d'));break;default:_0x53ad00['push']('\x22\x22');}}}}else{var _0x391e5e='';if(!_[_0xfe0c('0x1e')](_0x49f860)){if(!_0x337150['hasOwnProperty'](_0x49f860['id'])){if(!_[_0xfe0c('0x1e')](_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6][_0x6a47e9[_0x212524]])){var _0x5c3d97=_[_0xfe0c('0x80')](_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6][_0x6a47e9[_0x212524]][_0xfe0c('0x81')](/"/g,'\x27'));var _0x2e648d=phoneDescriptions[_0xfe0c('0x7e')](_0x369a73=>_0x369a73[_0xfe0c('0x8e')]===_0x49f860['id']);if(!_[_0xfe0c('0x1e')](_0x2e648d)){var _0x39e9dd=_[_0xfe0c('0x80')](_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6][_0x6a47e9[_0x2e648d[_0xfe0c('0x8f')]]]['replace'](/"/g,'\x27'));if(!_[_0xfe0c('0x1e')](_0x39e9dd))_0x5c3d97=_0x5c3d97+'§'+_0x39e9dd;}if(_0x391e5e=='')_0x391e5e=_0x5c3d97;else _0x391e5e+='|'+_0x5c3d97;}_0x1127e6[_0xfe0c('0x1c')](_0x49f860['id']+':'+_0x391e5e);_0x337150[_0x49f860['id']]=0x1;}}}}if(hasAdditionalPhones){_0x53ad00[_0xfe0c('0x1c')]('\x22'+_0x1127e6[_0xfe0c('0x13')](';')+'\x22');}if(_0x2e932d[_0xfe0c('0x1b')]){handleError(_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6],{'code':_0xfe0c('0x90'),'message':_0x2e932d[_0xfe0c('0x13')]()});}else{fs[_0xfe0c('0x91')](_0x3c61a7,_0x53ad00[_0xfe0c('0x13')]()+'\x0a');}_0x53ad00=[];}if(!(stats[_0xfe0c('0x7d')]%0xc8)){socket[_0xfe0c('0x92')](_0xfe0c('0x93')+_0x43fdc9,stats);stats[_0xfe0c('0x5c')]=[];}}if(stopped){logger['info'](_0xfe0c('0x94'));_0x342889[_0xfe0c('0x95')]();}}catch(_0x11f6f8){handleError(_0x1b8e1b[_0xfe0c('0x7c')][_0x30caa6],{'code':'SystemError','message':_0x11f6f8[_0xfe0c('0x5a')]});logger[_0xfe0c('0x59')](_0xfe0c('0x96'),_0x11f6f8[_0xfe0c('0x5a')]);}},'complete':function(){try{var _0x553a39=[];var _0x519910=[];var _0x45e7e6=_0xfe0c('0x39');if(_0x34a971['duplicates']&&_0x34a971[_0xfe0c('0x97')][_0xfe0c('0x1b')]){_0x45e7e6=_0xfe0c('0x98')+_0x43fdc9;_0x553a39[_0xfe0c('0x1c')](_0xfe0c('0x99')+_0x45e7e6+'\x20LIKE\x20cm_contacts;');}tmp_campaigns=_0xfe0c('0x9a')+_0x43fdc9;tmp_voice_queues='voice_queues_'+_0x43fdc9;_0x519910[_0xfe0c('0x1c')](_0xfe0c('0x99')+tmp_campaigns+'(id\x20int,dialTimezone\x20varchar(255),offset\x20int);');_0x519910[_0xfe0c('0x1c')](_0xfe0c('0x99')+tmp_voice_queues+_0xfe0c('0x9b'));BPromise[_0xfe0c('0x9c')](_0x519910,handleTZQuery)[_0xfe0c('0x1a')](function(_0x168d3d){updateTzCampaigns(_0x34a971['ListId'])[_0xfe0c('0x1a')](function(_0xd45af7){updateTzVoiceQueues(_0x34a971['ListId'])[_0xfe0c('0x1a')](function(_0x306811){if(hasTZ)_0x54375c=_0x54375c[_0xfe0c('0x81')]('dialTimezone','dialTimezone,utcOffset');var _0xfbe119=util[_0xfe0c('0xd')](_0xfe0c('0x9d'),_0x3c61a7,_0x45e7e6,_0x54375c,_0x34a971[_0xfe0c('0x32')],_0x34a971['CompanyId']||null,NOW,NOW);if(_[_0xfe0c('0x1e')](_0x6a47e9['scheduledat'])){_0xfbe119+=',\x20scheduledAt\x20=\x20NOW()';}_0x553a39[_0xfe0c('0x1c')](_0xfbe119);if(_0x34a971['duplicates']&&_0x34a971[_0xfe0c('0x97')][_0xfe0c('0x1b')]){_0x553a39[_0xfe0c('0x1c')](insertCmContact(_0x34a971[_0xfe0c('0x32')],_0x45e7e6,_0x34a971[_0xfe0c('0x97')],_0x6a47e9));_0x553a39['push'](_0xfe0c('0x9e')+_0x45e7e6+';');}BPromise[_0xfe0c('0x9c')](_0x553a39,handleQuery)[_0xfe0c('0x1a')](function(_0x24a6eb){BPromise[_0xfe0c('0x64')]([handleAdditionalPhones()])[_0xfe0c('0x1a')](function(){_0x553a39=[];for(var _0x5df501=0x0;_0x5df501<promisesAdditionalPhones['length'];_0x5df501++){if(promisesAdditionalPhones[_0x5df501][_0xfe0c('0x11')]!='§'){_0x553a39['push'](createAdditionalPhone(promisesAdditionalPhones[_0x5df501][_0xfe0c('0x9f')],promisesAdditionalPhones[_0x5df501]['contactTypeId'],promisesAdditionalPhones[_0x5df501][_0xfe0c('0x11')],promisesAdditionalPhones[_0x5df501][_0xfe0c('0xa0')]));}}BPromise['all'](_0x553a39)[_0xfe0c('0x1a')](function(){_0x553a39=[];if(hasTZ){_0x553a39[_0xfe0c('0x1c')](insertTzCmHopper(_0x34a971[_0xfe0c('0x32')],'voice_queues_has_cm_lists','voice_queues',_0xfe0c('0xa1'),_0x5f1ab7,tmp_voice_queues));_0x553a39['push'](insertTzCmHopperBlack(_0x34a971[_0xfe0c('0x32')],_0xfe0c('0xa2'),_0xfe0c('0xa3'),_0xfe0c('0xa1')));_0x553a39[_0xfe0c('0x1c')](insertTzCmHopper(_0x34a971['ListId'],_0xfe0c('0x61'),_0xfe0c('0xa4'),_0xfe0c('0xa5'),_0x5f1ab7,tmp_campaigns));_0x553a39[_0xfe0c('0x1c')](insertTzCmHopperBlack(_0x34a971['ListId'],_0xfe0c('0xa6'),'campaigns',_0xfe0c('0xa5')));_0x553a39[_0xfe0c('0x1c')](insertCmHopperAdditionalPhones(_0x34a971[_0xfe0c('0x32')]));}else{_0x553a39[_0xfe0c('0x1c')](insertCmHopper(_0x34a971[_0xfe0c('0x32')],'voice_queues_has_cm_lists',_0xfe0c('0xa3'),_0xfe0c('0xa1'),_0x5f1ab7));_0x553a39[_0xfe0c('0x1c')](insertCmHopperBlack(_0x34a971[_0xfe0c('0x32')],'voice_queues_has_cm_blacklists',_0xfe0c('0xa3'),_0xfe0c('0xa1')));_0x553a39['push'](insertCmHopper(_0x34a971[_0xfe0c('0x32')],_0xfe0c('0x61'),'campaigns','CampaignId',_0x5f1ab7));_0x553a39['push'](insertCmHopperBlack(_0x34a971[_0xfe0c('0x32')],_0xfe0c('0xa6'),'campaigns','CampaignId'));_0x553a39[_0xfe0c('0x1c')](insertCmHopperAdditionalPhones(_0x34a971[_0xfe0c('0x32')]));}_0x553a39['push'](_0xfe0c('0x9e')+tmp_campaigns+';');_0x553a39['push'](_0xfe0c('0x9e')+tmp_voice_queues+';');BPromise[_0xfe0c('0x9c')](_0x553a39,handleQuery)['then'](function(_0x1c856c){stats[_0xfe0c('0xa7')]=!![];stats['affectedRows']=_0x34a971[_0xfe0c('0x97')]&&_0x34a971[_0xfe0c('0x97')][_0xfe0c('0x1b')]?results[0x2]['affectedRows']:results[0x0][_0xfe0c('0xa8')];socket[_0xfe0c('0x92')](_0xfe0c('0x93')+_0x43fdc9,stats);fs[_0xfe0c('0xa9')](_0x20c18f);fs[_0xfe0c('0xa9')](_0x3c61a7);process[_0xfe0c('0x5b')](0x0);})[_0xfe0c('0x65')](function(_0x4e4dee){logger[_0xfe0c('0x59')](_0x4e4dee[_0xfe0c('0x5a')]);process[_0xfe0c('0x5b')](0x1);});});});})[_0xfe0c('0x65')](function(_0x2cf72d){logger['error'](_0x2cf72d[_0xfe0c('0x5a')]);process[_0xfe0c('0x5b')](0x1);});});});});}catch(_0x30b707){logger[_0xfe0c('0x59')]('complete',_0x30b707[_0xfe0c('0x5a')]);process[_0xfe0c('0x5b')](0x1);}},'error':function(_0x17b488,_0x41a72e,_0x4d2f83,_0x5bdd51){throw new Error(_0x5bdd51);}});});}function validate(){if(process[_0xfe0c('0xaa')]&&process[_0xfe0c('0xaa')]['length']<0x4){throw new Error(_0xfe0c('0xab'));}var _0x555646=path[_0xfe0c('0x13')](config[_0xfe0c('0x72')],_0xfe0c('0x73'),process[_0xfe0c('0xaa')][0x2]);if(!fs[_0xfe0c('0xac')](_0x555646)){throw new Error(_0xfe0c('0xad'));}var _0x5aef17={};try{_0x5aef17=JSON[_0xfe0c('0xae')](process[_0xfe0c('0xaa')][0x3]);if(!_0x5aef17[_0xfe0c('0x6f')]){throw new Error(_0xfe0c('0xaf'));}if(!_0x5aef17[_0xfe0c('0x6f')][_0xfe0c('0x11')]){throw new Error(_0xfe0c('0xb0'));}if(!_0x5aef17['binding'][_0xfe0c('0x8c')]){throw new Error(_0xfe0c('0xb1'));}var _0x30da5b=0x0;if(_0x5aef17[_0xfe0c('0x6f')][_0xfe0c('0x36')]){_0x30da5b=0x1;}if(!_0x5aef17['ListId']){throw new Error(_0xfe0c('0xb2'));}}catch(_0x23c297){throw new Error(_0xfe0c('0xb3'));}var _0x4ba143=[];try{_0x4ba143=_[_0xfe0c('0xb4')](JSON[_0xfe0c('0xae')](process['argv'][0x4]),'id');}catch(_0x4faa2a){logger[_0xfe0c('0x57')](_0xfe0c('0xb5'));}main(_0x555646,_0x5aef17,_0x4ba143,_0x30da5b);}validate();process['on'](_0xfe0c('0xb6'),handleStop);process['on'](_0xfe0c('0xb7'),handleUncaughtException);