From e3b6bb98310a5d2d0893db6e9452ce80bc31e6fc Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sun, 1 Sep 2024 15:51:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=92=8C=E4=BB=B7=E5=80=BC=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/WorkbenchController.php | 13 ++++++ app/admin/logic/statistic/WarehouseLogic.php | 43 ++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/app/admin/controller/WorkbenchController.php b/app/admin/controller/WorkbenchController.php index 14026a8b..d739c843 100644 --- a/app/admin/controller/WorkbenchController.php +++ b/app/admin/controller/WorkbenchController.php @@ -339,4 +339,17 @@ class WorkbenchController extends BaseAdminController return $this->data([], '操作失败', 400); } } + /** + * 更新库存和价值 + */ + public function stock_product_price() + { + $parmas = $this->request->get(); + $res = WarehouseLogic::stockProductPrice($parmas); + if($res){ + return $this->success('操作成功,请刷新页面',[],1,1); + }else{ + return $this->fail('操作失败'); + } + } } diff --git a/app/admin/logic/statistic/WarehouseLogic.php b/app/admin/logic/statistic/WarehouseLogic.php index 60682f5b..da4ac65c 100644 --- a/app/admin/logic/statistic/WarehouseLogic.php +++ b/app/admin/logic/statistic/WarehouseLogic.php @@ -232,4 +232,47 @@ class WarehouseLogic extends BaseLogic } return $res; } + + public static function stockProductPrice($parmas){ + + $arr1=WarehouseProductStorege::where('nums','>',0)->select(); + foreach ($arr1 as $k=>$v){ + $find=StoreProduct::where('id',$v['product_id'])->find(); + if($find&& $find['price']>0){ + $total_price=bcmul($find['price'],$v['nums'],2); + $price=$find['price']; + }else{ + $total_price=0; + $price=0; + } + WarehouseProductStorege::where('id',$v['id'])->update(['price'=>$price,'total_price'=>$total_price]); + + } + + $arr2=StoreBranchProduct::where('stock','>',0)->select(); + foreach ($arr2 as $k=>$v){ + if($v['price']>0){ + $total_price=bcmul($v['price'],$v['stock'],2); + }else{ + $total_price=0; + } + StoreBranchProduct::where('id',$v['id'])->update(['total_price'=>$total_price]); + } + $arr3=WarehouseProductStorege::where('nums','>',0)->field('product_id,sum(nums) as nums')->select(); + foreach ($arr3 as $k=>$v){ + StoreProduct::where('id',$v['product_id'])->update(['stock'=>$v['nums']]); + } + $arr4=StoreBranchProduct::where('stock','>',0)->field('product_id,sum(stock) as stock')->select(); + foreach ($arr4 as $k=>$v){ + $find=StoreProduct::where('id',$v['product_id'])->find(); + if($find){ + $stock=bcadd($find['stock'],$v['stock'],2); + $find->total_price=bcmul($find['purchase'],$v['stock'],2); + $find->stock=$stock; + $find->save(); + } + } + return true; + } + }