cqp 2 месяцев назад
Родитель
Сommit
ed9f4067c1
1 измененных файлов с 18 добавлено и 23 удалено
  1. 18 23
      app/Service/ExpenseClaimsService.php

+ 18 - 23
app/Service/ExpenseClaimsService.php

@@ -2,16 +2,11 @@
 
 namespace App\Service;
 
-use App\Model\CalendarDetails;
-use App\Model\Device;
 use App\Model\Employee;
 use App\Model\ExpenseClaims;
 use App\Model\ExpenseClaimsDetails;
 use App\Model\Fee;
 use App\Model\Item;
-use App\Model\ItemDetails;
-use App\Model\RuleSet;
-use App\Model\RuleSetDetails;
 use Carbon\Carbon;
 use Illuminate\Support\Facades\DB;
 
@@ -27,16 +22,17 @@ class ExpenseClaimsService extends Service
 
     private function expenseClaimsSetCommon($data,$user, $field = []){
         if(empty($field)) $field = ExpenseClaims::$field;
-        $data['top_depart_id'] = $user['top_depart_id'];
+
         $model = ExpenseClaims::Clear($user,$data);
         $model = $model->where('del_time',0)
             ->select($field)
             ->orderby('month', 'desc');
         if(! empty($data['month'])) $model->where('month', $data['month']);
         if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
-        return $model;
 
+        return $model;
     }
+
     public function fillData($data){
         if(empty($data['data'])) return $data;
 
@@ -47,13 +43,14 @@ class ExpenseClaimsService extends Service
             $data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
             $data['data'][$key]['month'] =  $value['month'] ? date('Y-m',$value['month']) : '';
         }
+
         return $data;
     }
 
     public function expenseClaimsAdd($data,$user){
         list($status,$msg) = $this->expenseClaimsRule($data, $user);
-        if(!$status) return [$status,$msg];
-        //费用报销结构
+        if(! $status) return [$status, $msg];
+
         try {
             DB::beginTransaction();
             $month = strtotime(date("Ymd", strtotime($data['month'])));
@@ -63,22 +60,23 @@ class ExpenseClaimsService extends Service
                 'type' => ExpenseClaims::Order_type,
                 'period' => $month
             ]);
-            $model->month =  $month;
+            $model->month = $month;
             $model->crt_id = $user['id'];
-            $model->top_depart_id = $user['top_depart_id'];
+            $model->top_depart_id = $data['top_depart_id'];
             $model->save();
-            $data['top_depart_id'] = $user['top_depart_id'];
-            $this->saveDetail($model->id, time(), $data,$user['id']);
+
+            $this->saveDetail($model->id, time(), $data, $user);
 
             DB::commit();
         }catch (\Exception $exception){
             DB::rollBack();
-            return [false,$exception->getLine()."_".$exception->getMessage()];
+            return [false, $exception->getLine()."_".$exception->getMessage()];
         }
 
         return [true, ''];
     }
-    private function saveDetail($id, $time, $data,$crt_id){
+
+    private function saveDetail($id, $time, $data, $user){
         if(! empty($data['details'])){
             $unit = [];
             foreach ($data['details'] as $value){
@@ -98,14 +96,15 @@ class ExpenseClaimsService extends Service
                     'file_name' => $value['file_name']??"",
                     'top_depart_id' => $data['top_depart_id'],
                     'crt_time' => $time,
-                    'crt_id' => $crt_id,
+                    'crt_id' => $user['id'],
                 ];
             }
             if(!empty($unit)) ExpenseClaimsDetails::insert($unit);
         }
     }
 
-    private function expenseClaimsRule($data,$user){
+    private function expenseClaimsRule(&$data, $user){
+        $data['top_depart_id'] = $user['top_depart_id'];
         if(!isset($data['month'])) return [false,"月份必传"];
         $monthStr = $data['month']; // 假设是 "2026-03"
         $monthStart = strtotime($monthStr); // 2026-03-01 00:00:00
@@ -142,8 +141,8 @@ class ExpenseClaimsService extends Service
             ExpenseClaimsDetails::where('del_time',0)
                 ->where('expense_claims_id', $model->id)
                 ->update(['del_time' => $time]);
-            $data['top_depart_id'] = $user['top_depart_id'];
-            $this->saveDetail($model->id, $time, $data, $user['id']);
+
+            $this->saveDetail($model->id, $time, $data, $user);
 
             DB::commit();
         }catch (\Exception $exception){
@@ -197,7 +196,6 @@ class ExpenseClaimsService extends Service
     private function getDetail($data,$user){
         $data = ExpenseClaimsDetails::where('del_time',0)
             ->where('expense_claims_id', $data['id'])
-            ->select('*')
             ->get()->toArray();
         $item_ids = collect($data)->pluck('item_id')->unique()->values()->all();
         $employee_ids = collect($data)->pluck('employee_id')->unique()->values()->all();
@@ -229,7 +227,4 @@ class ExpenseClaimsService extends Service
         return  Carbon::createFromTimestamp($time, 'UTC')
             ->toIso8601ZuluString();
     }
-
-
-
 }