37 lines
2.1 KiB
PHP
37 lines
2.1 KiB
PHP
<?php
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
if(isset($_POST['cancelId'])){
|
||
$id = (int)$_POST['cancelId'];
|
||
|
||
// Помечаем событие как отменённое
|
||
$sql = "UPDATE user_client_events SET cancel=1 WHERE id = $id";
|
||
mysql_query($sql);
|
||
|
||
// Если событие привязано к сделке — отменяем сделку тоже
|
||
$sql_deal = "SELECT deal_id FROM user_client_events WHERE id = $id AND deal_id IS NOT NULL AND deal_id > 0 LIMIT 1";
|
||
$rez = mysql_query($sql_deal);
|
||
if ($rez && mysql_num_rows($rez) > 0) {
|
||
$row = mysql_fetch_assoc($rez);
|
||
$deal_id = intval($row['deal_id']);
|
||
|
||
// Помечаем сделку как отменённую (status = 2)
|
||
mysql_query("UPDATE deals SET status = 2 WHERE id = $deal_id");
|
||
|
||
// Обнуляем deal_id у связанных заявок
|
||
$dealRow = mysql_fetch_assoc(mysql_query("SELECT side_one_requisition_id, side_two_requisition_id FROM deals WHERE id = $deal_id"));
|
||
$linkedReqs = array_filter(array_map('intval', [$dealRow['side_one_requisition_id'], $dealRow['side_two_requisition_id']]));
|
||
if (!empty($linkedReqs)) {
|
||
mysql_query("UPDATE requisitions SET deal_id = NULL WHERE id IN (" . implode(',', $linkedReqs) . ")");
|
||
}
|
||
|
||
// Запись в историю сделки — кто отменил
|
||
$user_id = $_SESSION['id'];
|
||
$cancel_comment = "Сделка отменена. Отменил: " . $_SESSION['fio'];
|
||
mysql_query("INSERT INTO user_client_events (user_id, deal_id, type, name, comment, create_date) VALUES ($user_id, $deal_id, 'deal', 'Отмена сделки', '" . addslashes($cancel_comment) . "', NOW())");
|
||
|
||
// Помечаем все остальные события этой сделки как отменённые
|
||
mysql_query("UPDATE user_client_events SET cancel = 1 WHERE deal_id = $deal_id AND cancel = 0");
|
||
mysql_query("UPDATE user_object_events SET cancel = 1 WHERE deal_id = $deal_id AND cancel = 0");
|
||
}
|
||
}
|