$sickLeave = Models\Sickleave::Find($_REQUEST['id'], 'sickleave');
if ($sickLeave instanceof Models\Sickleave) {
}
// intellisense only
if ($sickLeave->notifstatus == 'UNREAD' || is_string($sickLeave->read_on) && strlen($sickLeave->read_on) == 0) {
    // This is not yet read
    $db = \DB::Instance();
    $pdo = $db->pdo;
    if ($pdo instanceof PDO) {
    }
    // intellisense
    $stmt = $pdo->prepare('CALL mark_sickleave_as_read(:sickleave_id, :read_by)');
    $stmt->bindParam(':sickleave_id', $sickLeave->id);
    $stmt->bindParam(':read_by', $sessData->getUser()->id);
    if ($stmt->execute()) {
        $sickLeave = Models\Sickleave::Find($sickLeave->GetRecordID(), 'sickleave');
        // Notify via email
        $isNotificationEnabled = Utilities\Config::get('email_notification', CONFIG_PATH . 'application.ini');
        if ($isNotificationEnabled == 1) {
            try {
                Utilities\Email::NotifyPeopleFromSickleave($sickLeave);
            } catch (phpmailerException $ex) {
                $sickLeave->SetState(new ModelResponse(false, 'Failure on notifying people involved in this sick-leave: ' . $ex->getMessage()));
            }
        }
        die(new ModelResponse(true, 'Sick leave has been successfully marked as READ', $sickLeave));
    } else {
        die(new ModelResponse(false, 'Failed to mark sickleave as read'));
    }
}
die(new ModelResponse(true, 'Sick leave is already marked as READ', $sickLeave));
 * span (decimal)
 * reason (string)
 *
 */
header('Content-type: application/json');
$expectations = ['author_id', 'for_id', 'date', 'span', 'reason'];
if (!\Utilities\Requests::HasRequest($expectations)) {
    die(ModelResponse::InvalidRequest());
}
$raw_data = [];
foreach ($_REQUEST as $key => $value) {
    if (in_array($key, $expectations)) {
        $raw_data[$key] = $value;
    }
}
$newSickleave = new \Models\Sickleave();
$newSickleave->Absorb($raw_data);
if (!$newSickleave->SaveAll()) {
    die(ModelResponse::DataSaveFailed());
}
// Otherwise, success
// Notify via email
$isNotificationEnabled = Utilities\Config::get('email_notification', CONFIG_PATH . 'application.ini');
if ($isNotificationEnabled == 1) {
    try {
        Utilities\Email::NotifyAdmins($newSickleave);
    } catch (phpmailerException $ex) {
        $newSickleave->SetState(new ModelResponse(false, 'Failure on notifying admins: ' . $ex->getMessage()));
    }
}
die(new ModelResponse(true, "Sick leave entry has been successfully added!", $newSickleave));