fix: [근태현황] soft-deleted attendance 복원 시 $fillable 제한 문제 수정
deleted_at이 Attendance 모델 $fillable에 없어서 updateOrCreate()에서 deleted_at=null 설정이 무시되던 근본 원인 수정. restore() 메서드로 soft-delete 복원하도록 변경.
This commit is contained in:
@@ -158,8 +158,8 @@ private function syncApprovedLeaveAttendances(array $filters = []): void
|
||||
continue;
|
||||
}
|
||||
|
||||
// 누락된 attendance 레코드 생성
|
||||
Attendance::withTrashed()->updateOrCreate(
|
||||
// 누락된 attendance 레코드 생성 (soft-deleted 포함 검색 → 복원)
|
||||
$attendance = Attendance::withTrashed()->updateOrCreate(
|
||||
[
|
||||
'tenant_id' => $tenantId,
|
||||
'user_id' => $leave->user_id,
|
||||
@@ -169,11 +169,15 @@ private function syncApprovedLeaveAttendances(array $filters = []): void
|
||||
'status' => $attendanceStatus,
|
||||
'remarks' => $leave->reason ? mb_substr($leave->reason, 0, 100) : null,
|
||||
'updated_by' => $leave->approved_by,
|
||||
'deleted_at' => null,
|
||||
'deleted_by' => null,
|
||||
]
|
||||
);
|
||||
|
||||
// deleted_at은 $fillable에 없으므로 restore()로 복원
|
||||
if ($attendance->trashed()) {
|
||||
$attendance->restore();
|
||||
$attendance->update(['deleted_by' => null]);
|
||||
}
|
||||
|
||||
$existingKeys[$key] = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1184,7 +1184,7 @@ private function createAttendanceRecords(Leave $leave, int $tenantId, string $st
|
||||
continue;
|
||||
}
|
||||
|
||||
Attendance::withTrashed()->updateOrCreate(
|
||||
$attendance = Attendance::withTrashed()->updateOrCreate(
|
||||
[
|
||||
'tenant_id' => $tenantId,
|
||||
'user_id' => $leave->user_id,
|
||||
@@ -1194,10 +1194,14 @@ private function createAttendanceRecords(Leave $leave, int $tenantId, string $st
|
||||
'status' => $status,
|
||||
'remarks' => $leave->reason ? mb_substr($leave->reason, 0, 100) : null,
|
||||
'updated_by' => auth()->id(),
|
||||
'deleted_at' => null,
|
||||
'deleted_by' => null,
|
||||
]
|
||||
);
|
||||
|
||||
// deleted_at은 $fillable에 없으므로 restore()로 복원
|
||||
if ($attendance->trashed()) {
|
||||
$attendance->restore();
|
||||
$attendance->update(['deleted_by' => null]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user