Răsfoiți Sursa

支出登记

shish 4 ani în urmă
părinte
comite
25501baafe

+ 63 - 6
app-ghs/controllers/ExpendController.php

@@ -3,7 +3,10 @@
 namespace ghs\controllers;
 
 use bizGhs\expend\classes\ExpendClass;
+use bizGhs\shop\classes\MainClass;
+use bizGhs\shop\classes\ShopMoneyClass;
 use common\components\dict;
+use common\components\noticeUtil;
 use common\components\util;
 use Yii;
 
@@ -22,16 +25,70 @@ class ExpendController extends BaseController
     public function actionAddExpend()
     {
         $post = Yii::$app->request->post();
-        $type = $post['type'] ?? dict::getDict('expendType', 'hs');
+        $type = $post['type'] ?? 0;
         $amount = $post['amount'] ?? 0;
+        $remark = $post['remark'] ?? '';
         if (is_numeric($amount) == false || $amount <= 0) {
             util::fail('请输入正确的金额');
         }
-        $remark = $post['remark'] ?? '';
-        $staffName = $this->shopAdmin->name ?? '';
-        $data = ['type' => $type, 'amount' => $amount, 'remark' => $remark, 'mainId' => $this->mainId, 'staffId' => $this->shopAdminId, 'staffName' => $staffName];
-        ExpendClass::add($data);
-        util::complete();
+        $connection = Yii::$app->db;//事务处理
+        $transaction = $connection->beginTransaction();
+        try {
+            $payWay = $post['payWay'] ?? 0;
+            if ($payWay == dict::getDict('payWay', 'cash')) {
+                //扣除现金
+                $mainId = $this->mainId;
+                $main = MainClass::getLockById($mainId);
+                if (empty($main)) {
+                    util::fail('没有门店信息');
+                }
+                $hasMoney = $main->money ?? 0;
+                if ($amount > $hasMoney) {
+                    util::fail('现金不足');
+                }
+
+                $staffId = $this->shopAdminId;
+                $staff = $this->shopAdmin;
+                $staffName = $staff->name ?? '';
+                $map = dict::getDict('expendTypeMap');
+                $expendName = $map[$type] ?? '未知';
+                $event = $staffName . $expendName . '支出' . $amount . '元';
+                $capitalType = dict::getDict('capitalType', 'expendRegister', 'id');
+
+                $data = [];
+                $data['mainId'] = $mainId;
+                $data['sjId'] = $this->sjId;
+                $data['amount'] = $amount;
+                $data['staffId'] = $staffId;
+                $data['staffName'] = $staffName;
+                $data['ptStyle'] = dict::getDict('ptStyle', 'ghs');
+                $data['capitalType'] = $capitalType;
+                $data['event'] = $event;
+                $data['remark'] = $remark;
+                ShopMoneyClass::addData($data);
+
+            }
+            $remark = $post['remark'] ?? '';
+            $staffName = $this->shopAdmin->name ?? '';
+            $ptStyle = dict::getDict('ptStyle', 'ghs');
+            $expendData = [
+                'type' => $type,
+                'amount' => $amount,
+                'remark' => $remark,
+                'mainId' => $this->mainId,
+                'staffId' => $this->shopAdminId,
+                'staffName' => $staffName,
+                'ptStyle' => $ptStyle,
+            ];
+            ExpendClass::add($expendData);
+            $transaction->commit();
+            util::complete();
+        } catch (\Exception $e) {
+            $transaction->rollBack();
+            $msg = $e->getMessage();
+            noticeUtil::push("登记支出失败,错误信息:{$msg}", '15280215347');
+        }
+
     }
 
 }

+ 28 - 28
biz-ghs/shop/classes/ShopMoneyClass.php

