$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));