shish 4 lat temu
rodzic
commit
45619438b1

+ 42 - 1
app-hd/controllers/WastageController.php

@@ -4,6 +4,7 @@ namespace hd\controllers;
 
 use bizGhs\order\classes\StockWastageOrderClass;
 use bizGhs\product\classes\ProductClass;
+use bizHd\wastage\classes\WastageClass;
 use common\components\dict;
 use common\components\util;
 use Yii;
@@ -13,6 +14,43 @@ class WastageController extends BaseController
 
     public $guestAccess = [];
 
+    //成品报损 ssh 20220424
+    public function actionGoodsWastage()
+    {
+        $shopAdmin = $this->shopAdmin;
+        if (isset($shopAdmin->super) == false || $shopAdmin->super != 1) {
+            util::fail('超管才能报损');
+        }
+        $post = Yii::$app->request->post();
+        $post['shopId'] = $this->shopId;
+        $post['sjId'] = $this->sjId;
+        $post['mainId'] = $this->mainId;
+        $post['shopAdminId'] = $this->shopAdminId;
+        $shopAdmin = $this->shopAdmin;
+        $adminName = $shopAdmin['name'] ?? '';
+        $post['shopAdminName'] = $adminName;
+        $goodsJson = $post['goodsList'] ?? '';
+        if (empty($goodsJson)) {
+            util::fail('请选择成品');
+        }
+        $goodsList = json_decode($goodsJson, true);
+        if (empty($goodsList)) {
+            util::fail('请选择成品');
+        }
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $post['goodsList'] = $goodsList;
+            $return = WastageClass::goodsWastage($post);
+            $transaction->commit();
+            util::success($return);
+        } catch (\Exception $e) {
+            $transaction->rollBack();
+            Yii::info("失败原因:" . $e->getMessage());
+            util::fail('报损失败');
+        }
+    }
+
     //新增损耗
     public function actionCreateOrder()
     {
@@ -62,7 +100,10 @@ class WastageController extends BaseController
             $bigNum = $v['bigNum'] ?? 0;
             $smallNum = $v['smallNum'] ?? 0;
             if ($bigNum <= 0 && $smallNum <= 0) {
-                util::fail('花材数量不能为0');
+                util::fail('数量不能为0');
+            }
+            if (isset($v['property']) && $v['property'] == 0) {
+                util::fail('花材和成品请分开报损');
             }
         }
         $connection = Yii::$app->db;

+ 3 - 3
biz-hd/goods/classes/GoodsClass.php

@@ -213,8 +213,9 @@ class GoodsClass extends BaseClass
                 }
             }
             $val['belongCategory'] = $belongCategory;
-            $val['cover'] = isset($val['smallImgList'][0]) ? $val['smallImgList'][0] : imgUtil::groupImg('');
-
+            $shortCover = isset($val['cover']) && !empty($val['cover']) ? $val['cover'] : '/hhb_small.png';
+            $val['cover'] = imgUtil::groupImg($shortCover);
+            $val['shortCover'] = $shortCover;
             if ($getItem) {
                 $itemList = GoodsItemClass::getAllByCondition(['goodsId' => $id], null, '*');
                 foreach ($itemList as $itemKey => $itemVal) {
@@ -227,7 +228,6 @@ class GoodsClass extends BaseClass
                 }
                 $val['goodsItem'] = $itemList;
             }
-
             $list[$key] = $val;
         }
         return $list;

+ 46 - 0
biz-hd/wastage/classes/WastageClass.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace bizHd\wastage\classes;
+
+use bizHd\base\classes\BaseClass;
+use common\components\orderSn;
+
+class WastageClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\wastage\models\Wastage';
+
+    //成品报损 ssh 20220424
+    public static function goodsWastage($data)
+    {
+        $orderSn = orderSn::getGhsStockWastageSn();
+        $data['orderSn'] = $orderSn;
+        $mainId = $data['mainId'] ?? 0;
+        $return = self::add($data, true);
+        $godsList = $data['goodsList'] ?? [];
+        foreach ($godsList as $item) {
+            $goodsId = $item['goodsId'] ?? 0;
+            $name = $item['name'] ?? '';
+            $cover = $item['cover'] ?? '';
+            $num = $item['num'] ?? 0;
+            $shopAdminName = $data['shopAdminName'] ?? '';
+            $goods = [
+                'mainId' => $mainId,
+                'wastageSn' => $orderSn,
+                'goodsId' => $goodsId,
+                'name' => $name,
+                'cover' => $cover,
+                'num' => $num,
+                'beforeStock' => 0,
+                'afterStock' => 0,
+                'unitPrice' => 0,
+                'unitCost' => 0,
+                'shopAdminName' => $shopAdminName,
+                'status' => 1,
+            ];
+            WastageGoodsClass::addData($goods);
+        }
+        return $return;
+    }
+
+}

+ 44 - 0
biz-hd/wastage/classes/WastageGoodsClass.php

