|
|
@@ -42,7 +42,9 @@ class CheckOrderClass extends BaseClass
|
|
|
}
|
|
|
|
|
|
$data['orderSn'] = $orderSn;
|
|
|
- $ghsItemInfo = $data['itemInfo']; // [{bigNum:0,smallNum:0,productId:1}]
|
|
|
+ //数据格式 [{bigNum:0,smallNum:0,productId:1}]
|
|
|
+ $ghsItemInfo = $data['itemInfo'];
|
|
|
+ //之前出现过同个花材在不现分类下出现,这里进行组合
|
|
|
$ghsItemInfo = self::mergeItemInfo($ghsItemInfo);
|
|
|
|
|
|
$sumNum = self::sumNumByItemInfo($ghsItemInfo);
|
|
|
@@ -56,10 +58,13 @@ class CheckOrderClass extends BaseClass
|
|
|
self::deleteByCondition(['orderSn' => $orderSn]);
|
|
|
CheckOrderItemClass::deleteByCondition(['orderSn' => $orderSn]);
|
|
|
}
|
|
|
- $order = self::add($data);
|
|
|
+ $order = self::add($data, true);
|
|
|
//写入详情表
|
|
|
$batchData = self::groupOrderItem($ghsItemInfo, $orderSn);
|
|
|
CheckOrderItemClass::batchAddOrderItem($batchData);
|
|
|
+
|
|
|
+ $addPrice = 0;
|
|
|
+ $subPrice = 0;
|
|
|
if ($draft === false) {
|
|
|
//盘点完成完成,直接将库存中的数量改为当时盘点的数量
|
|
|
foreach ($batchData as $v) {
|
|
|
@@ -92,8 +97,20 @@ class CheckOrderClass extends BaseClass
|
|
|
$record['oldStock'] = $productData['stock'];
|
|
|
$record['newStock'] = $v['itemNum']; //新库存直接等于盘点的数量
|
|
|
StockRecordService::addCheckOrderRecord($record);
|
|
|
+
|
|
|
+ $amount = $v['amount'] ?? 0;
|
|
|
+ if ($amount > 0) {
|
|
|
+ $addPrice = bcadd($addPrice, $amount, 2);
|
|
|
+ } else {
|
|
|
+ $subPrice = bcadd($subPrice, $amount, 2);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ $order->addPrice = $addPrice;
|
|
|
+ $order->subPrice = $subPrice;
|
|
|
+ $order->price = bcadd($addPrice, $subPrice, 2);
|
|
|
+ $order->save();
|
|
|
+
|
|
|
$transaction->commit();
|
|
|
return $order;
|
|
|
|
|
|
@@ -169,9 +186,6 @@ class CheckOrderClass extends BaseClass
|
|
|
public static function groupOrderItem($ghsItemInfo, $orderSn)
|
|
|
{
|
|
|
$productData = self::getProductMapData($ghsItemInfo);
|
|
|
- // $itemIds = array_column($productData,'itemId');
|
|
|
- //$itemData = xhItemService::getByIds($itemIds);
|
|
|
- //$itemData = array_column($itemData, NULL, 'id');
|
|
|
//写入详情表
|
|
|
$batchData = [];
|
|
|
foreach ($ghsItemInfo as $v) {
|
|
|
@@ -188,6 +202,7 @@ class CheckOrderClass extends BaseClass
|
|
|
$tmp['itemPrice'] = $productData[$productId]['price'] ?? 0; //当时售卖的价格
|
|
|
$tmp['itemCost'] = $productData[$productId]['cost'] ?? 0; //当时成本的价格
|
|
|
$tmp['profitLossNum'] = bcsub($tmp['itemNum'], $tmp['itemStock'], 2); //盈亏数 = 盘点数-当时库存数
|
|
|
+ $tmp['amount'] = bcmul($tmp['profitLossNum'], $tmp['itemCost'], 2);
|
|
|
$stockFormat = ProductClass::formatStock($tmp['itemStock'], $unitNum); // 库存总单位数量转大小单位的数量
|
|
|
$itemInfo = [
|
|
|
'itemName' => $productData[$productId]['name'] ?? '',//花材名称
|