function uc_discounts_admin_discount_edit_form_validate in Ubercart Discounts (Alternative) 7.2
Validate handler for uc_discounts_admin_discount_edit_form().
See also
uc_discounts_admin_discount_edit_form()
uc_discounts_admin_discount_edit_form_submit()
File
- uc_discounts/
uc_discounts.admin.inc, line 737 - Admin forms and functions for uc_discounts module.
Code
function uc_discounts_admin_discount_edit_form_validate($form, &$form_state) {
$values = $form_state['values'];
$has_errors = FALSE;
if ($values['requires_code'] && empty($values['codes'])) {
form_set_error('codes', t('Discounts codes are required because %requires_code is checked', array(
'%requires_code' => t('Require(s) code'),
)));
$has_errors = TRUE;
}
// Check qualifying_amount_max if necessary.
if ($values['has_qualifying_amount_max']) {
if (($index = strpos($values['qualifying_amount_max'], '%')) !== FALSE) {
$value = substr($values['qualifying_amount_max'], 0, $index);
}
else {
$value = $values['qualifying_amount_max'];
}
if (!is_numeric($value)) {
form_set_error('qualifying_amount_max', t('Max qualifying amount is required because %has_max_qual_amount is checked.', array(
'%has_max_qual_amount' => t('Has max qualifying amount'),
)));
$has_errors = TRUE;
}
}
// Check discount_amount.
if (($index = strpos($values['discount_amount'], '%')) !== FALSE) {
$value = substr($values['discount_amount'], 0, $index);
}
else {
$value = $values['discount_amount'];
}
if (!is_numeric($value)) {
form_set_error('discount_amount', t('Discount amount must be integer, decimal or percentage.'));
$has_errors = TRUE;
}
$ids = $form_state['values'][UC_DISCOUNTS_GROUPING_APPLICATION . '-filter-select-' . $values['filter_type']];
if (empty($ids)) {
form_set_error('filter_type', t('At least one product must be selected.'));
$has_errors = TRUE;
}
if ($values['has_role_filter'] && empty($values['role_ids'])) {
form_set_error('roles', t('Roles are required because %filter_on_roles is checked', array(
'%filter_on_roles' => t('Filter based on roles'),
)));
$has_errors = TRUE;
}
/*
if ($values['has_expiration'] && !date_is_valid($values['expiration'])) {
form_set_error('expiration', t('Expiration required because %discount_expires is checked', array('%discount_expires' => t('Discount expires'))));
$has_errors = TRUE;
}
*/
// Form requires rebuilding so codes and expiration blocks display correctly.
if ($has_errors) {
$form_state['rebuild'] = TRUE;
}
}