65 lines
2.3 KiB
PHP
65 lines
2.3 KiB
PHP
<?php
|
||
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
|
||
|
||
// Number of records fetch
|
||
$numberOfRecords = 10;
|
||
|
||
$idAgent = (int)$_SESSION['id'];
|
||
|
||
$agencyId = User::getAgencyIdForUser($idAgent);
|
||
|
||
// Search text, need check
|
||
$search = isset($_POST['searchTerm'])
|
||
? mysql_escape_string($_POST['searchTerm'])
|
||
: null;
|
||
|
||
$page = isset($_POST['page']) ? (int)$_POST['page'] : 1;
|
||
|
||
$userIds = User::getAllAgencyUsers($agencyId);
|
||
|
||
$sql = "SELECT id FROM clients WHERE ((clients.who_work = $idAgent) OR (clients.who_work = 0 and clients.id_agent in (" . implode(',', $userIds) . "))) AND clients.deleted <> 1 AND clients.cancel = 0";
|
||
|
||
$andLikeFio = $search
|
||
? " and (fio like '%" . trim($search) . "%' or phone like '%" . trim($search) . "%' or email like '%" . trim($search) . "%')"
|
||
: " ";
|
||
|
||
$sqlUnion = " UNION SELECT requisitions.client_id FROM requisitions WHERE ((requisitions.who_work = $idAgent) OR (requisitions.who_work = 0 and requisitions.user_id in (" . implode(',', $userIds) . "))) AND requisitions.deleted <> 1 AND requisitions.cancel = 0";
|
||
|
||
$rez = mysql_query($sql . $andLikeFio . $sqlUnion);
|
||
|
||
$clientIds = [];
|
||
while ($client = mysql_fetch_assoc($rez)) {
|
||
if (!in_array((int)$client['id'], $clientIds)) {
|
||
$clientIds[] = (int)$client['id'];
|
||
}
|
||
}
|
||
|
||
$allCount = count($clientIds);
|
||
$ot = ($page - 1) * $numberOfRecords;
|
||
//$all_pages = ceil($allCount / $numberOfRecords); // not used
|
||
|
||
$orderBy = " ORDER BY fio, ID";
|
||
$limit = " LIMIT " . $ot . ', ' . $numberOfRecords;
|
||
|
||
$sqlClients = "SELECT id, fio, phone, email FROM clients where id IN (" . implode(',', $clientIds) . ")";
|
||
$sqlClientsCount = "SELECT COUNT(id) as cnt FROM clients where id IN (" . implode(',', $clientIds) . ")";
|
||
|
||
$rez = mysql_query($sqlClients . $andLikeFio . $orderBy . $limit);
|
||
$rezCount = mysql_query($sqlClientsCount . $andLikeFio);
|
||
|
||
$response = [];
|
||
$response['items'] = [];
|
||
$response['total_count'] = mysql_fetch_assoc($rezCount)['cnt'];
|
||
|
||
while ($block = mysql_fetch_assoc($rez)) {
|
||
// Маскируем контактные данные клиента, если у пользователя включено скрытие
|
||
mask_client_contacts_inplace($block);
|
||
$response['items'][] = array(
|
||
"id" => $block['id'],
|
||
"text" => $block['fio'] . " (" . $block['email'] . " " . $block['phone'] . ")"
|
||
);
|
||
}
|
||
|
||
echo json_encode($response);
|
||
exit();
|