Index: openacs-4/packages/ecommerce/www/admin/cat/category-delete-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/admin/cat/category-delete-2.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/ecommerce/www/admin/cat/category-delete-2.tcl 1 Mar 2005 00:01:32 -0000 1.4 +++ openacs-4/packages/ecommerce/www/admin/cat/category-delete-2.tcl 23 Feb 2010 07:32:47 -0000 1.5 @@ -27,96 +27,73 @@ } # What has to be done (in order, so that no constraints are violated): -# 1. remove the rows in ec_subsubcategory_product_map where the -# subsubcategory_ids share a row with the subcategory_ids that share a -# row with $category_id in ec_subcategories -# 2. remove those rows in ec_subsubcategories -# 3. remove the rows in ec_subcategory_product_map where the subcategory_ids -# share a row with $category_id in ec_subcategories -# 4. remove those rows in ec_subcategories -# 5. remove the rows in ec_category_product_map where the category_id is -# $category_id -# 6. remove the rows in ec_category_template_map where the category_id is -# $category_id -# 7. remove the row in ec_categories where category_id = $category_id -# So, here goes: - - -db_transaction { - -# 1. remove the rows in ec_subsubcategory_product_map where the +# remove the rows in ec_subsubcategory_product_map where the # subsubcategory_ids share a row with the subcategory_ids that share a # row with $category_id in ec_subcategories -set subsubcategory_list [db_list get_subcategory_list "select subsubcategory_id from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)"] - -set subcategory_list [db_list get_subcategory_list_2 "select subcategory_id from ec_subcategories where category_id=:category_id"] - -db_dml delete_ec_subcat_map "delete from ec_subsubcategory_product_map -where subsubcategory_id in (select subsubcategory_id from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id))" - -# audit table -foreach subsubcategory $subsubcategory_list { - ec_audit_delete_row [list $subsubcategory] [list subsubcategory_id] ec_subsubcat_prod_map_audit -} - -# 2. remove those rows in ec_subsubcategories - -db_dml delete_ec_subcats "delete from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)" - -# audit table -foreach subsubcategory $subsubcategory_list { - ec_audit_delete_row [list $subsubcategory] [list subsubcategory_id] ec_subsubcategories_audit -} - -# 3. remove the rows in ec_subcategory_product_map where the subcategory_ids +# remove the rows in ec_subcategory_product_map where the subcategory_ids # share a row with $category_id in ec_subcategories -db_dml delete_ec_subcat_map_1 "delete from ec_subcategory_product_map -where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)" +# remove the rows in ec_category_product_map for category_id +# remove the rows in ec_category_template_map for category_id -# audit table -foreach subcategory $subcategory_list { - ec_audit_delete_row [list $subcategory] [list subcategory_id] ec_subcat_prod_map_audit -} +# remove those rows in ec_subsubcategories +# remove those rows in ec_subcategories +# remove the row in ec_categories for category_id -# 4. remove those rows in ec_subcategories +# So, here goes: -db_dml delete_ec_subcats "delete from ec_subcategories where category_id=:category_id" -foreach subcategory $subcategory_list { - ec_audit_delete_row [list $subcategory] [list subcategory_id] ec_subcategories_audit -} +db_transaction { -# 5. remove the rows in ec_category_product_map where the category_id is -# $category_id + set subsubcategory_list [db_list get_subsubcategory_list_2 "select subsubcategory_id from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)"] -db_dml delete_ec_cat_prodmap "delete from ec_category_product_map where category_id=:category_id" -ec_audit_delete_row [list $category_id] [list category_id] ec_category_product_map_audit + set subcategory_list [db_list get_subcategory_list_2 "select subcategory_id from ec_subcategories where category_id=:category_id"] -# 6. remove the rows in ec_category_template_map where the category_id is -# $category_id +# subsubcategory references + db_dml delete_ec_subcat_map "delete from ec_subsubcategory_product_map + where subsubcategory_id in (select subsubcategory_id from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id))" + # audit table + foreach subsubcategory $subsubcategory_list { + ec_audit_delete_row [list $subsubcategory] [list subsubcategory_id] ec_subsubcat_prod_map_audit + } -db_dml delete_ec_cat_templates "delete from ec_category_template_map where category_id=:category_id" +# subcategory references + db_dml delete_ec_subcat_map_1 "delete from ec_subcategory_product_map + where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)" + # audit table + foreach subcategory $subcategory_list { + ec_audit_delete_row [list $subcategory] [list subcategory_id] ec_subcat_prod_map_audit + } + db_dml delete_ec_cat_mailing_list "delete from ec_cat_mailing_lists where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)" -## no audit table associated with this one +# category references + db_dml delete_ec_cat_prodmap "delete from ec_category_product_map where category_id=:category_id" + ec_audit_delete_row [list $category_id] [list category_id] ec_category_product_map_audit -db_dml delete_from_session_info "delete from ec_user_session_info where category_id=:category_id" + # no audit table associated with these + db_dml delete_ec_cat_templates "delete from ec_category_template_map where category_id=:category_id" + db_dml delete_from_session_info "delete from ec_user_session_info where category_id=:category_id" +# subsubcategories + db_dml delete_ec_subsubcats "delete from ec_subsubcategories where subcategory_id in (select subcategory_id from ec_subcategories where category_id=:category_id)" + # audit table + foreach subsubcategory $subsubcategory_list { + ec_audit_delete_row [list $subsubcategory] [list subsubcategory_id] ec_subsubcategories_audit + } +# subcategories + db_dml delete_ec_subcats "delete from ec_subcategories where category_id=:category_id" + foreach subcategory $subcategory_list { + ec_audit_delete_row [list $subcategory] [list subcategory_id] ec_subcategories_audit + } +# category + db_dml delete_ec_categories "delete from ec_categories where category_id=:category_id" + ec_audit_delete_row [list $category_id] [list category_id] ec_categories_audit -# 7. remove the row in ec_categories where category_id = $category_id - -db_dml delete_ec_categories "delete from ec_categories where category_id=:category_id" -ec_audit_delete_row [list $category_id] [list category_id] ec_categories_audit - } db_release_unused_handles ad_returnredirect "index" - - - - Index: openacs-4/packages/ecommerce/www/admin/cat/subcategory-delete-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/admin/cat/subcategory-delete-2.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/ecommerce/www/admin/cat/subcategory-delete-2.tcl 1 Mar 2005 00:01:32 -0000 1.4 +++ openacs-4/packages/ecommerce/www/admin/cat/subcategory-delete-2.tcl 23 Feb 2010 07:32:47 -0000 1.5 @@ -68,11 +68,13 @@ # 4. remove the row in ec_subcategories where subcategory_id = $subcategory_id +db_1row get_category_id_from_sub "select category_id , category_name from ec_categories where category_id in (select category_id from ec_subcategories where subcategory_id = :subcategory_id)" + db_dml delete_from_ec_subcats "delete from ec_subcategories where subcategory_id=:subcategory_id" # audit table ec_audit_delete_row [list $subcategory_id] [list subcategory_id] ec_subcategories_audit } -ad_returnredirect "index" +ad_returnredirect "category?[export_url_vars category_id category_name]"