From d3e58573ece6d8a1cd6ae4dacdb225a9852d2fc7 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sun, 25 Aug 2024 17:57:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=B4=9F=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=A3=80=E6=B5=8B=E4=B8=8E=E5=BD=92=E9=9B=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/WorkbenchController.php | 17 ++++++++ app/admin/logic/statistic/WarehouseLogic.php | 14 +++++++ .../logic/store_order/StoreOrderLogic.php | 41 +------------------ 3 files changed, 33 insertions(+), 39 deletions(-) diff --git a/app/admin/controller/WorkbenchController.php b/app/admin/controller/WorkbenchController.php index 450b5db9c..14026a8b2 100644 --- a/app/admin/controller/WorkbenchController.php +++ b/app/admin/controller/WorkbenchController.php @@ -316,10 +316,27 @@ class WorkbenchController extends BaseAdminController return $this->data($data); } + /** + * 负库存检测 + */ public function negative_inventory() { $parmas = $this->request->get(); $data = WarehouseLogic::negativeInventory($parmas); return $this->data($data); } + + /** + * 负库存归零 + */ + public function update_negative_zero() + { + $parmas = $this->request->get(); + $res = WarehouseLogic::updateNegativeZero($parmas); + if($res){ + return $this->data([], '操作成功'); + }else{ + return $this->data([], '操作失败', 400); + } + } } diff --git a/app/admin/logic/statistic/WarehouseLogic.php b/app/admin/logic/statistic/WarehouseLogic.php index 24d01a492..60682f5bb 100644 --- a/app/admin/logic/statistic/WarehouseLogic.php +++ b/app/admin/logic/statistic/WarehouseLogic.php @@ -217,5 +217,19 @@ class WarehouseLogic extends BaseLogic $count = WarehouseProductStorege::where('nums', '<', 0)->count(); } return ['lists' => $list, 'count' => $count]; + } + /** + * 负库存更新归0 + */ + public static function updateNegativeZero($parmas) + { + if ($parmas['type'] == 1) { + $res = StoreProduct::where('id',$parmas['id'])->update(['stock'=>0]); + } elseif ($parmas['type'] == 2) { + $res=StoreBranchProduct::where('id',$parmas['id'])->update(['stock'=>0]); + } elseif ($parmas['type'] == 3) { + $res = WarehouseProductStorege::where('id',$parmas['id'])->update(['nums'=>0]); + } + return $res; } } diff --git a/app/admin/logic/store_order/StoreOrderLogic.php b/app/admin/logic/store_order/StoreOrderLogic.php index b7acc4900..a46665fe7 100644 --- a/app/admin/logic/store_order/StoreOrderLogic.php +++ b/app/admin/logic/store_order/StoreOrderLogic.php @@ -51,45 +51,8 @@ class StoreOrderLogic extends BaseLogic $params['shipping_type']=2; $params['pay_type'] = 7; $order = OrderLogic::createOrder($cartId, null, $user, $params); - if (OrderLogic::hasError()) { - StoreOrderLogic::setError(OrderLogic::getError()); - return false; - } else { - $arr = [ - 'warehouse_id' => $params['warehouse_id']??-1, - 'store_id' => $params['store_id'], - 'supplier_id' => 0, - 'code' => getNewOrderId('PS'), - 'admin_id' => $params['admin_id'], - 'financial_pm' => 0, - 'batch' => 0, - 'mark' => $mark ?? "", - ]; - $arr['delivery_time'] = time(); - $res = WarehouseOrder::create($arr); - foreach ($params['product_arr'] as $k => $v) { - $data = [ - 'warehouse_id' => $params['warehouse_id']??-1, - 'product_id' => $v['product_id'], - 'store_id' => $params['store_id'], - 'financial_pm' => 0, - 'batch' => 1, - 'nums' => $v['stock'], - 'status' => 1, - 'admin_id' => $params['admin_id'], - ]; - $storeProduct = StoreBranchProduct::where('id', $v['id'])->findOrEmpty()->toArray(); - if ($v['stock']>0) { - $data['total_price'] = bcmul($v['stock'], $storeProduct['purchase'], 2); - $data['purchase'] = $storeProduct['purchase']; - $data['oid'] = $res['id']; - WarehouseProductLogic::add($data,0); - $finds = WarehouseProduct::where('oid', $res['id'])->field('sum(nums) as nums,sum(total_price) as total_price')->find(); - WarehouseOrder::where('id', $res['id'])->update(['total_price' => $finds['total_price'], 'nums' => $finds['nums']]); - } - } - return true; - } + return true; + }