573 lines
26 KiB
PHP
573 lines
26 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
|||
|
|
ini_set('error_reporting', E_ALL);
|
|||
|
|
ini_set('display_errors', 1);
|
|||
|
|
ini_set('display_startup_errors', 1);
|
|||
|
|
header('Content-Type: application/json');
|
|||
|
|
|
|||
|
|
//Функция для записи звонков в базу
|
|||
|
|
function read_phone($mango, $p, $agency_id, $type, $main_user_id, $dataApi){
|
|||
|
|
//поиск пользователя
|
|||
|
|
$user_id = $mango -> find_user($p['user_find_number']);
|
|||
|
|
if($user_id == 0) $user_id = $main_user_id;
|
|||
|
|
$funnel_id = 0;
|
|||
|
|
if($user_id == 6630){
|
|||
|
|
$funnel_id = 59;
|
|||
|
|
} else if($agency_id == 10387){
|
|||
|
|
$funnel_id = 484;
|
|||
|
|
} else if($agency_id == 12028){
|
|||
|
|
$funnel_id = 996;
|
|||
|
|
} else if ($agency_id == 21213){
|
|||
|
|
$funnel_id = 1793;
|
|||
|
|
} else if ($agency_id == 20624){
|
|||
|
|
$funnel_id = 1832;
|
|||
|
|
} else if ($agency_id == 12461){
|
|||
|
|
$funnel_id = 1854;
|
|||
|
|
}
|
|||
|
|
// echo $user_id."\n";
|
|||
|
|
//echo $p['user_find_number'].' - '.$p['client_find_number'].' - '.date('d.m.Y', $p['start'])."\n";
|
|||
|
|
|
|||
|
|
|
|||
|
|
$who_work_i = $user_id;
|
|||
|
|
$confirm = 1;
|
|||
|
|
if($agency_id == 12461){
|
|||
|
|
$who_work_i = 0;
|
|||
|
|
$confirm = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( strpos($p['client_find_number'], 'sip:') === false && $user_id != 0 && $mango->ver_phone($p['user_find_number']) != '+79917792953' && $mango->ver_phone($p['user_find_number']) != 'fmc:89917792953'){
|
|||
|
|
//Поиск клиента
|
|||
|
|
$client_id = $mango -> find_client($p['client_find_number']);
|
|||
|
|
$source = $mango->findSource($mango->ver_phone($p['user_find_number']));
|
|||
|
|
if($agency_id == 21790){
|
|||
|
|
$source = $mango->findSource(isset($p['entry_id']) ? $p['entry_id'] : '');
|
|||
|
|
}
|
|||
|
|
//echo $source."\n";
|
|||
|
|
if($client_id == 0 && strlen($mango -> ver_phone($p['client_find_number'])) == 12){
|
|||
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
|
|||
|
|
" VALUES ('Клиент mango', '".$mango -> 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 == 4){
|
|||
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, work_type,role, source) " .
|
|||
|
|
" VALUES ('Клиент mango', '".$mango -> 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}')";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
mysql_query($sql_cl_mango);
|
|||
|
|
$client_id = mysql_insert_id();
|
|||
|
|
if($funnel_id> 0 && $client_id > 0){
|
|||
|
|
$client = new Clients;
|
|||
|
|
$client->get_class_etap($client_id, $funnel_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($client_id != 0){
|
|||
|
|
|
|||
|
|
if($type == 'abonentMangoAnswer'){
|
|||
|
|
$cl_stage = $mango -> 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 «Закрыт» на «Новый» (По входящему звонку Mango)";
|
|||
|
|
$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 user_id = {$user_id} AND client_id = {$client_id} AND create_date = '".date('Y-m-d H:i:s', $p['start'])."'".
|
|||
|
|
" AND `type` = 'call' AND mango = 1";
|
|||
|
|
if($agency_id == 4){*/
|
|||
|
|
$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 mango = 1";
|
|||
|
|
// echo $sql_m."\n";
|
|||
|
|
// }
|
|||
|
|
$record = '';
|
|||
|
|
$isRecord = false;
|
|||
|
|
$q_m = mysql_query($sql_m);
|
|||
|
|
//if(mysql_num_rows($q_m) == 0){
|
|||
|
|
$arr_rec = explode(",", str_replace(["[","]"], "", $p['records']));
|
|||
|
|
$record = '';
|
|||
|
|
if(!empty($arr_rec)){
|
|||
|
|
$isRecord = true;
|
|||
|
|
foreach($arr_rec as $rec){
|
|||
|
|
$data_rec = array(
|
|||
|
|
"recording_id" => $rec,
|
|||
|
|
"action" => "download"
|
|||
|
|
);
|
|||
|
|
$mango->params = $data_rec;
|
|||
|
|
$mango->recordingSave();
|
|||
|
|
}
|
|||
|
|
$record = json_encode($arr_rec);
|
|||
|
|
}
|
|||
|
|
if(mysql_num_rows($q_m) > 0 && !empty($record)){
|
|||
|
|
$r_m = mysql_fetch_assoc($q_m);
|
|||
|
|
mysql_query("UPDATE user_client_events SET record='{$record}' WHERE id = {$r_m['id']}");
|
|||
|
|
$req_s = "SELECT id, user_id, who_work FROM requisitions WHERE client_id=$client_id and cancel=0 and deleted=0";
|
|||
|
|
// echo $req_s."\n";
|
|||
|
|
$req_q = mysql_query($req_s);
|
|||
|
|
$req_rows = mysql_num_rows($req_q);
|
|||
|
|
$req_comm = str_replace(["Клиент","записан"], ["Заявка","записана"], $p['comment']);
|
|||
|
|
if($req_rows > 0){
|
|||
|
|
// if($req_rows > 1){
|
|||
|
|
while($req = mysql_fetch_assoc($req_q)){
|
|||
|
|
$sql_m1 = "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 mango = 1 AND tracking = 0";
|
|||
|
|
// echo $sql_m1."\n";
|
|||
|
|
$q_m1 = mysql_query($sql_m1);
|
|||
|
|
if(mysql_num_rows($q_m) > 0){
|
|||
|
|
{
|
|||
|
|
if(!empty($record)){
|
|||
|
|
$r_m1 = mysql_fetch_assoc($q_m1);
|
|||
|
|
mysql_query("UPDATE user_client_events SET record='{$record}' WHERE id = {$r_m1['id']}");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
//Поиск чей клиент
|
|||
|
|
$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_in_ev = "INSERT INTO user_client_events (user_id, client_id, create_date, schedule_date, `type`, comment, calendar_view, from_id, mango, 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;
|
|||
|
|
mysql_query($sql_in_ev);
|
|||
|
|
if($agency_id == 8826 && !$isRecord) usleep(500000);
|
|||
|
|
}
|
|||
|
|
//Поиск заявки по клиенту
|
|||
|
|
//var_dump($dataApi['is_req'] > 0);
|
|||
|
|
if($dataApi['is_req'] > 0){
|
|||
|
|
if(!$isRecord){
|
|||
|
|
|
|||
|
|
if(!empty(trim($p['records'], '\n'))){
|
|||
|
|
|
|||
|
|
$arr_rec = explode(",", str_replace(["[","]"], "", $p['records']));
|
|||
|
|
$record = '';
|
|||
|
|
if(!empty($arr_rec)){
|
|||
|
|
$isRecord = true;
|
|||
|
|
foreach($arr_rec as $rec){
|
|||
|
|
$data_rec = array(
|
|||
|
|
"recording_id" => $rec,
|
|||
|
|
"action" => "download"
|
|||
|
|
);
|
|||
|
|
$mango->params = $data_rec;
|
|||
|
|
$mango->recordingSave();
|
|||
|
|
}
|
|||
|
|
$record = json_encode($arr_rec);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
$req_s = "SELECT id, user_id, who_work FROM requisitions WHERE client_id=$client_id and cancel=0 and deleted=0";
|
|||
|
|
if($agency_id == 22666){ //Поиск любой заявки по клиенту с телефонии
|
|||
|
|
$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";
|
|||
|
|
}
|
|||
|
|
$req_q = mysql_query($req_s);
|
|||
|
|
$req_rows = mysql_num_rows($req_q);
|
|||
|
|
$req_comm = str_replace(["Клиент","записан"], ["Заявка","записана"], $p['comment']);
|
|||
|
|
//echo $req_rows."\n";
|
|||
|
|
if($req_rows > 0){
|
|||
|
|
if($req_rows > 1){
|
|||
|
|
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 mango = 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, mango, 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);
|
|||
|
|
} else {
|
|||
|
|
if(!empty($record)){
|
|||
|
|
$r_m = mysql_fetch_assoc($q_m);
|
|||
|
|
mysql_query("UPDATE user_client_events SET record='{$record}' WHERE id = {$r_m['id']}");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
$req = mysql_fetch_assoc($req_q);
|
|||
|
|
|
|||
|
|
if($agency_id == 22666){
|
|||
|
|
if($req['deleted'] > 0 && !isset($_SESSION['id'])){
|
|||
|
|
$up_client = "UPDATE `requisitions` SET `stage`='1', `deleted` = 0, confirm=1, `who_work`='{$user_id}' 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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
$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 mango = 1 AND tracking = 0";
|
|||
|
|
|
|||
|
|
if($agency_id == 22666){
|
|||
|
|
$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 mango = 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, mango, 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);
|
|||
|
|
} else if(!empty($record)){
|
|||
|
|
$r_m = mysql_fetch_assoc($q_m);
|
|||
|
|
mysql_query("UPDATE user_client_events SET record='{$record}' WHERE id = {$r_m['id']}");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
else {
|
|||
|
|
$funnel_id = 0;
|
|||
|
|
$nameReq = 'Заявка Mango';
|
|||
|
|
$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 == 10387){
|
|||
|
|
$funnel_id = 482;
|
|||
|
|
} else if ($agency_id == 19570) {
|
|||
|
|
$funnel_id = 1484;
|
|||
|
|
} else if ($agency_id == 21213) {
|
|||
|
|
$funnel_id = 1793;
|
|||
|
|
} else if ($agency_id == 21790) {
|
|||
|
|
$funnel_id = 1980;
|
|||
|
|
} else if ($agency_id == 22746){
|
|||
|
|
if($type == 'abonentMangoAnswer' || $type == 'abonentMangoNoAnswer'){
|
|||
|
|
$funnel_id = 2155;
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
$funnel_id = 2108;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
} else if ($agency_id == 22666) {
|
|||
|
|
$funnel_id = 2096;
|
|||
|
|
}
|
|||
|
|
$sql_req = "INSERT INTO `requisitions` SET name='{$nameReq}', integration=1, user_id={$user_id}, client_id={$client_id}, stage=1, type_id=1, who_work={$user_id}, description='{$req_comm}', source='{$source}'";
|
|||
|
|
|
|||
|
|
// echo $sql_req."\n";
|
|||
|
|
|
|||
|
|
if($funnel_id > 0) {
|
|||
|
|
$sql_req .= ", funnel_id={$funnel_id}";
|
|||
|
|
$reqClass = new Requisitions();
|
|||
|
|
}
|
|||
|
|
if($agency_id == 9973 || $agency_id == 7864 || $agency_id == 10982){
|
|||
|
|
if($type == 'abonentMangoAnswer' || $type == 'abonentMangoNoAnswer'){
|
|||
|
|
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, mango, 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 != 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 != 16553 && $agency_id != 20624 && $agency_id != 12461 && $agency_id != 20947) {
|
|||
|
|
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, mango, 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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_mango = "SELECT * FROM agency_mango WHERE `type` = 'mango'";
|
|||
|
|
if(!empty($_SESSION['id'])){
|
|||
|
|
$sql_mango = "SELECT * FROM agency_mango WHERE `type` = 'mango' and agency_id=22666";
|
|||
|
|
}
|
|||
|
|
$q_mango = mysql_query($sql_mango);
|
|||
|
|
|
|||
|
|
while($r_mango = mysql_fetch_assoc($q_mango)){
|
|||
|
|
$api_key = $r_mango['api_key'];
|
|||
|
|
$api_salt = $r_mango['api_salt'];
|
|||
|
|
$last_date = $r_mango['last_date'];
|
|||
|
|
$agency_id =$r_mango['agency_id'];
|
|||
|
|
$main_user_id = $r_mango['main_user'];
|
|||
|
|
$lost_update = $r_mango['lost_update'];
|
|||
|
|
|
|||
|
|
$mango = new MangoApiClass($api_key, $api_salt);
|
|||
|
|
|
|||
|
|
if((time() - $lost_update) >= 86400){
|
|||
|
|
$groupsMango = json_decode($mango->groups());
|
|||
|
|
if (!empty($groupsMango->groups)) {
|
|||
|
|
$mango->saveGroups($groupsMango->groups, $agency_id);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$users = json_decode($mango->configUsers());
|
|||
|
|
|
|||
|
|
$userArr = array();
|
|||
|
|
|
|||
|
|
//Проверка пользователей телефонии
|
|||
|
|
|
|||
|
|
if(isset($users->users)){
|
|||
|
|
foreach($users->users as $user){
|
|||
|
|
$userArr[] = array();
|
|||
|
|
// echo json_encode($user, JSON_UNESCAPED_UNICODE);
|
|||
|
|
// if((time() - $lost_update) >= 86400){
|
|||
|
|
$mango->saveUser($user, $agency_id);
|
|||
|
|
// }
|
|||
|
|
$mango_user = array();
|
|||
|
|
$mango_user['agency_id'] = $agency_id;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(isset($user->general->email)){
|
|||
|
|
$mango_user['mango_email'] = $user->general->email;
|
|||
|
|
} else {
|
|||
|
|
$mango_user['mango_email'] = '';
|
|||
|
|
}
|
|||
|
|
foreach($user->telephony->numbers as $number){
|
|||
|
|
if($number->protocol == 'sip') $mango_user['mango_sip'] = $number->number;
|
|||
|
|
if($number->protocol == 'tel') $mango_user['mango_tel'] = $number->number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($mango_user['mango_email'] != '' || isset($mango_user['mango_tel'])){
|
|||
|
|
$sql = "SELECT `id`, `agency_name`, `first_name`, `last_name`, `middle_name` FROM `users`"; //email = '{$mango_user['mango_email']}'";
|
|||
|
|
$where_mango = "";
|
|||
|
|
if(isset($mango_user['mango_email']) && !empty($mango_user['mango_email'])){
|
|||
|
|
$where_mango .= " WHERE email = '{$mango_user['mango_email']}'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(isset($mango_user['mango_tel'])){
|
|||
|
|
if($where_mango == ''){
|
|||
|
|
$where_mango .= " WHERE phone = '+".str_replace('+','',$mango_user['mango_tel'])."'";
|
|||
|
|
} else {
|
|||
|
|
$where_mango .= " OR phone = '+".str_replace('+','',$mango_user['mango_tel'])."'";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if($where_mango != ''){
|
|||
|
|
$sql .= $where_mango;
|
|||
|
|
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
if(mysql_num_rows($q) > 0){
|
|||
|
|
$r = mysql_fetch_assoc($q);
|
|||
|
|
|
|||
|
|
$mango_user['user_id'] = $r['id'];
|
|||
|
|
$sql_very = "SELECT id FROM mango_users WHERE user_id = ".$r['id'];
|
|||
|
|
|
|||
|
|
$q_very = mysql_query($sql_very);
|
|||
|
|
if(mysql_num_rows($q_very) > 0){
|
|||
|
|
$set = '';
|
|||
|
|
foreach ($mango_user as $key => $val){
|
|||
|
|
if($key != 'user_id'){
|
|||
|
|
if($set != '') $set .= ', ';
|
|||
|
|
$set .= $key." = '".$val."'";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$sql_up = "UPDATE mango_users SET ".$set." WHERE user_id = ".$mango_user['user_id'];
|
|||
|
|
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
} else {
|
|||
|
|
$keys = '';
|
|||
|
|
$values = '';
|
|||
|
|
foreach ($mango_user as $key => $val){
|
|||
|
|
|
|||
|
|
if($keys != '') $keys .= ', ';
|
|||
|
|
if($values != '') $values .= ', ';
|
|||
|
|
$keys .= $key;
|
|||
|
|
$values .= "'".$val."'";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
$sql_in = "INSERT INTO mango_users (".$keys.") VALUES (".$values.")";
|
|||
|
|
//echo $sql_in;
|
|||
|
|
mysql_query($sql_in);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if((time() - $lost_update) >= 86400){
|
|||
|
|
$sql_up_mango = "UPDATE agency_mango SET lost_update = '".time()."' WHERE id = ".$r_mango['id'];
|
|||
|
|
mysql_query($sql_up_mango);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
$usersIds = array();
|
|||
|
|
|
|||
|
|
$w = new WebHookIn();
|
|||
|
|
$usersIds = $w->getAllUserAgency($agency_id);
|
|||
|
|
//var_dump($usersIds);
|
|||
|
|
|
|||
|
|
$mango->set_users($usersIds);
|
|||
|
|
|
|||
|
|
/*if($_SESSION['id'] > 0){
|
|||
|
|
$last_date='2026-03-27 08:00:00';
|
|||
|
|
}*/
|
|||
|
|
$data = array(
|
|||
|
|
"date_from" => (strtotime($last_date) - 60*60),
|
|||
|
|
"date_to" => time(),
|
|||
|
|
"from" => array(
|
|||
|
|
"extension"=>"",
|
|||
|
|
"number" => ""
|
|||
|
|
),
|
|||
|
|
"to"=> array(
|
|||
|
|
"extension"=>"",
|
|||
|
|
"number"=>""
|
|||
|
|
)
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
|
|||
|
|
$mango->params = $data;
|
|||
|
|
$mango->requestPhones();
|
|||
|
|
|
|||
|
|
//$mango->params = $data;
|
|||
|
|
$phones = $mango->resultPhones();
|
|||
|
|
if(empty($phones)){
|
|||
|
|
sleep(10);
|
|||
|
|
$phones = $mango->resultPhones();
|
|||
|
|
}
|
|||
|
|
// var_dump($phones);
|
|||
|
|
$arr_heder = array('records', 'start', 'finish', 'answer', 'from_extension', 'from_number', 'to_extension', 'to_number', 'disconnect_reason', 'entry_id', 'line_number', 'location');
|
|||
|
|
|
|||
|
|
$arr_phone = explode("\r\n", $phones);
|
|||
|
|
//var_dump($arr_phone);
|
|||
|
|
$phone_data = array();
|
|||
|
|
foreach ($arr_phone as $str){
|
|||
|
|
if (trim($str) === '') {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
//echo $str.'<br>';
|
|||
|
|
$arr_str = explode(";", $str);
|
|||
|
|
$phone_temp = array();
|
|||
|
|
foreach($arr_str as $key => $value){
|
|||
|
|
if (isset($arr_heder[$key])) {
|
|||
|
|
$phone_temp[$arr_heder[$key]] = $value;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$phone_data[] = $phone_temp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//var_dump($phone_data);
|
|||
|
|
|
|||
|
|
//Массив по типам звонков
|
|||
|
|
$phones_type = array();
|
|||
|
|
|
|||
|
|
foreach ($phone_data as $p){
|
|||
|
|
/* if($agency_id == 8826){
|
|||
|
|
|
|||
|
|
}*/
|
|||
|
|
//echo json_encode($p).'<br>';
|
|||
|
|
// var_dump($p)."\n";
|
|||
|
|
$type = $mango->get_phone_type($p);
|
|||
|
|
$calls_ids = $mango->stat($p, $agency_id);
|
|||
|
|
$call_id = $calls_ids['id'];
|
|||
|
|
$call_id_pg = $calls_ids['idpg'];
|
|||
|
|
$type = $mango->get_phone_type($p);
|
|||
|
|
$user_find_number = 0;
|
|||
|
|
|
|||
|
|
|
|||
|
|
switch ($type){
|
|||
|
|
case 'mangoAbonentAnswer': {
|
|||
|
|
$p['comment'] = 'Клиент записан по исходящему звонку в mango';
|
|||
|
|
$p['comment_in'] = 'Исходящий звонок в Mango';
|
|||
|
|
$p['user_find_number'] = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$user_find_number = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$p['client_find_number'] = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
|
|||
|
|
$phones_type['mangoAbonentAnswer'][] = $p;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case 'abonentMangoAnswer': {
|
|||
|
|
|
|||
|
|
$p['comment'] = 'Клиент записан по входящему звонку в mango';
|
|||
|
|
$p['comment_in'] = 'Входящий звонок в Mango';
|
|||
|
|
$p['user_find_number'] = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
$user_find_number = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
$p['client_find_number'] = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$phones_type['abonentMangoAnswer'][] = $p;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case 'mangoAbonentNoAnswer': {
|
|||
|
|
$p['comment'] = 'Клиент записан по исходящему звонку в mango';
|
|||
|
|
$p['comment_in'] = 'Исходящий звонок в Mango.<br>Абонент не ответил';
|
|||
|
|
$p['user_find_number'] = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$user_find_number = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$p['client_find_number'] = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
$phones_type['mangoAbonentNoAnswer'][] = $p;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case 'abonentMangoNoAnswer':{
|
|||
|
|
$p['comment'] = 'Клиент записан по входящему звонку в mango';
|
|||
|
|
$p['comment_in'] = 'Пропущеный входящий звонок в Mango';
|
|||
|
|
$p['user_find_number'] = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
$user_find_number = isset($p['to_number']) ? $p['to_number'] : '';
|
|||
|
|
$p['client_find_number'] = isset($p['from_number']) ? $p['from_number'] : '';
|
|||
|
|
$phones_type['abonentMangoNoAnswer'][] = $p;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// $mango->save_user_call($call_id, $user_find_number, $main_user_id);
|
|||
|
|
$mango->save_user_call_pg($call_id_pg, $user_find_number, $main_user_id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($phones_type['abonentMangoAnswer'])) {
|
|||
|
|
foreach ($phones_type['abonentMangoAnswer'] as $p) {
|
|||
|
|
read_phone($mango, $p, $agency_id, 'abonentMangoAnswer', $main_user_id, $r_mango);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($phones_type['mangoAbonentAnswer'])) {
|
|||
|
|
foreach ($phones_type['mangoAbonentAnswer'] as $p) {
|
|||
|
|
read_phone($mango, $p, $agency_id, 'mangoAbonentAnswer',$main_user_id, $r_mango);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($phones_type['mangoAbonentNoAnswer'])) {
|
|||
|
|
foreach ($phones_type['mangoAbonentNoAnswer'] as $p) {
|
|||
|
|
read_phone($mango, $p, $agency_id, 'mangoAbonentNoAnswer',$main_user_id, $r_mango);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($phones_type['abonentMangoNoAnswer'])) {
|
|||
|
|
foreach ($phones_type['abonentMangoNoAnswer'] as $p) {
|
|||
|
|
read_phone($mango, $p, $agency_id, 'abonentMangoNoAnswer',$main_user_id, $r_mango);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
$sql_up_mango = "UPDATE agency_mango SET last_date = '".date('Y-m-d H:i:s')."' WHERE id = ".$r_mango['id'];
|
|||
|
|
// if($agency_id != 8826)
|
|||
|
|
mysql_query($sql_up_mango);
|
|||
|
|
}
|