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