From 2537532c883a3f0aa924a349d48b096e9fa76185 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 15 Nov 2024 16:22:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BB=93=E5=BA=93):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=95=86=E5=93=81=E9=80=80=E5=9B=9E=E6=97=B6=E7=9A=84=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=92=8C=E8=AE=A2=E5=8D=95=E9=87=91=E9=A2=9D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在导出订单时,增加了对商品数量的判断,只导出数量大于 0 的商品 - 修复了商品退回时,仓库商品数量和总金额的计算逻辑 - 优化了数据库查询,减少了冗余的查询操作 --- .../logic/beforehand_order/BeforehandOrderLogic.php | 7 ++++--- .../WarehouseProductReturnLogic.php | 13 ++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php index 6a938b453..ad99afc3b 100644 --- a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php +++ b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php @@ -621,7 +621,7 @@ class BeforehandOrderLogic extends BaseLogic throw new BusinessException('订单未出库,不能导出出库单'); } $order['admin_name'] = Admin::where('id', $order['admin_id'])->value('name'); - $data= WarehouseProduct::where('oid',$order['outbound_id'])->select()->each(function ($item) { + $data= WarehouseProduct::where('oid',$order['outbound_id'])->where('nums','>',0)->select()->each(function ($item) { $find = StoreProduct::where('id', $item['product_id'])->field('top_cate_id,store_name,unit')->find(); $item['unit_name'] = StoreProductUnit::where('id', $find['unit'])->value('name'); $item['store_name'] = $find['store_name']; @@ -630,8 +630,9 @@ class BeforehandOrderLogic extends BaseLogic $order['system_store_name'] = SystemStore::where('id', $order['store_id'])->value('name'); $other_data = $order['other_data']; unset($order['other_data']); - $code=WarehouseOrder::where('id', $order['outbound_id'])->value('code'); - $order['order_id']=$code??$order['order_id']; + $find=WarehouseOrder::where('id', $order['outbound_id'])->find(); + $order['order_id']=$find['code']; + $order['pay_price']=$find['total_price']; $file_path = $order_info->export($data, $order, $other_data); return $file_path; } diff --git a/app/admin/logic/warehouse_product_return/WarehouseProductReturnLogic.php b/app/admin/logic/warehouse_product_return/WarehouseProductReturnLogic.php index de2f3fbb1..686f18066 100644 --- a/app/admin/logic/warehouse_product_return/WarehouseProductReturnLogic.php +++ b/app/admin/logic/warehouse_product_return/WarehouseProductReturnLogic.php @@ -58,7 +58,17 @@ class WarehouseProductReturnLogic extends BaseLogic 'total_price'=>bcmul($params['nums'],$find['price'],2), ]); if($params['financial_pm']==1 &&$params['return_type']==1){ - $find->dec('nums',$params['nums'])->update(); + $nums=bcsub($find['nums'],$params['nums'],2); + $total_price=0; + if($nums>0){ + $total_price=bcmul($nums,$find['price'],2); + + } + $find->save(['nums'=>$nums,'total_price'=>$total_price]); + if($nums>0){ + $total_price=WarehouseProduct::where('oid',$find['oid'])->sum('total_price'); + WarehouseOrder::where(['id'=>$find['oid']])->update(['total_price'=>$total_price]); + } WarehouseProductStorege::where(['product_id'=>$find['product_id'],'warehouse_id'=>$find['warehouse_id']])->inc('nums',$params['nums'])->update(); }elseif($params['financial_pm']==0 &&$params['return_type']==2){ WarehouseProductStorege::where(['product_id'=>$find['product_id'],'warehouse_id'=>$find['warehouse_id']])->dec('nums',$params['nums'])->update(); @@ -70,6 +80,7 @@ class WarehouseProductReturnLogic extends BaseLogic return true; } catch (\Throwable $e) { Db::rollback(); + d($e); throw new BusinessException($e->getMessage()); } }