public static function get($id)
 {
     global $db;
     $query = "SELECT * FROM `student_formal_remediations` where `id`=" . $db->qstr($id);
     $result = $db->GetRow($query);
     if ($result) {
         $fr = FormalRemediation::fromArray($result);
         return $fr;
     }
 }
 public static function get(User $user)
 {
     global $db;
     $frs = array();
     $user_id = $user->getID();
     $query = "SELECT * FROM `student_formal_remediations` WHERE `user_id` = " . $db->qstr($user_id);
     $results = $db->getAll($query);
     if ($results) {
         foreach ($results as $result) {
             $fr = FormalRemediation::fromArray($result);
             $frs[] = $fr;
         }
     }
     return new self($frs);
 }
function process_mspr_details($translator, $section)
{
    $action = clean_input(isset($_POST['action']) ? $_POST['action'] : "", array("lower"));
    if (!$action) {
        return;
    }
    switch ($action) {
        case 'add':
            $user_id = clean_input(isset($_POST['user_id']) ? $_POST['user_id'] : 0, array("int"));
            $details = clean_input(isset($_POST['details']) ? $_POST['details'] : "", array("notags"));
            if (!$user_id) {
                add_error($translator->translate("mspr_invalid_user_info"));
            }
            if (!$details) {
                add_error($translator->translate("mspr_no_details"));
            }
            if (!has_error()) {
                switch ($section) {
                    case 'leaves_of_absence':
                        LeaveOfAbsence::create($user_id, $details);
                        break;
                    case 'disciplinary_actions':
                        DisciplinaryAction::create($user_id, $details);
                        break;
                    case 'formal_remediation':
                        FormalRemediation::create($user_id, $details);
                        break;
                }
            }
            break;
        case 'remove':
            $entity_id = clean_input(isset($_POST['entity_id']) ? $_POST['entity_id'] : 0, array("int"));
            if (!$entity_id) {
                add_error($translator->translate("mspr_no_entity"));
            }
            if (!has_error()) {
                switch ($section) {
                    case 'leaves_of_absence':
                        $entity = LeaveOfAbsence::get($entity_id);
                        break;
                    case 'disciplinary_actions':
                        $entity = DisciplinaryAction::get($entity_id);
                        break;
                    case 'formal_remediation':
                        $entity = FormalRemediation::get($entity_id);
                        break;
                }
                if (!$entity) {
                    add_error($translator->translate("mspr_invalid_entity"));
                }
                if (!has_error()) {
                    $entity->delete();
                }
            }
            break;
    }
}