From c3a930a9e1d70b661aba379dde313a44c421b0ae Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sun, 4 Aug 2024 13:12:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(WarehouseProductLogic):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BB=93=E5=BA=93=E4=BA=A7=E5=93=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81=E4=BB=93=E5=82=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=A4=84=E7=90=86=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E7=AE=A1=E7=90=86=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarehouseProductLists.php | 2 +- .../WarehouseProductLogic.php | 117 +++++++++--------- .../WarehouseProductValidate.php | 4 +- 3 files changed, 62 insertions(+), 61 deletions(-) diff --git a/app/admin/lists/warehouse_product/WarehouseProductLists.php b/app/admin/lists/warehouse_product/WarehouseProductLists.php index b3c6a4e87..19d9a9f59 100644 --- a/app/admin/lists/warehouse_product/WarehouseProductLists.php +++ b/app/admin/lists/warehouse_product/WarehouseProductLists.php @@ -45,7 +45,7 @@ class WarehouseProductLists extends BaseAdminDataLists implements ListsSearchInt public function lists(): array { return WarehouseProduct::where($this->searchWhere) - ->field(['id', 'admin_id','warehouse_id', 'product_id', 'financial_pm', 'batch', 'nums', 'price', 'total_price', 'manufacture','expiration_date','status','mark']) + ->field(['id', 'admin_id','warehouse_id', 'product_id', 'financial_pm', 'batch', 'nums', 'price','purchase','cost', 'total_price', 'manufacture','expiration_date','status','mark','create_time']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item){ diff --git a/app/admin/logic/warehouse_product/WarehouseProductLogic.php b/app/admin/logic/warehouse_product/WarehouseProductLogic.php index 15f03eb72..8de456ab4 100644 --- a/app/admin/logic/warehouse_product/WarehouseProductLogic.php +++ b/app/admin/logic/warehouse_product/WarehouseProductLogic.php @@ -5,6 +5,7 @@ namespace app\admin\logic\warehouse_product; use app\common\model\warehouse_product\WarehouseProduct; use app\common\logic\BaseLogic; +use app\common\model\store_branch_product\StoreBranchProduct; use app\common\model\store_product\StoreProduct; use app\common\model\warehouse_product_storege\WarehouseProductStorege; use support\Log; @@ -31,27 +32,29 @@ class WarehouseProductLogic extends BaseLogic { Db::startTrans(); try { - $data=[ + $data = [ 'warehouse_id' => $params['warehouse_id'], 'product_id' => $params['product_id'], 'financial_pm' => $params['financial_pm'], - 'batch' => $params['batch'], + 'batch' => 0, 'nums' => $params['nums'], - 'price' => $params['price']??'', - 'total_price' => $params['total_price']??'', + 'price' => $params['price'] ?? '', + 'purchase' => $params['purchase'] ?? '', + 'cost' => $params['cost'] ?? '', + 'total_price' => $params['total_price'] ?? '', 'admin_id' => $params['admin_id'], - 'code' => $params['code']??'', - 'status' => $params['status']??0, - 'mark' => $params['mark']??'', + 'code' => $params['code'] ?? '', + 'status' => $params['status'] ?? 0, + 'mark' => $params['mark'] ?? '', ]; - if(isset($params['manufacture']) &&$params['manufacture']!=''){ - $data['manufacture']=strtotime($params['manufacture']); + if (isset($params['manufacture']) && $params['manufacture'] != '') { + $data['manufacture'] = strtotime($params['manufacture']); } - if(isset($params['expiration_date']) &&$params['expiration_date']!=''){ - $data['expiration_date']=strtotime($params['expiration_date']); + if (isset($params['expiration_date']) && $params['expiration_date'] != '') { + $data['expiration_date'] = strtotime($params['expiration_date']); } - $res=WarehouseProduct::create($data); - self::enter($res['id'],$params['financial_pm']); + $res = WarehouseProduct::create($data); + self::enter($res['id'], $params['financial_pm']); Db::commit(); return true; } catch (\Exception $e) { @@ -73,74 +76,73 @@ class WarehouseProductLogic extends BaseLogic { Db::startTrans(); try { - $data=[ + $data = [ 'warehouse_id' => $params['warehouse_id'], 'product_id' => $params['product_id'], 'financial_pm' => $params['financial_pm'], - 'batch' => $params['batch'], + 'batch' => WarehouseProduct::where(['product_id' => $params['product_id'], 'warehouse_id' => $params['warehouse_id'], 'financial_pm' => $params['financial_pm']])->count(), 'nums' => $params['nums'], 'price' => $params['price'], 'admin_id' => $params['admin_id'], 'total_price' => $params['total_price'], 'code' => $params['code'], + 'purchase' => $params['purchase'] ?? '', + 'cost' => $params['cost'] ?? '', ]; - if(isset($params['manufacture']) &&$params['manufacture']!=''){ - $data['manufacture']=strtotime($params['manufacture']); + if (isset($params['manufacture']) && $params['manufacture'] != '') { + $data['manufacture'] = strtotime($params['manufacture']); } - if(isset($params['expiration_date']) &&$params['expiration_date']!=''){ - $data['expiration_date']=strtotime($params['expiration_date']); + if (isset($params['expiration_date']) && $params['expiration_date'] != '') { + $data['expiration_date'] = strtotime($params['expiration_date']); } - $res=WarehouseProduct::where('id', $params['id'])->update($data); + $res = WarehouseProduct::where('id', $params['id'])->update($data); Db::commit(); return $res; } catch (\Exception $e) { Db::rollback(); + d($e); self::setError($e->getMessage()); return false; } } - + /** * @notes 确认商品仓储信息 * @param array $params * @author admin * @date 2024/07/31 16:55 */ - public static function enter($id,$financial_pm=0) + public static function enter($id, $financial_pm = 0) { - Db::startTrans(); - try { - $find=WarehouseProduct::where('id',$id)->find(); - $find->status=1; - $find->save(); - $storege=WarehouseProductStorege::where('warehouse_id',$find['warehouse_id'])->where('product_id',$find['product_id'])->find(); - if($financial_pm==0){ - StoreProduct::where('id',$find['product_id'])->dec('stock',$find['nums'])->update(); - }else{ - StoreProduct::where('id',$find['product_id'])->inc('stock',$find['nums'])->update(); - } - if($storege){ - if($financial_pm==0){ - $storege->nums=bcsub($storege->nums,$find['nums']); - }else{ - $storege->nums=bcadd($storege->nums,$find['nums']); - } - $storege->save(); - }else{ - WarehouseProductStorege::create([ - 'warehouse_id' => $find['warehouse_id'], - 'product_id' => $find['product_id'], - 'nums' => $find['nums'], - ]); + $find = WarehouseProduct::where('id', $id)->find(); + $find->status = 1; + $find->batch = WarehouseProduct::where(['product_id' => $find['product_id'], 'warehouse_id' => $find['warehouse_id'], 'financial_pm' => $financial_pm])->count(); + $find->save(); + + $storege = WarehouseProductStorege::where('warehouse_id', $find['warehouse_id'])->where('product_id', $find['product_id'])->find(); + if ($financial_pm == 0) { + StoreProduct::where('id', $find['product_id'])->dec('stock', $find['nums'])->update(); + } else { + StoreProduct::where('id', $find['product_id'])->inc('stock', $find['nums'])->update(['purchase' => $find['purchase'], 'cost' => $find['cost'], 'price' => $find['price']]); + StoreBranchProduct::where('product_id', $find['product_id'])->update(['purchase' => $find['purchase'], 'cost' => $find['cost'], 'price' => $find['price']]); + } + + if ($storege) { + if ($financial_pm == 0) { + $storege->nums = bcsub($storege->nums, $find['nums']); + } else { + + $storege->nums = bcadd($storege->nums, $find['nums']); } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; + $storege->save(); + } else { + WarehouseProductStorege::create([ + 'warehouse_id' => $find['warehouse_id'], + 'product_id' => $find['product_id'], + 'nums' => $find['nums'], + ]); } } @@ -167,12 +169,11 @@ class WarehouseProductLogic extends BaseLogic */ public static function detail($params): array { - $data= WarehouseProduct::findOrEmpty($params['id'])->toArray(); - if($data){ - $data['manufacture']=date('Y-m-d',$data['manufacture']); - $data['expiration_date']=date('Y-m-d',$data['expiration_date']); - + $data = WarehouseProduct::findOrEmpty($params['id'])->toArray(); + if ($data) { + $data['manufacture'] = date('Y-m-d', $data['manufacture']); + $data['expiration_date'] = date('Y-m-d', $data['expiration_date']); } return $data; } -} \ No newline at end of file +} diff --git a/app/admin/validate/warehouse_product/WarehouseProductValidate.php b/app/admin/validate/warehouse_product/WarehouseProductValidate.php index a3a7cb795..aa9797b88 100644 --- a/app/admin/validate/warehouse_product/WarehouseProductValidate.php +++ b/app/admin/validate/warehouse_product/WarehouseProductValidate.php @@ -56,7 +56,7 @@ class WarehouseProductValidate extends BaseValidate */ public function sceneAdd() { - return $this->only(['warehouse_id','product_id','financial_pm','batch','nums','price','total_price']); + return $this->only(['warehouse_id','product_id','financial_pm','nums','price','total_price']); } @@ -68,7 +68,7 @@ class WarehouseProductValidate extends BaseValidate */ public function sceneEdit() { - return $this->only(['id','warehouse_id','product_id','financial_pm','batch','nums','price','total_price']); + return $this->only(['id','warehouse_id','product_id','financial_pm','nums','price','total_price']); }