diff --git a/app/Models/Approvals/Approval.php b/app/Models/Approvals/Approval.php index 00d59515..e2e3c258 100644 --- a/app/Models/Approvals/Approval.php +++ b/app/Models/Approvals/Approval.php @@ -23,6 +23,7 @@ class Approval extends Model 'drafter_read_at' => 'datetime', 'current_step' => 'integer', 'resubmit_count' => 'integer', + 'rejection_history' => 'array', 'is_urgent' => 'boolean', ]; @@ -43,6 +44,7 @@ class Approval extends Model 'drafter_read_at', 'current_step', 'resubmit_count', + 'rejection_history', 'attachments', 'recall_reason', 'parent_doc_id', diff --git a/app/Services/ApprovalService.php b/app/Services/ApprovalService.php index 44a97eda..6f795135 100644 --- a/app/Services/ApprovalService.php +++ b/app/Services/ApprovalService.php @@ -243,9 +243,24 @@ public function submit(int $id): Approval throw new \InvalidArgumentException('결재선을 설정해주세요.'); } - // 반려 후 재상신이면 모든 step 초기화 + 재상신 카운트 증가 + // 반려 후 재상신이면 반려 이력 저장 + 모든 step 초기화 + 재상신 카운트 증가 $isResubmit = $approval->status === Approval::STATUS_REJECTED; if ($isResubmit) { + // 반려 이력 저장 + $rejectedStep = $approval->steps + ->firstWhere('status', ApprovalStep::STATUS_REJECTED); + if ($rejectedStep) { + $history = $approval->rejection_history ?? []; + $history[] = [ + 'round' => $approval->resubmit_count + 1, + 'approver_name' => $rejectedStep->approver_name ?? ($rejectedStep->approver?->name ?? ''), + 'approver_position' => $rejectedStep->approver_position ?? '', + 'comment' => $rejectedStep->comment, + 'rejected_at' => $rejectedStep->acted_at?->format('Y-m-d H:i:s'), + ]; + $approval->rejection_history = $history; + } + $approval->steps()->update([ 'status' => ApprovalStep::STATUS_PENDING, 'comment' => null, diff --git a/resources/views/approvals/edit.blade.php b/resources/views/approvals/edit.blade.php index b0146824..2ea279cf 100644 --- a/resources/views/approvals/edit.blade.php +++ b/resources/views/approvals/edit.blade.php @@ -35,6 +35,28 @@ @endif + {{-- 반려 이력 (재상신 문서인 경우) --}} + @if(!empty($approval->rejection_history)) +
{{ $history['comment'] ?? '' }}
+{{ $history['comment'] ?? '' }}
+