浏览代码

现存量

cqpCow 1 年之前
父节点
当前提交
43ffed01ca
共有 3 个文件被更改,包括 67 次插入0 次删除
  1. 24 0
      app/Http/Controllers/Api/ProductInventoryController.php
  2. 36 0
      app/Service/ProductInventoryService.php
  3. 7 0
      routes/api.php

+ 24 - 0
app/Http/Controllers/Api/ProductInventoryController.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+
+use App\Service\ProductInventoryService;
+use App\Service\ProductService;
+use Illuminate\Http\Request;
+
+class ProductInventoryController extends BaseController
+{
+    public function productInventoryList(Request $request)
+    {
+        $service = new ProductInventoryService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->productInventoryList($request->all(),$user);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+}

+ 36 - 0
app/Service/ProductInventoryService.php

@@ -7,6 +7,7 @@ use App\Model\ConstructionProductInfo;
 use App\Model\InvoiceOrder;
 use App\Model\InvoiceOrderInfo;
 use App\Model\Product;
+use App\Model\ProductCategory;
 use App\Model\ProductInventory;
 use App\Model\Setting;
 use Illuminate\Support\Facades\DB;
@@ -182,4 +183,39 @@ class ProductInventoryService extends Service
 
         return [true,''];
     }
+
+    //现存量
+    public function productInventoryList($data,$user){
+        $model = ProductInventory::from('product_inventory as a')
+            ->join('product as b','b.id','a.product_id')
+            ->select('a.product_id','a.id','a.number','b.title','b.code','b.product_category_id','b.unit','b.bar_code','a.crt_time')
+            ->orderby('a.crt_time', 'desc');
+        if(! empty($data['product_category_id'])) $model->where("b.product_category_id", $data['product_category_id']);
+        if(!empty($data['code'])) $model->where('b.code', 'LIKE', '%'.$data['code'].'%');
+        if(! empty($data['product_id'])) $model->where('a.product_id', $data['product_id']);
+        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
+            $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
+            $model->whereBetween('a.crt_time',[$return[0],$return[1]]);
+        }
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillListData($list);
+
+        return [true, $list];
+    }
+
+    public function fillListData($data){
+        if(empty($data['data'])) return $data;
+
+        $category = ProductCategory::whereIn('id',array_column($data['data'],'product_category_id'))
+            ->pluck('title','id')
+            ->toArray();
+
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['product_category_title'] = $category[$value['product_category_id']] ?? '';
+            $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']):'';
+        }
+
+        return $data;
+    }
 }

+ 7 - 0
routes/api.php

@@ -147,4 +147,11 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('constructionDetail', 'Api\ConstructionController@constructionDetail');
     $route->any('constructionAdd', 'Api\ConstructionController@constructionAdd');
     $route->any('constructionDel', 'Api\ConstructionController@constructionDel');
+
+    //现存量
+    $route->any('productInventoryList', 'Api\ProductInventoryController@productInventoryList');
+    //收发存汇总
+    $route->any('productInAndOutList', 'Api\ProductInventoryController@productInAndOutList');
+    //库存台账
+    $route->any('productInventoryStockList', 'Api\ProductInventoryController@productInventoryStockList');
 });