function uc_discounts_admin_discount_copy_form in Ubercart Discounts (Alternative) 7.2
Generates admin form to create a copy of existing discount.
1 string reference to 'uc_discounts_admin_discount_copy_form'
- uc_discounts_menu in uc_discounts/
uc_discounts.module - Implements hook_menu().
File
- uc_discounts/
uc_discounts.admin.inc, line 972 - Admin forms and functions for uc_discounts module.
Code
function uc_discounts_admin_discount_copy_form($original_discount_id) {
$discount = uc_discounts_load($original_discount_id);
$discount->name = t('Copy of @discount', array(
'@discount' => $discount->name,
));
$discount->insert_timestamp = REQUEST_TIME;
unset($discount->discount_id);
drupal_write_record('uc_discounts', $discount);
// Copy discount's codes.
$codes = uc_discounts_get_codes_for_discount_id($original_discount_id);
foreach ($codes as $code) {
$new_code = array(
'discount_id' => $discount->discount_id,
'code' => $code,
);
drupal_write_record('uc_discounts_codes', $new_code);
}
foreach (array(
UC_DISCOUNTS_GROUPING_APPLICATION,
UC_DISCOUNTS_GROUPING_QUALIFICATION,
) as $grouping) {
// Copy discount's products.
$product_ids = uc_discounts_get_product_ids_for_discount_id($original_discount_id, $grouping);
foreach ($product_ids as $product_id) {
$new_product = array(
'discount_id' => $discount->discount_id,
'product_id' => $product_id,
'grouping' => $grouping,
);
drupal_write_record('uc_discounts_products', $new_product);
}
// Copy discount's terms.
$term_ids = uc_discounts_get_term_ids_for_discount_id($original_discount_id, $grouping);
foreach ($term_ids as $term_id) {
$new_term = array(
'discount_id' => $discount->discount_id,
'term_id' => $term_id,
'grouping' => $grouping,
);
drupal_write_record('uc_discounts_terms', $new_term);
}
// Copy discount's SKUs.
$skus = uc_discounts_get_skus_for_discount_id($original_discount_id, $grouping);
foreach ($skus as $sku) {
$new_sku = array(
'discount_id' => $discount->discount_id,
'sku' => $sku,
'grouping' => $grouping,
);
drupal_write_record('uc_discounts_skus', $new_sku);
}
// Copy discount's Classes.
$classes = uc_discounts_get_classes_for_discount_id($original_discount_id, $grouping);
foreach ($classes as $class) {
$new_class = array(
'discount_id' => $discount->discount_id,
'class' => $class,
'grouping' => $grouping,
);
drupal_write_record('uc_discounts_classes', $new_class);
}
// Copy discount's authors.
$author_ids = uc_discounts_get_author_ids_for_discount_id($original_discount_id, $grouping);
foreach ($author_ids as $author_id) {
$new_author = array(
'discount_id' => $discount->discount_id,
'author_id' => $author_id,
'grouping' => $grouping,
);
drupal_write_record('uc_discounts_authors', $new_author);
}
}
// Copy discount's roles.
$role_ids = uc_discounts_get_role_ids_for_discount_id($original_discount_id);
foreach ($role_ids as $role_id) {
$new_role = array(
'discount_id' => $discount->discount_id,
'role_id' => $role_id,
);
drupal_write_record('uc_discounts_roles', $new_role);
}
foreach (module_implements('uc_discount') as $module) {
$function = $module . '_uc_discount';
$function('save', $discount);
}
drupal_set_message(t('The discount was successfully copied as %name.', array(
'%name' => $discount->name,
)));
drupal_goto('admin/store/uc_discounts/edit/' . $discount->discount_id);
}