Add history in req

This commit is contained in:
mac 2026-06-25 16:52:00 +03:00
parent fcbf943e10
commit a6d2d5e12c

View File

@ -7695,8 +7695,87 @@ class CommonController extends ApiController
$data['summ'] = floatval($event['sum']);
$data['time'] = date("H:i", strtotime($time_zone, strtotime($event['create_date'])));
$deal_id_val = !empty($event['deal_id']) ? intval($event['deal_id']) : null;
$data['deal'] = null;
if ($deal_id_val) {
$sql_deal = "SELECT * FROM deals WHERE id = " . $deal_id_val . " AND status != 2 LIMIT 1";
$rez_deal = mysql_query($sql_deal);
if ($rez_deal && mysql_num_rows($rez_deal) > 0) {
$deal_row = mysql_fetch_assoc($rez_deal);
$data['deal']['id'] = intval($deal_row['id']);
$data['deal']['contract_price'] = floatval($deal_row['contract_price']);
$data['deal']['agent_commission'] = floatval($deal_row['agent_commission']);
$deal_sides = [];
foreach (['one', 'two'] as $side_num) {
$side_text = !empty($deal_row['side_' . $side_num]) ? $deal_row['side_' . $side_num] : '';
$side_data = [
'name' => $side_text,
'requisition_id' => null,
'requisition_name' => null,
'client_id' => null,
'client_name' => null,
'object_id' => null,
'object_name' => null,
'object_address' => null,
];
$req_id_val = !empty($deal_row['side_' . $side_num . '_requisition_id']) ? intval($deal_row['side_' . $side_num . '_requisition_id']) : null;
if ($req_id_val) {
$sql_req = "SELECT name, client_id FROM requisitions WHERE id = " . $req_id_val . " LIMIT 1";
$rez_req = mysql_query($sql_req);
if ($rez_req && mysql_num_rows($rez_req) > 0) {
$row_req = mysql_fetch_assoc($rez_req);
$side_data['requisition_id'] = $req_id_val;
$side_data['requisition_name'] = $row_req['name'];
if (!empty($row_req['client_id'])) {
$side_data['client_id'] = intval($row_req['client_id']);
$sql_cl = "SELECT id, fio FROM clients WHERE id = " . intval($row_req['client_id']) . " LIMIT 1";
$rez_cl = mysql_query($sql_cl);
if ($rez_cl && mysql_num_rows($rez_cl) > 0) {
$row_cl = mysql_fetch_assoc($rez_cl);
$side_data['client_name'] = $row_cl['fio'];
}
}
}
}
$obj_id_val = !empty($deal_row['side_' . $side_num . '_object_id']) ? intval($deal_row['side_' . $side_num . '_object_id']) : null;
if ($obj_id_val) {
$side_data['object_id'] = $obj_id_val;
$sql_obj = "SELECT id, nazv, adres FROM objects WHERE id = " . $obj_id_val . " LIMIT 1";
$rez_obj = mysql_query($sql_obj);
if ($rez_obj && mysql_num_rows($rez_obj) > 0) {
$row_obj = mysql_fetch_assoc($rez_obj);
$side_data['object_name'] = $row_obj['nazv'];
$side_data['object_address'] = $row_obj['adres'];
}
}
$deal_sides[$side_num] = $side_data;
}
$data['deal']['sides'] = $deal_sides;
$deal_docs = [];
$sql_ddocs = "SELECT d.id, d.name FROM inner_docs d JOIN deal_inner_doc did ON did.inner_doc_id = d.id WHERE did.deal_id = " . $deal_id_val;
$rez_ddocs = mysql_query($sql_ddocs);
if ($rez_ddocs && mysql_num_rows($rez_ddocs) > 0) {
while ($dd_row = mysql_fetch_assoc($rez_ddocs)) {
$deal_docs[] = [
'id' => intval($dd_row['id']),
'name' => $dd_row['name'],
'url' => $host . '/ajax/getInnerDoc.php?id=' . intval($dd_row['id']) . '&download_pdf=true&t=' . time(),
];
}
}
$data['deal']['documents'] = $deal_docs;
}
}
$data['document'] = null;
if (isset($event['document_id'])) {
if (!$deal_id_val && isset($event['document_id'])) {
$doc_id = $event['document_id'];
if ($doc = \Docs::getInnerDoc(null, $doc_id)) {
@ -7715,8 +7794,6 @@ class CommonController extends ApiController
$rez_cl = mysql_query($sql_cl);
if ($doc_cl = mysql_fetch_assoc($rez_cl)) {
// Маскируем email/phone клиента, если у текущего пользователя
// включено `hide_client_contacts`. Helper сам проверяет право.
$cl_contacts = [];
if ($doc_cl['email'])
$cl_contacts[] = mask_email_value_if_needed($doc_cl['email']);
@ -7730,7 +7807,6 @@ class CommonController extends ApiController
'title' => $doc_cl['fio'],
'contacts' => ((!empty($cl_contacts)) ? ' (' . implode(', ', $cl_contacts) . ')' : ''),
];
// Маскируем title (fio), если он вида "Новый клиент +7...".
$doc_party['title'] = mask_fio_if_contains_phone($doc_party['title']);
$doc_parties[] = $doc_party;
}
@ -7918,6 +7994,7 @@ class CommonController extends ApiController
e.tele2,
e.tracking,
e.cancel,
e.deal_id,
if (
e.from_id <> 0,
(SELECT u.user_logo FROM users as u WHERE u.id = e.from_id),
@ -7993,6 +8070,7 @@ class CommonController extends ApiController
e.tele2,
e.tracking,
e.cancel,
e.deal_id,
if (
e.from_id <> 0,
(SELECT u.user_logo FROM users as u WHERE u.id = e.from_id),
@ -8314,8 +8392,87 @@ class CommonController extends ApiController
$data['summ'] = floatval($event['sum']);
$data['time'] = date("H:i", strtotime($time_zone, strtotime($event['create_date'])));
$deal_id_val = !empty($event['deal_id']) ? intval($event['deal_id']) : null;
$data['deal'] = null;
if ($deal_id_val) {
$sql_deal = "SELECT * FROM deals WHERE id = " . $deal_id_val . " AND status != 2 LIMIT 1";
$rez_deal = mysql_query($sql_deal);
if ($rez_deal && mysql_num_rows($rez_deal) > 0) {
$deal_row = mysql_fetch_assoc($rez_deal);
$data['deal']['id'] = intval($deal_row['id']);
$data['deal']['contract_price'] = floatval($deal_row['contract_price']);
$data['deal']['agent_commission'] = floatval($deal_row['agent_commission']);
$deal_sides = [];
foreach (['one', 'two'] as $side_num) {
$side_text = !empty($deal_row['side_' . $side_num]) ? $deal_row['side_' . $side_num] : '';
$side_data = [
'name' => $side_text,
'requisition_id' => null,
'requisition_name' => null,
'client_id' => null,
'client_name' => null,
'object_id' => null,
'object_name' => null,
'object_address' => null,
];
$req_id_val = !empty($deal_row['side_' . $side_num . '_requisition_id']) ? intval($deal_row['side_' . $side_num . '_requisition_id']) : null;
if ($req_id_val) {
$sql_req = "SELECT name, client_id FROM requisitions WHERE id = " . $req_id_val . " LIMIT 1";
$rez_req = mysql_query($sql_req);
if ($rez_req && mysql_num_rows($rez_req) > 0) {
$row_req = mysql_fetch_assoc($rez_req);
$side_data['requisition_id'] = $req_id_val;
$side_data['requisition_name'] = $row_req['name'];
if (!empty($row_req['client_id'])) {
$side_data['client_id'] = intval($row_req['client_id']);
$sql_cl = "SELECT id, fio FROM clients WHERE id = " . intval($row_req['client_id']) . " LIMIT 1";
$rez_cl = mysql_query($sql_cl);
if ($rez_cl && mysql_num_rows($rez_cl) > 0) {
$row_cl = mysql_fetch_assoc($rez_cl);
$side_data['client_name'] = $row_cl['fio'];
}
}
}
}
$obj_id_val = !empty($deal_row['side_' . $side_num . '_object_id']) ? intval($deal_row['side_' . $side_num . '_object_id']) : null;
if ($obj_id_val) {
$side_data['object_id'] = $obj_id_val;
$sql_obj = "SELECT id, nazv, adres FROM objects WHERE id = " . $obj_id_val . " LIMIT 1";
$rez_obj = mysql_query($sql_obj);
if ($rez_obj && mysql_num_rows($rez_obj) > 0) {
$row_obj = mysql_fetch_assoc($rez_obj);
$side_data['object_name'] = $row_obj['nazv'];
$side_data['object_address'] = $row_obj['adres'];
}
}
$deal_sides[$side_num] = $side_data;
}
$data['deal']['sides'] = $deal_sides;
$deal_docs = [];
$sql_ddocs = "SELECT d.id, d.name FROM inner_docs d JOIN deal_inner_doc did ON did.inner_doc_id = d.id WHERE did.deal_id = " . $deal_id_val;
$rez_ddocs = mysql_query($sql_ddocs);
if ($rez_ddocs && mysql_num_rows($rez_ddocs) > 0) {
while ($dd_row = mysql_fetch_assoc($rez_ddocs)) {
$deal_docs[] = [
'id' => intval($dd_row['id']),
'name' => $dd_row['name'],
'url' => $host . '/ajax/getInnerDoc.php?id=' . intval($dd_row['id']) . '&download_pdf=true&t=' . time(),
];
}
}
$data['deal']['documents'] = $deal_docs;
}
}
$data['document'] = null;
if (isset($event['document_id'])) {
if (!$deal_id_val && isset($event['document_id'])) {
$doc_id = $event['document_id'];
if ($doc = \Docs::getInnerDoc(null, $doc_id)) {
@ -8334,8 +8491,6 @@ class CommonController extends ApiController
$rez_cl = mysql_query($sql_cl);
if ($doc_cl = mysql_fetch_assoc($rez_cl)) {
// Маскируем email/phone клиента, если у текущего пользователя
// включено `hide_client_contacts`. Helper сам проверяет право.
$cl_contacts = [];
if ($doc_cl['email'])
$cl_contacts[] = mask_email_value_if_needed($doc_cl['email']);
@ -8349,7 +8504,6 @@ class CommonController extends ApiController
'title' => $doc_cl['fio'],
'contacts' => ((!empty($cl_contacts)) ? ' (' . implode(', ', $cl_contacts) . ')' : ''),
];
// Маскируем title (fio), если он вида "Новый клиент +7...".
$doc_party['title'] = mask_fio_if_contains_phone($doc_party['title']);
$doc_parties[] = $doc_party;
}