|
@@ -558,14 +558,26 @@ class WholeController extends Curd
|
|
|
public function updateSheet($params)
|
|
|
{
|
|
|
try{
|
|
|
+ // 判断餐品是否连带着服务或实体
|
|
|
+ $goodsClassifys = array_unique(array_column($params['goodsContentList'],'goods_classify'));
|
|
|
+ if (in_array('MEALS',$goodsClassifys) && count($goodsClassifys) > 1){
|
|
|
+ return json_fail('餐饮餐品不支持和其他类型的产品一起下单');
|
|
|
+ }
|
|
|
+ if (in_array('MEALS',$goodsClassifys)){
|
|
|
+ $params['submit_goods_classify'] = 'MEALS';
|
|
|
+ }
|
|
|
foreach ($params['goodsContentList'] as $sheet){
|
|
|
// 先还原库存
|
|
|
+
|
|
|
$orderSheet = OrderSheet::where('order_sheet_id',$sheet['order_sheet_id'])->first();
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$orderSheet->join_sheet_goods_sku_id)->first();
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- $skuStorageJson['storage'] = $skuStorageJson['storage'] + $orderSheet->order_sheet_num;
|
|
|
- $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
- $goodsSku->save();
|
|
|
+ if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id',$orderSheet->join_sheet_goods_sku_id)->first();
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
+ $skuStorageJson['storage'] = $skuStorageJson['storage'] + $orderSheet->order_sheet_num;
|
|
|
+ $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
+ $goodsSku->save();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
$goodsRunning = GoodsRunning::where('join_running_goods_id',$orderSheet->join_sheet_goods_id)->first();
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage + $orderSheet->order_sheet_num;
|
|
@@ -574,20 +586,24 @@ class WholeController extends Curd
|
|
|
|
|
|
$data=[
|
|
|
'order_sheet_num'=>$sheet['nbr'],
|
|
|
- 'join_sheet_goods_sku_id'=>$sheet['sku_id']
|
|
|
+ 'join_sheet_goods_sku_id'=>$sheet['sku_id'],
|
|
|
+ 'order_sheet_amount'=>$sheet['nbr'] * $orderSheet->order_sheet_price,
|
|
|
+ 'order_sheet_pay'=>$sheet['nbr'] * $orderSheet->order_sheet_price,
|
|
|
];
|
|
|
OrderSheet::where('order_sheet_id',$sheet['order_sheet_id'])->update($data);
|
|
|
|
|
|
// 减库存
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$sheet['sku_id'])->first();
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- $skuStorageJson['storage'] = $skuStorageJson['storage'] - $sheet['nbr'];
|
|
|
- if ($skuStorageJson['storage'] < 0){
|
|
|
- throw new BusinessException('库存不足');
|
|
|
+ if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id',$sheet['sku_id'])->first();
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
+ $skuStorageJson['storage'] = $skuStorageJson['storage'] - $sheet['nbr'];
|
|
|
+ if ($skuStorageJson['storage'] < 0){
|
|
|
+ throw new BusinessException('库存不足');
|
|
|
+ }
|
|
|
+ $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
+ $goodsSku->save();
|
|
|
}
|
|
|
- $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
- $goodsSku->save();
|
|
|
-
|
|
|
+
|
|
|
$goodsRunning = GoodsRunning::where('join_running_goods_id',$orderSheet->join_sheet_goods_id)->first();
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $sheet['nbr'];
|
|
|
if ($goodsRunning->goods_running_storage < 0){
|
|
@@ -1158,14 +1174,17 @@ class WholeController extends Curd
|
|
|
// 验证库存
|
|
|
foreach($params['goodsContentList'] as $goods){
|
|
|
// 减库存,规格和总库存
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- if (isset($skuStorageJson['storage'])){
|
|
|
- $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
|
|
|
- }
|
|
|
- if (!isset($skuStorageJson['storage']) || $skuStorageJson['storage'] < 0){
|
|
|
- throw new BusinessException('库存不足');
|
|
|
+ if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
+ if (isset($skuStorageJson['storage'])){
|
|
|
+ $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
|
|
|
+ }
|
|
|
+ if (!isset($skuStorageJson['storage']) || $skuStorageJson['storage'] < 0){
|
|
|
+ throw new BusinessException('库存不足');
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
|
|
|
$goodsRunning = GoodsRunning::where('join_running_goods_id',$goods['goods_id'])->first();
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
|
|
@@ -1736,17 +1755,20 @@ class WholeController extends Curd
|
|
|
OrderSheet::insertGetId($data);
|
|
|
|
|
|
// 减库存,规格和总库存
|
|
|
- $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
|
|
|
- $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
- if (isset($skuStorageJson['storage'])){
|
|
|
- $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
|
|
|
- }
|
|
|
+ if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS'){
|
|
|
+ $goodsSku = GoodsSku::where('goods_sku_id',$goods['sku_id'])->first();
|
|
|
+ $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json,true);
|
|
|
+ if (isset($skuStorageJson['storage'])){
|
|
|
+ $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
|
|
|
+ }
|
|
|
|
|
|
- if (!isset($skuStorageJson['storage']) || $skuStorageJson['storage'] < 0){
|
|
|
- throw new BusinessException('库存不足');
|
|
|
+ if (!isset($skuStorageJson['storage']) || $skuStorageJson['storage'] < 0){
|
|
|
+ throw new BusinessException('库存不足');
|
|
|
+ }
|
|
|
+ $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
+ $goodsSku->save();
|
|
|
}
|
|
|
- $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
|
|
|
- $goodsSku->save();
|
|
|
+
|
|
|
|
|
|
$goodsRunning = GoodsRunning::where('join_running_goods_id',$goods['goods_id'])->first();
|
|
|
$goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
|
|
@@ -1919,6 +1941,15 @@ class WholeController extends Curd
|
|
|
$payDetail->pay_amount = $payDetail->pay_amount + $data['order_sheet_pay'];
|
|
|
}
|
|
|
|
|
|
+ // 减总库存
|
|
|
+ $goodsRunning = GoodsRunning::where('join_running_goods_id',$goods['goods_id'])->first();
|
|
|
+ $goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
|
|
|
+ if ($goodsRunning->goods_running_storage < 0){
|
|
|
+ throw new BusinessException('库存不足');
|
|
|
+ }
|
|
|
+
|
|
|
+ $goodsRunning->goods_running_sale = $goodsRunning->goods_running_sale + $goods['nbr'];
|
|
|
+ $goodsRunning->save();
|
|
|
|
|
|
OrderSheet::insertGetId($data);
|
|
|
}
|