fix: 결재선 중복 결재자 자동 제거
- createApprovalSteps()에서 동일한 결재자가 여러 번 추가된 경우 첫 번째만 저장 - 에러 발생 대신 자동으로 중복 필터링하여 처리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1011,10 +1011,13 @@ private function generateDocumentNumber(int $tenantId): string
|
||||
/**
|
||||
* 결재 단계 생성
|
||||
* 프론트엔드 호환성: step_type/approver_id 또는 type/user_id 지원
|
||||
* 중복 결재자 자동 제거
|
||||
*/
|
||||
private function createApprovalSteps(Approval $approval, array $steps): void
|
||||
{
|
||||
$order = 1;
|
||||
$processedApprovers = []; // 중복 체크용
|
||||
|
||||
foreach ($steps as $step) {
|
||||
// 필드명 호환성: step_type 또는 type
|
||||
$stepType = $step['step_type'] ?? $step['type'] ?? null;
|
||||
@@ -1024,6 +1027,12 @@ private function createApprovalSteps(Approval $approval, array $steps): void
|
||||
$stepOrder = $step['step_order'] ?? $order++;
|
||||
|
||||
if ($stepType && $approverId) {
|
||||
// 동일 결재자 중복 건너뛰기
|
||||
if (in_array($approverId, $processedApprovers, true)) {
|
||||
continue;
|
||||
}
|
||||
$processedApprovers[] = $approverId;
|
||||
|
||||
ApprovalStep::create([
|
||||
'approval_id' => $approval->id,
|
||||
'step_order' => $stepOrder,
|
||||
|
||||
Reference in New Issue
Block a user