Browse Source

Fix for categories deleting

Vova Tkach 5 years ago
parent
commit
a96aff9b7b

+ 3 - 3
modules/module_blog_categories_act_delete.go

@@ -28,6 +28,9 @@ func (this *Modules) RegisterAction_BlogCategoriesDelete() *Action {
 			}
 
 			// Process
+			if _, err := tx.Exec("DELETE FROM blog_cat_post_rel WHERE category_id = ?;", pf_id); err != nil {
+				return err
+			}
 			if _, err := tx.Exec("SELECT @ml := lft, @mr := rgt FROM blog_cats WHERE id = ?;", pf_id); err != nil {
 				return err
 			}
@@ -43,9 +46,6 @@ func (this *Modules) RegisterAction_BlogCategoriesDelete() *Action {
 			if _, err := tx.Exec("UPDATE blog_cats SET rgt = rgt - 2 WHERE rgt > @mr;"); err != nil {
 				return err
 			}
-			if _, err := tx.Exec("DELETE FROM blog_cat_post_rel WHERE category_id = ?;", pf_id); err != nil {
-				return err
-			}
 			return nil
 		})
 

+ 11 - 3
modules/module_shop_categories_act_delete.go

@@ -26,8 +26,19 @@ func (this *Modules) RegisterAction_ShopCategoriesDelete() *Action {
 			if _, err := tx.Exec("SELECT category_id FROM shop_cat_product_rel WHERE category_id = ? FOR UPDATE;", pf_id); err != nil {
 				return err
 			}
+			if _, err := tx.Exec("SELECT id FROM shop_products WHERE category = ? FOR UPDATE;", pf_id); err != nil {
+				return err
+			}
+
+			// Set root category
+			if _, err := tx.Exec("UPDATE shop_products SET category = 1 WHERE category = ?;", pf_id); err != nil {
+				return err
+			}
 
 			// Process
+			if _, err := tx.Exec("DELETE FROM shop_cat_product_rel WHERE category_id = ?;", pf_id); err != nil {
+				return err
+			}
 			if _, err := tx.Exec("SELECT @ml := lft, @mr := rgt FROM shop_cats WHERE id = ?;", pf_id); err != nil {
 				return err
 			}
@@ -43,9 +54,6 @@ func (this *Modules) RegisterAction_ShopCategoriesDelete() *Action {
 			if _, err := tx.Exec("UPDATE shop_cats SET rgt = rgt - 2 WHERE rgt > @mr;"); err != nil {
 				return err
 			}
-			if _, err := tx.Exec("DELETE FROM shop_cat_product_rel WHERE category_id = ?;", pf_id); err != nil {
-				return err
-			}
 			return nil
 		})