@@ -16,70 +16,70 @@ class ShopMoneyClass extends BaseClass
     public static function inAmount($data, $main)
     {
         $amount = $data['amount'] ?? 0;
-        $mainId = $main->id ?? 0;
         $main->money = bcadd($main->money, $amount, 2);
         $main->save();
         $balance = $main->money ?? 0;
         $data['balance'] = $balance;
         $data['io'] = 1;
-        $return = self::addData($data);
-        $id = $return->id ?? 0;
+
         $staffName = $data['staffName'] ?? '';
         $event = $staffName . '存入' . $amount . '元';
-
         $capitalType = dict::getDict('capitalType', 'inMoney', 'id');
-        $ptStyle = dict::getDict('ptStyle', 'ghs');
-        $change = [
-            'relateId' => $id,
-            'amount' => $amount,
-            'balance' => $balance,
-            'io' => 1,
-            'mainId' => $mainId,
-            'event' => $event,
-            'capitalType' => $capitalType,
-            'ptStyle' => $ptStyle,
-        ];
-        ShopMoneyChangeClass::addData($change);
+        $data['capitalType'] = $capitalType;
+        $data['event'] = $event;
+
+        $respond = self::addData($data);
+        return $respond;
     }
 
     //取出现金 ssh 20220811
     public static function outAmount($data, $main)
     {
-        $mainId = $main->id ?? 0;
         $amount = $data['amount'] ?? 0;
         if ($main->money < $amount) {
             util::fail('现金不足' . $amount . '元');
         }
         $main->money = bcsub($main->money, $amount, 2);
         $main->save();
-
         $balance = $main->money ?? 0;
         $data['balance'] = $balance;
         $data['io'] = 0;
-        $return = self::addData($data);
-        $id = $return->id ?? 0;
+
         $staffName = $data['staffName'] ?? '';
         $event = $staffName . '取出' . $amount . '元';
-
         $capitalType = dict::getDict('capitalType', 'outMoney', 'id');
+        $data['capitalType'] = $capitalType;
+        $data['event'] = $event;
+
+        $respond = self::addData($data);
+        return $respond;
+    }
+
+    public static function addData($data)
+    {
+        $result = self::add($data, true);
+        $id = $result->id ?? 0;
+        $amount = $data['amount'] ?? 0;
+        $balance = $data['balance'] ?? 0;
+        $mainId = $data['mainId'] ?? 0;
+        $io = $data['id'] ?? 0;
+        $event = $data['event'] ?? '';
+        $remark = $data['remark'] ?? '';
+        $capitalType = $data['capitalType'] ?? 0;
         $ptStyle = dict::getDict('ptStyle', 'ghs');
         $change = [
             'relateId' => $id,
             'amount' => $amount,
             'balance' => $balance,
-            'io' => 0,
+            'io' => $io,
             'mainId' => $mainId,
             'capitalType' => $capitalType,
             'ptStyle' => $ptStyle,
             'event' => $event,
+            'remark' => $remark,
         ];
         ShopMoneyChangeClass::addData($change);
+        return $result;
     }
 
-    public static function addData($data)
-    {
-        return self::add($data, true);
-    }
-
-
 }

+ 4 - 1
common/components/dict.php

@@ -238,6 +238,8 @@ class dict
             'inMoney' => ['id' => 55, 'name' => 'inMoney'],
             //取出现金
             'outMoney' => ['id' => 56, 'name' => 'outMoney'],
+            //支出登记
+            'expendRegister' => ['id' => 57, 'name' => 'expendRegister'],
         ],
         "capitalTypeList" => [//流水类型的对应链接,后台收支明细查看时跳转的链接
             0 => ['link' => '/capital/order-detail', 'name' => '网店', 'orderLink' => '/order/detail', 'id' => 0,],
@@ -267,6 +269,7 @@ class dict
             54 => ['link' => '', 'name' => '退货退款', 'id' => 54,],
             55 => ['link' => '', 'name' => '存入现金', 'id' => 55,],
             56 => ['link' => '', 'name' => '取出现金', 'id' => 56,],
+            57 => ['link' => '', 'name' => '支出登记', 'id' => 57,],
         ],
 
         //用户来源
@@ -348,7 +351,7 @@ class dict
             'qt' => 5,//其它
         ],
         'expendTypeMap' => [
-            0 => '店租', 1 => '水电', 2 => '物业', 3 => '伙食', 4 => '房租', 5 => '其它支出',
+            0 => '店租', 1 => '水电', 2 => '物业', 3 => '伙食', 4 => '房租', 5 => '其它',
         ],
 
     ];