shish 3 år sedan
förälder
incheckning
b14dc3e25c

+ 11 - 4
app-ghs/controllers/OrderItemController.php

@@ -4,6 +4,7 @@ namespace ghs\controllers;
 
 use bizGhs\order\classes\OrderClass;
 use bizGhs\order\classes\OrderItemClass;
+use bizGhs\order\services\OrderItemService;
 use bizGhs\order\services\OrderService;
 use bizGhs\product\classes\ProductClass;
 use common\components\imgUtil;
@@ -18,9 +19,9 @@ class OrderItemController extends BaseController
     //赠送花材 ssh 20230411
     public function actionGiveItem()
     {
-        $get = Yii::$app->request->get();
-        $id = $get['id'] ?? 0;
-        $num = $get['num'] ?? 0;
+        $post = Yii::$app->request->post();
+        $id = $post['id'] ?? 0;
+        $num = $post['num'] ?? 0;
         if (is_numeric($num) == false || $num <= 0) {
             util::fail('请填写赠送数量');
         }
@@ -34,8 +35,14 @@ class OrderItemController extends BaseController
         $connection = Yii::$app->db;//事务处理
         $transaction = $connection->beginTransaction();
         try {
+
+            $staff = $this->shopAdmin;
+            $staffName = $staff->name ?? '';
+            $staffId = $staff->id ?? 0;
+            $data = ['shopId' => $this->shopId, 'sjId' => $this->sjId, 'shopAdminName' => $staffName, 'staffId' => $staffId];
+            $respond = OrderItemService::giveProduct($data, $orderItem, $num);
             $transaction->commit();
-            util::success([], '赠送成功');
+            util::success(['info' => $respond], '赠送成功');
         } catch (\Exception $e) {
             $transaction->rollBack();
             Yii::info("赠送出错了:" . $e->getMessage());

+ 13 - 0
biz-ghs/order/classes/GiveClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use bizGhs\base\classes\BaseClass;
+use Yii;
+
+class GiveClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\order\models\Give';
+
+}

+ 13 - 0
biz-ghs/order/classes/GiveSnClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use bizGhs\base\classes\BaseClass;
+use Yii;
+
+class GiveSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\order\models\GiveSn';
+
+}

+ 67 - 0
biz-ghs/order/classes/OrderItemClass.php

@@ -9,6 +9,7 @@ use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\StockRecordClass;
 use common\components\dict;
 use common\components\imgUtil;
+use common\components\orderSn;
 use common\components\util;
 use Yii;
 use bizGhs\base\classes\BaseClass;
@@ -18,6 +19,72 @@ class OrderItemClass extends BaseClass
 
     public static $baseFile = '\bizGhs\order\models\OrderItem';
 
+    public static function giveItem($order, $orderItem, $product, $num, $data)
+    {
+        $productId = $product->id ?? 0;
+        $ptItemId = $product->itemId ?? 0;
+        $name = $product->name ?? '';
+        $cover = $product->cover ?? '';
+        $ratio = $product->ratio ?? 20;
+        $ratioType = $product->ratioType ?? 0;
+        $mainId = $product->mainId ?? 0;
+        $targetId = $order->id ?? 0;
+        $targetSonId = $orderItem->id ?? 0;
+
+        $orderItem->giveNum = bcadd($orderItem->giveNum, $num);
+        $orderItem->save();
+
+        $orderSn = orderSn::getGiveSn();
+        $giveData = [
+            'orderSn' => $orderSn,
+            'mainId' => $mainId,
+            'productId' => $productId,
+            'name' => $name,
+            'cover' => $cover,
+            'ratio' => $ratio,
+            'ratioType' => $ratioType,
+            'ptItemId' => $ptItemId,
+            'giveNum' => $num,
+            'targetId' => $targetId,
+            'targetSonId' => $targetSonId,
+            'staffId' => $data['staffId'] ?? 0,
+            'staffName' => $data['staffName'] ?? '',
+            'ghsId' => $order->ghsId ?? 0,
+            'customId' => $order->customId ?? 0,
+            'customName' => $order->customName ?? '',
+            'customNamePy' => $order->customNamePy ?? '',
+            'customAvatar' => $order->customAvatar ?? '',
+            'customMobile' => $order->customMobile ?? '',
+        ];
+        $giveInfo = GiveClass::add($giveData, true);
+
+        $stockInfo = ProductClass::decreaseStock($productId, $num, 0, true);
+        $oldStock = $stockInfo['oldStock'];
+        $newStock = $stockInfo['newStock'];
+
+        $stockItem = [[
+            'productId' => $productId,
+            'itemId' => $ptItemId,
+            'itemNum' => $num,
+            'oldStock' => $oldStock,
+            'itemStock' => $oldStock,
+            'newStock' => $newStock,
+            'bigNum' => $num,
+            'smallNum' => 0,
+        ]];
+
+        $stockData = [];
+        $stockData['shopId'] = $data['shopId'];
+        $stockData['relateName'] = $data['staffName'] ?? '';
+        $stockData['ptStyle'] = dict::getDict('ptStyle', 'ghs');
+        $stockData['orderSn'] = $orderSn;
+        $stockData['sjId'] = $data['sjId'] ?? 0;
+        $stockData['itemInfo'] = $stockItem;
+        $stockData['relateName'] = $order->customName ?? '';
+        StockRecordClass::addRecordByOrder($stockData, StockRecordClass::STOCK_RECORD_TYPE_GIVE);
+        return $giveInfo;
+    }
+
     //获取订单的花材 ssh 2021.3.2
     public static function getOrderItem($orderSn)
     {

+ 13 - 0
biz-ghs/order/models/Give.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+
+class Give extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsGive';
+	}
+
+}

