|
|
@@ -2,9 +2,13 @@
|
|
|
|
|
|
namespace bizGhs\order\classes;
|
|
|
|
|
|
+use biz\shop\classes\ShopCapitalClass;
|
|
|
+use biz\shop\classes\ShopClass;
|
|
|
+use bizGhs\order\models\StockOutOrderItem;
|
|
|
use bizGhs\order\traits\OrderTrait;
|
|
|
use bizGhs\product\classes\ProductClass;
|
|
|
use bizGhs\stock\classes\StockRecordClass;
|
|
|
+use common\components\dict;
|
|
|
use common\components\orderSn;
|
|
|
use common\components\util;
|
|
|
use Yii;
|
|
|
@@ -118,6 +122,7 @@ class StockInOrderClass extends BaseClass
|
|
|
//修改状态 1=》2
|
|
|
// 加库存
|
|
|
// 加流水记录
|
|
|
+ //增加门店收支记录 : 出库的门店加金额,入库的门店减金额(用成本价计算)
|
|
|
public static function confirmOrder($orderSn,$shopId,$adminId)
|
|
|
{
|
|
|
$data = [
|
|
|
@@ -139,16 +144,86 @@ class StockInOrderClass extends BaseClass
|
|
|
$transaction->rollBack();
|
|
|
util::fail("订单异常");
|
|
|
}
|
|
|
+ $inProductMapData = ProductClass::getProductMapData($itemInfo);
|
|
|
+ $inTotalCost = 0;
|
|
|
foreach ($itemInfo as $k=>$v){
|
|
|
$stockInfo = ProductClass::addStockByItemNum($v['productId'],$v['itemNum']);
|
|
|
$itemInfo[$k]['oldStock'] = $stockInfo['oldStock'];
|
|
|
$itemInfo[$k]['itemStock'] = $stockInfo['oldStock'];
|
|
|
$itemInfo[$k]['newStock'] = $stockInfo['newStock'];
|
|
|
+ $inPId = $v['productId'];
|
|
|
+ $inNum = $v['itemNum'];
|
|
|
+ $cost = $inProductMapData[$inPId]['cost']??0; //成本
|
|
|
+ $inTotalCost = bcadd($inTotalCost,bcmul($inNum,$cost,2),2);
|
|
|
}
|
|
|
//流水记录
|
|
|
$orderData['shopId'] = $shopId;
|
|
|
$orderData['itemInfo'] = $itemInfo;
|
|
|
StockRecordClass::addRecordByOrder($orderData,StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK);
|
|
|
+ // 门店收支记录:
|
|
|
+ //出库门店
|
|
|
+ $outOrderSn = $orderData['outOrderSn'];
|
|
|
+ $outShopId = $orderData['outShopId'];
|
|
|
+ $outOrderInfo = StockOutOrderClass::getOrderDetail($outOrderSn,$outShopId);
|
|
|
+ $payWay =dict::getDict('payWay', 'unknown');
|
|
|
+ if($outOrderInfo){
|
|
|
+ $outOrderInfoItem = $outOrderInfo['itemInfo']??'';
|
|
|
+ if($outOrderInfoItem){
|
|
|
+ $outTotalCost = 0;
|
|
|
+ $outProductData = ProductClass::getProductMapData($outOrderInfoItem);
|
|
|
+ foreach ($outOrderInfoItem as $v){
|
|
|
+ $pId = $v['productId'];
|
|
|
+ $num = $v['itemNum'];
|
|
|
+ $cost = $outProductData[$pId]['cost']??0; //成本
|
|
|
+ $outTotalCost = bcadd($outTotalCost,bcmul($num,$cost,2),2);
|
|
|
+ }
|
|
|
+ $outEvent = '出库';
|
|
|
+ $outCapitalType = dict::getDict('capitalType', 'ghsCheckOut', 'id');
|
|
|
+
|
|
|
+ $shop = ShopClass::getLockById($outShopId);
|
|
|
+ if($shop){
|
|
|
+ $outCurrentTotalIncome = bcadd($shop->totalIncome, $outTotalCost, 2);
|
|
|
+ }else{
|
|
|
+ $outCurrentTotalIncome = $outTotalCost;
|
|
|
+ }
|
|
|
+ $capitalData = [
|
|
|
+ 'capitalType' => $outCapitalType,
|
|
|
+ 'io' => 1,
|
|
|
+ 'totalIncome' => $outCurrentTotalIncome,
|
|
|
+ 'payWay' => $payWay,
|
|
|
+ 'amount' => $outTotalCost,
|
|
|
+ 'sjId' => $outOrderInfo['sjId']??0,
|
|
|
+ 'shopId' => $outShopId,
|
|
|
+ 'event' => $outEvent,
|
|
|
+ ];
|
|
|
+ ShopCapitalClass::addCapital($capitalData);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //入库门店
|
|
|
+
|
|
|
+ $inEvent = '入库';
|
|
|
+ $inCapitalType = dict::getDict('capitalType', 'ghsCheckIn', 'id');
|
|
|
+
|
|
|
+ $inShop = ShopClass::getLockById($shopId);
|
|
|
+ if($inShop){
|
|
|
+ $inCurrentTotalIncome = bcadd($inShop->totalIncome, $inTotalCost, 2);
|
|
|
+ }else{
|
|
|
+ $inCurrentTotalIncome = $inTotalCost;
|
|
|
+ }
|
|
|
+ $capitalData = [
|
|
|
+ 'capitalType' => $inCapitalType,
|
|
|
+ 'io' => 1,
|
|
|
+ 'totalIncome' => $inCurrentTotalIncome,
|
|
|
+ 'payWay' => $payWay,
|
|
|
+ 'amount' => $inTotalCost,
|
|
|
+ 'sjId' => $orderData['sjId']??0,
|
|
|
+ 'shopId' => $shopId,
|
|
|
+ 'event' => $inEvent,
|
|
|
+ ];
|
|
|
+ ShopCapitalClass::addCapital($capitalData);
|
|
|
+
|
|
|
$transaction->commit();
|
|
|
|
|
|
}catch (\Exception $exception){
|