Example #1
0
if ($unix_start_time < 0 || !checkdate_sql($_SESSION['form_data']['start_time'])) {
    $_SESSION['errors']['start_time'] = _Ti('time_input_date_start') . 'Invalid date';
}
// TRAD
//
// End date
//
if ($prefs['time_intervals'] == 'absolute') {
    $_SESSION['form_data']['end_time'] = get_datetime_from_array($_SESSION['form_data'], 'end', 'start', '', false);
    // Set to default empty date if all fields empty
    if (!isset_datetime_from_array($_SESSION['form_data'], 'end', 'date_only')) {
        $_SESSION['errors']['end_time'] = _Ti('time_input_date_end') . 'Invalid date';
        // TRAD
    } else {
        $unix_end_time = strtotime($_SESSION['form_data']['end_time']);
        if ($unix_end_time < 0 || !checkdate_sql($_SESSION['form_data']['end_time'])) {
            $_SESSION['errors']['end_time'] = _Ti('time_input_date_end') . 'Invalid date';
        }
        // TRAD
    }
} else {
    if (!(isset($_SESSION['form_data']['delta_days']) && (!is_numeric($_SESSION['form_data']['delta_days']) || $_SESSION['form_data']['delta_days'] < 0) || isset($_SESSION['form_data']['delta_hours']) && (!is_numeric($_SESSION['form_data']['delta_hours']) || $_SESSION['form_data']['delta_hours'] < 0) || isset($_SESSION['form_data']['delta_minutes']) && (!is_numeric($_SESSION['form_data']['delta_minutes']) || $_SESSION['form_data']['delta_minutes'] < 0))) {
        $unix_end_time = $unix_start_time + $_SESSION['form_data']['delta_days'] * 86400 + $_SESSION['form_data']['delta_hours'] * 3600 + $_SESSION['form_data']['delta_minutes'] * 60;
        $_SESSION['form_data']['end_time'] = date('Y-m-d H:i:s', $unix_end_time);
    } else {
        $_SESSION['errors']['end_time'] = _Ti('app_input_time_length') . _T('time_warning_invalid_format') . ' (' . $_SESSION['form_data']['delta_hours'] . ')';
        // XXX
        $_SESSION['form_data']['end_time'] = $_SESSION['form_data']['start_time'];
    }
}
if (!count($_SESSION['errors']) && $unix_end_time < $unix_start_time) {
Example #2
0
 function validate()
 {
     $errors = array();
     // * Check for id_case
     if (!($this->getDataInt('id_case') > 0)) {
         $errors['id_case'] = "Internal error: No id_case found";
     }
     // * Check for fu type
     if (!$this->getDataString('type')) {
         $errors['type'] = _Ti('fu_input_type') . _T('warning_field_mandatory');
     }
     // * Check if fu type exists
     if (!get_kw_from_name('followups', $this->getDataString('type'))) {
         $errors['type'] = _Ti('fu_input_type') . "Unknown type";
     }
     // TRAD
     // * Check start date
     $unix_date_start = strtotime($this->getDataString('date_start'));
     if ($unix_date_start < 0 || !checkdate_sql($this->getDataString('date_start'))) {
         $errors['date_start'] = _Ti('time_input_date_start') . 'Invalid start date.';
     }
     // TRAD
     if (!is_numeric($this->getDataFloat('sumbilled', 0.0))) {
         $errors['sumbilled'] = _Ti('fu_input_sum_billed') . 'Incorrect format, must be 00000.00';
     }
     // TRAD
     // * Check end date
     // [ML] This is probably very buggy, because I re-wrote parts of it
     // to make it LCM 0.7.0 compliant, but it's a hell of a mess!
     // And parts of this code should be in the constructor.
     global $prefs;
     if ($prefs['time_intervals'] == 'absolute') {
         if (isempty_datetime_from_array($_SESSION['form_data'], 'end', 'date_only')) {
             // Set to default empty date if all fields empty
             $this->data['date_end'] = '0000-00-00 00:00:00';
         } elseif (!isset_datetime_from_array($_SESSION['form_data'], 'end', 'date_only')) {
             // Report error if some of the fields empty
             $this->data['date_end'] = get_datetime_from_array($_SESSION['form_data'], 'end', 'start', '', false);
             $errors['date_end'] = 'Partial end date!';
             // TRAD
         } else {
             $this->data['date_end'] = get_datetime_from_array($_SESSION['form_data'], 'end', 'start', '', false);
             $unix_date_end = strtotime($this->getDataString('date_end'));
             if ($unix_date_end < 0 || !checkdate_sql($this->getDataString('date_end'))) {
                 $errors['date_end'] = 'Invalid end date.';
             }
             // TRAD
         }
     } else {
         $valid_interval = true;
         $unix_date_end = $unix_date_start;
         $_SESSION['form_data']['delta_days'] = trim($_SESSION['form_data']['delta_days']);
         $_SESSION['form_data']['delta_hours'] = trim($_SESSION['form_data']['delta_hours']);
         $_SESSION['form_data']['delta_minutes'] = trim($_SESSION['form_data']['delta_minutes']);
         if (is_numeric(_session('delta_days', 0)) && _session('delta_days', 0) >= 0) {
             $unix_date_end += _session('delta_days', 0) * 86400;
         } else {
             $valid_interval = false;
         }
         if (is_numeric(_session('delta_hours', 0)) && _session('delta_hours', 0) >= 0) {
             $unix_date_end += _session('delta_hours', 0) * 3600;
         } else {
             $valid_interval = false;
         }
         if (is_numeric(_session('delta_minutes', 0)) && _session('delta_minutes', 0) >= 0) {
             $unix_date_end += _session('delta_minutes', 0) * 60;
         } else {
             $valid_interval = false;
         }
         if ($valid_interval) {
             $this->data['date_end'] = date('Y-m-d H:i:s', $unix_date_end);
         } else {
             $errors['date_end'] = _Ti('time_input_length') . 'Invalid time interval.';
             // TRAD
             $this->data['date_end'] = $_SESSION['form_data']['date_start'];
         }
     }
     // Description
     /* [ML] This was requested to be optional (MG, PDO)
     		   if ( !(strlen($this->data['description']) > 0) )
     		   $errors['description'] = _Ti('fu_input_description') . _T('warning_field_mandatory');
     		 */
     validate_update_keywords_request('followup', $this->getDataInt('id_followup'));
     if ($_SESSION['errors']) {
         $errors = array_merge($errors, $_SESSION['errors']);
     }
     //
     // Custom validation functions
     //
     $id_case = $this->getDataInt('id_case');
     $fields = array('description' => 'FollowupDescription');
     foreach ($fields as $f => $func) {
         if (include_validator_exists($f)) {
             include_validator($f);
             $class = "LcmCustomValidate{$func}";
             $data = $this->getDataString($f);
             $v = new $class();
             if ($err = $v->validate($id_case, $data)) {
                 $errors[$f] = _Ti('fu_input_' . $f) . $err;
             }
         }
     }
     return $errors;
 }
Example #3
0
    if (!($old_fu_data = lcm_fetch_array($result))) {
        lcm_panic("Could not find requested follow-up");
    }
}
///////////////////////////////////////////////////////////////////////
//	Consequent appointment information error checking
///////////////////////////////////////////////////////////////////////
if (isset($_SESSION['form_data']['add_appointment'])) {
    // Convert day, month, year, hour, minute to date/time
    // Check submitted information
    //
    // Start time
    //
    $_SESSION['form_data']['app_start_time'] = get_datetime_from_array($_SESSION['form_data'], 'app_start', 'start', '', false);
    $unix_app_start_time = strtotime($_SESSION['form_data']['app_start_time']);
    if ($unix_app_start_time < 0 || !checkdate_sql($_SESSION['form_data']['app_start_time'])) {
        $_SESSION['errors']['app_start_time'] = 'Invalid appointment start time!';
    }
    // TRAD
    //
    // End time
    //
    if ($prefs['time_intervals'] == 'absolute') {
        // Set to default empty date if all fields empty
        if (!($_SESSION['form_data']['app_end_year'] || $_SESSION['form_data']['app_end_month'] || $_SESSION['form_data']['app_end_day'])) {
            $_SESSION['form_data']['app_end_time'] = '0000-00-00 00:00:00';
        } elseif (!$_SESSION['form_data']['app_end_year'] || !$_SESSION['form_data']['app_end_month'] || !$_SESSION['form_data']['app_end_day']) {
            $_SESSION['errors']['app_end_time'] = 'Partial appointment end time!';
            $_SESSION['form_data']['app_end_time'] = get_datetime_from_array($_SESSION['form_data'], 'app_end', 'start', '', false);
        } else {
            // Join fields and check resulting date
Example #4
0
 function validate()
 {
     $errors = array();
     if (!$this->getDataString('name_first')) {
         $errors['name_first'] = _Ti('person_input_name_first') . _T('warning_field_mandatory');
     }
     if (!$this->getDataString('name_last')) {
         $errors['name_last'] = _Ti('person_input_name_last') . _T('warning_field_mandatory');
     }
     if (read_meta('client_name_middle') == 'yes_mandatory' && !$this->getDataString('name_middle')) {
         $errors['name_middle'] = _Ti('person_input_name_middle') . _T('warning_field_mandatory');
     }
     if (read_meta('client_citizen_number') == 'yes_mandatory' && !$this->getDataString('citizen_number')) {
         $errors['citizen_number'] = _Ti('person_input_citizen_number') . _T('warning_field_mandatory');
     }
     if (read_meta('client_civil_status') == 'yes_mandatory' && !$this->getDataString('civil_status')) {
         $errors['civil_status'] = _Ti('person_input_civil_status') . _T('warning_field_mandatory');
     }
     if (read_meta('client_income') == 'yes_mandatory' && !$this->getDataString('income')) {
         $errors['income'] = _Ti('person_input_income') . _T('warning_field_mandatory');
     }
     // * Check gender
     $genders = array('unknown' => 1, 'female' => 1, 'male' => 1);
     if (!array_key_exists($this->getDataString('gender'), $genders)) {
         $errors['gender'] = _Ti('person_input_gender') . 'Incorrect format.';
     }
     // TRAD FIXME
     // * Check for date of birth
     $meta_date_birth = read_meta('client_date_birth');
     $date_birth = $this->getDataString('date_birth');
     if ($meta_date_birth == 'yes_mandatory' && (!$date_birth || $date_birth == -1)) {
         $errors['date_birth'] = _Ti('person_input_date_birth') . _T('warning_field_mandatory');
     } else {
         if ($date_birth) {
             if (!isset_datetime_from_array($_SESSION['form_data'], 'date_birth', 'date_only')) {
                 $errors['date_birth'] = _Ti('person_input_date_birth') . "Partial date.";
                 // TRAD
             } else {
                 $unix_date_birth = strtotime($date_birth);
                 if ($unix_date_birth < 0 || !checkdate_sql($date_birth)) {
                     $errors['date_birth'] = 'Invalid end date.';
                 }
                 // TRAD
             }
         }
     }
     //
     // Custom validation functions
     //
     // * Client name (special function)
     if (include_validator_exists('client_name')) {
         include_validator('client_name');
         $foo = new LcmCustomValidateClientName();
         $test = array('first', 'last');
         if (substr(read_meta('client_name_middle'), 0, 3) == 'yes') {
             array_push($test, 'middle');
         }
         foreach ($test as $t) {
             $n = $this->getDataString('name_' . $t);
             if ($err = $foo->validate($this->getDataInt('id_client'), $t, $n)) {
                 $errors['name_' . $t] = _Ti('person_input_name_' . $t) . $err;
             }
         }
     }
     // * other fields
     $id_client = $this->getDataInt('id_client');
     $fields = array('citizen_number' => 'ClientCitizenNumber', 'civil_status' => 'ClientCivilStatus', 'income' => 'ClientIncome', 'gender' => 'PersonGender');
     foreach ($fields as $f => $func) {
         if (include_validator_exists($f)) {
             include_validator($f);
             $class = "LcmCustomValidate{$func}";
             $data = $this->getDataString($f);
             $v = new $class();
             if ($err = $v->validate($id_client, $data)) {
                 $errors[$f] = _Ti('person_input_' . $f) . $err;
             }
         }
     }
     return $errors;
 }
Example #5
0
 function validate()
 {
     $errors = array();
     // * Title must be non-empty
     if (!$this->getDataString('title')) {
         $errors['title'] = _Ti('case_input_title') . _T('warning_field_mandatory');
     }
     // * Date assignment must be a valid date
     if (!checkdate_sql($this->getDataString('date_assignment'))) {
         $errors['date_assignment'] = _Ti('case_input_date_assigned') . 'Invalid date.';
     }
     // TRAD
     // * Depending on site policy, legal reason may be mandatory
     if (read_meta('case_legal_reason') == 'yes_mandatory' && !$this->getDataString('legal_reason')) {
         $errors['legal_reason'] = _Ti('case_input_legal_reason') . _T('warning_field_mandatory');
     }
     // * Depending on site policy, alleged crime may be mandatory
     if (read_meta('case_alledged_crime') == 'yes_mandatory' && !$this->getDataString('alledged_crime')) {
         $errors['alledged_crime'] = _Ti('case_input_alledged_crime') . _T('warning_field_mandatory');
     }
     // * TODO: Status must be a valid option (where do we have official list?)
     if (!$this->getDataString('status')) {
         $errors['status'] = _Ti('case_input_status') . _T('warning_field_mandatory');
     }
     // * TODO: Stage must be a valid keyword
     if (!$this->getDataString('stage')) {
         $errors['stage'] = _Ti('case_input_stage') . _T('warning_field_mandatory');
     }
     validate_update_keywords_request('case', $this->getDataInt('id_case'));
     validate_update_keywords_request('stage', $this->getDataInt('id_case'), $this->getDataInt('id_stage'));
     if ($_SESSION['errors']) {
         $errors = array_merge($errors, $_SESSION['errors']);
     }
     //
     // Custom validation functions
     //
     $id_case = $this->getDataInt('id_case');
     $fields = array('title' => 'CaseTitle', 'legal_reason' => 'CaseLegalReason', 'alledged_crime' => 'CaseAllegedCrime', 'status' => 'CaseStatus', 'stage' => 'CaseStage');
     foreach ($fields as $f => $func) {
         if (include_validator_exists($f)) {
             include_validator($f);
             $class = "LcmCustomValidate{$func}";
             $data = $this->getDataString($f);
             $v = new $class();
             if ($err = $v->validate($id_case, $data)) {
                 $errors[$f] = _Ti('case_input_' . $f) . $err;
             }
         }
     }
     return $errors;
 }