+ 13 - 0
biz-ghs/order/models/GiveSn.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+
+class GiveSn extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsGiveSn';
+	}
+
+}

+ 13 - 0
biz-ghs/order/services/GiveService.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\order\services;
+
+use bizGhs\base\services\BaseService;
+use Yii;
+
+class GiveService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\order\classes\GiveClass';
+
+}

+ 23 - 0
biz-ghs/order/services/OrderItemService.php

@@ -6,6 +6,7 @@ use bizGhs\base\services\BaseService;
 use bizGhs\order\classes\OrderClass;
 use bizGhs\order\classes\OrderItemClass;
 use bizGhs\product\classes\ProductClass;
+use bizHd\purchase\classes\PurchaseItemClass;
 use common\components\util;
 use Yii;
 
@@ -14,4 +15,26 @@ class OrderItemService extends BaseService
 
     public static $baseFile = '\bizGhs\order\classes\OrderItemClass';
 
+    public static function giveProduct($data, $orderItem, $num)
+    {
+        $productId = $orderItem->productId ?? 0;
+        $product = ProductClass::getById($productId, true);
+        if (empty($product)) {
+            util::fail('没有找到花材');
+        }
+        $ptItemId = $product->itemId ?? 0;
+        if (empty($ptItemId)) {
+            util::fail('没有找到平台id');
+        }
+        $orderSn = $orderItem->orderSn ?? '';
+        $orderInfo = OrderClass::getByCondition(['orderSn' => $orderSn], true);
+        if (empty($orderInfo)) {
+            util::fail('没有找到订单');
+        }
+        $respond = OrderItemClass::giveItem($orderInfo, $orderItem, $product, $num, $data);
+        $cgId = $orderInfo->purchaseId ?? 0;
+        PurchaseItemClass::acceptItem($cgId, $ptItemId, $num);
+        return $respond;
+    }
+
 }

+ 4 - 0
biz-ghs/stock/classes/StockRecordClass.php

@@ -32,6 +32,8 @@ class StockRecordClass extends BaseClass
     const STOCK_RECORD_TYPE_HD_REFUND = 16;//花店退货退款
     const STOCK_RECORD_TYPE_GHS_REFUND = 17;//供货商申请退货退款
     const STOCK_RECORD_TYPE_PART = 18;//供货商申请退货退款
+    const STOCK_RECORD_TYPE_GIVE = 19;//赠送
+    const STOCK_RECORD_TYPE_ACCEPT = 20;//接收赠送
 
     public static $typeMap = [
         self::STOCK_RECORD_TYPE_PURCHASE => '采购入库',
@@ -52,6 +54,8 @@ class StockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_HD_REFUND => '退货退款',
         self::STOCK_RECORD_TYPE_GHS_REFUND => '采购申请退货',
         self::STOCK_RECORD_TYPE_PART => '拆散',
+        self::STOCK_RECORD_TYPE_GIVE => '赠送',
+        self::STOCK_RECORD_TYPE_ACCEPT => '获赠',
     ];
 
     public static function getRecordList($where)

+ 13 - 0
biz-hd/cg/classes/AcceptClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class AcceptClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\Accept';
+
+}

+ 13 - 0
biz-hd/cg/classes/AcceptSnClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class AcceptSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\AcceptSn';
+
+}

+ 15 - 0
biz-hd/cg/models/Accept.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\cg\models;
+
+use bizHd\base\models\Base;
+
+class Accept extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhHdAccept';
+    }
+
+}

+ 15 - 0
biz-hd/cg/models/AcceptSn.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\cg\models;
+
+use bizHd\base\models\Base;
+
+class AcceptSn extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhHdAcceptSn';
+    }
+
+}

+ 97 - 2
biz-hd/purchase/classes/PurchaseItemClass.php

@@ -2,19 +2,114 @@
 
 namespace bizHd\purchase\classes;
 
+use bizHd\cg\classes\AcceptClass;
+use bizHd\product\classes\ProductClass;
+use common\components\dict;
 use common\components\orderSn;
 use common\components\stringUtil;
+use common\components\util;
 use Yii;
 use bizHd\base\classes\BaseClass;
