$dbrep = CTimeManReportFull::GetByID($ID); $rep = $dbrep->Fetch(); if (is_array($rep) && $USER_ID == $rep['USER_ID']) { $arFields = array("MARK" => in_array($_POST["mark"], array("G", "B", "N")) !== false ? $_POST["mark"] : "X"); if ($arFields["MARK"] != "X") { $arFields["APPROVER"] = $USER->GetID(); $arFields["APPROVE"] = "Y"; $arFields["APPROVE_DATE"] = ConvertTimeStamp(time(), "FULL"); } else { $arFields["APPROVE"] = "N"; $arFields["APPROVER"] = 0; $arFields["APPROVE_DATE"] = ""; } CTimeManReportFull::Update($ID, $arFields); $CACHE_MANAGER->Clean(CUserReportFull::getInfoCacheId($USER_ID), 'timeman_report_info'); CReportNotifications::MessageUpdate($ID, $rep, $arFields); } } } elseif ($_POST["mode"] && $OBJID > 0) { $arFields = array("UF_REPORT_PERIOD" => $_POST["mode"], "UF_TM_TIME" => IsAmPmMode() ? convertTimeToMilitary($_POST["time"], 'H:MI T', 'HH:MI') : $_POST["time"], "UF_TM_REPORT_DATE" => $_POST["date"], "UF_TM_DAY" => $_POST["day"], "ID" => $OBJID); if ($_POST["object"] == "user") { $bCanEdit = in_array($OBJID, $arAccessUsers["WRITE"]) && $OBJID != $USER->GetID() || $bCanEditAll || CTimeMan::IsAdmin(); if ($bCanEdit) { $arReportUser = new CUserReportFull($OBJID); $res = $arReportUser->SetPeriod($arFields); $CACHE_MANAGER->Clean(CReportSettings::getSettingsCacheId($OBJID), 'timeman_report_settings'); $CACHE_MANAGER->Clean(CUserReportFull::getInfoCacheId($OBJID), 'timeman_report_info'); } } elseif ($_POST["object"] == "dep") { $arSubordination = CIntranetUtils::GetSubordinateDepartments($USER->GetID(), true); $bCanEdit = in_array($OBJID, $arSubordination) || CTimeMan::IsAdmin();