cqp 3 ماه پیش
والد
کامیت
6c2ad62efb

+ 2 - 1
app/Http/Controllers/Api/ConstructionController.php

@@ -63,7 +63,8 @@ class ConstructionController extends BaseController
     public function constructionDetail(Request $request)
     {
         $service = new ConstructionService();
-        list($status,$data) = $service->detail($request->all());
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->detail($request->all(),$userData);
 
         if($status){
             return $this->json_return(200,'',$data);

+ 1 - 1
app/Http/Controllers/Api/OutBoundOrderController.php

@@ -37,7 +37,7 @@ class OutBoundOrderController extends BaseController
     {
         $service = new OutBoundOrderService();
         $userData = $request->userData->toArray();
-        list($status,$data) = $service->detail($request->all());
+        list($status,$data) = $service->detail($request->all(),$userData);
 
         if($status){
             return $this->json_return(200,'',$data);

+ 26 - 0
app/Http/Controllers/Api/TableHeadController.php

@@ -58,4 +58,30 @@ class TableHeadController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function tableSearchAdd(Request $request)
+    {
+        $service = new TableHeadService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->tableSearchAdd($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function tableSearchGet(Request $request)
+    {
+        $service = new TableHeadService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->tableSearchGet($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 14 - 0
app/Model/TableSearchSetting.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+
+class TableSearchSetting extends Model
+{
+    protected $table = "table_search_setting"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+}

+ 1 - 1
app/Service/CheckService.php

@@ -1574,7 +1574,7 @@ class CheckService extends Service
         $msg = [];
         foreach ($array as $key => $value){
             if(strpos($data['order_number'],$key) !== false) {
-                list($status, $msg) = (new $value)->detail($data);
+                list($status, $msg) = (new $value)->detail($data,$user);
                 return [$status, $msg];
             }
         }

+ 1 - 1
app/Service/ConstructionService.php

@@ -390,7 +390,7 @@ class ConstructionService extends Service
      * @param $data
      * @return array
      */
-    public function detail($data){
+    public function detail($data,$user){
         if(empty($data['id']) && empty($data['order_number'])) return [false,'请选择数据!'];
 
         if(! empty($data['id'])){

+ 7 - 1
app/Service/OutBoundOrderService.php

@@ -141,7 +141,7 @@ class OutBoundOrderService extends Service
         return [true, ''];
     }
 
-    public function detail($data){
+    public function detail($data,$user){
         if($this->isEmpty($data,'order_number')) return [false,'请选择数据'];
 
         $order = OutBoundOrder::where('order_number',$data['order_number'])->where('del_time',0)->first();
@@ -170,6 +170,12 @@ class OutBoundOrderService extends Service
         $order['crt_name'] = $emp_map[$order['crt_id']] ?? '';
         $order['crt_time'] = $order['crt_time'] ? date("Y-m-d H:i:s",$order['crt_time']): '';
 
+        if($order['type'] == OutBoundOrder::out_type_one){
+            $sales = (object)[];
+            list($status, $msg) = (new SalesOrderService())->detail(['id' => $order['data_id']], $user);
+            if($status) $sales = $msg;
+            $order['contact_order'] = $sales;
+        }
         //可见范围
 //        $return = (new RangeService())->RangeDetail($order['id'],SeeRange::type_three);
 //        $order['depart'] = $return[0] ?? [];

+ 57 - 30
app/Service/PaymentReceiptService.php

@@ -546,16 +546,24 @@ class PaymentReceiptService extends Service
                 ->where('type',PaymentReceiptInfo::type_three)
                 ->where('data_order_type',PaymentReceipt::data_type_one)
                 ->whereIn('data_order_no',$search)
-                ->where('data_type',$data['type'])
-                ->select('payment_receipt_id','data_order_no','amount')
+//                ->where('data_type',$data['type'])
+                ->select('payment_receipt_id','data_order_no','amount','data_type')
                 ->get()->toArray();
-            $info_array = [];
+            $info_array = $red = [];
             foreach ($info as $value){
                 if($payment_receipt_id > 0 && $value['payment_receipt_id'] == $payment_receipt_id) continue;
-                if(isset($info_array[$value['data_order_no']])){
-                    $info_array[$value['data_order_no']] += $value['amount'];
-                }else{
-                    $info_array[$value['data_order_no']] = $value['amount'];
+                if($value['data_type'] == PaymentReceipt::type_one){
+                    if(isset($info_array[$value['data_order_no']])){
+                        $info_array[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $info_array[$value['data_order_no']] = $value['amount'];
+                    }
+                }elseif($value['data_type'] == PaymentReceipt::type_three){
+                    if(isset($red[$value['data_order_no']])){
+                        $red[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $red[$value['data_order_no']] = $value['amount'];
+                    }
                 }
             }
 
@@ -570,11 +578,12 @@ class PaymentReceiptService extends Service
                 }
 
                 foreach ($result as $value){
-                    //收款  = 总金额 - 已收 - 退货退款
+                    //收款  = 总金额 - (已收 - 红冲) - 退货退款
                     //$max = $value['total_amount'] - $tmp_receipt - $tmp_return;
                     $tmp_receipt = $info_array[$value['order_number']] ?? 0;
+                    $tmp_red = $red[$value['order_number']] ?? 0;
                     $tmp_return = $return_exchange_array[$value['order_number']] ?? 0;
-                    $max = bcsub(bcsub($value['total_amount'], $tmp_receipt,2), $tmp_return, 2);
+                    $max = bcsub(bcsub($value['total_amount'], bcsub($tmp_receipt,$tmp_red,2),2), $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }
             }elseif($data['type'] == PaymentReceipt::type_three){
@@ -602,7 +611,7 @@ class PaymentReceiptService extends Service
                 foreach ($result as $value){
                     //红冲 = 审核后的收款单金额 - 已红冲
                     $tmp_receipt = $info_one_array[$value['order_number']] ?? 0;
-                    $tmp_return = $info_array[$value['order_number']] ?? 0;
+                    $tmp_return = $red[$value['order_number']] ?? 0;
                     $max = bcsub($tmp_receipt, $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }
@@ -628,16 +637,24 @@ class PaymentReceiptService extends Service
                 ->where('type',PaymentReceiptInfo::type_three)
                 ->where('data_order_type',PaymentReceipt::data_type_two)
                 ->whereIn('data_order_no',$search)
-                ->where('data_type',$data['type'])
-                ->select('payment_receipt_id','data_order_no','amount')
+//                ->where('data_type',$data['type'])
+                ->select('payment_receipt_id','data_order_no','amount','data_type')
                 ->get()->toArray();
-            $info_array = [];
+            $info_array = $red = [];
             foreach ($info as $value){
                 if($payment_receipt_id > 0 && $value['payment_receipt_id'] == $payment_receipt_id) continue;
-                if(isset($info_array[$value['data_order_no']])){
-                    $info_array[$value['data_order_no']] += $value['amount'];
-                }else{
-                    $info_array[$value['data_order_no']] = $value['amount'];
+                if($value['data_type'] == PaymentReceipt::type_one){
+                    if(isset($info_array[$value['data_order_no']])){
+                        $info_array[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $info_array[$value['data_order_no']] = $value['amount'];
+                    }
+                }elseif($value['data_type'] == PaymentReceipt::type_three){
+                    if(isset($red[$value['data_order_no']])){
+                        $red[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $red[$value['data_order_no']] = $value['amount'];
+                    }
                 }
             }
 
@@ -652,11 +669,12 @@ class PaymentReceiptService extends Service
                 }
 
                 foreach ($result as $value){
-                    //收款  = 总金额 - 已收 - 退货退款
+                    //收款  = 总金额 - (已收 - 红冲) - 退货退款
                     //$max = $value['total_amount'] - $tmp_receipt - $tmp_return;
                     $tmp_receipt = $info_array[$value['order_number']] ?? 0;
+                    $tmp_red = $red[$value['order_number']] ?? 0;
                     $tmp_return = $return_exchange_array[$value['order_number']] ?? 0;
-                    $max = bcsub(bcsub($value['total_amount'], $tmp_receipt,2), $tmp_return, 2);
+                    $max = bcsub(bcsub($value['total_amount'], bcsub($tmp_receipt,$tmp_red,2),2), $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }
             }elseif($data['type'] == PaymentReceipt::type_three){
@@ -684,7 +702,7 @@ class PaymentReceiptService extends Service
                 foreach ($result as $value){
                     //红冲 = 审核后的收款单金额 - 已红冲
                     $tmp_receipt = $info_one_array[$value['order_number']] ?? 0;
-                    $tmp_return = $info_array[$value['order_number']] ?? 0;
+                    $tmp_return = $red[$value['order_number']] ?? 0;
                     $max = bcsub($tmp_receipt, $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }
@@ -709,16 +727,24 @@ class PaymentReceiptService extends Service
                 ->where('type',PaymentReceiptInfo::type_three)
                 ->where('data_order_type',PaymentReceipt::data_type_three)
                 ->whereIn('data_order_no',$search)
-                ->where('data_type',$data['type'])
-                ->select('payment_receipt_id','data_order_no','amount')
+//                ->where('data_type',$data['type'])
+                ->select('payment_receipt_id','data_order_no','amount','data_type')
                 ->get()->toArray();
-            $info_array = [];
+            $info_array = $red = [];
             foreach ($info as $value){
                 if($payment_receipt_id > 0 && $value['payment_receipt_id'] == $payment_receipt_id) continue;
-                if(isset($info_array[$value['data_order_no']])){
-                    $info_array[$value['data_order_no']] += $value['amount'];
-                }else{
-                    $info_array[$value['data_order_no']] = $value['amount'];
+                if($value['data_type'] == PaymentReceipt::type_one){
+                    if(isset($info_array[$value['data_order_no']])){
+                        $info_array[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $info_array[$value['data_order_no']] = $value['amount'];
+                    }
+                }elseif($value['data_type'] == PaymentReceipt::type_three){
+                    if(isset($red[$value['data_order_no']])){
+                        $red[$value['data_order_no']] += $value['amount'];
+                    }else{
+                        $red[$value['data_order_no']] = $value['amount'];
+                    }
                 }
             }
 
@@ -733,11 +759,12 @@ class PaymentReceiptService extends Service
                 }
 
                 foreach ($result as $value){
-                    //收款  = 总金额(订单金额 + 其他费用) - 已收 - 退换货
+                    //收款  = 总金额(订单金额 + 其他费用) - (已收 - 红冲) - 退换货
                     $tmp_receipt = $info_array[$value['order_number']] ?? 0;
+                    $tmp_red = $red[$value['order_number']] ?? 0;
                     $total = bcadd($value['total_amount'],$value['other_fee'],2);
                     $tmp_return = $return_exchange_array[$value['order_number']] ?? 0;
-                    $max = bcsub($total, $tmp_receipt, 2);
+                    $max = bcsub($total, bcsub($tmp_receipt,$tmp_red,2), 2);
                     $max = bcsub($max, $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }
@@ -766,7 +793,7 @@ class PaymentReceiptService extends Service
                 foreach ($result as $value){
                     //红冲 = 审核后的收款单金额 - 已红冲
                     $tmp_receipt = $info_one_array[$value['order_number']] ?? 0;
-                    $tmp_return = $info_array[$value['order_number']] ?? 0;
+                    $tmp_return = $red[$value['order_number']] ?? 0;
                     $max = bcsub($tmp_receipt, $tmp_return, 2);
                     if($map[$value['order_number']] > $max) return [false, $value['order_number'] . '的金额填写上限是' . $max];
                 }

+ 50 - 0
app/Service/TableHeadService.php

@@ -5,6 +5,7 @@ namespace App\Service;
 use App\Model\BasicType;
 use App\Model\ProductPriceDetail;
 use App\Model\RoleMenuButton;
+use App\Model\TableSearchSetting;
 use App\Model\TableSetting;
 use Illuminate\Support\Facades\DB;
 
@@ -196,4 +197,53 @@ class TableHeadService extends Service
 
         return [true, ['is_filter' => $is_filter]];
     }
+
+    public function tableSearchAdd($data, $user){
+        if(empty($data['table_search'])) return [false,'搜索项不能为空'];
+        if(empty($data['menu_id'])) return [false, 'menu_id不能为空'];
+
+        $time = time();
+        $insert = [];
+        //表头
+        foreach ($data['table_search'] as $value){
+            if(empty($value['key'])) return [false, 'key不能为空'];
+            if(! isset($value['is_show'])) return [false, 'is_show不能为空'];
+
+            $insert[] = [
+                'key' => $value['key'],
+                'is_show' => $value['is_show'],
+                'menu_id' => $data['menu_id'],
+                'crt_time' => $time,
+                'crt_id' => $user['id'],
+            ];
+        }
+
+        DB::beginTransaction();
+        try{
+            TableSearchSetting::where('del_time',0)
+                ->where('crt_id',$user['id'])
+                ->where('menu_id',$data['menu_id'])
+                ->update(['del_time' => $time]);
+            TableSearchSetting::insert($insert);
+
+            DB::commit();
+        }catch (\Exception $exception){
+            DB::rollBack();
+            return [false, $exception->getMessage()];
+        }
+
+        return [true,''];
+    }
+
+    public function tableSearchGet($data, $user){
+        if(empty($data['menu_id'])) return [false,'menu_id不能为空!'];
+
+        $search = TableSearchSetting::where('del_time',0)
+            ->where('menu_id',$data['menu_id'])
+            ->where('crt_id',$user['id'])
+            ->select('key','is_show','menu_id')
+            ->get()->toArray();
+
+        return [true, $search];
+    }
 }

+ 5 - 0
routes/api.php

@@ -337,6 +337,11 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     //设置表头
     $route->any('setTableHead','Api\TableHeadController@tableHeadAdd');
 
+    //获取设置搜索项
+    $route->any('getTableSearch','Api\TableHeadController@tableSearchGet');
+    //设置搜索项
+    $route->any('setTableSearch','Api\TableHeadController@tableSearchAdd');
+
     //获取默认打开筛选
     $route->any('getFilter','Api\TableHeadController@filterGet');
     //设置默认打开筛选