diff --git a/api/v2/app/src/controllers/CommonController.php b/api/v2/app/src/controllers/CommonController.php index 4c1b3cd..694015a 100644 --- a/api/v2/app/src/controllers/CommonController.php +++ b/api/v2/app/src/controllers/CommonController.php @@ -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; }