+use bizGhs\stock\classes\StockRecordClass;
 
 class PurchaseItemClass extends BaseClass
 {
 
-	public static $baseFile = '\bizHd\purchase\models\PurchaseItem';
+    public static $baseFile = '\bizHd\purchase\models\PurchaseItem';
+
+    public static function acceptItem($cgId, $ptItemId, $num)
+    {
+        $cg = PurchaseClass::getById($cgId, true);
+        if (empty($cg)) {
+            util::fail('没有采购信息');
+        }
+        $cgOrderSn = $cg->orderSn ?? '';
+        $shopId = $cg->shopId ?? 0;
+        $sjId = $cg->sjId ?? 0;
+        $mainId = $cg->mainId ?? 0;
+        $targetId = $cg->id ?? 0;
+        $cgItemList = PurchaseItemClass::getAllByCondition(['orderSn' => $cgOrderSn], null, '*', null, true);
+        if (empty($cgItemList)) {
+            util::fail('没有采购信息哦');
+        }
+        $targetSonId = 0;
+        $productId = 0;
+        $selectInfo = null;
+        foreach ($cgItemList as $cgItem) {
+            $currentPtItemId = $cgItem->itemId ?? 0;
+            $currentId = $cgItem->id ?? 0;
+            if ($currentPtItemId == $ptItemId) {
+                $targetSonId = $currentId;
+                $productId = $cgItem->productId ?? 0;
+                $selectInfo = $cgItem;
+            }
+        }
+        if (empty($selectInfo)) {
+            util::fail('没有采购信息');
+        }
+        $selectInfo->acceptNum = bcadd($selectInfo->acceptNum, $num);
+        $selectInfo->save();
+
+        if (empty($productId)) {
+            util::fail('没有找到采购的花材信息');
+        }
+        $product = ProductClass::getById($productId, true);
+        if (empty($product)) {
+            util::fail('没有花材信息');
+        }
+        $orderSn = orderSn::getAcceptSn();
+
+        $accData = [
+            'orderSn' => $orderSn,
+            'mainId' => $mainId,
+            'productId' => $productId,
+            'name' => $product->name ?? '',
+            'cover' => $product->cover ?? '',
+            'ratio' => $product->ratio ?? 20,
+            'ratioType' => $product->ratioType ?? 0,
+            'ptItemId' => $ptItemId,
+            'giveNum' => $num,
+            'targetId' => $targetId,
+            'targetSonId' => $targetSonId,
+            'customId' => $cg->customId ?? 0,
+            'ghsId' => $cg->ghsId ?? 0,
+            'ghsName' => $cg->ghsName ?? '',
+            'ghsAvatar' => $cg->ghsAvatar ?? '',
+            'ghsMobile' => $cg->ghsMobile ?? '',
+        ];
+        $ac = AcceptClass::add($accData, true);
+
+        $stockInfo = \bizGhs\product\classes\ProductClass::addStock($productId, $num, 0);
+        $oldStock = $stockInfo['oldStock'];
+        $newStock = $stockInfo['newStock'];
+
+        $stockItem = [[
+            'productId' => $productId,
+            'itemId' => $ptItemId,
+            'itemNum' => $num,
+            'oldStock' => $oldStock,
+            'itemStock' => $oldStock,
+            'newStock' => $newStock,
+            'bigNum' => $num,
+            'smallNum' => 0,
+        ]];
+
+        $stockData = [];
+        $stockData['shopId'] = $shopId;
+        $stockData['relateName'] = '';
+        $stockData['ptStyle'] = dict::getDict('ptStyle', 'hd');
+        $stockData['orderSn'] = $orderSn;
+        $stockData['sjId'] = $sjId;
+        $stockData['itemInfo'] = $stockItem;
+        $stockData['relateName'] = $cg->ghsName;
+        StockRecordClass::addRecordByOrder($stockData, StockRecordClass::STOCK_RECORD_TYPE_ACCEPT);
+
+        return $ac;
+    }
 
     public static function getOrderItemDetail($orderSn)
     {
-        return self::getAllByCondition(['orderSn'=>$orderSn],null,'*');
+        return self::getAllByCondition(['orderSn' => $orderSn], null, '*');
     }
 
 }

+ 30 - 0
common/components/orderSn.php

@@ -3,7 +3,9 @@
 namespace common\components;
 
 use biz\sj\classes\CashSnClass;
+use bizGhs\order\classes\GiveSnClass;
 use bizGhs\order\classes\OrderClass;
+use bizHd\cg\classes\AcceptSnClass;
 use bizHd\cg\classes\CgRefundSnClass;
 use bizHd\common\classes\MobileSnClass;
 use bizHd\goods\classes\GoodsCgSnClass;
@@ -28,6 +30,34 @@ use yii\imagine\Image;
 class orderSn
 {
 
+    public static function getAcceptSn()
+    {
+        $prefix = 'ACC_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'ACC';
+        }
+        $respond = AcceptSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
+    public static function getGiveSn()
+    {
+        $prefix = 'GIV_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'GIV';
+        }
+        $respond = GiveSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
     //供货商订单号生成 ssh 2021.1.19
     public static function getGhsOrderSn()
     {