} elseif ($action == 'ChangeTlp') { // if (!$Administrator && !$Moderator) if (!CRights::canEditPointResult($UserId, $RaidId, $TeamId)) { CMmb::setMessage('Нет прав на правку результата для точки'); return; } $pTeamLevelPointId = mmb_validateInt($_POST, 'TeamLevelPointId'); if ($pTeamLevelPointId <= 0) { teamEditError('Не определён ключ результата для точки.'); return; } $pLevelPointId = mmb_validateInt($_POST, 'LevelPointId'); $pTeamId = mmb_validateInt($_POST, 'TeamId'); $pTlpComment = $_POST['TlpComment']; $pErrorId = mmb_validateInt($_POST, 'ErrorId', -1); $TlpYDTs = CSql::timeString2($_POST, 'TlpYear', 'TlpDate', 'TlpTime', false); if ($pTeamId <= 0 or $pLevelPointId <= 0) { teamEditError('Не определён ключ команды или ключ точки для результата.'); return; } $sql = " select count(*) as countresult\n\t from TeamLevelPoints\n\t where team_id = {$pTeamId}\n\t\t and levelpoint_id = {$pLevelPointId}\n\t\t\tand teamlevelpoint_id <> {$pTeamLevelPointId}"; if (CSql::singleValue($sql, 'countresult') > 0) { CMmb::setErrorSm('Результаты по точке уже есть.', 'ReturnAfterErrorTlp'); return; } $sql = "update TeamLevelPoints set levelpoint_id = {$pLevelPointId}\n\t ,team_id = {$pTeamId}\n\t ,error_id = {$pErrorId}\n\t ,teamlevelpoint_comment = '{$pTlpComment}'\n\t ,teamlevelpoint_datetime = {$TlpYDTs}\n\t ,teamlevelpoint_date = NOW()\n\t where teamlevelpoint_id = {$pTeamLevelPointId}"; //echo $sql; MySqlQuery($sql); RecalcTeamResultFromTeamLevelPoints(0, $pTeamId); // RecalcTeamResultFromTeamLevelPoints(25, 0); /*
if ($pLevelPointId <= 0) { raidError('Не определён ключ точки.'); return; } $sql = "select YEAR(NOW()) as nowyear"; $NowYear = (int) CSql::singleValue($sql, 'nowyear'); // вроде есть способы и попроще :) $pPointTypeId = mmb_validateInt($_POST, 'PointTypeId'); $pDistanceId = mmb_validateInt($_POST, 'DistanceId'); $pPointName = trim($_POST['PointName']); $pPointPenalty = mmb_validateInt($_POST, 'PointPenalty'); $pScanPointId = $_POST['ScanPointId']; // todo почему где-то оно -- int, а где-то -- строка // $pLevelId = $_POST['LevelId']; $MinYDTs = CSql::timeString2($_POST, 'MinYear', 'MinDate', 'MinTime'); $MaxYDTs = CSql::timeString2($_POST, 'MaxYear', 'MaxDate', 'MaxTime'); // тут надо поставить проверки $sql = " select count(*) as countresult\r\n\t from LevelPoints\r\n\t where levelpoint_hide = 0 and distance_id = {$pDistanceId}\r\n\t and levelpoint_id <> {$pLevelPointId}\r\n\t and trim(levelpoint_name)= trim('{$pPointName}')"; if ((int) CSql::singleValue($sql, 'countresult') > 0) { raidError('Повтор названия.'); return; } // ,level_id = '".$pLevelId."' $sql = "update LevelPoints set pointtype_id = {$pPointTypeId}\r\n\t ,scanpoint_id = '{$pScanPointId}'\r\n\t ,levelpoint_name = '{$pPointName}'\r\n\t ,levelpoint_penalty = {$pPointPenalty}\r\n\t ,levelpoint_mindatetime = {$MinYDTs}\r\n\t ,levelpoint_maxdatetime = {$MaxYDTs}\r\n\t where levelpoint_id = {$pLevelPointId}"; //echo $sql; MySqlQuery($sql); $statustext = CheckLevelPoints($DistanceId); if (!empty($error)) { $alert = 1; } } elseif ($action == 'HideLevelPoint') {