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