From 610514e8d69137443c7f15db8e315349a113e17f Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 19 Aug 2024 17:58:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(PurchaseOrderInfoLists):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0StoreBranchProduct=E6=A8=A1=E5=9E=8B=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=8F=8A=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrderInfoController.php | 39 ++++++++++++++++ .../PurchaseOrderInfoLists.php | 12 ++++- .../purchase_order/PurchaseOrderLogic.php | 24 +++++----- .../PurchaseOrderInfoLogic.php | 44 +++++++++++++++++++ 4 files changed, 106 insertions(+), 13 deletions(-) create mode 100644 app/admin/controller/purchase_order_info/PurchaseOrderInfoController.php create mode 100644 app/admin/logic/purchase_order_info/PurchaseOrderInfoLogic.php diff --git a/app/admin/controller/purchase_order_info/PurchaseOrderInfoController.php b/app/admin/controller/purchase_order_info/PurchaseOrderInfoController.php new file mode 100644 index 000000000..b60626e32 --- /dev/null +++ b/app/admin/controller/purchase_order_info/PurchaseOrderInfoController.php @@ -0,0 +1,39 @@ +request->post(); + switch ($params['type']) { + case 'buyer': + PurchaseOrderInfoLogic::buyer($params); + break; + default: + return $this->fail('参数错误'); + break; + } + if (PurchaseOrderInfoLogic::hasError()) { + return $this->fail(PurchaseOrderInfoLogic::getError()); + } + return $this->success('设置成功', [], 1, 1); + } +} \ No newline at end of file diff --git a/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php b/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php index b4dacaefe..335b45636 100644 --- a/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php +++ b/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php @@ -6,6 +6,7 @@ namespace app\admin\lists\purchase_order_info; use app\admin\lists\BaseAdminDataLists; use app\common\lists\ListsSearchInterface; use app\common\model\purchase_order_info\PurchaseOrderInfo; +use app\common\model\store_branch_product\StoreBranchProduct; use app\common\model\store_product\StoreProduct; use app\common\model\store_product_unit\StoreProductUnit; use app\common\model\system_store\SystemStore; @@ -48,13 +49,22 @@ class PurchaseOrderInfoLists extends BaseAdminDataLists implements ListsSearchIn ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item) { - $find=StoreProduct::where('id',$item->product_id)->field('store_info,unit,store_name,image')->find(); + $find=StoreBranchProduct::where('product_id',$item->product_id)->where('store_id',$item->store_id)->field('store_info,stock,unit,store_name,image')->find(); if($find){ $item->store_name=$find->store_name; $item->unit_name=StoreProductUnit::where('id',$find->unit)->value('name'); + $item->unit=$find->unit; + $item->stock=$find->stock; $item->store_info=$find->store_info; $item->image=$find->image; } + if($item->is_buyer==1){ + $item->is_buyer_name='需采购'; + }elseif($item->is_buyer==-1){ + $item->is_buyer_name='不采购'; + }else{ + $item->is_buyer_name='未知'; + } switch ($item->storage) { case 0: $item->storage_name = '未入库'; diff --git a/app/admin/logic/purchase_order/PurchaseOrderLogic.php b/app/admin/logic/purchase_order/PurchaseOrderLogic.php index 5e76b1133..7f7ddfdbb 100644 --- a/app/admin/logic/purchase_order/PurchaseOrderLogic.php +++ b/app/admin/logic/purchase_order/PurchaseOrderLogic.php @@ -112,18 +112,18 @@ class PurchaseOrderLogic extends BaseLogic $purchase_order_info_two[] = $arr; } $purchaseOrderInfo->saveAll($purchase_order_info_two); - $productOffer = []; - foreach ($info as $item) { - $arr['order_id'] = $res['id']; - $arr['product_id'] = $item['product_id']; - $arr['price'] = $item['price']; - $arr['total_price'] = $item['total_price']; - $arr['need_num'] = $item['cart_num']; - $arr['unit'] = StoreProduct::where('id', $item['product_id'])->value('unit'); - $productOffer[] = $arr; - } - $purchaseProductOffer = new PurchaseProductOffer(); - $purchaseProductOffer->saveAll($productOffer); + // $productOffer = []; + // foreach ($info as $item) { + // $arr['order_id'] = $res['id']; + // $arr['product_id'] = $item['product_id']; + // $arr['price'] = $item['price']; + // $arr['total_price'] = $item['total_price']; + // $arr['need_num'] = $item['cart_num']; + // $arr['unit'] = StoreProduct::where('id', $item['product_id'])->value('unit'); + // $productOffer[] = $arr; + // } + // $purchaseProductOffer = new PurchaseProductOffer(); + // $purchaseProductOffer->saveAll($productOffer); // StoreOrder::whereIn('id', $oid_arr)->update(['is_merge' => 1]); // Db::commit(); // return true; diff --git a/app/admin/logic/purchase_order_info/PurchaseOrderInfoLogic.php b/app/admin/logic/purchase_order_info/PurchaseOrderInfoLogic.php new file mode 100644 index 000000000..44d5483a4 --- /dev/null +++ b/app/admin/logic/purchase_order_info/PurchaseOrderInfoLogic.php @@ -0,0 +1,44 @@ +0) { + $data['buyer_nums'] = $params['buyer_nums']; + $find = PurchaseProductOffer::where('order_id', $params['poid'])->where('product_id', $params['product_id'])->find(); + if ($find) { + PurchaseProductOffer::where('id', $find['id'])->inc('buyer_nums', $params['buyer_nums'])->update(); + } else { + $arr['order_id'] = $params['poid']; + $arr['product_id'] = $params['product_id']; + $arr['need_num'] = $params['cart_num']; + $arr['buyer_nums'] = $params['buyer_nums']; + $arr['unit'] = StoreProduct::where('id', $params['product_id'])->value('unit'); + PurchaseProductOffer::create($arr); + } + } + PurchaseOrderInfo::where('id', $params['id'])->update($data); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } +}