Your IP : 216.73.216.170


Current Path : /home/bitrix/ext_www/school1535.yacl.site/local/ajax/
Upload File :
Current File : /home/bitrix/ext_www/school1535.yacl.site/local/ajax/editAbsence.php

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

\Bitrix\Main\Loader::includeModule('iblock');
\Bitrix\Main\Loader::includeModule('im');


$absenceId = intval($_POST['id']);
$preview = htmlspecialchars($_POST['preview']);
$statusCode = htmlspecialchars($_POST['status']);
$propList = CIBlockPropertyEnum::GetList([], ['XML_ID' => $statusCode, 'PROPERTY_CODE' => 'STATUS', 'IBLOCK_ID' => IBLOCK_LOCAL_ABSENCE]);
$status = $propList->Fetch();
//okp($status);

$cbe = new CIBlockElement();
$cbe->SetPropertyValuesEx($absenceId, IBLOCK_LOCAL_ABSENCE, [
    'STATUS' => $status['ID']
]);

$res = $cbe->Update($absenceId, ['PREVIEW_TEXT' => $preview]);

if ($res) {
    $answer = [
        'success' => true,
    ];
    $absenceInfo = CIBlockElement::GetList([], ['IBLOCK_ID' => IBLOCK_LOCAL_ABSENCE, 'ID' => $absenceId], false, false, ['PROPERTY_USER', 'NAME'])->Fetch();
    $user = $absenceInfo['PROPERTY_USER_VALUE'];
    foreach([$user, Project::getResSubGenDir()] as $notifiedUser) {
        if ($notifiedUser != $USER->GetID()) {
            if ($notifiedUser == $user) {
                $message = 'Ваше отсутствие ' . $absenceInfo['NAME'] . ($statusCode == 'ACCEPTED' ? ' согласовано' : ' отклонено');
            } else {
                $message = 'Отсутствие пользователя ' . getUserLinkById($user) . ($statusCode == 'ACCEPTED' ? ' согласовано' : ' отклонено');
            }

            $messageFields = array(
                "TO_USER_ID" => $notifiedUser,
                "FROM_USER_ID" => $USER->GetID(),
                "NOTIFY_TYPE" => IM_NOTIFY_FROM,
                "NOTIFY_MODULE" => "iblock",
                "NOTIFY_MESSAGE" => $message,
            );
            $res = CIMNotify::Add($messageFields);
        }
    }

} else {
    $answer = [
        'false' => true,
    ];
}


echo json_encode($answer);