Ver código fonte

删除花材分类

shish 4 anos atrás
pai
commit
7f639580dd
1 arquivos alterados com 22 adições e 8 exclusões
  1. 22 8
      app-ghs/controllers/ItemClassController.php

+ 22 - 8
app-ghs/controllers/ItemClassController.php

@@ -76,18 +76,32 @@ class ItemClassController extends BaseController
         util::complete('修改成功');
         util::complete('修改成功');
     }
     }
 
 
-    //删除分类  ssh 20211015
+    //删除花材分类  ssh 202207062136
     public function actionDelete()
     public function actionDelete()
     {
     {
         $id = Yii::$app->request->get('id', 0);
         $id = Yii::$app->request->get('id', 0);
-        $class = ItemClassClass::getById($id, true);
-        ItemClassClass::valid($class, $this->mainId);
-        $has = ProductClass::getByCondition(['classId' => $id], true);
-        if (!empty($has)) {
-            util::fail('此分类还有花材');
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $default = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'isDefault' => 1], true);
+            $defaultClassId = $default->id ?? 0;
+            if (empty($defaultClassId)) {
+                util::fail('没有找到默认分类');
+            }
+            if ($defaultClassId == $id) {
+                util::fail('默认分类不可删除');
+            }
+            $class = ItemClassClass::getById($id, true);
+            ItemClassClass::valid($class, $this->mainId);
+            $class->delete();
+            ProductClass::updateByCondition(['classId' => $id], ['classId' => $defaultClassId]);
+            $transaction->commit();
+            util::complete('操作成功');
+        } catch (\Exception $e) {
+            $transaction->rollBack();
+            Yii::info("失败原因:" . $e->getMessage());
+            util::fail('删除失败');
         }
         }
-        $class->delete();
-        util::complete('操作成功');
     }
     }
 
 
     //开单: 获取所有分类
     //开单: 获取所有分类