|
@@ -65,7 +65,7 @@ class ExpenseClaimsService extends Service
|
|
|
$model->top_depart_id = $data['top_depart_id'];
|
|
$model->top_depart_id = $data['top_depart_id'];
|
|
|
$model->save();
|
|
$model->save();
|
|
|
|
|
|
|
|
- $this->saveDetail($model->id, time(), $data, $user);
|
|
|
|
|
|
|
+ list($old, $new) = $this->saveDetail($model->id, time(), $data, $user);
|
|
|
|
|
|
|
|
DB::commit();
|
|
DB::commit();
|
|
|
}catch (\Exception $exception){
|
|
}catch (\Exception $exception){
|
|
@@ -73,34 +73,50 @@ class ExpenseClaimsService extends Service
|
|
|
return [false, $exception->getLine()."_".$exception->getMessage()];
|
|
return [false, $exception->getLine()."_".$exception->getMessage()];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return [true, ''];
|
|
|
|
|
|
|
+ return [true, ['file' => ['old' => $old, 'new' => $new]]];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private function saveDetail($id, $time, $data, $user){
|
|
|
|
|
- if(! empty($data['details'])){
|
|
|
|
|
- $unit = [];
|
|
|
|
|
- foreach ($data['details'] as $value){
|
|
|
|
|
|
|
+ private function saveDetail($id, $time, $data, $user, $old = [])
|
|
|
|
|
+ {
|
|
|
|
|
+ $new = [];
|
|
|
|
|
+ $unit = [];
|
|
|
|
|
+
|
|
|
|
|
+ $oldFilesMap = array_flip($old);
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($data['details']) && is_array($data['details'])) {
|
|
|
|
|
+ foreach ($data['details'] as $value) {
|
|
|
$unit[] = [
|
|
$unit[] = [
|
|
|
'expense_claims_id' => $id,
|
|
'expense_claims_id' => $id,
|
|
|
- 'item_id' => $value['item_id'],
|
|
|
|
|
- 'employee_id' => $value['employee_id']??"",
|
|
|
|
|
- 'fee_id' => $value['fee_id'],
|
|
|
|
|
- 'amount' => $value['amount'],
|
|
|
|
|
- 'remark' => $value['remark'],
|
|
|
|
|
- 'claim_date' => strtotime($value['claim_date']),
|
|
|
|
|
- 'entrust_type' => $value['entrust_type'],
|
|
|
|
|
- 'expense_type' => $value['expense_type'],
|
|
|
|
|
-// 'expense_attachments' => $value['expense_attachments'],
|
|
|
|
|
- 'voucher_no' => $value['voucher_no']??"",
|
|
|
|
|
- 'file_url' => $value['file_url']??"",
|
|
|
|
|
- 'file_name' => $value['file_name']??"",
|
|
|
|
|
- 'top_depart_id' => $data['top_depart_id'],
|
|
|
|
|
- 'crt_time' => $time,
|
|
|
|
|
- 'crt_id' => $user['id'],
|
|
|
|
|
|
|
+ 'item_id' => $value['item_id'] ?? 0,
|
|
|
|
|
+ 'employee_id' => $value['employee_id'] ?? "",
|
|
|
|
|
+ 'fee_id' => $value['fee_id'] ?? 0,
|
|
|
|
|
+ 'amount' => $value['amount'] ?? 0,
|
|
|
|
|
+ 'remark' => $value['remark'] ?? "",
|
|
|
|
|
+ 'claim_date' => strtotime($value['claim_date']),
|
|
|
|
|
+ 'entrust_type' => $value['entrust_type'] ?? 0,
|
|
|
|
|
+ 'expense_type' => $value['expense_type'] ?? 0,
|
|
|
|
|
+ 'voucher_no' => $value['voucher_no'] ?? "",
|
|
|
|
|
+ 'file_url' => $value['file_url'] ?? "",
|
|
|
|
|
+ 'file_name' => $value['file_name'] ?? "",
|
|
|
|
|
+ 'top_depart_id' => $data['top_depart_id'] ?? 0,
|
|
|
|
|
+ 'crt_time' => $time,
|
|
|
|
|
+ 'crt_id' => $user['id'],
|
|
|
];
|
|
];
|
|
|
|
|
+
|
|
|
|
|
+ $currentUrl = $value['file_url'] ?? "";
|
|
|
|
|
+ if (!empty($currentUrl)) {
|
|
|
|
|
+ if (isset($oldFilesMap[$currentUrl])) {
|
|
|
|
|
+ unset($oldFilesMap[$currentUrl]);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $new[] = $currentUrl;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- if(!empty($unit)) ExpenseClaimsDetails::insert($unit);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($unit)) ExpenseClaimsDetails::insert($unit);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ return [array_keys($oldFilesMap), $new];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private function expenseClaimsRule(&$data, $user){
|
|
private function expenseClaimsRule(&$data, $user){
|
|
@@ -138,11 +154,16 @@ class ExpenseClaimsService extends Service
|
|
|
$model->save();
|
|
$model->save();
|
|
|
|
|
|
|
|
$time = time();
|
|
$time = time();
|
|
|
|
|
+ $old = ExpenseClaimsDetails::where('del_time',0)
|
|
|
|
|
+ ->where('expense_claims_id', $model->id)
|
|
|
|
|
+ ->where('file_url','<>','')
|
|
|
|
|
+ ->pluck('file_url')
|
|
|
|
|
+ ->all();
|
|
|
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]);
|
|
|
|
|
|
|
|
- $this->saveDetail($model->id, $time, $data, $user);
|
|
|
|
|
|
|
+ list($old, $new) = $this->saveDetail($model->id, $time, $data, $user, $old);
|
|
|
|
|
|
|
|
DB::commit();
|
|
DB::commit();
|
|
|
}catch (\Exception $exception){
|
|
}catch (\Exception $exception){
|
|
@@ -150,7 +171,7 @@ class ExpenseClaimsService extends Service
|
|
|
return [false,$exception->getMessage()];
|
|
return [false,$exception->getMessage()];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return [true, ''];
|
|
|
|
|
|
|
+ return [true, ['file' => ['old' => $old, 'new' => $new]]];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function expenseClaimsDel($data){
|
|
public function expenseClaimsDel($data){
|
|
@@ -164,6 +185,12 @@ class ExpenseClaimsService extends Service
|
|
|
->whereIn('id',$data['id'])
|
|
->whereIn('id',$data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
->update(['del_time' => $time]);
|
|
|
|
|
|
|
|
|
|
+ $old = ExpenseClaimsDetails::where('del_time',0)
|
|
|
|
|
+ ->where('expense_claims_id', $data['id'])
|
|
|
|
|
+ ->where('file_url','<>','')
|
|
|
|
|
+ ->pluck('file_url')
|
|
|
|
|
+ ->all();
|
|
|
|
|
+
|
|
|
ExpenseClaimsDetails::where('del_time',0)
|
|
ExpenseClaimsDetails::where('del_time',0)
|
|
|
->whereIn('expense_claims_id', $data['id'])
|
|
->whereIn('expense_claims_id', $data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
->update(['del_time' => $time]);
|
|
@@ -174,7 +201,7 @@ class ExpenseClaimsService extends Service
|
|
|
return [false,$exception->getMessage()];
|
|
return [false,$exception->getMessage()];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return [true, ''];
|
|
|
|
|
|
|
+ return [true, ['file' => ['old' => $old]]];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function expenseClaimsDetail($data, $user){
|
|
public function expenseClaimsDetail($data, $user){
|
|
@@ -210,7 +237,7 @@ class ExpenseClaimsService extends Service
|
|
|
$item = Fee::Clear($user, $data);
|
|
$item = Fee::Clear($user, $data);
|
|
|
$fee_key_list = $item->wherein('id',$fee_ids)->pluck('title','id');
|
|
$fee_key_list = $item->wherein('id',$fee_ids)->pluck('title','id');
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+ $fileUploadService = new FileUploadService();
|
|
|
foreach ($data as &$v) {
|
|
foreach ($data as &$v) {
|
|
|
// 1. 假设数据库里的 claim_date 是 Unix 时间戳(整数)
|
|
// 1. 假设数据库里的 claim_date 是 Unix 时间戳(整数)
|
|
|
// 2. createFromTimestamp 第二个参数设为 'UTC' 确保时间轴对齐
|
|
// 2. createFromTimestamp 第二个参数设为 'UTC' 确保时间轴对齐
|
|
@@ -219,7 +246,9 @@ class ExpenseClaimsService extends Service
|
|
|
$v['item_title'] = $item_key_list[$v['item_id']] ?? "";
|
|
$v['item_title'] = $item_key_list[$v['item_id']] ?? "";
|
|
|
$v['employee_title'] = $employee_key_list[$v['employee_id']] ?? "";
|
|
$v['employee_title'] = $employee_key_list[$v['employee_id']] ?? "";
|
|
|
$v['fee_title'] = $fee_key_list[$v['fee_id']] ?? "";
|
|
$v['fee_title'] = $fee_key_list[$v['fee_id']] ?? "";
|
|
|
|
|
+ if(! empty($v['file_url'])) $v['file_url_show'] = $fileUploadService->getFileShow($v['file_url']);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
return $data;
|
|
return $data;
|
|
|
}
|
|
}
|
|
|
|
|
|