1982 lines
95 KiB
PHP
1982 lines
95 KiB
PHP
<?php
|
||
set_time_limit(0);
|
||
|
||
$start = microtime(true);
|
||
require_once $_SERVER['DOCUMENT_ROOT'] . "/config.php";
|
||
header('Content-Type: application/json');
|
||
|
||
ini_set('error_reporting', E_ALL);
|
||
ini_set('display_errors', 1);
|
||
ini_set('display_startup_errors', 1);
|
||
|
||
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);
|
||
|
||
$users_req_exception = array(); //Исключение телефонов для этих юзеров
|
||
$agency_id = 19895;
|
||
$sql_users = "SELECT id 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 = $pdo->query($sql_users);
|
||
while($r_users = $pdo->fetch_assoc($q_users)){
|
||
$users_req_exception[] = (int)$r_users['id'];
|
||
}
|
||
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' start '."\n", FILE_APPEND);
|
||
//Пользоваватели получающие уведомления.
|
||
$sql = "SELECT id, id_manager, telegramm_chat_id, telegramm_date, gmtmsk, CONCAT(last_name, ' ', first_name, ' ', middle_name) as ufio FROM users WHERE telegramm_notice = 1";
|
||
$user_ids = array();
|
||
$users = array();
|
||
$users_time = array();
|
||
$users_ids_10 = array();
|
||
$users_ids_11 = array();
|
||
$users_ids_12 = array();
|
||
$q = $pdo->query($sql);
|
||
// echo mysql_num_rows($q);
|
||
while ($r = $pdo->fetch_assoc($q)) {
|
||
if($r['id'] > 0){
|
||
$user_ids[] = (int)$r['id'];
|
||
$users[$r['id']] = $r;
|
||
$users_time[(int)$r['gmtmsk']][] = (int)$r['id'];
|
||
if(empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 10:00:00'))){
|
||
$users_ids_10[] = $r['id'];
|
||
}
|
||
if(empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 11:00:00'))){
|
||
$users_ids_11[] = $r;
|
||
}
|
||
|
||
if(empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 12:00:00'))){
|
||
$users_ids_12[] = $r;
|
||
}
|
||
}
|
||
}
|
||
// var_dump($users_time);
|
||
|
||
echo 'Время выполнения скрипта 1: '.round(microtime(true) - $start, 4).' сек.'."\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 1'."\n", FILE_APPEND);
|
||
$start1 = microtime(true);
|
||
$update_ids = array();
|
||
|
||
$types_phone = array(1 => 'Telphin', 2 => 'Билайн');
|
||
|
||
$telephony_call = "SELECT t.id, t.user_id, t.who_work, t.from_mes, t.to_mes, CONCAT(w.last_name, ' ', w.first_name, ' ', w.middle_name) as wfio, t.client_id, t.type_phone, t.tel, c.fio as cfio, c.phone, t.created_at FROM telephony_notifications as t " .
|
||
"LEFT JOIN users as w ON t.who_work = w.id " .
|
||
"LEFT JOIN clients as c ON c.id = t.client_id " .
|
||
"WHERE t.tel != 1 and t.user_id in (".implode(',', $user_ids).") and t.user_id != 9904";
|
||
//echo $telephony_call."\n";
|
||
|
||
if ($q_call = $pdo->query($telephony_call)) {
|
||
if ($pdo->num_rows($q_call) > 0) {
|
||
while ($r_call = $pdo->fetch_assoc($q_call)) {
|
||
$sql_update_call = "";
|
||
$text = '';
|
||
// hide_client_contacts: маска для получателя уведомления
|
||
$_hideCall = should_hide_contacts_for_user_id($r_call['user_id']);
|
||
if ($_hideCall) {
|
||
$phone = mask_client_phone($r_call['phone']);
|
||
$cfio = mask_fio_for_user_id($r_call['cfio'], $r_call['user_id']);
|
||
} else {
|
||
$phone = $r_call['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
$cfio = $r_call['cfio'];
|
||
}
|
||
$type_phone = $types_phone[$r_call['type_phone']];
|
||
if ($r_call['to_mes'] == 1) {
|
||
$text = "<b>О клиенте " . $type_phone . "</b>\n";
|
||
if(!in_array($r_call['user_id'], $users_req_exception))
|
||
$text .= "Клиент " . $cfio . " тел. " . $phone . "\n";
|
||
$text .= "уже закреплен за сотрудником " . $r_call['wfio'] . "\n";
|
||
$text .= "<i> (время создания " . date("d.m.Y H:i", strtotime($r_call['created_at'])) . ")</i>\n";
|
||
} else if ($r_call['from_mes'] == 1) {
|
||
$text = "<b>О клиенте " . $type_phone . "</b>\n";
|
||
if(!in_array($r_call['user_id'], $users_req_exception))
|
||
$text .= "Клиент " . $cfio . " тел. " . $phone . "\n";
|
||
$text .= "звонил повторно\n Звонок принял сотрудник " . $r_call['wfio'] . "\n";
|
||
$text .= "<i> (время создания " . date("d.m.Y H:i", strtotime($r_call['created_at'])) . ")</i>\n";
|
||
}
|
||
|
||
$chatId = $users[$r_call['user_id']]['telegramm_chat_id'];
|
||
if($chatId > 0 && !empty($text)){
|
||
$tel->send($text, $chatId);
|
||
}
|
||
|
||
// if($sql_update_call != '') $sql_update_call .= "; ";
|
||
|
||
$update_ids[] = $r_call['id'];
|
||
|
||
}
|
||
|
||
}
|
||
if(!empty($update_ids)){
|
||
$sql_update_call = "UPDATE telephony_notifications SET tel = 1 WHERE id in (".implode(',', $update_ids).")";
|
||
echo $sql_update_call."\n";
|
||
$pdo->query($sql_update_call);
|
||
}
|
||
}
|
||
echo 'Время выполнения скрипта 2: '.round(microtime(true) - $start1, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 4'."\n", FILE_APPEND);
|
||
$start2 = microtime(true);
|
||
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
//Уведомление о задачах
|
||
$currentTime = time();
|
||
//var_dump($users_time);
|
||
foreach($users_time as $gmtmsk=>$user_arr){
|
||
$update_ids = array();
|
||
$hoursToAdd = (int)$gmtmsk;
|
||
$time_zone = '';
|
||
|
||
if($hoursToAdd >= 0){
|
||
$time_zone = '+'.$hoursToAdd.' hour';
|
||
} else {
|
||
$time_zone = '-'.$hoursToAdd.' hour';
|
||
}
|
||
$secondsToAdd = $hoursToAdd * (60 * 60);
|
||
$newTime = $currentTime + $secondsToAdd;
|
||
|
||
$events_query = "SELECT e.id, e.type, e.comment, e.sum, e.address, e.create_date, e.schedule_date, e.name, e.client_id, e.req_id, e.tracking, e.user_id FROM user_client_events as e WHERE e.tel != 1 and e.calendar_view = 0
|
||
and e.schedule_date is not null and e.schedule_date != '0000-00-00 00:00:00' and cancel=0 and e.tracking = 0 and e.old_req_id = 0 and e.user_id in (".implode(',', $user_arr).") and e.schedule_date <= '" . date("Y-m-d H:i:s", $newTime) . "'";
|
||
|
||
/* if($hoursToAdd == 4){
|
||
echo $events_query."\n";
|
||
}*/
|
||
//echo $events."\n";
|
||
$q_events = $pdo->query($events_query);
|
||
$events = array();
|
||
$client_ids = array();
|
||
$clients = array();
|
||
$req_ids = array();
|
||
$clients_req = array();
|
||
$reqs = array();
|
||
$client_req_ids = array();
|
||
while ($ev = $pdo->fetch_assoc($q_events)) {
|
||
if($ev['client_id'] > 0){
|
||
$client_ids[] = $ev['client_id'];
|
||
}
|
||
if($ev['req_id'] > 0){
|
||
$req_ids[] = $ev['req_id'];
|
||
}
|
||
|
||
$events[$ev['id']] = $ev;
|
||
|
||
}
|
||
|
||
//Выборка клиентов
|
||
if(!empty($client_ids)){
|
||
$clients = $tel->get_clients_array($client_ids);
|
||
|
||
}
|
||
//Выборка заявок
|
||
if(!empty($req_ids)){
|
||
$res_req = $tel->get_reqs_array($req_ids);
|
||
$reqs = $res_req['reqs'];
|
||
$client_req_ids = $res_req['client_ids'];
|
||
|
||
}
|
||
//Выборка клиентов в заявках
|
||
if(!empty($client_req_ids)){
|
||
$clients_req = $tel->get_clients_array($client_req_ids);
|
||
}
|
||
|
||
foreach($events as $id=>$ev){
|
||
// hide_client_contacts: получатель уведомления = $ev['user_id']
|
||
$_hideEv = should_hide_contacts_for_user_id($ev['user_id']);
|
||
$phoneClient = '';
|
||
if ($ev['client_id'] > 0) {
|
||
|
||
$r_cl = $clients[$ev['client_id']];
|
||
} else if ($ev['req_id'] > 0) {
|
||
|
||
$r_cl = $reqs[$ev['req_id']];
|
||
if($r_cl['client_id'] > 0){
|
||
|
||
$r_clr = $clients_req[$r_cl['client_id']];
|
||
if ($_hideEv) {
|
||
$phoneClient .= "<i>Клиент: </i>" . mask_fio_for_user_id($r_clr['fio'], $ev['user_id']) . " тел. " . mask_client_phone($r_clr['phone']) . "\n";
|
||
} else {
|
||
$phoneClient .= "<i>Клиент: </i>" . $r_clr['fio'] . " тел. " . substr($r_clr['phone'], 0, 2) . "(" . substr($r_clr['phone'], 2, 3) . ")" . substr($r_clr['phone'], 5, 3) . "-" . substr($r_clr['phone'], 8, 2) . "-" . substr($r_clr['phone'], 10, 2)."\n";
|
||
}
|
||
}
|
||
}
|
||
$title = '';
|
||
$text = '';
|
||
|
||
$schedule_date = date("d.m.Y", strtotime($ev['schedule_date']));
|
||
list($d, $m, $y) = explode(".", $schedule_date);
|
||
// hide_client_contacts: вычисляем отображаемые fio/phone единожды
|
||
$_cl_fio = isset($r_cl['fio']) ? ($_hideEv ? mask_fio_for_user_id($r_cl['fio'], $ev['user_id']) : $r_cl['fio']) : '';
|
||
if ($ev['client_id'] > 0) {
|
||
if ($_hideEv) {
|
||
$phone = mask_client_phone($r_cl['phone']);
|
||
} else {
|
||
$phone = $r_cl['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
}
|
||
}
|
||
switch ($ev['type']) {
|
||
case 'call':
|
||
{
|
||
if ($ev['client_id'] > 0) {
|
||
$title = "<b>Звонок</b> клиенту " . $_cl_fio . " тел. " . $phone;
|
||
} else if ($ev['req_id'] > 0) {
|
||
$title = "<b>Звонок</b> по заявке " . $_cl_fio . " ID: ".$r_cl['id'];
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .=$phoneClient;
|
||
}
|
||
$text .= $d . " " . getRusMonth($m) . " " . $y . " в " . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'meet':
|
||
{
|
||
if ($ev['client_id'] > 0) {
|
||
$title = "<b>Встреча</b> клиенту " . $_cl_fio . " тел. " . $phone;
|
||
} else if ($ev['req_id'] > 0) {
|
||
$title = "<b>Встреча</b> по заявке " . $_cl_fio . " ID: ".$r_cl['id'];
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .=$phoneClient;
|
||
}
|
||
|
||
$text .= 'Встреча будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'show':
|
||
{
|
||
if ($ev['client_id'] > 0) {
|
||
$title = "<b>Показ</b> клиенту " . $_cl_fio . " тел. " . $phone;
|
||
|
||
} else if ($ev['req_id'] > 0) {
|
||
$title = "<b>Показ</b> по заявке " . $_cl_fio . " ID: ".$r_cl['id'];
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .=$phoneClient;
|
||
}
|
||
|
||
$text .= 'Показ будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'deal':
|
||
{
|
||
if ($ev['client_id'] > 0) {
|
||
$title = "<b>Сделка</b> с клиентом " . $_cl_fio . " тел. " . $phone;
|
||
} else if ($ev['req_id'] > 0) {
|
||
$title = "<b>Сделка</b> по заявке " . $_cl_fio . " ID: ".$r_cl['id'];
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .=$phoneClient;
|
||
}
|
||
$text .= 'Сделка будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['sum']) {
|
||
$text .= "\n<i>Сумма сделки:</i> " . $ev['sum'] . " р.";
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'even':
|
||
{
|
||
$title = '<b>' . $ev['name'] . '</b>';
|
||
|
||
$text .= 'Мероприятие состоится ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
|
||
if ($ev['client_id'] > 0) {
|
||
if (!empty($r_cl['fio'])) {
|
||
$text .= "\nКлиент <b>" . $_cl_fio . "</b> тел. " . $phone;
|
||
}
|
||
|
||
} else if ($ev['req_id'] > 0) {
|
||
|
||
if (!empty($r_cl['fio'])) {
|
||
$text .= "\nЗаявка <b>" . $_cl_fio . " ID: ".$r_cl['id'] . "</b> ";
|
||
}
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .=$phoneClient;
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . str_replace('"', '',$ev['comment']);
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
}
|
||
// echo $text;
|
||
$text_o = "Напоминание <i> (время создания " . date("d.m.Y H:i", strtotime($time_zone, strtotime($ev['create_date']))) . ")</i>\n"
|
||
. $title . " \n" . str_replace(['<i>', '</i>', '<br>', '<b>', '</b>'], ['<i>', '</i>', "\n", '<b>', '</b>'], htmlentities($text));
|
||
|
||
//echo $text_o."\n";
|
||
$chatId = $users[$ev['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
// if($chatId == '689521489' || $chatId == '255183898' || $chatId == '105877066'){
|
||
$keyboardArr = [];
|
||
$keyboardArr = [
|
||
[
|
||
[
|
||
'text' => 'Отметить выполненной',
|
||
'callback_data' => serialize(array('action'=>10,'id'=>$ev['id']))
|
||
|
||
]
|
||
|
||
]
|
||
|
||
];
|
||
if($ev['req_id'] > 0 || $ev['client_id'] > 0){
|
||
$keyboardArr[] = [
|
||
[
|
||
'text' => 'Отметить выполненной и написать комментарий',
|
||
'callback_data' => serialize(array('action'=>11,'id'=>$ev['id']))
|
||
],
|
||
];
|
||
}
|
||
$tel->send($text_o, $chatId, null, $keyboardArr);
|
||
|
||
/* } else {
|
||
$tel->send($text_o, $chatId);
|
||
}*/
|
||
|
||
|
||
}
|
||
$update_ids[] = $ev['id'];
|
||
|
||
if(count($update_ids) == 100){
|
||
$sql_up = "UPDATE user_client_events SET tel = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
if(!$pdo->query($sql_up)){
|
||
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.json_encode($pdo->error(), JSON_UNESCAPED_UNICODE)."\n", FILE_APPEND);
|
||
}
|
||
|
||
$update_ids = array();
|
||
}
|
||
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
$sql_up = "UPDATE user_client_events SET tel = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
if(!$pdo->query($sql_up)){
|
||
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.json_encode($pdo->error(), JSON_UNESCAPED_UNICODE)."\n", FILE_APPEND);
|
||
}
|
||
}
|
||
|
||
|
||
echo 'Время выполнения скрипта 3: '.round(microtime(true) - $start2, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 3'."\n", FILE_APPEND);
|
||
$start3 = microtime(true);
|
||
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
$events_query = "SELECT e.id, e.type, e.comment, e.sum, e.address, e.create_date, e.schedule_date, e.schedule_date_to, e.name, e.client_id, e.req_id, e.user_id FROM user_client_events as e WHERE
|
||
e.tracking = 1 and e.tel = 0 and e.calendar_view = 0 and e.schedule_date is not null and cancel=0 and e.user_id in (".implode(',', $user_arr).") and e.schedule_date_to <= '" . date("Y-m-d H:i:s", $newTime) . "'";
|
||
//echo $events_query."\n";
|
||
|
||
$q_events = $pdo->query($events_query);
|
||
$events = array();
|
||
$client_ids = array();
|
||
$clients = array();
|
||
$req_ids = array();
|
||
$clients_req = array();
|
||
$reqs = array();
|
||
$client_req_ids = array();
|
||
$update_ids = array();
|
||
while ($ev = $pdo->fetch_assoc($q_events)) {
|
||
|
||
if($ev['client_id'] > 0){
|
||
$client_ids[] = $ev['client_id'];
|
||
}
|
||
if($ev['req_id'] > 0){
|
||
$req_ids[] = $ev['req_id'];
|
||
}
|
||
|
||
$events[$ev['id']] = $ev;
|
||
|
||
}
|
||
|
||
//Выборка клиентов
|
||
if(!empty($client_ids)){
|
||
$clients = $tel->get_clients_array($client_ids);
|
||
|
||
}
|
||
//Выборка заявок
|
||
if(!empty($req_ids)){
|
||
$res_req = $tel->get_reqs_array($req_ids);
|
||
$reqs = $res_req['reqs'];
|
||
$client_req_ids = $res_req['client_ids'];
|
||
|
||
}
|
||
//Выборка клиентов в заявках
|
||
if(!empty($client_req_ids)){
|
||
$clients_req = $tel->get_clients_array($client_req_ids);
|
||
}
|
||
|
||
foreach($events as $id=>$ev){
|
||
// hide_client_contacts: получатель = $ev['user_id']
|
||
$_hideEv = should_hide_contacts_for_user_id($ev['user_id']);
|
||
$title = '';
|
||
$text = '';
|
||
$phoneClient = '';
|
||
$schedule_date = date("d.m.Y", strtotime($ev['schedule_date']));
|
||
$schedule_date_to = date("d.m.Y", strtotime($ev['schedule_date_to']));
|
||
list($d, $m, $y) = explode(".", $schedule_date);
|
||
|
||
if ($ev['client_id'] > 0) {
|
||
|
||
$r_cl = $clients[$ev['client_id']];
|
||
} else if ($ev['req_id'] > 0) {
|
||
|
||
$r_cl = $reqs[$ev['req_id']];
|
||
if($r_cl['client_id'] > 0){
|
||
|
||
$r_clr = $clients_req[$r_cl['client_id']];
|
||
if ($_hideEv) {
|
||
$formatPhone = mask_client_phone($r_clr['phone']);
|
||
$phoneClient .= "<i>Клиент: </i>" . mask_fio_for_user_id($r_clr['fio'], $ev['user_id']) . " тел. " . $formatPhone ."\n";
|
||
} else {
|
||
if (strpos($phone, '+7') !== false) {
|
||
$formatPhone = substr($r_clr['phone'], 0, 2) . "(" . substr($r_clr['phone'], 2, 3) . ")" . substr($r_clr['phone'], 5, 3) . "-" . substr($r_clr['phone'], 8, 2) . "-" . substr($r_clr['phone'], 10, 2);
|
||
} else {
|
||
$formatPhone = $r_clr['phone'];
|
||
}
|
||
$phoneClient .= "<i>Клиент: </i>" . $r_clr['fio'] . " тел. " . $formatPhone ."\n";
|
||
}
|
||
}
|
||
}
|
||
$_cl_fio = isset($r_cl['fio']) ? ($_hideEv ? mask_fio_for_user_id($r_cl['fio'], $ev['user_id']) : $r_cl['fio']) : '';
|
||
|
||
switch ($ev['type']) {
|
||
case 'call':
|
||
{
|
||
if($ev['client_id'] > 0){
|
||
if ($_hideEv) {
|
||
$phone = mask_client_phone($r_cl['phone']);
|
||
} else {
|
||
$phone = $r_cl['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
}
|
||
|
||
$title = "<b>Звонок</b> клиенту " . $_cl_fio . " тел. " . $phone;
|
||
$text .= "Позвонить с " . date("d.m.Y H:i", strtotime($ev['schedule_date_to']));
|
||
$text .= "\nпо " . date("d.m.Y H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
} else if($ev['req_id'] > 0){
|
||
$title = "<b>Звонок</b> по заявке " . $_cl_fio . " ID: ".$r_cl['id'];
|
||
$text .= "Позвонить с " . date("d.m.Y H:i", strtotime($ev['schedule_date_to']));
|
||
$text .= "\nпо " . date("d.m.Y H:i", strtotime($ev['schedule_date']));
|
||
if(!in_array($ev['user_id'], $users_req_exception))
|
||
$text .= "\n".$phoneClient;
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
}
|
||
|
||
break;
|
||
}
|
||
|
||
}
|
||
// echo $text;
|
||
$text_o = "Напоминание <i> (время создания " . date("d.m.Y H:i", strtotime($time_zone, strtotime($ev['create_date']))) . ")</i>\n"
|
||
. $title . " \n" . str_replace(['<i>', '</i>', '<br>', '<b>', '</b>'], ['<i>', '</i>', "\n", '<b>', '</b>'], htmlentities($text));
|
||
//echo $text_o."\n";
|
||
$chatId = $users[$ev['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
$tel->send($text_o, $chatId);
|
||
|
||
}
|
||
$update_ids[] = $ev['id'];
|
||
if(count($update_ids) == 100){
|
||
$pdo->query("UPDATE user_client_events SET tel = 2 WHERE id in (".implode(',',$update_ids).")");
|
||
$update_ids = array();
|
||
}
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
|
||
$pdo->query("UPDATE user_client_events SET tel = 2 WHERE id in (".implode(',',$update_ids).")");
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 4: '.round(microtime(true) - $start3, 4)." сек.\n";
|
||
$start4 = microtime(true);
|
||
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
$events = "SELECT e.id, e.type, e.comment, c.phone, e.sum, e.address, e.create_date, e.schedule_date, c.fio, e.user_id FROM user_client_jw_events as e LEFT JOIN clients_jw as c on e.client_id = c.id WHERE e.tel = 0 and e.calendar_view = 0
|
||
and e.schedule_date is not null and e.user_id in (".implode(',',$user_arr).") and e.schedule_date <= '" . date("Y-m-d H:i:s", $newTime) . "'";
|
||
|
||
$q_events =$pdo->query($events);
|
||
$update_ids = array();
|
||
while ($ev = $pdo->fetch_assoc($q_events)) {
|
||
// hide_client_contacts: получатель = $ev['user_id']
|
||
$_hideEv = should_hide_contacts_for_user_id($ev['user_id']);
|
||
$title = '';
|
||
$text = '';
|
||
$schedule_date = date("d.m.Y", strtotime($ev['schedule_date']));
|
||
list($d, $m, $y) = explode(".", $schedule_date);
|
||
if ($_hideEv) {
|
||
$phone = mask_client_phone($ev['phone']);
|
||
$_fio = mask_fio_for_user_id($ev['fio'], $ev['user_id']);
|
||
} else {
|
||
$phone = $ev['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
$_fio = $ev['fio'];
|
||
}
|
||
switch ($ev['type']) {
|
||
case 'call':
|
||
{
|
||
$title = "<b>Звонок</b> клиенту " . $_fio . " тел. " . $phone;
|
||
$text .= $d . " " . getRusMonth($m) . " " . $y . " в " . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'meet':
|
||
{
|
||
$title = '<b>Встреча</b> с клиентом ' . $_fio . ' тел. ' . $phone;
|
||
$text .= 'Встреча будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'show':
|
||
{
|
||
$title = '<b>Показ</b> для клиента ' . $_fio . ' тел. ' . $phone;
|
||
$text .= 'Показ будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'deal':
|
||
{
|
||
$title = '<b>Сделка</b> с клиентом ' . $_fio . ' тел. ' . $phone;
|
||
$text .= 'Сделка будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
if ($ev['sum']) {
|
||
$text .= "\n<i>Сумма сделки:</i> " . $ev['sum'] . " р.";
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
|
||
}
|
||
// // echo $text;
|
||
//$text = htmlentities($text);
|
||
$text_o = "Напоминание <i> (время создания " . date("d.m.Y H:i", strtotime($time_zone, strtotime($ev['create_date']))) . ")</i>\n"
|
||
. $title . " \n" . str_replace(['<i>', '</i>', '<br>'], ['<i>', '</i>', "\n"], htmlentities($text));
|
||
|
||
$chatId = $users[$ev['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
$tel->send($text_o, $chatId);
|
||
|
||
}
|
||
$update_ids[] = $ev['id'];
|
||
|
||
}
|
||
if(!empty($update_ids)){
|
||
$pdo->query("UPDATE user_client_jw_events SET tel = 1 WHERE id in (".implode(',', $update_ids).")");
|
||
}
|
||
echo 'Время выполнения скрипта 5: '.round(microtime(true) - $start4, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 5'."\n", FILE_APPEND);
|
||
$start5 = microtime(true);
|
||
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
|
||
//sub_comment
|
||
$update_ids = array();
|
||
$events = array();
|
||
$obj_coordinates = array();
|
||
$object_ids = array();
|
||
$events_query = "SELECT e.id,
|
||
e.type,
|
||
e.comment,
|
||
e.sum,
|
||
e.address,
|
||
e.create_date,
|
||
e.schedule_date,
|
||
e.object_id,
|
||
e.user_id,
|
||
IF(IFNULL(s.sub_comment, '') = '', NULL, s.sub_comment) AS sub_comment,
|
||
IF(s.created_by <> 0, (
|
||
SELECT CONCAT(u.last_name, ' ', u.first_name, ' ', u.middle_name)
|
||
FROM users as u WHERE u.id = s.created_by
|
||
), NULL
|
||
) as sub_comment_author,
|
||
c.phone,
|
||
c.sobstv,
|
||
c.initial_object_phone,
|
||
c.initial_object_sobstv,
|
||
c.phone_search,
|
||
c.nazv,
|
||
c.adres
|
||
FROM user_object_events AS e
|
||
LEFT JOIN objects AS c ON e.object_id = c.id
|
||
LEFT JOIN user_sub_comments AS s ON s.event_id = e.id AND s.section_id = 1
|
||
WHERE e.tel = 0 AND
|
||
e.calendar_view = 0 AND
|
||
e.schedule_date IS NOT NULL AND
|
||
e.user_id in (".implode(',',$user_arr).") AND
|
||
e.schedule_date <= '" . date("Y-m-d H:i:s", $newTime) . "'";
|
||
|
||
$q_events = $pdo->query($events_query);
|
||
while ($ev = $pdo->fetch_assoc($q_events)) {
|
||
|
||
if ($ev['type'] == 'comment') continue;
|
||
|
||
$object_ids[] = $ev['object_id'];
|
||
$events[] = $ev;
|
||
|
||
}
|
||
|
||
if(!empty($object_ids)){
|
||
$sql_coordinates = "SELECT address, object_id FROM object_location WHERE object_id in (".implode(',', $object_ids).")";
|
||
$res_coordinate = $pdo->query($sql_coordinates);
|
||
while($r_coordinate = $pdo->fetch_assoc($res_coordinate)){
|
||
$obj_coordinates[$r_coordinate['object_id']] = $r_coordinate['address'];
|
||
}
|
||
}
|
||
|
||
foreach($events as $ev){
|
||
// hide_client_contacts: получатель = $ev['user_id']
|
||
$_hideEv = should_hide_contacts_for_user_id($ev['user_id']);
|
||
$title = '';
|
||
$text = '';
|
||
if (isset($obj_coordinates[$ev['object_id']]) && !empty($obj_coordinates[$ev['object_id']]['address'])) {
|
||
$ev['adres'] = $obj_coordinates[$ev['object_id']]['address'];
|
||
}
|
||
|
||
$schedule_date = date("d.m.Y", strtotime($ev['schedule_date']));
|
||
list($d, $m, $y) = explode(".", $schedule_date);
|
||
$sobstv = $ev['sobstv'];
|
||
if (!empty($ev['initial_object_sobstv'])) {
|
||
$sobstv = $ev['initial_object_sobstv'];
|
||
}
|
||
$phone = $ev['phone'];
|
||
if (!empty($ev['initial_object_phone'])) {
|
||
$phone = $ev['initial_object_phone'];
|
||
} else if (!empty($ev['phone_search'])) {
|
||
$phone = '+7' . $ev['phone_search'];
|
||
}
|
||
// Маска телефона собственника объекта (фактически контакт клиента-собственника)
|
||
if ($_hideEv) {
|
||
$phone = mask_client_phone($phone);
|
||
$sobstv = mask_fio_for_user_id($sobstv, $ev['user_id']);
|
||
}
|
||
switch ($ev['type']) {
|
||
case 'call':
|
||
{
|
||
$title = '<b>Звонок</b> по объекту ' . $ev['nazv'];
|
||
|
||
$text .= $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'meet':
|
||
{
|
||
$title = '<b>Встреча</b> по объекту ' . $ev['nazv'];
|
||
$text .= 'Встреча будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'show':
|
||
{
|
||
$title = '<b>Показ</b> по объекту ' . $ev['nazv'];
|
||
$text .= 'Показ будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
if ($ev['address']) {
|
||
$text .= "\n<i>Адрес:</i> " . $ev['address'];
|
||
}
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
// $text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'deal':
|
||
{
|
||
$title = '<b>Сделка</b> по объекту ' . $ev['nazv'];
|
||
$text .= 'Сделка будет ' . $d . ' ' . getRusMonth($m) . ' ' . $y . ' в ' . date("H:i", strtotime($ev['schedule_date']));
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
if ($ev['sum']) {
|
||
$text .= "\n<i>Сумма сделки:</i> " . $ev['sum'] . " р.";
|
||
}
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
//$text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'moderation':
|
||
{
|
||
$title = '<b>На модерацию</b> отправлен объект ' . $ev['nazv'];
|
||
$text .= 'ID '.$ev['object_id'].".";
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
//$text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
case 'even':
|
||
{
|
||
$title = '<b>Задача</b> по объекту ' . $ev['nazv'];
|
||
$text .= 'ID '.$ev['object_id'].".";
|
||
if ($ev['adres']) {
|
||
$text .= "\n<i>Адрес объекта:</i> " . $ev['adres'];
|
||
}
|
||
$text .= "\n тел. " . $phone . ", ответственный: " . $sobstv;
|
||
|
||
if ($ev['comment']) {
|
||
$text .= "\n<i>Комментарий: </i>" . $ev['comment'];
|
||
}
|
||
if ($ev['sub_comment']) {
|
||
$text .= "\n<i>Комментарий к задаче: </i>" . $ev['sub_comment'] . " (" .$ev['sub_comment_author'] . ")";
|
||
}
|
||
//$text .= "\n<i>". date("H:i", strtotime($ev['create_date']))."</i>";
|
||
break;
|
||
}
|
||
/*case 'comment':
|
||
{
|
||
if ($ev['comment'])
|
||
$text .= $ev['comment'];
|
||
|
||
break;
|
||
}*/
|
||
|
||
}
|
||
$text_o = "Напоминание <i> (время создания " . date("d.m.Y H:i", strtotime($time_zone, strtotime($ev['create_date']))) . ")</i>\n"
|
||
. $title . " \n" . str_replace(['<i>', '</i>', '<br>'], ['<i>', '</i>', "\n"], htmlentities($text));
|
||
// echo $text_o."\n";
|
||
$chatId = $users[$ev['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
// if($chatId == '689521489' || $chatId == '255183898' || $chatId == '105877066'){
|
||
$keyboardArr = [];
|
||
$keyboardArr = [
|
||
[
|
||
[
|
||
'text' => 'Отметить выполненной',
|
||
'callback_data' => serialize(array('action'=>13,'id'=>$ev['id']))
|
||
|
||
]
|
||
],
|
||
[
|
||
|
||
[
|
||
'text' => 'Отметить выполненной и написать комментарий',
|
||
'callback_data' => serialize(array('action'=>14,'id'=>$ev['id']))
|
||
]
|
||
|
||
]
|
||
];
|
||
$tel->send($text_o, $chatId, null, $keyboardArr);
|
||
|
||
/* } else {
|
||
$tel->send($text_o, $chatId);
|
||
}*/
|
||
|
||
}
|
||
|
||
$update_ids[] = $ev['id'];
|
||
if(count($update_ids) == 100){
|
||
$pdo->query("UPDATE user_object_events SET tel = 1 WHERE id in (".implode(',',$update_ids).")");
|
||
$update_ids = array();
|
||
}
|
||
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
$sql_up = "UPDATE user_object_events SET tel = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
if(!$pdo->query($sql_up)){
|
||
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.$pdo->error()."\n", FILE_APPEND);
|
||
}
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 6: '.round(microtime(true) - $start5, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 6'."\n", FILE_APPEND);
|
||
$start6 = microtime(true);
|
||
}
|
||
|
||
//Переданные клиенты
|
||
$update_ids = array();
|
||
$events_client = array();
|
||
$client_ids = array();
|
||
$req_ids = array();
|
||
$client_req_ids = array();
|
||
$object_ids = array();
|
||
$users_ec_ids = array();
|
||
$users_ec = array();
|
||
$clients = array();
|
||
$reqs = array();
|
||
$clients_req = array();
|
||
$objects = array();
|
||
$sql_ec = "SELECT * FROM events_clients WHERE from_id in (".implode(',', $user_ids).") AND `read` IN (0,1,2) AND (event = 'add' or event = 'transmitted_parallel' or event = 'transmitted' or event = 'transmitted_adjacent' or event = 'union') AND `send_telegramm` = 0 AND (req_id>0 or client_id>0) AND date > '2025-12-24 00:00:00' limit 500";
|
||
// echo $sql_ec."\n";
|
||
// die();
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
//$sql_up = "UPDATE events_clients SET send_telegramm = 2 WHERE from_id in (".implode(',', $user_ids).") AND `read` IN (0,1,2) AND (event = 'add' or event = 'transmitted_parallel' or event = 'transmitted' or event = 'transmitted_adjacent' or event = 'union') AND `send_telegramm` = 0 AND (req_id>0 or client_id>0) AND date > '2025-12-24 00:00:00' limit 500";
|
||
|
||
|
||
$q_ec = $pdo->query($sql_ec);
|
||
//$pdo->query($sql_up);
|
||
// echo mysql_num_rows($q_ec).'<br>';
|
||
while ($r_ec = $pdo->fetch_assoc($q_ec)) {
|
||
$events_client[] = $r_ec;
|
||
if($r_ec['user_id'] > 0){
|
||
$users_ec_ids[] = $r_ec['user_id'];
|
||
}
|
||
if($r_ec['client_id'] > 0){
|
||
$client_ids[] = $r_ec['client_id'];
|
||
}
|
||
|
||
if($r_ec['req_id'] > 0){
|
||
$req_ids[] = $r_ec['req_id'];
|
||
}
|
||
|
||
$update_ids[] = $r_ec['id'];
|
||
|
||
// var_dump($update_ids);
|
||
|
||
if(count($update_ids) == 50){
|
||
$sql_up = "UPDATE events_clients SET send_telegramm = 1 WHERE id in (".implode(',', $update_ids).")";
|
||
if(!mysql_query($sql_up)){
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.mysql_error()."\n", FILE_APPEND);
|
||
}
|
||
$update_ids = array();
|
||
}
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
$sql_up = "UPDATE events_clients SET send_telegramm = 1 WHERE id in (".implode(',', $update_ids).")";
|
||
if(!mysql_query($sql_up)){
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.mysql_error()."\n", FILE_APPEND);
|
||
}
|
||
//mysql_query("UPDATE events_clients SET send_telegramm = 1 WHERE id in (".implode(',', $update_ids).")");
|
||
}
|
||
|
||
if(!empty($users_ec_ids)){
|
||
$sql_in = "SELECT `id`, `first_name`, `last_name`, `middle_name`, `agency`, `manager` FROM `users` WHERE `id` in (".implode(',', $users_ec_ids).")";
|
||
$q_in = $pdo->query($sql_in);
|
||
while($r_in = $pdo->fetch_assoc($q_in)){
|
||
$users_ec[$r_in['id']] = $r_in;
|
||
}
|
||
}
|
||
|
||
//Выборка клиентов
|
||
// var_dump($client_ids);
|
||
if(!empty($client_ids)){
|
||
$clients = $tel->get_clients_array($client_ids);
|
||
|
||
}
|
||
//Выборка заявок
|
||
if(!empty($req_ids)){
|
||
$res_req = $tel->get_reqs_array($req_ids);
|
||
$reqs = $res_req['reqs'];
|
||
$client_req_ids = $res_req['client_ids'];
|
||
|
||
}
|
||
|
||
//Выборка объектов
|
||
foreach($clients as $c){
|
||
if((int)$c['of_objects'] > 0){
|
||
$object_ids[] = (int)$c['of_objects'];
|
||
}
|
||
}
|
||
foreach($reqs as $req){
|
||
if((int)$req['of_objects'] > 0){
|
||
$object_ids[] = (int)$req['of_objects'];
|
||
}
|
||
}
|
||
if(!empty($object_ids)){
|
||
$sql_obj = "SELECT nazv, adres, id FROM objects WHERE id in (".implode(',', $object_ids).")";
|
||
$q_obj = $pdo->query($sql_obj);
|
||
while($r_obj = $pdo->fetch_assoc($q_obj)){
|
||
$objects[$r_obj['id']] = $r_obj;
|
||
}
|
||
}
|
||
//Выборка клиентов в заявках
|
||
if(!empty($client_req_ids)){
|
||
$clients_req = $tel->get_clients_array($client_req_ids);
|
||
}
|
||
|
||
foreach($events_client as $r_ec){
|
||
|
||
//var_dump($r_ec);
|
||
// hide_client_contacts: получатель уведомления = $r_ec['from_id']
|
||
$_hideEc = should_hide_contacts_for_user_id($r_ec['from_id']);
|
||
|
||
$r_in = $users_ec[$r_ec['user_id']];
|
||
$post = "Сотрудник";
|
||
if ($r_in['agency'] == 1) {
|
||
$post = "Агенство";
|
||
} else if ($r_in['manager'] == 1) {
|
||
$post = "Менеджер";
|
||
}
|
||
|
||
/* $sql_cl = "SELECT `fio`, `phone`, `of_objects`, `opis` FROM `clients` WHERE `id` = " . $r_ec['client_id'];
|
||
|
||
if ($r_ec['req_id'] > 0) {
|
||
$sql_cl = "SELECT `name` as `fio`, '' as `phone`, `object_id` as `of_objects`, client_id, description as opis FROM `requisitions` WHERE `id` = " . $r_ec['req_id'];
|
||
|
||
}*/
|
||
//$q_cl = mysql_query($sql_cl);
|
||
$r_cl = null;
|
||
|
||
if($r_ec['client_id'] > 0){
|
||
$r_cl = $clients[$r_ec['client_id']];
|
||
} else if($r_ec['req_id'] > 0){
|
||
$r_cl = $reqs[$r_ec['req_id']];
|
||
}
|
||
|
||
$text_o = "<b>Вам передают клиента</b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " передал вам клиента ID: ".$r_ec['client_id']."\n";
|
||
|
||
if ($r_ec['req_id'] > 0) {
|
||
$text_o = "<b>Вам передают заявку</b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " передал вам заявку ID: ".$r_ec['req_id']."\n";
|
||
}
|
||
$dop_tex_o = '';
|
||
$dop_tex_o2 = '';
|
||
|
||
//Взятие в работу в смежных воронках
|
||
if($r_ec['event'] == 'transmitted_adjacent'){
|
||
$dop_tex_o = '';
|
||
$dop_tex_o2 = '';
|
||
|
||
$text_funnel = "";
|
||
|
||
|
||
$sql_f = "SELECT * FROM funnel WHERE id = {$r_ec['funnelid']}";
|
||
$q_f = mysql_query($sql_f);
|
||
$name_funel = '';
|
||
if($r_f = mysql_fetch_assoc($q_f)){
|
||
$name_funel = $r_f['name'];
|
||
}
|
||
if(!empty($name_funel)){
|
||
$text_funnel .= " <b>«".$name_funel."»</b>\n";
|
||
}
|
||
|
||
$text_o = "<b>Клиент взят в работу в смежной воронке \n";
|
||
$text_o .= $text_funnel;
|
||
$text_o .= "</b> ID: ".$r_ec['client_id']." <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
if($r_ec['client_id'] == 0 && $r_ec['req_id'] > 0){
|
||
$text_o = "<b>Заявка </b> ID: ".$r_ec['req_id']." <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
$text_o .= "взята в работу в смежной воронке";
|
||
$text_o .= $text_funnel;
|
||
$text_o .= "Принял: ". $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . "\n";
|
||
|
||
if ($r_cl['client_id'] > 0) {
|
||
|
||
$r_cln = $clients_req[$r_cl['client_id']];
|
||
|
||
if (!empty($r_cln['phone'])) {
|
||
$r_cl['phone'] = $r_cln['phone'];
|
||
}
|
||
|
||
$_clnFio = $_hideEc ? mask_fio_for_user_id($r_cln['fio'], $r_ec['from_id']) : $r_cln['fio'];
|
||
$text_o .= "Kлиент: <b> ID ".$r_cl['client_id']." ".$_clnFio."</b>";
|
||
if(!empty($r_cln['phone'])){
|
||
|
||
$phone = $_hideEc ? mask_client_phone($r_cln['phone']) : $r_cln['phone'];
|
||
if(!in_array($r_ec['from_id'], $users_req_exception))
|
||
$text_o .= " тел. " . $phone;
|
||
}
|
||
}
|
||
}
|
||
// if ($r_ec['req_id'] > 0) {
|
||
// $text_o = "<b>Вам передают заявку</b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
// $text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " Принял заявку ID: ".$r_ec['req_id']."\n";
|
||
|
||
// }
|
||
/* if(!empty($r_ec['dop_text'])){
|
||
$dop_tex_o2 = "\n".$r_ec['dop_text']."\n";
|
||
}*/
|
||
}
|
||
|
||
// Добавлен клиент
|
||
// Событие add
|
||
if ($r_ec['event'] == 'add') {
|
||
|
||
$text_o = "<b>Добавлен клиент </b> ID: ".$r_ec['client_id']." <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
if($r_ec['client_id'] == 0 && $r_ec['req_id'] > 0){
|
||
$text_o = "<b>Добавлена заявка </b> ID: ".$r_ec['req_id']." <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
if ($r_cl['client_id'] > 0) {
|
||
|
||
$r_cln = $clients_req[$r_cl['client_id']];
|
||
|
||
if (!empty($r_cln['phone'])) {
|
||
$r_cl['phone'] = $r_cln['phone'];
|
||
}
|
||
|
||
$_clnFio = $_hideEc ? mask_fio_for_user_id($r_cln['fio'], $r_ec['from_id']) : $r_cln['fio'];
|
||
$dop_tex_o .= " по клиенту: <b> ID ".$r_cl['client_id']." ".$_clnFio."</b>";
|
||
if(!empty($r_cln['phone'])){
|
||
$phone = $_hideEc ? mask_client_phone($r_cln['phone']) : $r_cln['phone'];
|
||
if(!in_array($r_ec['from_id'], $users_req_exception))
|
||
$dop_tex_o .= " тел. " . $phone;
|
||
}
|
||
}
|
||
}
|
||
if(!empty($r_ec['dop_text'])){
|
||
$dop_tex_o2 = "\n".$r_ec['dop_text']."\n";
|
||
}
|
||
}
|
||
if ($r_ec['event'] == 'union') {
|
||
//$text_o = "<b>Добавлен клиент </b> ID: ".$r_ec['client_id']." <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
if($r_ec['client_id'] == 0 && $r_ec['req_id'] > 0){
|
||
$text_o = "<b>Заявки объединены: </b>";
|
||
|
||
}
|
||
if(!empty($r_ec['dop_text'])){
|
||
$dop_tex_o2 = "\n".str_replace("<br>", "\n", $r_ec['dop_text'])."\n";
|
||
|
||
$text_o .= $dop_tex_o2;
|
||
|
||
}
|
||
}
|
||
if ($r_ec['event'] == 'transmitted_parallel' && $r_ec['read'] == 0) {
|
||
|
||
$text_o = "<b>Вас приглашают к совместной работе</b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
//var_dump($text_o);
|
||
if ($r_ec['req_id'] > 0) {
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " приглашает вас к совместной работе по заявке\n";
|
||
|
||
if ($r_cl['client_id'] > 0) {
|
||
|
||
$r_cln = $clients_req[$r_cl['client_id']];
|
||
|
||
if (!empty($r_cln['phone'])) {
|
||
$r_cl['phone'] = $r_cln['phone'];
|
||
}
|
||
|
||
}
|
||
//var_dump($text_o);
|
||
} else {
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " приглашает вас к совместной работе по клиенту\n";
|
||
}
|
||
} else if ($r_ec['event'] == 'transmitted_parallel' && $r_ec['read'] == 2) {
|
||
if ($r_ec['req_id'] > 0) {
|
||
$text_o = "<b>Поступила заявка по которой вы назначены партнером </b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " - ответственный по заявке\n";
|
||
|
||
if ($r_cl['client_id'] > 0) {
|
||
|
||
$r_cln = $clients_req[$r_cl['client_id']];
|
||
|
||
if (!empty($r_cln['phone'])) {
|
||
$r_cl['phone'] = $r_cln['phone'];
|
||
}
|
||
}
|
||
//var_dump($text_o);
|
||
} else {
|
||
$text_o = "<b>Поступил клиент по которому вы назначены партнером </b> <i> (время создания " . date("d.m.Y H:i", strtotime($r_ec['date'])) . ")</i>\n";
|
||
$text_o .= $post . " " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']) . " - ответственный по клиенту\n";
|
||
//var_dump($text_o);
|
||
}
|
||
} else if ($r_ec['req_id'] > 0) {
|
||
if($r_ec['event'] != 'transmitted_adjacent'){
|
||
if ($r_cl['client_id'] > 0) {
|
||
|
||
$r_cln = $clients_req[$r_cl['client_id']];
|
||
$_clnFio = $_hideEc ? mask_fio_for_user_id($r_cln['fio'], $r_ec['from_id']) : $r_cln['fio'];
|
||
$dop_tex_o .= " по клиенту: <b> ID ".$r_cl['client_id']." ".$_clnFio."</b>";
|
||
if(!empty($r_cln['phone'])){
|
||
$phone = $_hideEc ? mask_client_phone($r_cln['phone']) : $r_cln['phone'];
|
||
if(!in_array($r_ec['user_id'], $users_req_exception)){
|
||
$dop_tex_o .= " тел. " . $phone;
|
||
} else {
|
||
if($r_cl['type_id'] != 4 && $r_cl['heir'] != 4){
|
||
if(!in_array($r_ec['from_id'], $users_req_exception))
|
||
$dop_tex_o .= " тел. " . $phone;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//var_dump($text_o);
|
||
// echo $text_o.'<br>';
|
||
if($r_ec['event'] != 'transmitted_adjacent' && $r_ec['event'] != 'union' && $r_ec['event'] != 'add'){
|
||
$_clFio = $_hideEc ? mask_fio_for_user_id($r_cl['fio'], $r_ec['from_id']) : $r_cl['fio'];
|
||
$text_o .= "<b>" . $_clFio . "</b>";
|
||
if(isset($dop_tex_o2)){
|
||
$text_o .= $dop_tex_o2;
|
||
}
|
||
if(isset($dop_tex_o) && $r_ec['req_id'] > 0){
|
||
$text_o .= $dop_tex_o;
|
||
} else if (!empty($r_cl['phone'])) {
|
||
$phone = $_hideEc ? mask_client_phone($r_cl['phone']) : $r_cl['phone'];
|
||
// $phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
if(!in_array($r_ec['from_id'], $users_req_exception))
|
||
$text_o .= " тел. " . $phone;
|
||
}
|
||
}
|
||
if(!empty($r_cl['opis']) && $r_ec['event'] != 'union'){
|
||
$text_o .= "\nОписание: ".$r_cl['opis'];
|
||
}
|
||
if (!empty($r_cl['of_objects']) && $r_ec['event'] != 'union') {
|
||
|
||
$r_obj =$objects[$r_cl['of_objects']];
|
||
$name = '';
|
||
if (!empty($r_obj['nazv'])) {
|
||
$name .= $r_obj['nazv'];
|
||
}
|
||
|
||
if (!empty($r_obj['adres'])) {
|
||
if ($name != '') {
|
||
$name .= ',';
|
||
}
|
||
|
||
$name .= ' адрес: ' . $r_obj['adres'];
|
||
}
|
||
if (!empty($name)) {
|
||
$text_o .= "\nЗаявка по объекту ID ".$r_obj['id']." " . $name;
|
||
}
|
||
}
|
||
|
||
// echo $text_o."\n";
|
||
|
||
$text_o = str_replace(['<i>', '</i>', '<br>', '<b>', '</b>', '«', '»'], ['<i>', '</i>', "\n", '<b>', '</b>', '', ''], htmlentities($text_o));
|
||
//echo $text_o."\n\n";
|
||
|
||
$chatId = $users[$r_ec['from_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
|
||
$keyboardArr = [];
|
||
if($r_ec['event'] == 'transmitted' || $r_ec['event'] == 'transmitted_parallel'){
|
||
$keyboardArr = [
|
||
[
|
||
[
|
||
'text' => 'Принять в работу',
|
||
'callback_data' => serialize(array('action'=>16,'id'=>$r_ec['id']))
|
||
|
||
]
|
||
]
|
||
|
||
];
|
||
}
|
||
$tel->send($text_o, $chatId, null, $keyboardArr);
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
// mysql_query("UPDATE events_clients SET send_telegramm = 1 WHERE id = " . $r_ec['id']);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
echo 'Время выполнения скрипта 7: '.round(microtime(true) - $start6, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 7'."\n", FILE_APPEND);
|
||
$start7 = microtime(true);
|
||
/*$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);*/
|
||
// $tel = new Telegram(false, $pdo);
|
||
|
||
$update_ids = array();
|
||
$events_object = array();
|
||
$client_ids = array();
|
||
$req_ids = array();
|
||
$client_req_ids = array();
|
||
$object_ids = array();
|
||
$users_ec_ids = array();
|
||
$users_ec = array();
|
||
$clients = array();
|
||
$reqs = array();
|
||
$clients_req = array();
|
||
$objects = array();
|
||
$objClientsLike = [];
|
||
//Переданные объекты
|
||
$sql_object_send = "SELECT * FROM objects_to_send WHERE new_user_id in (".implode(',',$user_ids).") AND send_telegramm=0";
|
||
//echo $sql_object_send."\n";
|
||
//die();
|
||
$q_object_send = $pdo->query($sql_object_send);
|
||
while($r_object_send = $pdo->fetch_assoc($q_object_send)){
|
||
$events_object[] = $r_object_send;
|
||
$users_ec_ids[] = $r_object_send['sended_user_id'];
|
||
$object_ids[] = $r_object_send['object_id'];
|
||
$update_ids[] = $r_object_send['id'];
|
||
|
||
if(count($update_ids) == 50){
|
||
$sql_up = "update objects_to_send set send_telegramm = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
if(!mysql_query($sql_up)){
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.mysql_error()."\n", FILE_APPEND);
|
||
}
|
||
$update_ids = array();
|
||
}
|
||
}
|
||
if(!empty($update_ids)){
|
||
$sql_up = "update objects_to_send set send_telegramm = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
//echo $sql_up."\n";
|
||
if(!mysql_query($sql_up)){
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error_sql.txt", date('d.m.y H:i:s').' '.$sql_up.' '.mysql_error()."\n", FILE_APPEND);
|
||
}
|
||
//$pdo->query("update objects_to_send set send_telegramm = 1 WHERE id in (".implode(',',$update_ids).")");
|
||
}
|
||
if(!empty($users_ec_ids)){
|
||
$sql_in = "SELECT `id`, `agency_name`, `first_name`, `last_name`, `middle_name`, `agency`, `manager` FROM `users` WHERE `id` in (".implode(',', $users_ec_ids).")";
|
||
$q_in = $pdo->query($sql_in);
|
||
while($r_u = $pdo->fetch_assoc($q_in)){
|
||
$users_ec[$r_u['id']] = $r_u;
|
||
}
|
||
}
|
||
|
||
if(!empty($object_ids)){
|
||
|
||
/* $sqlClients = "SELECT `id`, `fio`, `email`, `phone` FROM `clients` WHERE " . implode(" or ", $objClientsLike);
|
||
|
||
$q_client = $pdo->query($sqlClients);
|
||
while($r_client = $pdo->fetch_assoc($q_client)){
|
||
$clients[$r_client['id']] = $r_client;
|
||
}*/
|
||
$sql_obj = "SELECT nazv, id FROM `objects` WHERE id in (".implode(',',$object_ids).")";
|
||
$q_obj = $pdo->query($sql_obj);
|
||
while($r_obj = $pdo->fetch_assoc($q_obj)){
|
||
$objects[$r_obj['id']] = $r_obj;
|
||
}
|
||
}
|
||
|
||
foreach($events_object as $r_object_send){
|
||
$r_in = $users_ec[$r_object_send['sended_user_id']];
|
||
$post = "Сотрудник " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']);
|
||
if ($r_in['agency'] == 1) {
|
||
$post = "Агентство " . $r_in['agency_name'];
|
||
} else {
|
||
if ($r_in['manager'] == 1) {
|
||
$post = "Менеджер " . trim($r_in['last_name'] . ' ' . $r_in['first_name'] . ' ' . $r_in['middle_name']);
|
||
}
|
||
}
|
||
|
||
$clientsNum = 0;
|
||
$clientsString = '';
|
||
|
||
$clientObjIds = [];
|
||
/*$sql_cl_obj = "SELECT client_id FROM client_objects WHERE object_id = {$r_object_send['object_id']}";
|
||
$q_cl_obj = $pdo->query($sql_cl_obj);
|
||
|
||
|
||
while($r_cl_obj = $pdo->fetch_assoc($q_cl_obj)){
|
||
$clientObjIds[] = $r_cl_obj['client_id'];
|
||
}
|
||
|
||
if(!empty($clientObjIds)){
|
||
$sql_clients = "SELECT `id`, `fio`, `email` FROM `clients` WHERE id in (".implode(',', $clientObjIds).")";
|
||
|
||
|
||
$q_client = $pdo->query($sql_clients);
|
||
|
||
if($pdo->num_rows($q_client) > 0){
|
||
while($client = $pdo->fetch_assoc($q_client)) {
|
||
$clientsNum++;
|
||
$clientsString = $clientsString . ($clientsNum > 1 ? ", " : "") . $client['fio'];
|
||
if(!empty($client['phone'])){
|
||
$clientsString .= ' ('.$client['phone'].')';
|
||
}
|
||
$clientsString .= "\n";
|
||
}
|
||
}
|
||
}*/
|
||
|
||
// $sql_obj = "SELECT nazv, id FROM `objects` WHERE id= $r_object_send[object_id]";
|
||
// $q_obj = mysql_query($sql_obj);
|
||
$r_obj = $objects[$r_object_send['object_id']];
|
||
|
||
$first_line = $post . "\nпередал вам объект ID ".$r_obj['id']." «<b>" . $r_obj['nazv'] . "</b>»";
|
||
|
||
|
||
if ($clientsNum > 0) {
|
||
if ($clientsNum > 1) {
|
||
$first_line = $first_line . "\n и клиентов <b>" . $clientsString."</b>";
|
||
|
||
} else {
|
||
$first_line = $first_line . "\n и клиента <b>" . $clientsString."</b>";
|
||
|
||
}
|
||
}
|
||
$first_line .="\n <i> (время создания " . date("d.m.Y H:i", strtotime($r_object_send['create_date'])) . ")</i>";
|
||
//echo $first_line."\n";
|
||
$chatId = $users[$r_object_send['new_user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
|
||
|
||
|
||
$keyboardArr = [];
|
||
|
||
$keyboardArr = [
|
||
[
|
||
[
|
||
'text' => 'Принять в работу',
|
||
'callback_data' => serialize(array('action'=>17,'id'=>$r_object_send['id']))
|
||
|
||
]
|
||
]
|
||
|
||
];
|
||
|
||
$tel->send($first_line, $chatId, null, $keyboardArr);
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
echo 'Время выполнения скрипта 8: '.round(microtime(true) - $start7, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 8'."\n", FILE_APPEND);
|
||
$start8 = microtime(true);
|
||
|
||
/*$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
//уведомления по выпискам
|
||
$update_ids = array();
|
||
$sql_req_notice = "SELECT * FROM discharge_user_notice WHERE user_id in (".implode(',', $user_ids).") AND sended = 0";
|
||
$q_req_notice = $pdo->query($sql_req_notice);
|
||
while ($notice = $pdo->fetch_assoc($q_req_notice)) {
|
||
$chatId = $users[$notice['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
$tel->send($notice['text'], $chatId);
|
||
|
||
}
|
||
$update_ids[] = $notice['id'];
|
||
|
||
|
||
}
|
||
if(!empty($update_ids)){
|
||
$sql_req_notice_u = "UPDATE discharge_user_notice SET sended = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
$pdo->query($sql_req_notice_u);
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 9: '.round(microtime(true) - $start8, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 9'."\n", FILE_APPEND);
|
||
$start9 = microtime(true);
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
//Уведомления о рекламе
|
||
$areas = array('yandex' => 'Яндекс', 'avito' => 'Авито', 'cian' => 'Циан', 'domclick' => 'Домклик', 'jcad' => 'JCAD');
|
||
|
||
$update_ids = array();
|
||
$sql_ad = "SELECT * FROM object_ad WHERE manager_id in (".implode(',', $user_ids).") AND send = 0";
|
||
|
||
$q_ad = $pdo->query($sql_ad);
|
||
while($r_ad = $pdo->fetch_assoc($q_ad)){
|
||
$sql_in = "SELECT `first_name`, `last_name`, `middle_name`, `agency`, `manager` FROM `users` WHERE `id` = {$r_ad['user_id']}";
|
||
$q_in = $pdo->query($sql_in);
|
||
$r_in = $pdo->fetch_assoc($q_in);
|
||
$post = "Сотрудник";
|
||
if ($r_in['agency'] == 1) {
|
||
$post = "Агенство";
|
||
} else if ($r_in['manager'] == 1) {
|
||
$post = "Менеджер";
|
||
}
|
||
|
||
$em = $post." ".trim($r_in['last_name']." ".$r_in['first_name']." ".$r_in['middle_name']);
|
||
$sql_o = "SELECT id, adres, stoim FROM objects WHERE id = {$r_ad['object_id']}";
|
||
|
||
$q_o = $pdo->query($sql_o);
|
||
$obj = $pdo->fetch_assoc($q_o);
|
||
if($obj){
|
||
$text_o = "<b>".$em."</b>\n";
|
||
if($r_ad['on_off'] == 0){
|
||
$text_o .= "убрал объект из рекламы";
|
||
if(!empty($r_ad['area']) && isset($areas[$r_ad['area']])){
|
||
$text_o .= " ".$areas[$r_ad['area']];
|
||
}
|
||
$text_o .= "\n";
|
||
} else {
|
||
$text_o .= "добавил объект в рекламу\n";
|
||
}
|
||
$text_o .= "ID: ".$obj['id']."\n";
|
||
$text_o .= "Адрес: ".$obj['adres']."\n";
|
||
$text_o .= "Цена: ".$obj['stoim']."\n";
|
||
if($r_ad['on_off'] == 0){
|
||
$text_o .= "";
|
||
} else {
|
||
$text_o .= "Необходимо проверить и выставить данный объект в рекламу";
|
||
}
|
||
|
||
$chatId = $users[$r_ad['manager_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
$tel->send($text_o, $chatId);
|
||
|
||
}
|
||
|
||
$update_ids[] = $r_ad['id'];
|
||
|
||
} else {
|
||
$update_ids[] = $r_ad['id'];
|
||
}
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
$sql_req_notice_u = "UPDATE object_ad SET send = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
$pdo->query($sql_req_notice_u);
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 10: '.round(microtime(true) - $start9, 4)." сек.\n";
|
||
$start10 = microtime(true);
|
||
/*$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
//Уведомления о закрытии этапа
|
||
$update_ids = array();
|
||
$sql_st = "SELECT * FROM `step_notify_closure` WHERE send = 0 AND user_id in (".implode(',', $user_ids).")";
|
||
$q_st = $pdo->query($sql_st);
|
||
while($r_st = $pdo->fetch_assoc($q_st)){
|
||
$text = htmlspecialchars_decode(str_replace(['<i>', '</i>', '<br>', '<b>', '</b>', '«', '»'], ['<i>', '</i>', "\n", '<b>', '</b>', '', ''],$r_st['text']));
|
||
$chatId = $users[$r_st['user_id']]['telegramm_chat_id'];
|
||
if($chatId>0){
|
||
$tel->send($text, $chatId);
|
||
|
||
}
|
||
$update_ids[] = $r_st['id'];
|
||
|
||
}
|
||
|
||
if(!empty($update_ids)){
|
||
$sql_req_notice_u = "UPDATE step_notify_closure SET send = 1 WHERE id in (".implode(',',$update_ids).")";
|
||
$pdo->query($sql_req_notice_u);
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 11: '.round(microtime(true) - $start10, 4)." сек.\n";
|
||
$start11 = microtime(true);
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
|
||
if (date("H") == 10 && ! empty($users_ids_10)) {
|
||
|
||
$startDateWhereBirthday = "DATE_FORMAT(birthday, '%m-%d') ='" . date('m-d') . "'";
|
||
$sql_b = "SELECT id, fio, birthday, phone, who_work FROM clients WHERE cancel=0 AND who_work in (".implode(',', $users_ids_10).") AND " . $startDateWhereBirthday;
|
||
|
||
$q_b = $pdo->query($sql_b);
|
||
while ($r_b = $pdo->fetch_assoc($q_b)) {
|
||
// hide_client_contacts: получатель = $r_b['who_work']
|
||
$_hideB = should_hide_contacts_for_user_id($r_b['who_work']);
|
||
$text_o = "<b>Сегодня День рождения</b>\n";
|
||
$_bFio = $_hideB ? mask_fio_for_user_id($r_b['fio'], $r_b['who_work']) : $r_b['fio'];
|
||
$text_o .= "у клиента «<b>" . $_bFio . "</b>»\n";
|
||
if (!empty($r_b['phone'])) {
|
||
if ($_hideB) {
|
||
$phone = mask_client_phone($r_b['phone']);
|
||
} else {
|
||
$phone = $r_b['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
}
|
||
if(!in_array($r_b['who_work'], $users_req_exception))
|
||
$text_o .= "телефон: " . $phone;
|
||
}
|
||
// $text_o = str_replace(['<i>', '</i>','<br>'],['<i>','</i>',"\n"], htmlentities($text_o));
|
||
|
||
$chatId = $users[$r_b['who_work']]['telegramm_chat_id'];
|
||
if($chatId>0 && $chatId != 8244379328){
|
||
$tel->send($text_o, $chatId);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 10:00:00') . "' WHERE id in (".implode(',', $users_ids_10).")";
|
||
|
||
$pdo->query($sql_t_u);
|
||
}
|
||
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 87'."\n", FILE_APPEND);
|
||
$start88 = microtime(true);
|
||
|
||
// Уведомления о днях рождения у сотрудников агенств
|
||
if (date("H") == 11 && !empty($users_ids_11)) {
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' start 88'."\n", FILE_APPEND);
|
||
foreach($users_ids_11 as $user){
|
||
//if($user['id'] == 15163){
|
||
//$agencyId = $user['id'];
|
||
$agencyId = User::getUserAgencyID($user['id']);
|
||
if((int)$agencyId == 0){
|
||
$agencyId = $user['id'];
|
||
}
|
||
/* if (isset($user['id_manager'])) {
|
||
if (boolval($user['id_manager'])) {
|
||
$agencyId = $user['id_manager'];
|
||
}
|
||
}*/
|
||
$usersIds = [];
|
||
//echo "/***** ".$agencyId."******/\n";
|
||
|
||
$sql_users = "SELECT id FROM users WHERE id in (select id from users where id=$agencyId or id_manager=$agencyId or id_manager in
|
||
(select id from users where id_manager=$agencyId or id_manager in
|
||
(select id from users where id_manager=$agencyId)))";
|
||
$q_users = $pdo->query($sql_users);
|
||
while($r_users = $pdo->fetch_assoc($q_users)){
|
||
$usersIds[] = (int)$r_users['id'];
|
||
}
|
||
if (!empty($usersIds)) {
|
||
$startDateWhereBirthday = "DATE_FORMAT(birthday, '%m-%d') = '" . date('m-d', strtotime("+1 day")) . "'";
|
||
$sql_b = "SELECT id, fio, last_name, first_name, middle_name, birthday, phone FROM users WHERE (id IN (" . implode(',', $usersIds) . ") AND id != $user[id]) AND " . $startDateWhereBirthday;
|
||
// echo $sql_b."\n";
|
||
|
||
$q_b = $pdo->query($sql_b);
|
||
while ($r_b = $pdo->fetch_assoc($q_b)) {
|
||
$fio = trim($r_b['last_name'] . ' ' . $r_b['first_name'] . ' ' . $r_b['middle_name']);
|
||
$text_o = "Завтра <b>День рождения</b>\n";
|
||
$text_o .= "у <b>" . $fio . "</b>, сотрудника Вашего агентства.\n";
|
||
|
||
if (!empty($r_b['phone'])) {
|
||
$phone = $r_b['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
if(!in_array($user['id'], $users_req_exception))
|
||
$text_o .= " Телефон: " . $phone . ".\n";
|
||
}
|
||
|
||
|
||
$chatId = $users[$user['id']]['telegramm_chat_id'];
|
||
if($chatId>0 && $chatId != 8244379328){
|
||
// echo $text_o."\n";
|
||
$tel->send($text_o, $chatId);
|
||
////file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.log", date('d.m.y H:i:s').' '.$user['id'].' '.$chatId.' '.$text_o."\n", FILE_APPEND);
|
||
}
|
||
}
|
||
}
|
||
//}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 11:00:00') . "' WHERE id in (".implode(',', $user_ids).")";
|
||
// echo $sql_t_u;
|
||
$pdo->query($sql_t_u);
|
||
}
|
||
|
||
echo 'Время выполнения скрипта 88: '.round(microtime(true) - $start88, 4)." сек.\n";
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end 88'."\n", FILE_APPEND);
|
||
|
||
// Уведомления о днях рождения у сотрудников партнёров
|
||
if (date("H") == 12 && !empty($users_ids_12)) {
|
||
/* $pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$tel = new Telegram(false, $pdo);*/
|
||
$startDateWhereBirthday = "DATE_FORMAT(employee.birthday, '%m-%d') = '" . date('m-d') . "'";
|
||
foreach($users_ids_12 as $user){
|
||
$sql_b = "SELECT employee.id,
|
||
employee.partner_id,
|
||
employee.name,
|
||
employee.phone,
|
||
employee.birthday,
|
||
partner.name AS partner_name,
|
||
partner.resident AS partner_resident
|
||
FROM `partners_employees` AS employee
|
||
LEFT JOIN `partners` AS partner ON partner.id = employee.partner_id
|
||
LEFT JOIN `users` AS users ON employee.created_by = users.id OR employee.updated_by
|
||
WHERE (users.id = " . $user['id'] . " OR users.id_manager = " . $user['id'] . " OR users.id_manager IN (
|
||
SELECT id FROM `users` WHERE id_manager = " . $user['id'] . "
|
||
))
|
||
AND (
|
||
employee.created_by = " . $user['id'] . " OR
|
||
employee.updated_by = " . $user['id'] . " OR
|
||
employee.id IN (
|
||
SELECT clients.employee_id
|
||
FROM `clients` AS clients
|
||
WHERE clients.who_work = " . $user['id'] . "
|
||
)
|
||
)
|
||
AND employee.birthday_notify > 0 AND employee.status > 0
|
||
AND $startDateWhereBirthday
|
||
GROUP BY employee.id";
|
||
|
||
$q_b = $pdo->query($sql_b);
|
||
while ($r_b = $pdo->fetch_assoc($q_b)) {
|
||
if (!empty($r_b['name']) && !empty($r_b['partner_name'])) {
|
||
$text_o = "<b>Сегодня День рождения</b>\n";
|
||
$text_o .= "у сотрудника «<b>" . $r_b['name'] . "</b>» партнёра «<b>" . $r_b['partner_name'] . (!empty($r_b['partner_resident']) ? ", " . $r_b['partner_resident'] : "") . "</b>»\n";
|
||
if (!empty($r_b['phone'])) {
|
||
$phone = $r_b['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
}
|
||
if(!in_array($user['id'], $users_req_exception))
|
||
$text_o .= "телефон: " . $phone;
|
||
}
|
||
$chatId = $users[$user['id']]['telegramm_chat_id'];
|
||
if($chatId>0 && $chatId != 8244379328){
|
||
$tel->send($text_o, $chatId);
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 12:00:00') . "' WHERE id in (".implode(',', $user_ids).")";
|
||
|
||
$pdo->query($sql_t_u);
|
||
}
|
||
|
||
|
||
echo 'Время выполнения скрипта: '.round(microtime(true) - $start, 4).' сек.';
|
||
|
||
/*-----------------------------------------------------------------------------------------------------------------*/
|
||
|
||
const TOKEN = '793676666:AAGFo66CjsmO2KxZVRwQbH8pLTvenpsHiHI';
|
||
const BASE_URL = 'https://api.telegram.org/bot' . TOKEN . '/';
|
||
|
||
require_once $_SERVER['DOCUMENT_ROOT'] . "/telegramm/vendor/autoload.php";
|
||
|
||
$bot = new \TelegramBot\Api\Client(TOKEN);
|
||
|
||
//Получение уведомлений с ПроНовостройки
|
||
$sqlpro = "SELECT block_message.*, blocks.name as block_name FROM block_message left join blocks on blocks.id = block_message.block_id WHERE block_message.tel = 0";
|
||
$qpro = $pdo->query($sqlpro);
|
||
$names = array('phone' => 'Телефон', 'fio' => 'Имя', 'block_name' => 'ЖК', 'income' => 'Месячный доход семьи', 'work' => 'Общий трудовой стаж', 'payment' => 'Первоначальный взнос', 'flatId' => 'ID квартиры', 'date' => 'Дата', 'time' => 'Время');
|
||
// echo mysql_num_rows($qpro);
|
||
|
||
while ($rpro = $pdo->fetch_assoc($qpro)) {
|
||
$chatId = 255183898;
|
||
$title = 'Клиент с ПроНовостройки';
|
||
$text = '';
|
||
$schedule_date = date("d.m.Y", strtotime($rpro['date_created']));
|
||
switch ($rpro['subject']) {
|
||
case 'consultation':{
|
||
$text .= "<b>Получить консультацию юриста</b>\n";
|
||
break;
|
||
}
|
||
case 'mortgage':{
|
||
$text .= "<b>Подать заявки во все банки</b>\n";
|
||
break;
|
||
}
|
||
case 'tobook':{
|
||
$text .= "<b>Забронироваать и получить дополнительную скидку</b>\n";
|
||
break;
|
||
}
|
||
case 'excursion':{
|
||
$text .= "<b>Записаться на экскурсию</b>\n";
|
||
break;
|
||
}
|
||
case 'tocall':{
|
||
$text .= "<b>Заявка на звонок</b>\n";
|
||
break;
|
||
}
|
||
case 'report':{
|
||
$text .= "<b>Заявка на отчет</b>\n";
|
||
break;
|
||
}
|
||
}
|
||
foreach ($rpro as $key => $value) {
|
||
// echo $key.'---';
|
||
if ($key != 'date_created' && $key != 'id' && $key != 'block_id' && $key != 'subject' && !empty($value)) {
|
||
|
||
$text .= $names[$key] . ": " . $value . "\n";
|
||
}
|
||
}
|
||
$text .= "<i> (время создания " . date("d.m.Y H:i", strtotime($rpro['date_created'])) . ")</i>\n";
|
||
// echo $text.'<br>';
|
||
try {
|
||
$bot->sendMessage($chatId, $text, 'html');
|
||
} catch (Exception $e) {
|
||
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
|
||
// file_put_content($_SERVER['DOCUMENT_ROOT']."/".telegramm_error.log.$e->getMessage(), )
|
||
}
|
||
|
||
$pdo->query("UPDATE block_message SET tel = 1 WHERE id = " . $rpro['id']);
|
||
|
||
}
|
||
$bot->run();
|
||
|
||
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/telegramm_error.txt", date('d.m.y H:i:s').' end ', FILE_APPEND);
|
||
|
||
|
||
// Уведомления о днях рождения у клиентов
|
||
/* if (date("H") == 10) {
|
||
if (empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 10:00:00'))) {
|
||
$startDateWhereBirthday = "DATE_FORMAT(birthday, '%m-%d') ='" . date('m-d') . "'";
|
||
$sql_b = "SELECT id, fio, birthday, phone FROM clients WHERE who_work = " . $r['id'] . " AND " . $startDateWhereBirthday;
|
||
// echo $sql_b;
|
||
$q_b = mysql_query($sql_b);
|
||
while ($r_b = mysql_fetch_assoc($q_b)) {
|
||
$text_o = "<b>Сегодня День рождения</b>\n";
|
||
$text_o .= "у клиента «<b>" . $r_b['fio'] . "</b>»\n";
|
||
if (!empty($r_b['phone'])) {
|
||
$phone = $r_b['phone'];
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
$text_o .= "телефон: " . $phone;
|
||
}
|
||
// $text_o = str_replace(['<i>', '</i>','<br>'],['<i>','</i>',"\n"], htmlentities($text_o));
|
||
// // echo $text_o;
|
||
try {
|
||
$bot->sendMessage($chatId, $text_o, 'html');
|
||
} catch (Exception $e) {
|
||
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
|
||
// file_put_content($_SERVER['DOCUMENT_ROOT']."/".telegramm_error.log.$e->getMessage(), )
|
||
}
|
||
}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 10:00:00') . "' WHERE id = " . $r['id'];
|
||
// echo $sql_t_u;
|
||
mysql_query($sql_t_u);
|
||
}
|
||
|
||
// Уведомления о днях рождения у сотрудников агенств
|
||
/* if (date("H") == 11) {
|
||
if (empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 11:00:00'))) {
|
||
|
||
$agencyId = $r['id'];
|
||
if (isset($r['id_manager'])) {
|
||
if (boolval($r['id_manager'])) {
|
||
$agencyId = $r['id_manager'];
|
||
}
|
||
}
|
||
|
||
$usersIds = User::getAllAgencyUsers($agencyId);
|
||
if (!empty($usersIds)) {
|
||
$startDateWhereBirthday = "DATE_FORMAT(birthday, '%m-%d') = '" . date('m-d', strtotime("+1 day")) . "'";
|
||
$sql_b = "SELECT id, fio, last_name, first_name, middle_name, birthday, phone FROM users WHERE (id IN (" . implode(',', $usersIds) . ") AND id != $r[id]) AND " . $startDateWhereBirthday;
|
||
// echo $sql_b;
|
||
|
||
$q_b = mysql_query($sql_b);
|
||
while ($r_b = mysql_fetch_assoc($q_b)) {
|
||
$fio = trim($r_b['last_name'] . ' ' . $r_b['first_name'] . ' ' . $r_b['middle_name']);
|
||
$text_o = "Завтра <b>День рождения</b>\n";
|
||
$text_o .= "у <b>" . $fio . "</b>, сотрудника Вашего агентства.\n";
|
||
|
||
if (!empty($r_b['phone'])) {
|
||
$phone = $r_b['phone'];
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
$text_o .= " Телефон: " . $phone . ".\n";
|
||
}
|
||
|
||
try {
|
||
$bot->sendMessage($chatId, $text_o, 'html');
|
||
//var_export([$r['id'], $chatId, $text_o, $sql_b]);
|
||
} catch (Exception $e) {
|
||
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
|
||
// file_put_content($_SERVER['DOCUMENT_ROOT']."/".telegramm_error.log.$e->getMessage(), )
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 11:00:00') . "' WHERE id = " . $r['id'];
|
||
// echo $sql_t_u;
|
||
mysql_query($sql_t_u);
|
||
}
|
||
|
||
// Уведомления о днях рождения у сотрудников партнёров
|
||
/* if (date("H") == 12) {
|
||
if (empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 12:00:00'))) {
|
||
$startDateWhereBirthday = "DATE_FORMAT(employees.birthday, '%m-%d') = '" . date('m-d') . "'";
|
||
|
||
$sql_b = "SELECT employee.id,
|
||
employee.partner_id,
|
||
employee.name,
|
||
employee.phone,
|
||
employee.birthday,
|
||
partner.name AS partner_name,
|
||
partner.resident AS partner_resident
|
||
FROM `partners_employees` AS employee
|
||
LEFT JOIN `partners` AS partner ON partner.id = employee.partner_id
|
||
LEFT JOIN `users` AS users ON employee.created_by = users.id OR employee.updated_by
|
||
WHERE (users.id = " . $r['id'] . " OR users.id_manager = " . $r['id'] . " OR users.id_manager IN (
|
||
SELECT id FROM `users` WHERE id_manager = " . $r['id'] . "
|
||
))
|
||
AND (
|
||
employee.created_by = " . $r['id'] . " OR
|
||
employee.updated_by = " . $r['id'] . " OR
|
||
employee.id IN (
|
||
SELECT clients.employee_id
|
||
FROM `clients` AS clients
|
||
WHERE clients.who_work = " . $r['id'] . "
|
||
)
|
||
)
|
||
AND employee.birthday_notify > 0 AND employee.status > 0
|
||
AND $startDateWhereBirthday
|
||
GROUP BY employee.id";
|
||
|
||
$q_b = mysql_query($sql_b);
|
||
while ($r_b = mysql_fetch_assoc($q_b)) {
|
||
if (!empty($r_b['name']) && !empty($r_b['partner_name'])) {
|
||
$text_o = "<b>Сегодня День рождения</b>\n";
|
||
$text_o .= "у сотрудника «<b>" . $r_b['name'] . "</b>» партнёра «<b>" . $r_b['partner_name'] . (!empty($r_b['partner_resident']) ? ", " . $r_b['partner_resident'] : "") . "</b>»\n";
|
||
if (!empty($r_b['phone'])) {
|
||
$phone = $r_b['phone'];
|
||
$phone = substr($phone, 0, 2) . "(" . substr($phone, 2, 3) . ")" . substr($phone, 5, 3) . "-" . substr($phone, 8, 2) . "-" . substr($phone, 10, 2);
|
||
$text_o .= "телефон: " . $phone;
|
||
}
|
||
|
||
try {
|
||
$bot->sendMessage($chatId, $text_o, 'html');
|
||
//var_export([$r['id'], $chatId, $text_o, $sql_b]);
|
||
} catch (Exception $e) {
|
||
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
|
||
// file_put_content($_SERVER['DOCUMENT_ROOT']."/".telegramm_error.log.$e->getMessage(), )
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 12:00:00') . "' WHERE id = " . $r['id'];
|
||
// echo $sql_t_u;
|
||
mysql_query($sql_t_u);
|
||
}*/
|
||
|
||
// Уведомления о новых объектах по заявкам из автопоиска
|
||
/*if (date("H") == 14) {
|
||
if (empty($r['telegramm_date']) || ($r['telegramm_date'] != date('Y-m-d 14:00:00'))) {
|
||
$autosearch = new AutoSearch();
|
||
if ($results = $autosearch->getSummaryInfo(intval($r['id']), true, true)) {
|
||
$message = $autosearch->buildTelegramMessage($results, $r['id']);
|
||
if (!empty($message)) {
|
||
$message = "<b>Автопоиск (подбор) объектов</b>".$message;
|
||
try {
|
||
if (mb_strlen($message) > 4096) {
|
||
$i = 0;
|
||
$messages = [];
|
||
foreach (preg_split("/(\r\n|\n|\r)/", $message) AS $string) {
|
||
if ((mb_strlen($string) + mb_strlen($messages[$i])) <= 4020) {
|
||
$messages[$i] .= $string."\n";
|
||
} else {
|
||
$i++;
|
||
$messages[$i] .= $string."\n";
|
||
}
|
||
}
|
||
foreach ($messages AS $message) {
|
||
$bot->sendMessage($chatId, $message, 'html');
|
||
//var_export([$user['id'], $chatId, $message]);
|
||
}
|
||
} else {
|
||
$bot->sendMessage($chatId, $message, 'html');
|
||
//var_export([$user['id'], $chatId, $message]);
|
||
}
|
||
} catch (Exception $e) {
|
||
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
|
||
// file_put_content($_SERVER['DOCUMENT_ROOT']."/".telegramm_error.log.$e->getMessage(), )
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$sql_t_u = "UPDATE users SET telegramm_date = '" . date('Y-m-d 14:00:00') . "' WHERE id = " . $r['id'];
|
||
mysql_query($sql_t_u);
|
||
}*/
|
||
|