"; //поиск пользователя //echo $p->user_find_number."++
"; $user_id = $mts -> find_user($p->user_find_number); $source = 0; $new_client = false; $funnel_id = 0; if($user_id == 0) $user_id = $main_user_id; //echo $user_id.'
'; if ($agency_id == 17664){ $funnel_id = 1180; } if($user_id != 0){ //Поиск клиента $client_id = $mts -> find_client($p->client_find_number); $source = $mts->findSource($mts->ver_phone($p->source_find)); if($client_id == 0 && $dataApi['only_widget'] == 0){ $new_client = true; $sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, source, confirm, stage, funnel_id) " . " VALUES ('Клиент mts', '".$mts->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $p->callTime)."', {$user_id}, {$source}, '1', '1', {$funnel_id})"; if($agency_id == 12061){ if($type == 'abonentMtsAnswer' || $type =='abonentMtsNoAnswer'){ mysql_query($sql_cl_mango); $client_id = mysql_insert_id(); } } else { mysql_query($sql_cl_mango); $client_id = mysql_insert_id(); } } if($client_id != 0){ if($type == 'abonentMtsAnswer'){ $cl_stage = $mts -> get_client_stage(); //Перевод клиента в стадию "Новый", если он был закрыт if($cl_stage == 8 || $cl_stage == 10){ $up_client = "UPDATE `clients` SET `stage`='1', `who_work`='{$user_id}', `deleted` = 0 WHERE `id`={$client_id}"; mysql_query($up_client); $dop_text = "c «Закрыт» на «Новый» (По входящему звонку mts)"; $in_ev = "INSERT INTO `events_clients` (`user_id`, `client_id`, `event`, `dop_text`, `read`) VALUES ('{$user_id}', '{$client_id}', 'stageedit', '{$dop_text}', 1)"; mysql_query($in_ev); } } $record = ''; $isRecord = false; $record=$mts->recordSaveMTS($p,$agency_id); if(!empty($record) && $record != '[]'){ $isRecord = true; } $sql_m = "SELECT id FROM user_client_events WHERE client_id = {$client_id} AND create_date = '".date('Y-m-d H:i:s', $p->callTime)."'". " AND `type` = 'call' AND mts = 1 AND tracking = 0"; $q_m = mysql_query($sql_m); if(mysql_num_rows($q_m) == 0){ //Поиск чей клиент $sql_who = "SELECT who_work FROM clients WHERE id = {$client_id}"; $q_who = mysql_query($sql_who); $r_who = mysql_fetch_assoc($q_who); $who_work = $user_id; if($r_who['who_work'] != 0){ $who_work = $r_who['who_work']; } /*if($type == 'abonentMtsAnswer'){ if(!$new_client && $who_work != $user_id){ $tg_notif = "INSERT INTO telephony_notifications (user_id, who_work, from_mes, to_mes, client_id, type_phone) ". "VALUES ({$user_id},{$who_work},0,1,{$client_id}, 1),". "({$who_work},{$user_id},1,0,{$client_id}, 1)"; mysql_query($tg_notif); } }*/ //Поиск отслеживаемого звонка $sql_t = "SELECT * FROM user_client_events WHERE client_id = {$client_id} AND user_id={$who_work} AND `type` = 'call' AND tracking = 1 AND calendar_view = 0"; $q_t = mysql_query($sql_t); if(mysql_num_rows($q_t) > 0){ $r_t = mysql_fetch_assoc($q_t); mysql_query("UPDATE user_client_events SET calendar_view = 1, record='".$record."' WHERE id = ".$r_t['id']); if($type == 'mtsAbonentNoAnswer'){ $sql_in_ev = "INSERT INTO user_client_events (user_id, client_id, create_date, schedule_date_to, schedule_date, `type`, comment, calendar_view, from_id, mts) ". "VALUES (".$r_t['user_id'].", {$client_id}, '".date('Y-m-d H:i:s', $p->callTime)."', '".date('Y-m-d H:i:s')."', '".date('Y-m-d H:i:s', time()+3600)."', 'call', '".$r_t['comment'].' '.$p->comment_in."', 0, ".$r_t['from_id'].", 1)"; mysql_query($sql_in_ev); } } else { $sql_in_ev = "INSERT INTO user_client_events (user_id, client_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, mts, record) ". "VALUES ({$who_work}, {$client_id}, '".date('Y-m-d H:i:s', $p->callTime)."', '".date('Y-m-d H:i:s', $p->callTime)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; //echo $sql_in_ev.'
'; mysql_query($sql_in_ev); } } else if($isRecord) { $r_m = mysql_fetch_assoc($q_m); if(empty($r_m['record']) || $r_m['record'] == '[]'){ $sql_who = "SELECT who_work FROM clients WHERE id = {$client_id}"; $q_who = mysql_query($sql_who); $r_who = mysql_fetch_assoc($q_who); $who_work = $user_id; if($r_who['who_work'] != 0){ $who_work = $r_who['who_work']; } mysql_query("UPDATE user_client_events SET calendar_view = 1, record='".$record."', comment='{$p->comment_in}', user_id={$who_work}, from_id={$user_id} WHERE id = ".$r_m['id']); } } //Поиск заявки по клиенту if($dataApi['is_req'] > 0){ if(!$isRecord){ $record = $mts->recordSaveMTS($p,$agency_id); $isRecord = true; } if($agency_id == 12061){ $funnel_id = 573; } else if ($agency_id == 17664){ $funnel_id = 1180; } $req_s = "SELECT id, user_id, who_work FROM requisitions WHERE client_id=$client_id and who_work={$user_id} and cancel=0 and deleted=0"; $req_q = mysql_query($req_s); $req_rows = mysql_num_rows($req_q); $req_comm = str_replace(["Клиент","записан"], ["Заявка","записана"], $p->comment); if($req_rows > 0){ $req = mysql_fetch_assoc($req_q); $sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND create_date = '".date('Y-m-d H:i:s', $p->callTime)."'". " AND user_id={$user_id} AND `type` = 'call' AND mts = 1 AND tracking = 0"; $q_m = mysql_query($sql_m); if(mysql_num_rows($q_m) == 0){ $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, mts, record) ". "VALUES ($req[who_work], $req[id], '".date('Y-m-d H:i:s', $p->callTime)."', '".date('Y-m-d H:i:s', $p->callTime)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } else { $nameReq = 'Заявка МТС'; $sql_cl = "SELECT fio FROM clients WHERE id={$client_id}"; $q_cl = mysql_query($sql_cl); $r_cl = mysql_fetch_assoc($q_cl); if(isset($r_cl['fio'])){ $nameReq = "Подбор объекта для ".$r_cl['fio']; } $sql_req = "INSERT INTO `requisitions` SET name='{$nameReq}', user_id={$user_id}, integration=1, client_id={$client_id}, stage=1, type_id=1, source={$source}, who_work={$user_id}, description='{$req_comm}'"; if($funnel_id > 0) { $sql_req .= ", funnel_id={$funnel_id}"; $reqClass = new Requisitions(); } if($agency_id == 12061){ if($type == 'abonentMtsAnswer' || $type =='abonentMtsNoAnswer'){ mysql_query($sql_req); $req_id = mysql_insert_id(); if($req_id > 0 && $funnel_id > 0){ $reqClass->get_class_etap($req_id, $funnel_id); } } if(isset($req_id) && $req_id > 0){ $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, mts, record) ". "VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p->callTime)."', '".date('Y-m-d H:i:s', $p->callTime)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } else{ mysql_query($sql_req); $req_id = mysql_insert_id(); if($req_id > 0 && $funnel_id > 0){ $reqClass->get_class_etap($req_id, $funnel_id); } if(isset($req_id) && $req_id > 0){ $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, mts, record) ". "VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p->callTime)."', '".date('Y-m-d H:i:s', $p->callTime)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } } } } } } header('Content-Type: application/json'); $sql_tel = "SELECT * FROM agency_mango WHERE `type` = 'mts'"; //echo $sql_tel; $q_tel = mysql_query($sql_tel); while($r_tel = mysql_fetch_assoc($q_tel)){ $api_key = $r_tel['api_key']; $last_date = $r_tel['last_date']; $agency_id =$r_tel['agency_id']; $main_user_id = $r_tel['main_user']; $lost_update = $r_tel['lost_update']; $gmt = (int)$r_tel['gmt']; $phones_type=array(); $mts = new MtsApiClass($api_key); $calls_list = array(); if($mts->validate_agency($agency_id)){ $usersMts = array(); $usersCall=json_decode($mts->getUsers()); if (!empty($usersCall)) { if (is_object($usersCall)) { $usersCall = (array)$usersCall; } foreach($usersCall as $userM){ //Проверка подписки $mts->chechSubscription($userM); if((time() - $lost_update) >= 86400){ $mts->saveUser($userM, $agency_id); } } } if((time() - $lost_update) >= 86400){ $sql_up_tel = "UPDATE agency_mango SET lost_update = '".time()."' WHERE id = ".$r_tel['id']; mysql_query($sql_up_tel); } $mts->setUsers($agency_id); //История вызовов $start_date = (strtotime($last_date) - 2*60*60)*1000; $end_date = time()*1000; //echo $start_date."\n"; //echo $end_date."\n"; $arrGroup = array(); $page = 0; $pages = 1; $calls = $mts->callHistory($start_date, $end_date, $page); if(isset($calls->totalElements) && $calls->totalElements > 0){ //echo $calls->totalElements."\n"; $calls_list[0] = $calls; if($calls->totalElements > 100){ $pages = $calls->totalPages; // echo "страниц ".$pages."\n"; } if($pages > 1){ for($i = 1; $i<=($pages-1); $i++){ $page = $i; $calls_list[$i] = $mts->callHistory($start_date, $end_date, $page); } } //var_dump($calls_list); $ii = 0; foreach($calls_list as $key => $calls){ foreach($calls->content as $call){ $call->callTime = ceil($call->callTime/1000); // echo date('d.m.Y H:i:s', $call->callTime)."\n"; //if(!in_array($call->callGroupId, $arrGroup) || $call->status == 'PLACED'){ $arrGroup[] = $call->callGroupId; $call_id = $mts->stat($call, $agency_id, $r_tel['only_widget']); $user_find_number = 0; $type = $mts->get_phone_type($call); switch ($type){ case 'mtsAbonentAnswer': { $call->comment = 'Клиент записан по исходящему звонку в mts'; $call->comment_in = 'Исходящий звонок в МТС'; $call->user_find_number = $call->callingNumber; $user_find_number = $call->callingNumber; $call->source_find = $call->callingNumber; $call->client_find_number = $call->calledNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->abonentName.')'; $phones_type['mtsAbonentAnswer'][] = $call; break; } case 'abonentMtsAnswer': { $call->comment = 'Клиент записан по входящему звонку в mts'; $call->comment_in = 'Входящий звонок в МТС'; $call->user_find_number = $call->calledNumber; $user_find_number = $call->calledNumber; $call->source_find = $call->calledNumber; $call->client_find_number = $call->callingNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->abonentName.')'; $phones_type['abonentMtsAnswer'][] = $call; break; } case 'mtsAbonentNoAnswer': { $call->comment = 'Клиент записан по исходящему звонку в mts'; $call->comment_in = 'Исходящий звонок в МТС.
Абонент не ответил'; $call->user_find_number = $call->callingNumber; $user_find_number = $call->callingNumber; $call->source_find = $call->callingNumber; $call->client_find_number = $call->calledNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->abonentName.')'; $phones_type['mtsAbonentNoAnswer'][] = $call; break; } case 'abonentMtsNoAnswer':{ $call->comment = 'Клиент записан по входящему звонку в mts'; $call->comment_in = 'Пропущеный входящий звонок в МТС'; $call->user_find_number = $call->calledNumber; $user_find_number = $call->calledNumber; $call->source_find = $call->calledNumber; $call->client_find_number = $call->callingNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->abonentName.')'; $phones_type['abonentMtsNoAnswer'][] = $call; break; } } $mts->save_user_call($call_id, $user_find_number, $main_user_id); //} //$ii++; } //echo "ii".$ii."\n"; } } if(isset($phones_type['mtsAbonentAnswer'])){ foreach ($phones_type['mtsAbonentAnswer'] as $p) { read_phone($mts, $p, $agency_id, 'mtsAbonentAnswer', $main_user_id, $r_tel); } } if(isset($phones_type['abonentMtsAnswer'])){ foreach ($phones_type['abonentMtsAnswer'] as $p) { read_phone($mts, $p, $agency_id, 'abonentMtsAnswer', $main_user_id, $r_tel); } } if(isset($phones_type['mtsAbonentNoAnswer'])){ foreach ($phones_type['mtsAbonentNoAnswer'] as $p) { read_phone($mts, $p, $agency_id, 'mtsAbonentNoAnswer', $main_user_id, $r_tel); } } if(isset($phones_type['abonentMtsNoAnswer'])){ foreach ($phones_type['abonentMtsNoAnswer'] as $p) { read_phone($mts, $p, $agency_id, 'abonentMtsNoAnswer', $main_user_id, $r_tel); } } $sql_up_tel = "UPDATE agency_mango SET last_date = '".date('Y-m-d H:i:s')."' WHERE id = ".$r_tel['id']; mysql_query($sql_up_tel); } }