private function validateForm()
{
$this->form_validation->set_rules('name', 'lang:label_name', 'xss_clean|trim|required|min_length[2]|max_length[128]');
$this->form_validation->set_rules('code', 'lang:label_code', 'xss_clean|trim|required|min_length[2]|max_length[15]');
$this->form_validation->set_rules('type', 'lang:label_type', 'xss_clean|trim|required|exact_length[1]');
$this->form_validation->set_rules('discount', 'lang:label_discount', 'xss_clean|trim|required|numeric');
if ($this->input->post('type') === 'P') {
$this->form_validation->set_rules('discount', 'lang:label_discount', 'less_than[100]');
}
$this->form_validation->set_rules('min_total', 'lang:label_min_total', 'xss_clean|trim|numeric');
$this->form_validation->set_rules('redemptions', 'lang:label_redemption', 'xss_clean|trim|integer');
$this->form_validation->set_rules('customer_redemptions', 'lang:label_customer_redemption', 'xss_clean|trim|integer');
$this->form_validation->set_rules('description', 'lang:label_description', 'xss_clean|trim|min_length[2]|max_length[1028]');
$this->form_validation->set_rules('validity', 'lang:label_validity', 'xss_clean|trim|required');
if ($this->input->post('validity') === 'fixed') {
$this->form_validation->set_rules('validity_times[fixed_date]', 'lang:label_fixed_date', 'xss_clean|trim|required|valid_date');
$this->form_validation->set_rules('fixed_time', 'lang:label_fixed_time', 'xss_clean|trim|required');
if ($this->input->post('fixed_time') !== '24hours') {
$this->form_validation->set_rules('validity_times[fixed_from_time]', 'lang:label_fixed_from_time', 'xss_clean|trim|required|valid_time');
$this->form_validation->set_rules('validity_times[fixed_to_time]', 'lang:label_fixed_to_time', 'xss_clean|trim|required|valid_time');
}
} else {
if ($this->input->post('validity') === 'period') {
$this->form_validation->set_rules('validity_times[period_start_date]', 'lang:label_period_start_date', 'xss_clean|trim|required|valid_date');
$this->form_validation->set_rules('validity_times[period_end_date]', 'lang:label_period_end_date', 'xss_clean|trim|required|valid_date');
} else {
if ($this->input->post('validity') === 'recurring') {
$this->form_validation->set_rules('validity_times[recurring_every]', 'lang:label_recurring_every', 'xss_clean|trim|required');
if (isset($_POST['validity_times']['recurring_every'])) {
foreach ($_POST['validity_times']['recurring_every'] as $key => $value) {
$this->form_validation->set_rules('validity_times[recurring_every][' . $key . ']', 'lang:label_recurring_every', 'xss_clean|required');
}
}
$this->form_validation->set_rules('recurring_time', 'lang:label_recurring_time', 'xss_clean|trim|required');
if ($this->input->post('recurring_time') !== '24hours') {
$this->form_validation->set_rules('validity_times[recurring_from_time]', 'lang:label_recurring_from_time', 'xss_clean|trim|required|valid_time');
$this->form_validation->set_rules('validity_times[recurring_to_time]', 'lang:label_recurring_to_time', 'xss_clean|trim|required|valid_time');
}
}
}
}
$this->form_validation->set_rules('order_restriction', 'lang:label_order_restriction', 'xss_clean|trim|integer');
$this->form_validation->set_rules('status', 'lang:label_status', 'xss_clean|trim|required|integer');
if ($this->form_validation->run() === TRUE) {
return TRUE;
} else {
return FALSE;
}
}