785 lines
37 KiB
PHP
785 lines
37 KiB
PHP
<?php
|
|
ini_set('error_reporting', E_ALL);
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
|
|
|
//Функция для записи звонков в базу
|
|
function read_phone($beeline, $p, $agency_id, $type, $main_user_id, $funnel_telephony){
|
|
$pdopg = new MysqlPdo(hstpg, ndbpg, userpg, passpg, false, '5432', true);
|
|
//поиск пользователя
|
|
|
|
$user_id = $beeline -> find_user($p->user_find_number);
|
|
|
|
//echo $user_id.'<br>';
|
|
$new_client = false;
|
|
if($user_id == 0) $user_id = $main_user_id;
|
|
//echo $user_id.'<br>';
|
|
$phone_em = $beeline->ver_phone($p->client_find_number);
|
|
$user_em = $beeline -> find_user($phone_em);
|
|
|
|
if($agency_id == 9588 && ($user_em > 0 || strlen($phone_em) < 12)){
|
|
$user_id = 0;
|
|
|
|
}
|
|
|
|
if($agency_id == 18631){
|
|
$user_id = 21699;
|
|
}
|
|
|
|
/*if($agency_id == 19111){
|
|
$user_id = 0;
|
|
}*/
|
|
if($user_id != 0){
|
|
|
|
$funnel_id = 0;
|
|
if(!empty($funnel_telephony)){
|
|
foreach($funnel_telephony as $funnel_t){
|
|
if($funnel_t['phone'] == $beeline->ver_phone($p->user_find_number)){
|
|
if((int)$funnel_t['funnel_id'] > 0){
|
|
$funnel_id = (int)$funnel_t['funnel_id'];
|
|
$funnel_id_req = (int)$funnel_t['funnel_id'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($funnel_id == 0 && $agency_id == 10732){
|
|
if($type == 'beelineAbonentAnswer' || $type == 'beelineAbonentNoAnswer'){
|
|
$funnel_id = 440;
|
|
} else {
|
|
$funnel_id = 441;
|
|
}
|
|
} else if($agency_id == 10387){
|
|
$funnel_id = 484;
|
|
} else if($agency_id == 8435){
|
|
$funnel_id = 503;
|
|
} else if($agency_id == 17328){
|
|
$funnel_id = 1183;
|
|
} else if($agency_id == 19895){
|
|
$funnel_id = 0;
|
|
} else if($agency_id == 18631){
|
|
$funnel_id = 1350;
|
|
} else if($agency_id == 22604){
|
|
$funnel_id = 2184;
|
|
}
|
|
|
|
//Поиск клиента
|
|
$client_id = $beeline -> find_client($p->client_find_number);
|
|
|
|
|
|
$source = 0;
|
|
$date = floor($p->date/1000);
|
|
/* if($agency_id == 19111 && $beeline->ver_phone($p->user_find_number) == '+79623070552'){
|
|
/****/
|
|
// } else {
|
|
if($client_id == 0){
|
|
if(($agency_id == 7864 || $agency_id == 9836 || $agency_id == 9588 || $agency_id == 10732 || $agency_id == 19895 || $agency_id == 20382 || $agency_id == 22311 || $agency_id == 22604) && ($type == 'beelineAbonentAnswer' || $type == 'beelineAbonentNoAnswer')){
|
|
/****/
|
|
} else if(($agency_id == 11456 && $beeline->ver_phone($p->user_find_number) != '+79678597840') && ($type == 'abonentBeelineAnswer' || $type == 'abonentBeelineNoAnswer')){
|
|
/****/
|
|
} else if(($agency_id == 22983 && ($beeline->ver_phone($p->user_find_number) != '+79039518295' && $beeline->ver_phone($p->user_find_number) != '+79138757515')) && ($type == 'beelineAbonentAnswer' || $type == 'beelineAbonentAnswer')){
|
|
/** */
|
|
}
|
|
else {
|
|
|
|
$fio = "Клиент ".$beeline->ver_phone($p->client_find_number);
|
|
$new_client = true;
|
|
if($agency_id == 7384){
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
|
|
" VALUES ('{$fio}', '".$beeline->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s',$date)."', {$user_id}, '1', '1', 75, '{$source}')";
|
|
} else if($agency_id == 7478){
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
|
|
" VALUES ('{$fio}', '".$beeline->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $date)."', {$user_id}, '1', '1', 80, '{$source}')";
|
|
} else if($agency_id == 9588){
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id) " .
|
|
" VALUES ('{$fio}', '".$beeline->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $date)."', {$user_id}, '1', '1', 340)";
|
|
} else if($funnel_id>0){
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage, funnel_id) " .
|
|
" VALUES ('{$fio}', '".$beeline->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $date)."', {$user_id}, '1', '1', {$funnel_id})";
|
|
|
|
} else {
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, opis, id_agent, date_add, who_work, confirm, stage) " .
|
|
" VALUES ('{$fio}', '".$beeline->ver_phone($p->client_find_number)."', '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $date)."', {$user_id}, '1', '1')";
|
|
|
|
}
|
|
|
|
mysql_query($sql_cl_mango);
|
|
$client_id = mysql_insert_id();
|
|
if($agency_id == 7384){
|
|
$client = new Clients;
|
|
$client->get_class_etap($client_id, 75);
|
|
} else if($agency_id == 7478){
|
|
$client = new Clients;
|
|
$client->get_class_etap($client_id, 80);
|
|
} else if($agency_id == 9588){
|
|
$client = new Clients;
|
|
$client->get_class_etap($client_id, 340);
|
|
}
|
|
if($client_id > 0 && $funnel_id > 0){
|
|
|
|
$client = new Clients;
|
|
$client->get_class_etap($client_id, $funnel_id);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if($client_id != 0){
|
|
|
|
|
|
// добовление client_id в mango_calls start:
|
|
|
|
$in = "UPDATE mango_calls SET client_id='" . $client_id . "' WHERE uuid = '".$p->id."'";
|
|
mysql_query($in);
|
|
// добовление client_id в mango_cals finish.
|
|
$pdopg->query($in);
|
|
|
|
if($agency_id == 7384 && ($source == 498 || $source == 677)){
|
|
$new_client = true;
|
|
$sql_s = "SELECT id FROM clients WHERE phone = '".$beeline->ver_phone($p->client_find_number)."' and date_add = '".date('Y-m-d H:i:s', $date)."' and funnel_id = 75";
|
|
//echo $sql_s.'<br>';
|
|
$q_s = mysql_query($sql_s);
|
|
if(mysql_num_rows($q_s) == 0){
|
|
$hot = 0;
|
|
if($user_id == 20566){
|
|
$hot = 1;
|
|
}
|
|
|
|
$sql_cl_mango = "INSERT INTO `clients` (fio, phone, hot, opis, id_agent, date_add, who_work, confirm, stage, funnel_id, source) " .
|
|
" VALUES ('Клиент Билайн', '".$beeline->ver_phone($p->client_find_number)."', {$hot}, '".$p->comment."', {$user_id}, '".date('Y-m-d H:i:s', $date)."', {$user_id}, '1', '1', 75, '{$source}')";
|
|
mysql_query($sql_cl_mango);
|
|
$client_id = mysql_insert_id();
|
|
$client = new Clients;
|
|
$client->get_class_etap($client_id, 75);
|
|
if($user_id == 20566){
|
|
$sql_a = "INSERT INTO `clients_activities` (`activity_id`, `client_id`) VALUES (3039, {$client_id})";
|
|
mysql_query($sql_a);
|
|
}
|
|
}
|
|
} else if($type == 'abonentBeelineAnswer'){
|
|
$cl_stage = $beeline -> 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 «Закрыт» на «Новый» (По входящему звонку Билайн)";
|
|
$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',$date)."'".
|
|
" AND `type` = 'call' AND beeline = 1 AND tracking = 0";
|
|
|
|
$q_m = mysql_query($sql_m);
|
|
|
|
$record = '';
|
|
$isRecord = false;
|
|
if(mysql_num_rows($q_m) == 0){
|
|
|
|
|
|
if(isset($p->externalId)){
|
|
$record = $beeline->recordSave($p);
|
|
$isRecord = true;
|
|
} else {
|
|
$record = json_encode([]);
|
|
}
|
|
|
|
//Поиск чей клиент
|
|
$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 == 'abonentBeelineAnswer' && $agency_id != 19895){
|
|
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}, 2),".
|
|
"({$who_work},{$user_id},1,0,{$client_id}, 2)";
|
|
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 == 'beelineAbonentAnswer'){
|
|
$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, beeline) ".
|
|
"VALUES (".$r_t['user_id'].", {$client_id}, '".date('Y-m-d H:i:s', $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, beeline, record) ".
|
|
"VALUES ({$who_work}, {$client_id}, '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
// echo $sql_in_ev."\n";
|
|
mysql_query($sql_in_ev);
|
|
}
|
|
}
|
|
|
|
//Поиск заявки по клиенту
|
|
if($agency_id != 13934){
|
|
if(!$isRecord){
|
|
if(isset($p->externalId)){
|
|
$record = $beeline->recordSave($p);
|
|
$isRecord = true;
|
|
} else {
|
|
$record = json_encode([]);
|
|
}
|
|
}
|
|
if($agency_id == 14134 || $agency_id == 19895){
|
|
$isRecord = true;
|
|
}
|
|
$is_delete_req = false;
|
|
if($isRecord){
|
|
$res_s = "SELECT id, user_id, who_work, deleted, cancel FROM requisitions WHERE call_id='".$p->id."'";
|
|
$res_q = mysql_query($res_s);
|
|
if(mysql_num_rows($res_q) > 0){
|
|
$res_r = mysql_fetch_assoc($res_q);
|
|
|
|
$is_delete_req = true;
|
|
|
|
}
|
|
if($is_delete_req === false){
|
|
if($agency_id == 19895){ // Для агентства Домрил ищем заявку которая была закрыта менее часа назад
|
|
/** */
|
|
$date_update_between = "BETWEEN '". date('Y-m-d H:i:d', ($date - 10*60)) . "' AND '".date('Y-m-d H:i:d', ($date+60*60))."'";
|
|
|
|
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE
|
|
client_id=$client_id
|
|
AND (who_work = {$user_id} OR (SELECT user_id FROM requisition_doers WHERE requisitions.id = requisition_doers.requisition_id AND user_id={$user_id} AND confirm=1 LIMIT 1) ={$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";
|
|
//echo $req_s."\n";
|
|
$q_s = mysql_query($req_s);
|
|
if(mysql_num_rows($q_s) > 0){
|
|
$is_delete_req = true;
|
|
//$req_q = mysql_query($req_s);
|
|
$req = mysql_fetch_assoc($q_s);
|
|
$sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND user_id = {$user_id} AND create_date = '".date('Y-m-d H:i:s',$date)."'".
|
|
" AND `type` = 'call' AND beeline = 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, beeline, record) ".
|
|
"VALUES ($user_id, $req[id], '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
mysql_query($sql_in_ev);
|
|
}
|
|
} else {
|
|
$req_s = "SELECT id, user_id, who_work, created_at, deleted FROM requisitions WHERE
|
|
client_id=$client_id
|
|
AND (who_work = {$user_id} OR (SELECT user_id FROM requisition_doers WHERE requisitions.id = requisition_doers.requisition_id AND user_id={$user_id} AND confirm=1 LIMIT 1) ={$user_id})
|
|
and cancel=0";
|
|
$q_s = mysql_query($req_s);
|
|
if(mysql_num_rows($q_s) > 0){
|
|
$is_delete_req = true;
|
|
$req_q = mysql_query($req_s);
|
|
$req = mysql_fetch_assoc($req_q);
|
|
$sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND user_id = $user_id AND create_date = '".date('Y-m-d H:i:s',$date)."'".
|
|
" AND `type` = 'call' AND beeline = 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, beeline, record) ".
|
|
"VALUES ($user_id, $req[id], '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
mysql_query($sql_in_ev);
|
|
}
|
|
if($req['deleted'] > 0 && !isset($_SESSION['id'])){
|
|
$up_client = "UPDATE `requisitions` SET `stage`='1', `who_work`='{$user_id}', `deleted` = 0, confirm=1, call_id='".$p->id."' WHERE `id`=$req[id]";
|
|
mysql_query($up_client);
|
|
$dop_text = "Переведена в активные по звонку ".date('Y-m-d H:i:s', $date);
|
|
$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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if($is_delete_req === false){
|
|
$req_s = "SELECT id, user_id, who_work FROM requisitions WHERE client_id=$client_id
|
|
AND (who_work = {$user_id} OR (SELECT user_id FROM requisition_doers WHERE requisitions.id = requisition_doers.requisition_id AND user_id={$user_id} AND confirm=1 LIMIT 1) ={$user_id})
|
|
AND cancel=0 and deleted=0";
|
|
$req_q = mysql_query($req_s);
|
|
$req_rows = mysql_num_rows($req_q);
|
|
//echo $req_rows;
|
|
if($req_rows > 0){
|
|
if($req_rows == 1){
|
|
$req = mysql_fetch_assoc($req_q);
|
|
$sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND user_id={$user_id} AND create_date = '".date('Y-m-d H:i:s',$date)."'".
|
|
" AND `type` = 'call' AND beeline = 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, beeline, record) ".
|
|
"VALUES ($user_id, $req[id], '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
mysql_query($sql_in_ev);
|
|
}
|
|
} else if ($req_rows > 1){
|
|
while($req = mysql_fetch_assoc($req_q)){
|
|
if($user_id == $req['who_work']){
|
|
$sql_m = "SELECT id FROM user_client_events WHERE req_id = $req[id] AND create_date = '".date('Y-m-d H:i:s',$date)."'".
|
|
" AND `type` = 'call' AND beeline = 1 AND tracking = 0 AND user_id=$req[who_work]";
|
|
$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, beeline, record) ".
|
|
"VALUES ($user_id, $req[id], '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
mysql_query($sql_in_ev);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$req_comm = str_replace(["Клиент","записан"], ["Заявка","записана"], $p->comment);
|
|
$nameReq = 'Заявка Билайн';
|
|
$funnel_id = 0;
|
|
if($agency_id == 10387){
|
|
$funnel_id = 482;
|
|
} else if ($agency_id == 19895){
|
|
$funnel_id = 1513;
|
|
if(isset($funnel_id_req) && $funnel_id_req > 0){
|
|
$funnel_id = $funnel_id_req;
|
|
}
|
|
} else if($agency_id == 20553){
|
|
$funnel_id = 1897;
|
|
}
|
|
else if($agency_id == 22311){
|
|
$funnel_id = 2106;
|
|
} else if($agency_id == 22604){
|
|
$funnel_id = 2184;
|
|
} else if($agency_id == 22983){
|
|
$funnel_id = 2175;
|
|
} else if($agency_id == 23156){
|
|
if($type == 'abonentBeelineAnswer' || $type == 'abonentBeelineNoAnswer'){
|
|
$funnel_id = 2299;
|
|
} else {
|
|
$funnel_id = 2300;
|
|
}
|
|
}
|
|
$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'];
|
|
if($agency_id == 19895){
|
|
$nameReq = $r_cl['fio'];
|
|
}
|
|
}
|
|
$req_id = 0;
|
|
$hot = 0;
|
|
if($user_id == 20566){
|
|
$hot = 1;
|
|
}
|
|
$sql_req = "INSERT INTO `requisitions` SET name='{$nameReq}', hot='{$hot}', integration=1, user_id={$user_id}, client_id={$client_id}, stage=1, type_id=1, who_work={$user_id}, description='{$req_comm}', call_id='".$p->id."'";
|
|
if($funnel_id > 0) {
|
|
$sql_req .= ", funnel_id={$funnel_id}";
|
|
$reqClass = new Requisitions();
|
|
}
|
|
|
|
|
|
if(($agency_id == 22983 && $beeline->ver_phone($p->user_find_number) != '+79039518295' && $beeline->ver_phone($p->user_find_number) != '+79138757515') && ($type == 'beelineAbonentAnswer' || $type == 'beelineAbonentAnswer')){
|
|
/** */
|
|
} else
|
|
if($agency_id == 14134 || $agency_id == 19895 || $agency_id == 20923 || $agency_id == 22311 || $agency_id == 22604){
|
|
if($type == 'abonentBeelineAnswer' || $type == 'abonentBeelineNoAnswer'){
|
|
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, beeline, record) ".
|
|
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', 'call', '".$p->comment_in."', 1, {$user_id}, 1, '".$record."')";
|
|
mysql_query($sql_in_ev);
|
|
if($user_id == 20566){
|
|
$sql_a = "INSERT INTO `requisitions_activities` (`activity_id`, `req_id`) VALUES (3039, {$req_id})";
|
|
mysql_query($sql_a);
|
|
}
|
|
}
|
|
} else if($agency_id != 11417 && $agency_id != 17328 && $agency_id != 19111 && $agency_id != 20382 && $agency_id != 18631 && $agency_id != 23065 && $agency_id != 23065) {
|
|
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, beeline, record) ".
|
|
"VALUES ($user_id, $req_id, '".date('Y-m-d H:i:s', $date)."', '".date('Y-m-d H:i:s', $date)."', '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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// }
|
|
}
|
|
|
|
}
|
|
header('Content-Type: application/json');
|
|
|
|
$sql_tel = "SELECT * FROM agency_mango WHERE `type` = 'beeline'";
|
|
|
|
//echo $sql_tel;
|
|
|
|
if($_SESSION['id']){
|
|
$sql_tel = "SELECT * FROM agency_mango WHERE `type` = 'beeline' and agency_id = 22983";
|
|
}
|
|
$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'];
|
|
$last_time_call = $r_tel['last_time_call'];
|
|
$last_id = $r_tel['last_id'];
|
|
|
|
$beeline = new BeelineApiClass($api_key);
|
|
// var_dump($beeline->validate_agency($agency_id));
|
|
if($beeline->validate_agency($agency_id)){
|
|
$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;
|
|
}
|
|
|
|
$usersBeeline = array();
|
|
// if((time() - $lost_update) >= 86400){
|
|
|
|
$usersCall=json_decode($beeline->getUsers());
|
|
var_dump($usersCall);
|
|
|
|
foreach($usersCall as $userB){
|
|
$phone = $beeline->saveUser($userB, $agency_id);
|
|
//echo $phone.'<br>';
|
|
if(!empty($phone)){
|
|
$user_id = $userB->userId;
|
|
$part_user = explode('@', $userB->userId);
|
|
if(isset($part_user[0])){
|
|
$user_id = $part_user[0];
|
|
}
|
|
$usersBeeline[$user_id] = $phone;
|
|
//$usersBeeline[str_replace('@smr.vo.ims.mnc099.mcc250.3gppnetwork.org','@ip.beeline.ru',$userB->userId)] = $phone;
|
|
}
|
|
//if((time() - $lost_update) >= 86400){
|
|
|
|
//}
|
|
|
|
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);
|
|
}
|
|
}
|
|
//$last_date = '2020-11-02 16:00:00';
|
|
//$end_dat = '2020-11-02 17:00:00';
|
|
$start_date = date('Y-m-d',(strtotime($last_date) - 5*60*60)).'T'.date('H:i:s', (strtotime($last_date) - 5*60*60)).'Z';
|
|
|
|
|
|
|
|
if($agency_id == 19895 && $last_time_call > 0){
|
|
$start_date = date('Y-m-d',(strtotime('-3 hours', $last_time_call)-(60*10))).'T'.date('H:i:s', (strtotime('-3 hours', $last_time_call)-(60*10))).'Z';
|
|
}
|
|
|
|
/* if($_SESSION['id']){
|
|
$start_date = '2026-04-13T00:00:00Z';
|
|
echo $start_date."\n";
|
|
$last_id=0;
|
|
}*/
|
|
// echo $start_date."\n";
|
|
|
|
$usersIds = array();
|
|
$w = new WebHookIn();
|
|
$usersIds = $w->getAllUserAgency($agency_id);
|
|
//var_dump($usersIds);
|
|
$beeline->set_users($usersIds);
|
|
// var_dump($telphin->users);
|
|
|
|
//echo $start_date."\n";
|
|
/*if(isset($_SESSION['id'])){
|
|
$start_date = '2026-01-20T10:30:58Z';
|
|
}*/
|
|
|
|
$phones_type=array();
|
|
/* if(isset($_SESSION['id'])){
|
|
$calls = json_decode($beeline->stat_records(rawurlencode($start_date)));
|
|
}else*/
|
|
if($last_id > 0){
|
|
$calls = json_decode($beeline->stat_records(rawurlencode($start_date), $last_id));
|
|
} else {
|
|
$calls = json_decode($beeline->stat_records(rawurlencode($start_date)));
|
|
}
|
|
$star_date = date('Y-m-d',(strtotime($last_date) - 5*60*60)).'T'.date('H:i:s', (strtotime($last_date) - 5*60*60)).'Z';
|
|
|
|
// if(!isset($_SESSION['id'])){
|
|
$phones = json_decode($beeline->calls(rawurlencode($star_date)));
|
|
|
|
// var_dump($calls);
|
|
// }
|
|
|
|
if(!empty($_SESSION['id'])){
|
|
$phones = json_decode('[]');
|
|
}
|
|
|
|
|
|
// var_dump($calls);
|
|
|
|
//die();
|
|
if(!isset($phones->errorCode)){
|
|
foreach ($phones as $call) {
|
|
$rec = true;
|
|
if($agency_id != 7920 && $agency_id != 7911 && $agency_id != 8271 && $agency_id != 8285 && $agency_id != 11325){
|
|
if($call->status != 'MISSED'){
|
|
$rec = false;
|
|
}
|
|
if($call->status == 'PLACED' && $call->duration == 0){
|
|
$rec = true;
|
|
|
|
}
|
|
}
|
|
|
|
if($agency_id == 19895){
|
|
$beeline->checkRoute($call, $agency_id);
|
|
}
|
|
|
|
if($rec){
|
|
$typearr = json_decode($beeline->get_phone_type($call));
|
|
$type = $typearr->type;
|
|
|
|
$call->date = floor($call->startDate/1000)+($gmt*60*60)-(3*60*60);
|
|
|
|
/* if($agency_id == 19895){
|
|
echo date('d.m.Y H:i:s', $call->date).'<br>';
|
|
var_dump($call);
|
|
}*/
|
|
|
|
$call->date = $call->date*1000;
|
|
// $id_call = $beeline->stat($call, $agency_id);
|
|
$calls_ids = $beeline->stat($call, $agency_id);
|
|
$id_call = $calls_ids['id'];
|
|
$call_id_pg = $calls_ids['idpg'];
|
|
$call->id = $calls_ids['call_id'];
|
|
$user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
|
|
// echo date('d.m.Y H:i:s', $call->date)."\n";
|
|
// var_dump($call);
|
|
/* echo $user_find_number."\n";
|
|
echo $typearr->find_user."\n";*/
|
|
// $beeline->save_user_call($id_call, $user_find_number, $main_user_id);
|
|
$beeline->save_user_call_pg($call_id_pg, $user_find_number, $main_user_id, $agency_id);
|
|
//echo '<br>';
|
|
//var_dump($typearr);
|
|
if($agency_id != 13337) {
|
|
switch ($type){
|
|
case 'beelineAbonentAnswer': {
|
|
$call->comment = 'Клиент записан по исходящему звонку в Билайн';
|
|
$call->comment_in = 'Исходящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->from_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'from');
|
|
|
|
$phones_type['beelineAbonentAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'abonentBeelineAnswer': {
|
|
|
|
$call->comment = 'Клиент записан по входящему звонку в Билайн';
|
|
$call->comment_in = 'Входящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->to_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'to');
|
|
|
|
$phones_type['abonentBeelineAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'beelineAbonentNoAnswer': {
|
|
$call->comment = 'Клиент записан по исходящему звонку в Билайн';
|
|
$call->comment_in = 'Исходящий звонок в Билайн.<br>Абонент не ответил';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->from_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'from');
|
|
|
|
$phones_type['beelineAbonentNoAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'abonentBeelineNoAnswer':{
|
|
$call->comment = 'Клиент записан по входящему звонку в Билайн';
|
|
$call->comment_in = 'Пропущеный входящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->to_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'to');
|
|
|
|
$phones_type['abonentBeelineNoAnswer'][] = $call;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// if($_SESSION['id'] > 0) die();
|
|
|
|
//var_dump($phones_type['abonentBeelineNoAnswer']);
|
|
//die();
|
|
//echo $telphin->ver_phone('6766907');
|
|
//var_dump($calls);
|
|
|
|
|
|
// var_dump($calls);
|
|
|
|
|
|
foreach ($calls as $call) {
|
|
|
|
$last_time_call = floor($call->date/1000);
|
|
$last_id = $call->id;
|
|
//echo date('d.m.Y H:i:s', $last_time_call)."\n";
|
|
$call->date = floor($call->date/1000)+($gmt*60*60)-(3*60*60);
|
|
|
|
$call->date = $call->date*1000;
|
|
/*echo $last_id."\n";
|
|
echo date('d.m.Y H:i:s', $call->date/1000)."\n";
|
|
var_dump($call);*/
|
|
|
|
//echo date('d.m.Y H:i:s', $call->date/1000).'<br>';
|
|
/*if($agency_id == 7911){
|
|
echo date('d.m.Y H:i:s', $call->date/1000).'<br>';
|
|
var_dump($call);
|
|
}*/
|
|
//var_dump($call);
|
|
//$id_call = $beeline->stat($call, $agency_id);
|
|
|
|
$typearr = json_decode($beeline->get_phone_type($call));
|
|
//echo $typearr->find_user."\n";
|
|
//var_dump($typearr);
|
|
$type = $typearr->type;
|
|
|
|
$user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
|
|
$calls_ids = $beeline->stat($call, $agency_id);
|
|
$id_call = $calls_ids['id'];
|
|
$call_id_pg = $calls_ids['idpg'];
|
|
$call->id = $calls_ids['call_id'];
|
|
// var_dump($call);
|
|
// echo $user_find_number."\n";
|
|
//$beeline->save_user_call($id_call, $user_find_number, $main_user_id);
|
|
$beeline->save_user_call_pg($call_id_pg, $user_find_number, $main_user_id, $agency_id);
|
|
|
|
// echo $typearr->find_user.'<br>';
|
|
if($agency_id != 13337) {
|
|
switch ($type){
|
|
case 'beelineAbonentAnswer': {
|
|
$call->comment = 'Клиент записан по исходящему звонку в Билайн';
|
|
$call->comment_in = 'Исходящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->from_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'from');
|
|
|
|
$phones_type['beelineAbonentAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'abonentBeelineAnswer': {
|
|
|
|
$call->comment = 'Клиент записан по входящему звонку в Билайн';
|
|
$call->comment_in = 'Входящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
//$call->source_find = $call->to_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'to');
|
|
|
|
$phones_type['abonentBeelineAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'beelineAbonentNoAnswer': {
|
|
$call->comment = 'Клиент записан по исходящему звонку в Билайн';
|
|
$call->comment_in = 'Исходящий звонок в Билайн.<br>Абонент не ответил';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
$call->source_find = $call->from_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'from');
|
|
|
|
$phones_type['beelineAbonentNoAnswer'][] = $call;
|
|
break;
|
|
}
|
|
case 'abonentBeelineNoAnswer':{
|
|
$call->comment = 'Клиент записан по входящему звонку в Билайн';
|
|
$call->comment_in = 'Пропущеный входящий звонок в Билайн';
|
|
$call->user_find_number = $typearr->find_user;
|
|
if(isset($usersBeeline[$typearr->find_user])){
|
|
$call->user_find_number = $usersBeeline[$typearr->find_user];
|
|
}
|
|
$call->source_find = $call->to_username;
|
|
$call->client_find_number = $call->phone;
|
|
$call->comment_in .= ' '.$beeline->find_user_comment($call, 'to');
|
|
|
|
$phones_type['abonentBeelineNoAnswer'][] = $call;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//print_r($phones_type);
|
|
|
|
if(isset($phones_type['beelineAbonentAnswer'])){
|
|
foreach ($phones_type['beelineAbonentAnswer'] as $p) {
|
|
read_phone($beeline, $p, $agency_id, 'beelineAbonentAnswer', $main_user_id, $funnel_telephony);
|
|
}
|
|
}
|
|
if(isset($phones_type['abonentBeelineAnswer'])){
|
|
foreach ($phones_type['abonentBeelineAnswer'] as $p) {
|
|
read_phone($beeline, $p, $agency_id, 'abonentBeelineAnswer', $main_user_id, $funnel_telephony);
|
|
}
|
|
}
|
|
if(isset($phones_type['beelineAbonentNoAnswer'])){
|
|
foreach ($phones_type['beelineAbonentNoAnswer'] as $p) {
|
|
read_phone($beeline, $p, $agency_id, 'beelineAbonentNoAnswer', $main_user_id, $funnel_telephony);
|
|
}
|
|
}
|
|
if(isset($phones_type['abonentBeelineNoAnswer'])){
|
|
foreach ($phones_type['abonentBeelineNoAnswer'] as $p) {
|
|
read_phone($beeline, $p, $agency_id, 'abonentBeelineNoAnswer', $main_user_id, $funnel_telephony);
|
|
}
|
|
}
|
|
|
|
echo date('d.m.Y H:i:s', $last_time_call)."\n";
|
|
$sql_up_tel = "UPDATE agency_mango SET last_date = '".date('Y-m-d H:i:s')."', last_time_call = {$last_time_call}, last_id = {$last_id} WHERE id = ".$r_tel['id'];
|
|
//echo $
|
|
mysql_query($sql_up_tel);
|
|
}
|
|
}
|