Joywork/cron/megafon_call.php

830 lines
38 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?php
set_time_limit(0);
ini_set('memory_limit', '8192M');
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
header('Content-Type: application/json');
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
//Функция для записи звонков в базу
function read_phone($megafon, $p, $agencyId, $type, $main_user_id, $funnel_telephony){
$agency_id = $agencyId;
//поиск пользователя
if(isset($p['agency_id']) && $p['agency_id'] > 0){
$agency_id = (int)$p['agency_id'];
}
if($agency_id == 13430 || $agency_id == 13394){
$megafon->set_users_agency($agency_id);
}
// echo $agency_id."\n";
$megafon->account = $p['account'];
$user_id = $megafon->find_user($p['user_find_number'], $agency_id);
$client_id = 0;
if($user_id == 0) $user_id = $main_user_id;
if($user_id > 0){
$who_work_i = $user_id;
$confirm = 1;
if($user_id == 10786 || $agency_id == 12343){
$who_work_i = 0;
$confirm = 0;
} else if ($agency_id == 13154 && $megafon->ver_phone($p['user_find_number']) == '+79111111702'){
$who_work_i = 0;
$confirm = 0;
} else if($agency_id == 12461){
$who_work_i = 0;
$confirm = 0;
}
$funnel_id = 0;
if(!empty($funnel_telephony)){
foreach($funnel_telephony as $funnel_t){
if($funnel_t['phone'] == $megafon->ver_phone($p['user_find_number'])){
if((int)$funnel_t['funnel_id'] > 0){
$funnel_id = (int)$funnel_t['funnel_id'];
}
}
}
}
if($agency_id == 14191){
$funnel_id = 844;
} else if($agency_id == 16001){
$funnel_id = 994;
} else if($agency_id == 12028){
$funnel_id = 996;
} else if($agency_id == 17664){
$funnel_id = 1180;
}else if ($agency_id == 12461){
$funnel_id = 1854;
}
//Поиск клиента
$client_id = $megafon->find_client($p['client_find_number']);
$source = $megafon->findSource($megafon->ver_phone($p['user_find_number']));
if ($agency_id == 13154 && $megafon->ver_phone($p['user_find_number']) == '+79111111702'){
$source = 1678;
}
if($client_id == 0 && strlen($megafon -> ver_phone($p['client_find_number'])) == 12){
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, source) " .
" VALUES ('Клиент megafon', '".$megafon -> ver_phone($p['client_find_number'])."', '".$p['comment']."', {$user_id}, '".date('Y-m-d H:i:s', $p['start'])."', {$who_work_i}, '{$confirm}', '1', $source)";
if($agency_id == 6841){
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
" VALUES ('Клиент megafon', '".$megafon -> ver_phone($p['client_find_number'])."', '".$p['comment']."', {$user_id}, '".date('Y-m-d H:i:s', $p['start'])."', {$who_work_i}, '{$confirm}', '1',36, $source)";
}
if($funnel_id > 0){
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
" VALUES ('Клиент megafon', '".$megafon -> ver_phone($p['client_find_number'])."', '".$p['comment']."', {$user_id}, '".date('Y-m-d H:i:s', $p['start'])."', {$who_work_i}, '{$confirm}', '1',$funnel_id,$source)";
}
if($agency_id == 9973 || $agency_id == 7864 || $agency_id == 12254){
if($type == 'abonentMegafonAnswer'){
/* if($agency_id == 7864) {
echo $sql_cl_mango."\n";
}*/
mysql_query($sql_cl_mango);
$client_id = mysql_insert_id();
}
} else if($agency_id == 12343 && $megafon->ver_phone($p['user_find_number']) == '+79284369993'){
if($type == 'abonentMegafonAnswer' || $type == 'noAnswer'){
/* if($agency_id == 7864) {
echo $sql_cl_mango."\n";
}*/
mysql_query($sql_cl_mango);
$client_id = mysql_insert_id();
}
} else if($agency_id == 15401){
if($megafon->ver_phone($p['user_find_number']) == '+79215648879'){
mysql_query($sql_cl_mango);
$client_id = mysql_insert_id();
}
} else if($agency_id == 12482 || $agency_id == 13430 || $agency_id == 13394 || $agency_id == 14310 || $agency_id == 14700 ||
$agency_id == 10982 || $agency_id == 16182 || $agency_id == 16444 || $agency_id == 13735 || $agency_id == 19909 ||
$agency_id == 19750 || $agency_id == 21951 || $agency_id == 18479 || $agency_id == 23103 || $agency_id == 22670){
if($type == 'abonentMegafonAnswer' || $type == 'noAnswer'){
/* if($agency_id == 7864) {
echo $sql_cl_mango."\n";
}*/
mysql_query($sql_cl_mango);
$client_id = mysql_insert_id();
}
} else if($agency_id == 19794){
if($type == 'megafonAbonentAnswer'){
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 && $funnel_id > 0){
$client = new Clients;
$client->get_class_etap($client_id, $funnel_id);
}
}
if($client_id > 0){
/*if($agency_id == 7864) {
echo $type."\n";
}*/
if($type == 'abonentMegafonAnswer'){
$cl_stage = $megafon -> 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 &laquo;Закрыт&raquo; на &laquo;Новый&raquo; (По входящему звонку Мегафон)";
$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);
}
}
$sql_m = "SELECT id FROM user_client_events WHERE client_id = {$client_id} AND create_date = '".date('Y-m-d H:i:s', $p['start'])."'".
" AND `type` = 'call' AND megafon = 1";
$isRecord = false;
$q_m = mysql_query($sql_m);
if(mysql_num_rows($q_m) == 0){
$record = '';
if(!empty(trim($p['record'], '\n'))){
$record=$megafon->recordSave(trim($p['record'], '\n'));
$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'];
}
//Поиск отслеживаемого звонка
$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 == 'noAnswer'){
$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, megafon) ".
"VALUES (".$r_t['user_id'].", {$client_id}, '".date('Y-m-d H:i:s', ($p['start']+3*60*60))."', '".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, megafon, record) ".
"VALUES ({$who_work}, {$client_id}, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s',$p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
//echo $sql_in_ev.'</br>';
mysql_query($sql_in_ev);
}
}
//Поиск заявки по клиенту
if($agency_id != 7864){
if(!$isRecord){
if(!empty(trim($p['record'], '\n'))){
$record=$megafon->recordSave(trim($p['record'], '\n'));
$isRecord=true;
}
}
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and who_work={$user_id} and cancel=0 and deleted=0";
if ($agency_id == 13154 && $megafon->ver_phone($p['user_find_number']) == '+79111111702'){
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and cancel=0";
} else /*if($agency_id == 13339 || $agency_id == 10429 || $agency_id == 13154)*/ {
$res_s = "SELECT id, user_id, who_work FROM requisitions WHERE call_id='{$p['UID']}'";
$res_q = mysql_query($res_s);
if(mysql_num_rows($res_q) == 0){
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and who_work={$user_id} and cancel=0 and deleted=0";
if($agency_id == 13154){ //Поиск среди закрытых заявок
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and who_work={$user_id} and cancel=0";
} else if($agency_id == 13339){ // Для агентства M2 Group Недвижимость ищем заявку которая была закрыта менее 3-х часов назад
/** */
$date_update_between = "BETWEEN '". date('Y-m-d H:i:d', ($p['start'] - 10*60)) . "' AND '".date('Y-m-d H:i:d', ($p['start']+60*60))."'";
if(mysql_num_rows(mysql_query($req_s)) == 0){
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE
client_id=$client_id and who_work={$user_id} and cancel=0 and deleted=1
AND (SELECT date_update FROM `events_clients` where `req_id` = requisitions.id AND `event` = 'delete' AND date_update $date_update_between ORDER BY id DESC LIMIT 1) is not null";
}
} else if($agency_id == 18479){ //Поиск любой заявки по клиенту с телефонии
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and cancel=0 and integration in (1,2) order by id desc limit 1";
}
} else {
$req_s = $res_s;
}
}
if($agency_id == 11082){
//Проверяем с интеграции ли клиент
$sql_cl_i = "SELECT integration FROM clients WHERE id={$client_id}";
$q_cl_i = mysql_query($sql_cl_i);
$res_i = mysql_fetch_assoc($q_cl_i);
if($res_i['integration'] > 0){
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE client_id=$client_id and cancel=0";
}
}
/* if($client_id == 4257294){
echo $req_s."\n";
//die();
}*/
$add_new_req = false;
$req_q = mysql_query($req_s);
$req_rows = mysql_num_rows($req_q);
$req_comm = str_replace(["Клиент","записан"], ["Заявка","записана"], $p['comment']);
if($req_rows > 0){
//var_dump($p);
while($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['start'])."'".
" AND user_id={$req['who_work']} AND `type` = 'call' AND megafon = 1 AND tracking = 0";
if($agency_id == 13154 || $agency_id == 18479){
$sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND create_date = '".date('Y-m-d H:i:s', $p['start'])."'".
" AND `type` = 'call' AND megafon = 1 AND tracking = 0";
}
// echo $sql_m."\n";
$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, megafon, record) ".
"VALUES ($req[who_work], $req[id], '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
mysql_query($sql_in_ev);
if($agency_id == 18479){
if($req['deleted'] > 0 && !isset($_SESSION['id'])){
$up_client = "UPDATE `requisitions` SET `stage`='1', `deleted` = 0, confirm=1, `who_work`='{$user_id}', call_id='{$p['UID']}' WHERE `id`=$req[id]";
mysql_query($up_client);
$dop_text = "Переведена в активные по звонку ".date('Y-m-d H:i:s', $p['start']);
$in_ev = "INSERT INTO `events_clients` (`user_id`, `req_id`, `event`, `dop_text`, `read`) VALUES ('{$user_id}', '$req[id]', 'update', '{$dop_text}', 1)";
mysql_query($in_ev);
}
}
}
}
} else {
$add_new_req = true;
//echo $client_id."\n";
//die();
}
if($add_new_req){
$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'];
}
$req_id = 0;
if($agency_id == 11082){
$funnel_id = 479;
} else if($agency_id == 10429){
$funnel_id = 551;
} else if($agency_id == 13339){
$funnel_id = 665;
} else if($agency_id == 13386){
$funnel_id = 796;
} else if($agency_id == 12028){
$funnel_id = 997;
} else if($agency_id == 17664){
$funnel_id = 1180;
} else if ($agency_id == 19909){
$funnel_id = 1613;
} else if ($agency_id == 19750){
$funnel_id = 1985;
}else if ($agency_id == 18479){
$funnel_id =2156;
}else if ($agency_id == 18846){
$funnel_id =2197;
} else if ($agency_id == 23360){
$funnel_id = 2424;
}
$who_work_i = $user_id;
$confirm = 1;
//$source = 0;
if ($agency_id == 13154 && $megafon->ver_phone($p['user_find_number']) == '+79111111702'){
$who_work_i = 0;
$confirm = 0;
$source = 1678;
}
$sql_req = "INSERT INTO `requisitions` SET name='{$nameReq}', integration=1, created_at='".date('Y-m-d H:i:s', $p['start'])."', user_id={$user_id}, client_id={$client_id}, stage=1, type_id=1, who_work={$who_work_i}, confirm={$confirm}, description='{$req_comm}', source={$source}, call_id='{$p['UID']}'";
if($funnel_id > 0) {
$sql_req .= ", funnel_id={$funnel_id}";
$reqClass = new Requisitions();
}
if($agency_id == 9973 || $agency_id == 7864 || $agency_id == 13735 || $agency_id == 18455 || $agency_id == 19750){
if($type == 'abonentMegafonAnswer'){
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, megafon, record) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
mysql_query($sql_in_ev);
}
} else if($agency_id == 11965 || $agency_id == 13154 || $agency_id == 10982 || $agency_id == 16182 || $agency_id == 13735
|| $agency_id == 19909 || $agency_id == 18479 || $agency_id == 23103 || $agency_id == 22670){
if($type == 'abonentMegafonAnswer' || $type == 'noAnswer'){
/* echo $megafon->ver_phone($p['user_find_number']);
echo $sql_req."\n";*/
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, megafon, record) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
mysql_query($sql_in_ev);
}
} else if($agency_id == 15401){
if($megafon->ver_phone($p['user_find_number']) == '+79215648879'){
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, megafon, record) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
mysql_query($sql_in_ev);
}
} else if($agency_id == 13339){
//if($megafon->ver_phone($p['user_find_number']) != '+79201160206'){
//file_put_contents(__DIR__.'/log_test_megafon.txt', $sql_req. "\n", FILE_APPEND);
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, megafon, record) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
//file_put_contents(__DIR__.'/log_test_megafon.txt', $sql_in_ev. "\n", FILE_APPEND);
mysql_query($sql_in_ev);
$sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s')."', '".date('Y-m-d H:i:s', strtotime('+30 minutes'))."', 'call', '".$p['comment_in']."', 0, {$user_id})";
// file_put_contents(__DIR__.'/log_test_megafon.txt', $sql_in_ev. "\n", FILE_APPEND);
mysql_query($sql_in_ev);
//}
} else if($agency_id != 11082 && $agency_id != 12254 && $agency_id != 12343 && $agency_id != 12482 && $agency_id != 12762 && $agency_id != 8826 && $agency_id != 13394 && $agency_id != 13430
&& $agency_id != 14191 && $agency_id != 14310 && $agency_id != 12061 && $agency_id != 14700 && $agency_id != 16001 && $agency_id != 16444 && $agency_id != 16490 && $agency_id != 12461
&& $agency_id != 17157 && $agency_id != 18785 && $agency_id != 19794 && $agency_id != 18708 && $agency_id != 20406 && $agency_id != 21951 && $agency_id != 18846 && $agency_id != 23103) {
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, megafon, record) ".
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $p['start'])."', '".date('Y-m-d H:i:s', $p['start'])."', 'call', '".$p['comment_in']."', 1, {$user_id}, 1, '".$record."')";
mysql_query($sql_in_ev);
}
if($req_id > 0 && $funnel_id > 0){
$reqClass->get_class_etap($req_id, $funnel_id);
}
}
}
}
}
}
$time_start = microtime(true);
$sql_megafon = "SELECT * FROM agency_megafon WHERE singly = 0";
if(isset($_SESSION['id'])){
$sql_megafon = "SELECT * FROM agency_megafon WHERE singly = 0 AND agency_id = 19750";
}
$q_megafon = mysql_query($sql_megafon);
while($r_megafon = mysql_fetch_assoc($q_megafon)){
$api_key = $r_megafon['api_key'];
$last_date = $r_megafon['lost_date'];
$api_pass = $r_megafon['api_pass'];
$agency_id =$r_megafon['agency_id'];
$main_user_id = $r_megafon['main_user'];
$baseUrl = $r_megafon['url'];
$gmt = (int)$r_megafon['gmt'];
$agency_id2 = 0;
if(!empty($r_megafon['agency_id_chaild'])) $agency_id2 = (int)$r_megafon['agency_id_chaild'];
$megafon = new MegafonApiClass($api_key, $api_pass, $baseUrl);
$phones_type = array();
//var_dump($megafon);
$funnel_telephony = array();
$sql_f_t = "SELECT * FROM funnel_telephony WHERE agency_id = {$agency_id}";
$q_f_t = mysql_query($sql_f_t);
while($r_f_t = mysql_fetch_assoc($q_f_t)){
$funnel_telephony[] = $r_f_t;
}
//var_dump($funnel_telephony);
$megafon->setCmd('accounts');
$users = json_decode($megafon->get_users_ats(), true);
//var_dump($users);
// Логирование ошибки API (битый токен, превышен лимит и т.д.)
if (is_array($users) && isset($users['error'])) {
error_log("Megafon API error for agency $agency_id: " . $users['error']);
}
if(!empty($users) && !isset($users['error'])){
//Проверка пользователей
foreach ($users as $key => $user) {
// Защита от нестандартных ответов (API вернул flat object вместо массива объектов)
if (!is_array($user)) {
continue;
}
$tempAgencyId = $agency_id;
if($agency_id2 > 0){
$tempAgencyId = $megafon->saveUserMega($user, $agency_id, $agency_id2);
//echo $agency_id."\n";
} else {
$megafon->saveUserMega($user, $agency_id);
}
$megafon_user = array();
$megafon_user['agency_id'] = $tempAgencyId;
$where = '';
if(isset($user['telnum'] )){
$where .= "phone = '+".$user['telnum']."'";
}
if(isset($user['email'])){
if($where != '') $where .= ' or ';
$where .= "email = '".$user['email']."'";
}
if($where != ''){
$sqlu = "SELECT id, phone FROM users WHERE ".$where;
$qu = mysql_query($sqlu);
if(mysql_num_rows($qu) > 0){
$ru = mysql_fetch_assoc($qu);
$megafon_user['user_id'] = $ru['id'];
$megafon_user['name'] = $user['name'];
$megafon_user['real_name'] = $user['realName'];
$megafon_user['phone'] = $ru['phone'];
$megafon_user['ext'] = $user['ext'];
$sql_very = "SELECT id FROM megafon_users WHERE user_id = ".$ru['id'];
$q_very = mysql_query($sql_very);
if(mysql_num_rows($q_very) > 0){
$set = '';
foreach ($megafon_user as $key => $val){
if($key != 'user_id'){
if($set != '') $set .= ', ';
$set .= $key." = '".$val."'";
}
}
$sql_up = "UPDATE megafon_users SET ".$set." WHERE user_id = ".$megafon_user['user_id'];
mysql_query($sql_up);
} else {
$keys = '';
$values = '';
foreach ($megafon_user as $key => $val){
if($keys != '') $keys .= ', ';
if($values != '') $values .= ', ';
$keys .= $key;
$values .= "'".$val."'";
}
$sql_in = "INSERT INTO megafon_users (".$keys.") VALUES (".$values.")";
mysql_query($sql_in);
}
}
}
}
$usersIds = array();
$phones = array();
//$usersIds[] = $agency_id;
// if($agency_id2 == 0) {
$sql_users = "SELECT id, phone FROM users WHERE id in (select id from users where id=$agency_id or id_manager=$agency_id or id_manager in
(select id from users where id_manager=$agency_id or id_manager in
(select id from users where id_manager=$agency_id)))";
$q_users = mysql_query($sql_users);
while($r_users = mysql_fetch_assoc($q_users)){
$usersIds[] = (int)$r_users['id'];
$phones[(int)$r_users['id']] = $r_users['phone'];
}
$sql_users = "SELECT user_id, phone FROM users_delete WHERE user_id in (select user_id from users_delete where user_id=$agency_id or id_manager=$agency_id or id_manager in
(select user_id from users_delete where id_manager=$agency_id or id_manager in
(select user_id from users_delete where id_manager=$agency_id)))";
$q_users = mysql_query($sql_users);
while($r_users = mysql_fetch_assoc($q_users)){
$usersIds[] = (int)$r_users['user_id'];
$phones[(int)$r_users['user_id']] = $r_users['phone'];
}
$megafon->set_users($usersIds);
$megafon->set_users1($usersIds);
$megafon->set_phones($phones);
// }
if($agency_id2 > 0) {
$phones = array();
$usersIds = array();
$sql_users = "SELECT id, phone FROM users WHERE id in (select id from users where id=$agency_id2 or id_manager=$agency_id2 or id_manager in
(select id from users where id_manager=$agency_id2 or id_manager in
(select id from users where id_manager=$agency_id2)))";
$q_users = mysql_query($sql_users);
while($r_users = mysql_fetch_assoc($q_users)){
$usersIds[] = (int)$r_users['id'];
$phones[(int)$r_users['id']] = $r_users['phone'];
}
$sql_users = "SELECT user_id, phone FROM users_delete WHERE user_id in (select user_id from users_delete where user_id=$agency_id or id_manager=$agency_id or id_manager in
(select user_id from users_delete where id_manager=$agency_id or id_manager in
(select user_id from users_delete where id_manager=$agency_id)))";
$q_users = mysql_query($sql_users);
while($r_users = mysql_fetch_assoc($q_users)){
$usersIds[] = (int)$r_users['user_id'];
$phones[(int)$r_users['user_id']] = $r_users['phone'];
}
$megafon->set_users2($usersIds);
$megafon->set_phones2($phones);
}
$megafon->getTranslationPhone($agency_id);
$arr_heder = ['UID','type','client','account','via','start','wait','duration','record'];
if(isset($_SESSION['id'])){
$last_date = '2025-01-31 07:00:00';
}
$date = date('Ymd',(strtotime($last_date) - 4*60*60)).'T'.date('His', (strtotime($last_date) - 4*60*60)).'Z';
// echo $date;
//Получение звонков
$megafon->setCmd('history');
$today = false;
$yesterday = false;
if($agency_id == 12254 || $agency_id == 14191 || $agency_id == 17157){
$today = true;
}
/*if($agency_id == 12343){
$yesterday = true;
}*/
$res = $megafon->get_history($date, $today, $yesterday);
if(isset($_SESSION['id'])){
//echo $res."\n";
echo $date."\n";
}
$history = explode("\n", trim($res));
$phones = array();
foreach ($history as $his) {
$hisArr = explode(',', $his);
$tempHis = array();
foreach ($hisArr as $key => $value) {
if(isset($arr_heder[$key]))
$tempHis[$arr_heder[$key]] = $value;
}
//var_dump($tempHis);
if($agency_id == 9973){
if($tempHis['via'] == '78126655101'){
$phones[] = $tempHis;
}
} else if($agency_id == 19750){
$arrExPhones = ['79282682954',
'79994619768',
'79282024652',
'79282468647',
'79282464739',
'79284061886',
'79284109665',
'79649337370',
'79282287202',
'79649337405',
'79385044060',
'79994619645',
'79282467086',
'79615264544',
'79282637304',
'79282025961',
'79282093034',
'79282584917',
'79282015427',
'79282015679',
'79994619819',
'79994619957',
'79649337318',
'79282215691',
'79094572428',
'79282685903',
'79034581722',
'79994619964',
'79994619703',
'79648992925',
'79184410544',
'79298290735',
'79182422111',
'79183171771',
'79184592961',
'79184273773',
'79298290735'
];
if(!in_array($tempHis['client'], $arrExPhones)) {
$phones[] = $tempHis;
}
} else {
$phones[] = $tempHis;
}
}
if(isset($_SESSION['id'])){
var_dump($phones);
}
// var_dump($phones);
foreach ($phones as $key => $phone) {
$agencyId = $agency_id;
if(strpos($phone['UID'], 'error') === false && !empty(trim($phone['UID']))){
$megafon->account = $phone['account'];
if($agency_id2 > 0){
$arrUser['telnum'] = $phone['via'];
$agencyId = $megafon->getAgencyId($arrUser, $agency_id, $agency_id2, true);
}
$user_id = $megafon -> find_user($phone['via'], $agencyId);
if($user_id == 0) {
$user_id = $main_user_id;
$agencyId = $agency_id;
}
if($user_id > 0 ){
$phone['start'] = strtotime($phone['start']) + $gmt*60*60;
//$call_id = $megafon->stat($phone, $agencyId);
$calls_ids = $megafon->stat($phone, $agencyId);
$call_id = $calls_ids['id'];
$call_id_pg = $calls_ids['idpg'];
// $megafon->save_user_call($call_id, $phone['via'], $main_user_id, $agencyId);
$megafon->save_user_call_pg($call_id_pg, $phone['via'], $main_user_id, $agencyId);
$save = true;
if($agencyId == 12482 || $agencyId == 13394 || $agencyId == 13430 || $agencyId == 16490) {
if($phone['via'] == '79258880560' || $phone['client'] == '79258880560' || $phone['via'] == '79229950877' || $phone['client'] == '79219186383' || $phone['via'] = '79219186383'){
$save = false;
}
}
if($save){
$type = $megafon->get_phone_type($phone['type']);
switch ($type){
case 'megafonAbonentAnswer': {
$phone['comment'] = 'Клиент записан по исходящему звонку в Мегафон';
$phone['comment_in'] = 'Исходящий звонок в Мегафон';
if($phone['duration'] == 0){
$phone['comment_in'] .= " (звонок не состоялся)";
$phone['comment'] .= " (звонок не состоялся)";
}
$phone['user_find_number'] = $phone['via'];
$phone['client_find_number'] = $phone['client'];
$phone['account'] = $phone['account'];
$phone['agency_id'] = $agencyId;
$phones_type['megafonAbonentAnswer'][] = $phone;
break;
}
case 'abonentMegafonAnswer': {
$phone['comment'] = 'Клиент записан по входящему звонку в Мегафон';
$phone['comment_in'] = 'Входящий звонок в Мегафон';
$phone['user_find_number'] = $phone['via'];
$phone['client_find_number'] = $phone['client'];
$phone['account'] = $phone['account'];
$phone['agency_id'] = $agencyId;
$phones_type['abonentMegafonAnswer'][] = $phone;
break;
}
case 'noAnswer':{
$phone['comment'] = 'Клиент записан по пропущеному звонку в Мегафон';
$phone['comment_in'] = 'Пропущеный звонок в Мегафон';
$phone['user_find_number'] = $phone['via'];
$phone['client_find_number'] = $phone['client'];
$phone['account'] = $phone['account'];
$phone['agency_id'] = $agencyId;
$phones_type['noAnswer'][] = $phone;
break;
}
}
}
}
}
}
// var_dump($phones_type);
if(isset($phones_type['abonentMegafonAnswer'])){
foreach ($phones_type['abonentMegafonAnswer'] as $p) {
read_phone($megafon, $p, $agency_id, 'abonentMegafonAnswer', $main_user_id, $funnel_telephony);
}
}
if(isset($phones_type['megafonAbonentAnswer'])){
foreach ($phones_type['megafonAbonentAnswer'] as $p) {
read_phone($megafon, $p, $agency_id, 'megafonAbonentAnswer', $main_user_id, $funnel_telephony);
}
}
if(isset($phones_type['noAnswer'])){
foreach ($phones_type['noAnswer'] as $p) {
read_phone($megafon, $p, $agency_id, 'noAnswer', $main_user_id, $funnel_telephony);
}
}
}
$sql_up_mango = "UPDATE agency_megafon SET lost_date = '".date('Y-m-d H:i:s')."' WHERE id = ".$r_megafon['id'];
mysql_query($sql_up_mango);
}
$time_end = microtime(true);
$execution_time = $time_end - $time_start;
//execution time of the script
echo 'Total Execution Time: ' . $execution_time . ' seconds';
?>