@@ -0,0 +1,44 @@
+<?php
+
+namespace bizHd\wastage\classes;
+
+use biz\stock\classes\GoodsStockRecordClass;
+use bizHd\base\classes\BaseClass;
+use bizHd\goods\classes\GoodsClass;
+
+class WastageGoodsClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\wastage\models\WastageGoods';
+
+    public static function addData($data)
+    {
+        $goodsId = $data['goodsId'] ?? 0;
+        $mainId = $data['mainId'] ?? 0;
+        $num = $data['num'] ?? 0;
+        $sjId = $data['sjId'] ?? 0;
+        $shopId = $data['shopId'] ?? 0;
+        $orderSn = $data['wastageSn'] ?? '';
+        $relateName = $data['shopAdminName'] ?? "";
+        //增加库存
+        $respond = GoodsClass::decreaseStock($goodsId, $mainId, $num);
+        $oldStock = $respond['oldStock'] ?? 0;
+        $newStock = $respond['newStock'] ?? 0;
+        //增加库存记录
+        $params = [];
+        $params['sjId'] = $sjId;
+        $params['shopId'] = $shopId;
+        $params['mainId'] = $mainId;
+        $params['orderSn'] = $orderSn;
+        $params['goodsId'] = $goodsId;
+        $params['goodsNum'] = $num;
+        $params['relateName'] = $relateName;
+        $params['oldStock'] = $oldStock;
+        $params['newStock'] = $newStock;
+        GoodsStockRecordClass::wastage($params);
+        $data['beforeStock'] = $oldStock;
+        $data['afterStock'] = $newStock;
+        return self::add($data);
+    }
+
+}

+ 13 - 0
biz-hd/wastage/models/Wastage.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizHd\wastage\models;
+use bizHd\base\models\Base;
+
+class Wastage extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhWastage';
+    }
+
+}

+ 13 - 0
biz-hd/wastage/models/WastageGoods.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizHd\wastage\models;
+use bizHd\base\models\Base;
+
+class WastageGoods extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhWastageGoods';
+    }
+
+}

+ 10 - 0
biz-hd/wastage/services/WastageService.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace bizHd\wastage\services;
+use bizHd\base\services\BaseService;
+class WastageService extends BaseService
+{
+
+    public static $baseFile = '\bizHd\wastage\classes\WastageClass';
+
+}

+ 7 - 0
biz/stock/classes/GoodsStockRecordClass.php

@@ -36,6 +36,13 @@ class GoodsStockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_PURCHASE_CANCEL => '取消制作成品',
     ];
 
+    //报损
+    public static function wastage($data)
+    {
+        $data['recordType'] = self::STOCK_RECORD_TYPE_WASTAGE;
+        return self::addRecord($data);
+    }
+
     //采购or工单(制作成品)
     public static function addMakeGoods($data)
     {

+ 3 - 0
console/controllers/InitController.php

@@ -2,6 +2,7 @@
 
 namespace console\controllers;
 
+use biz\product\classes\XjClass;
 use biz\pt\classes\PtYeChangeClass;
 use biz\recharge\classes\RechargeClass;
 use biz\shop\classes\MainClass;
@@ -136,6 +137,8 @@ class InitController extends Controller
             //ghs专有的
             CgClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
 
+            XjClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+
             /********琦海 start ************/
 
             //报损中央化

+ 22 - 1
sql.txt

@@ -886,4 +886,25 @@ ALTER TABLE xhOrder MODIFY `realPrice` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COM
 ALTER TABLE xhOrder ADD `debtPrice` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '总欠款金额' AFTER `realPrice`;
 ALTER TABLE xhOrder ADD `remainDebtPrice` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '剩余欠款金额' AFTER `debtPrice`;
 
-===零售订单优化 ssh 20220422
+ALTER TABLE xhXj ADD mainId INT NOT NULL DEFAULT 0 COMMENT '' AFTER `shopId`;
+
+===零售订单优化 ssh 20220422
+
+DROP TABLE IF EXISTS `xhWastageGoods`;
+CREATE TABLE IF NOT EXISTS `xhWastageGoods` (
+  `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+  `mainId` INT(11) NOT NULL DEFAULT '0' COMMENT '中央id',
+  `wastageSn` CHAR(20) NOT NULL DEFAULT '' COMMENT '订单编号',
+  `goodsId` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '商品id',
+  `name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '名称',
+  `cover` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '封面',
+  `num` INT NOT NULL DEFAULT 0 COMMENT '报损数量',
+  `beforeStock` INT NOT NULL DEFAULT '0' COMMENT '报损前库存',
+  `afterStock` INT NOT NULL DEFAULT '0' COMMENT '报损后库存',
+  `unitPrice` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '单位售价',
+  `unitCost` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '单位成本',
+  `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `updateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间'
+) COMMENT='损耗成品详情';
+
+---ssh 20220424