Joywork/cron/megafon_call.php
2026-05-22 21:21:54 +03:00

830 lines
38 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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';
?>