"; //поиск пользователя //echo $p->user_find_number."++
"; $user_id = $tele2 -> find_user($p->user_find_number); //echo $user_id.'
'; $new_client = false; if($user_id == 0) $user_id = $main_user_id; //echo $user_id.'
'; if($user_id != 0){ //Поиск клиента $client_id = $tele2 -> find_client($p->client_find_number); $source = $tele2->findSource($tele2->ver_phone($p->source_find)); if($client_id == 0){ $new_client = true; $sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage) " . " VALUES ('Клиент tele2', '".$tele2->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $p->date)."', {$user_id}, '1', '1')"; //echo $sql_cl_mango."\n"; if($agency_id == 21939 || $agency_id == 19793){ if($type == 'abonentTele2NoAnswer' || $type == 'abonentTele2Answer'){ 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 == 'abonentTele2Answer'){ $cl_stage = $tele2 -> 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 «Закрыт» на «Новый» (По входящему звонку tele2)"; $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; $sql_m = "SELECT id FROM user_client_events WHERE client_id = {$client_id} AND create_date = '".date('Y-m-d H:i:s', $p->date)."'". " AND `type` = 'call' AND tele2 = 1 AND tracking = 0"; $q_m = mysql_query($sql_m); if(mysql_num_rows($q_m) == 0){ $record=$tele2->recordSaveTele2($p,$agency_id); if(!empty($record)){ $isRecord = true; } //Поиск чей клиент $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 == 'abonentTele2Answer'){ 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 == 'tele2AbonentNoAnswer'){ $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, tele2) ". "VALUES (".$r_t['user_id'].", {$client_id}, '".date('Y-m-d H:i:s', $p->date)."', '".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, tele2, record) ". "VALUES ({$who_work}, {$client_id}, '".date('Y-m-d H:i:s', $p->date)."', '".date('Y-m-d H:i:s', $p->date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; //echo $sql_in_ev.'
'; mysql_query($sql_in_ev); } } //Поиск заявки по клиенту if($dataApi['is_req'] > 0){ if(!$isRecord){ $record = $tele2->recordSaveTele2($p,$agency_id); $isRecord = true; } $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->date)."'". " AND user_id={$user_id} AND `type` = 'call' AND tele2 = 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, tele2, record) ". "VALUES ($req[who_work], $req[id], '".date('Y-m-d H:i:s', $p->date)."', '".date('Y-m-d H:i:s', $p->date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } else { $nameReq = 'Заявка Теле2'; $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, who_work={$user_id}, description='{$req_comm}'"; if($agency_id == 19793){ if($type == 'abonentTele2NoAnswer' || $type == 'abonentTele2Answer'){ mysql_query($sql_req); $req_id = mysql_insert_id(); $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, tele2, record) ". "VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p->date)."', '".date('Y-m-d H:i:s', $p->date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } else if($agency_id != 13285 && $agency_id != 22045 && $agency_id != 22282 && $agency_id != 21939){ mysql_query($sql_req); $req_id = mysql_insert_id(); $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, tele2, record) ". "VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p->date)."', '".date('Y-m-d H:i:s', $p->date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')"; mysql_query($sql_in_ev); } } } } } } $sql_tel = "SELECT * FROM agency_tele2"; //echo $sql_tel; $q_tel = mysql_query($sql_tel); while($r_tel = mysql_fetch_assoc($q_tel)){ $company_id = $r_tel['company_id']; $region_id = $r_tel['region_id']; $lost_date= $r_tel['lost_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']; $access_token = $r_tel['access_token']; $refresh_token = $r_tel['refresh_token']; //$refresh_token = 'eyJhbGciOiJIUzUxMiJ9.eyJVc2VyRGV0YWlsc0ltcGwiOnsiY29tcGFueUlkIjo0MzEyLCJ1c2VySWQiOjExNTk4LCJsb2dpbiI6Ijc5MDEwODcwMzAwIn0sImV4cCI6MTY2MjM4MjM3NSwic3ViIjoiUkVGUkVTSF9PUEVOQVBJX1RPS0VOIn0.iL7FvfjDIKtHVewQdCVL2pCipG-Uv1qlm9ESa-fuVQ43FJfsfqKjyIYLiqWU9dHUbDSVfx7sQQaOiS_t81vpGQ'; //echo $refresh_token."\n"; $phones_type=array(); $tele2 = new Tele2ApiClass($company_id, $region_id, $refresh_token, $access_token); // echo urldecode('https://ats2.tele2.ru/crm/openapi/call-records/info'); if($tele2->validate_agency($agency_id) && $tele2->getToken($agency_id)){ $usersTele2 = array(); $usersCall = json_decode($tele2->getUsers()); // var_dump($usersCall); foreach($usersCall as $user){ $tele2->saveUser($user, $agency_id); } $tele2->setUsers($agency_id); //История вызовов //('Ymd',(strtotime($last_date) - 4*60*60)).'T'.date('His', (strtotime($last_date) - 4*60*60)).'Z'; // $start_date = strtotime($lost_date) - 60*60; //$end_date = time(); $start_date = date('Y-m-d', (strtotime($lost_date) - 4*60*60)).'T'. date('H:i:s', (strtotime($lost_date) - 4*60*60)).'+03:00'; // echo $start_date; //$start_date = date('Y-m-d H:i:s', (strtotime('2020-10-10 10:40:00') - 2*60*60)); $end_date= date('Y-m-d').'T'.date('H:i:s').'+03:00'; $calls = $tele2->callHistory(rawurlencode($start_date), rawurlencode($end_date)); foreach($calls as $call){ //var_dump($call); $call->date = strtotime($call->date) + $gmt*60*60; $call_id = $tele2->stat($call, $agency_id); //echo $call_id."\n"; $user_find_number = 0; if(!isset($call->calleeNumber)){ $call->calleeNumber = $call->destinationNumber; } $type = $tele2->get_phone_type($call); switch ($type){ case 'tele2AbonentAnswer': { $call->comment = 'Клиент записан по исходящему звонку в tele2'; $call->comment_in = 'Исходящий звонок в Теле2'; $call->user_find_number = $call->callerNumber; $user_find_number = $call->callerNumber; $call->source_find = $call->callerNumber; $call->client_find_number = $call->calleeNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->callerName.')'; $phones_type['tele2AbonentAnswer'][] = $call; break; } case 'abonentTele2Answer': { $call->comment = 'Клиент записан по входящему звонку в tele2'; $call->comment_in = 'Входящий звонок в Теле2'; $call->user_find_number = $call->calleeNumber; $user_find_number = $call->calleeNumber; $call->source_find = $call->calleeNumber; $call->client_find_number = $call->callerNumber; $call->comment_in .= ' '.'(Сотрудник '.(isset($call->calleeName) ? $call->calleeName : '').')'; $phones_type['abonentTele2Answer'][] = $call; break; } case 'tele2AbonentNoAnswer': { $call->comment = 'Клиент записан по исходящему звонку в tele2'; $call->comment_in = 'Исходящий звонок в Теле2.
Абонент не ответил'; $call->user_find_number = $call->callerNumber; $user_find_number = $call->callerNumber; $call->source_find = $call->callerNumber; $call->client_find_number = $call->calleeNumber; $call->comment_in .= ' '.'(Сотрудник '.$call->callerName.')'; $phones_type['tele2AbonentNoAnswer'][] = $call; break; } case 'abonentTele2NoAnswer':{ $call->comment = 'Клиент записан по входящему звонку в tele2'; $call->comment_in = 'Пропущеный входящий звонок в Теле2'; $call->user_find_number = $call->calleeNumber; $user_find_number = $call->calleeNumber; $call->source_find = $call->calleeNumber; $call->client_find_number = $call->callerNumber; $call->comment_in .= ' '.'(Сотрудник '.(isset($call->calleeName) ? $call->calleeName : '').')'; $phones_type['abonentTele2NoAnswer'][] = $call; break; } } $tele2->save_user_call($call_id, $user_find_number, $main_user_id); } if(isset($phones_type['tele2AbonentAnswer'])){ foreach ($phones_type['tele2AbonentAnswer'] as $p) { read_phone($tele2, $p, $agency_id, 'tele2AbonentAnswer', $main_user_id, $r_tel); } } if(isset($phones_type['abonentTele2Answer'])){ foreach ($phones_type['abonentTele2Answer'] as $p) { read_phone($tele2, $p, $agency_id, 'abonentTele2Answer', $main_user_id, $r_tel); } } if(isset($phones_type['tele2AbonentNoAnswer'])){ foreach ($phones_type['tele2AbonentNoAnswer'] as $p) { read_phone($tele2, $p, $agency_id, 'tele2AbonentNoAnswer', $main_user_id, $r_tel); } } if(isset($phones_type['abonentTele2NoAnswer'])){ foreach ($phones_type['abonentTele2NoAnswer'] as $p) { read_phone($tele2, $p, $agency_id, 'abonentTele2NoAnswer', $main_user_id, $r_tel); } } $sql_up_tel = "UPDATE agency_tele2 SET lost_date = '".date('Y-m-d H:i:s')."' WHERE id = ".$r_tel['id']; // echo $sql_up_tel; mysql_query($sql_up_tel); } }