AuthForm(GetMessage("ACCESS_DENIED")); $bDemo = (CTicket::IsDemo()) ? "Y" : "N"; $bAdmin = (CTicket::IsAdmin()) ? "Y" : "N"; if($bAdmin!="Y" && $bDemo!="Y") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile(__FILE__); $LIST_URL = "/bitrix/admin/ticket_sla_list.php"; $TABLE_NAME = "b_ticket_sla"; $EDIT_URL = $APPLICATION->GetCurPage(); function CheckTime($minute_from, $minute_till) { if (mb_strlen($_POST["MINUTE_FROM_".$i."_".$j]) < 0 && mb_strlen($_POST["MINUTE_TILL_".$i."_".$j]) < 0) return false; $arFrom = explode(':', $minute_from); $minute_from = intval($arFrom[0]*60 + $arFrom[1]); $arTill = explode(':', $minute_till); $minute_till = intval($arTill[0]*60 + $arTill[1]); if ($minute_from >= $minute_till) return false; if ($minute_from > 1440 || $minute_till > 1440 ) return false; return true; } function CheckShedule($shedule) { $iMaxMinute = 0; foreach ($shedule as $key => $value) { $arFrom = explode(':', $value['MINUTE_FROM']); $minute_from = intval($arFrom[0]*60 + $arFrom[1]); $arTill = explode(':', $value['MINUTE_TILL']); $minute_till = intval($arTill[0]*60 + $arTill[1]); if ($iMaxMinute < $minute_from) echo $iMaxMinute = $minute_till; else return false; } return true; } /*************************************************************************** Обработка GET | POST ****************************************************************************/ $arrUSER = array(); $message = false; if (($save <> '' || $apply <> '') && $bAdmin=="Y" && $_SERVER["REQUEST_METHOD"]=="POST" && check_bitrix_sessid()) { $arFields = array("arSITES"=>Array(), "arGROUPS"=>Array(), "arMARKS"=>Array(), "arCATEGORIES"=>Array(), "arCRITICALITIES"=>Array()); foreach ($_POST as $key => $value) { $arFields[$key] = $value; } /* for($i=0; $i<=6; $i++) { if (strlen($_POST["OPEN_TIME_".$i])>0) { $arFields["arSHEDULE"][$i] = array("OPEN_TIME" => $_POST["OPEN_TIME_".$i]); if ($_POST["OPEN_TIME_".$i]=="CUSTOM") { if (intval(${"custom_time_".$i."_counter"})>0) { $bExist = false; for($j=0; $j<=${"custom_time_".$i."_counter"}; $j++) { // проверяем, чтобы время окончания было позже начала if(CheckTime($_POST["MINUTE_FROM_".$i."_".$j], $_POST["MINUTE_TILL_".$i."_".$j])) { $bExist = true; $arFields["arSHEDULE"][$i]["CUSTOM_TIME"][] = array( "MINUTE_FROM" => $_POST["MINUTE_FROM_".$i."_".$j], "MINUTE_TILL" => $_POST["MINUTE_TILL_".$i."_".$j], ); } } if ($bExist) { // проверяем корректно ли заданы промежутки времени if (!CheckShedule($arFields["arSHEDULE"][$i]["CUSTOM_TIME"])) { unset($arFields["arSHEDULE"][$i]["CUSTOM_TIME"]); $bExist = false; } } if (!$bExist) $arFields["arSHEDULE"][$i]["OPEN_TIME"] = "CLOSED"; } } } }*/ $ID = CTicketSLA::Set($arFields, $ID); if (intval($ID) <= 0) { if($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SUP_ERROR"), $e); } else { //if($obException = $APPLICATION->GetException()) $strError = $obException->GetString()."
"; //if (strlen($strError)<=0) //{ } } else { if ($save <> '') { LocalRedirect($LIST_URL."?lang=".LANGUAGE_ID); } else { LocalRedirect($EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID."&tabControl_active_tab=".urlencode($tabControl_active_tab)); } } $DB->PrepareFields($TABLE_NAME); } $arrSites = array(); $rs = CSite::GetList(); while ($ar = $rs->Fetch()) $arrSites[$ar["ID"]] = $ar; $arCategory = $arMark = $arCriticality = array(); $rs = CTicketDictionary::GetList("s_dropdown", '', array("TYPE" => "C")); while($ar = $rs->Fetch()) $arCategory[] = $ar; $rs = CTicketDictionary::GetList("s_dropdown", '', array("TYPE" => "K")); while($ar = $rs->Fetch()) $arCriticality[] = $ar; $rs = CTicketDictionary::GetList("s_dropdown", '', array("TYPE" => "M")); while($ar = $rs->Fetch()) $arMark[] = $ar; $rs = CTicketSLA::GetByID($ID); if (!$rs || !$rs->ExtractFields()) { $ID=0; $str_PRIORITY = 100; //for($i=0;$i<=6;$i++) $arSHEDULE[$i]["OPEN_TIME"] = "24H"; } else { $arGROUPS = CTicketSLA::GetGroupArray($ID); //$arSHEDULE = CTicketSLA::GetSheduleArray($ID); $arSITES = CTicketSLA::GetSiteArray($ID); $arCATEGORIES = CTicketSLA::GetCategoryArray($ID); $arCRITICALITIES = CTicketSLA::GetCriticalityArray($ID); $arMARKS = CTicketSLA::GetMarkArray($ID); } if ($message) $DB->InitTableVarsForEdit($TABLE_NAME, "", "str_"); $APPLICATION->SetTitle(($ID>0? GetMessage("SUP_PAGE_TITLE_EDIT_RECORD", array("#ID#"=>$ID)) : GetMessage("SUP_PAGE_TITLE_NEW_RECORD"))); /*************************************************************************** HTML форма ****************************************************************************/ require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "ICON" => "btn_list", "TEXT" => GetMessage("SUP_RECORD_LIST"), "LINK" => $LIST_URL."?lang=".LANGUAGE_ID ) ); if(intval($ID)>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "ICON" => "btn_new", "TEXT" => GetMessage("SUP_NEW_RECORD"), "LINK" => $EDIT_URL."?lang=".LANGUAGE_ID ); if ($ID>1 && $bAdmin=="Y") { $aMenu[] = array( "ICON" => "btn_delete", "TEXT" => GetMessage("SUP_DELETE_RECORD"), "LINK" => "javascript:if(confirm('".GetMessage("SUP_DELETE_RECORD_CONFIRM")."'))window.location='".$LIST_URL."?action=delete&ID=".$ID."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); } } //echo ShowSubMenu($aMenu); $context = new CAdminContextMenu($aMenu); $context->Show(); if ($message) { echo $message->Show(); } ?>