feat: [esign] 계약 수정 화면에 서명 필드 값 편집 기능 추가
- 수정 화면에서 text/date/checkbox 필드 값 인라인 편집 - 필드별 서명자 구분(작성자/상대방), 페이지 번호 표시 - update API에서 필드 값 일괄 업데이트 처리
This commit is contained in:
@@ -595,6 +595,9 @@ public function update(Request $request, int $id): JsonResponse
|
||||
'signers.*.phone' => 'nullable|string|max:20',
|
||||
'signers.*.role' => 'required|in:creator,counterpart',
|
||||
'file' => 'nullable|file|mimes:pdf,doc,docx|max:20480',
|
||||
'fields' => 'nullable|array',
|
||||
'fields.*.id' => 'required|integer',
|
||||
'fields.*.field_value' => 'nullable|string|max:500',
|
||||
]);
|
||||
|
||||
$userId = auth()->id();
|
||||
@@ -645,6 +648,16 @@ public function update(Request $request, int $id): JsonResponse
|
||||
}
|
||||
}
|
||||
|
||||
// 필드 값 업데이트
|
||||
if ($request->has('fields')) {
|
||||
foreach ($request->input('fields') as $fieldData) {
|
||||
EsignSignField::withoutGlobalScopes()
|
||||
->where('id', $fieldData['id'])
|
||||
->where('contract_id', $contract->id)
|
||||
->update(['field_value' => $fieldData['field_value'] ?? null]);
|
||||
}
|
||||
}
|
||||
|
||||
// 감사 로그
|
||||
EsignAuditLog::create([
|
||||
'tenant_id' => $tenantId,
|
||||
@@ -659,7 +672,7 @@ public function update(Request $request, int $id): JsonResponse
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '계약이 수정되었습니다.',
|
||||
'data' => $contract->load('signers'),
|
||||
'data' => $contract->load(['signers', 'signFields']),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user