@extends('layouts.app') @section('title', $isCreate ? '새 문서 작성' : '문서 수정') @section('content')

{{ $isCreate ? '새 문서 작성' : '문서 수정' }}

{{-- 템플릿 선택 (생성 시) --}} @if($isCreate && !$template)

템플릿 선택

@forelse($templates as $tpl)

{{ $tpl->name }}

{{ $tpl->category }}

@empty

사용 가능한 템플릿이 없습니다.

@endforelse
@endif {{-- 문서 폼 --}} @if($template)
@csrf {{-- 기본 정보 --}}

기본 정보

{{-- 기본 필드 --}} @if($template->basicFields && $template->basicFields->count() > 0)

{{ $template->title ?? '문서 정보' }}

@foreach($template->basicFields as $field) @php $fieldKey = 'bf_' . $field->id; $savedValue = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? $field->default_value ?? ''; @endphp
@if($field->field_type === 'textarea') @elseif($field->field_type === 'date') @elseif($field->field_type === 'number') @else @endif
@endforeach
@endif {{-- 섹션 (검사 데이터 테이블) --}} @if($template->sections && $template->sections->count() > 0) @foreach($template->sections as $sectionIndex => $section)

{{ $section->title }}

@if($section->image_path) {{ $section->title }} @endif {{-- 검사 데이터 테이블 --}} @if($section->items->count() > 0 && $template->columns->count() > 0)
{{-- 테이블 헤더 --}} @foreach($template->columns as $col) @if($col->column_type === 'complex' && $col->sub_labels) @else @endif @endforeach {{-- 서브 라벨 행 (complex 컬럼이 있을 때만) --}} @if($template->columns->contains(fn($c) => $c->column_type === 'complex' && $c->sub_labels)) @foreach($template->columns as $col) @if($col->column_type === 'complex' && $col->sub_labels) @foreach($col->sub_labels as $subLabel) @endforeach @endif @endforeach @endif {{-- 테이블 바디 --}} @foreach($section->items as $rowIndex => $item) @foreach($template->columns as $col) @if($col->column_type === 'complex' && $col->sub_labels) {{-- complex: 서브 라벨별 입력 필드 --}} @foreach($col->sub_labels as $subIndex => $subLabel) @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}_sub{$subIndex}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; @endphp @endforeach @elseif($col->column_type === 'select') {{-- select: 판정 드롭다운 --}} @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; $options = $template->footer_judgement_options ?? ['적합', '부적합']; @endphp @elseif($col->column_type === 'check') {{-- check: 체크박스 --}} @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; @endphp @elseif($col->column_type === 'measurement') {{-- measurement: 수치 입력 (frequency_n에 따라 다중 입력) --}} @php $frequencyN = $item->frequency_n ?? 1; @endphp @else {{-- text: 정적 데이터 (항목정보) 또는 텍스트 입력 --}} @php // 정적 컬럼 매핑: NO, 검사항목, 검사기준, 검사방식, 검사주기 $staticValue = match(true) { str_contains(strtolower($col->label), 'no') && strlen($col->label) <= 4 => $rowIndex + 1, in_array($col->label, ['검사항목', '항목']) => $item->item, in_array($col->label, ['검사기준', '기준']) => $item->standard, in_array($col->label, ['검사방식', '방식', '검사방법']) => $item->method, in_array($col->label, ['검사주기', '주기']) => (function() use ($item) { $parts = []; if ($item->frequency_n) { $nc = "n={$item->frequency_n}"; if ($item->frequency_c !== null) $nc .= ", c={$item->frequency_c}"; $parts[] = $nc; } if ($item->frequency) $parts[] = $item->frequency; return $parts ? implode(' / ', $parts) : '-'; })(), in_array($col->label, ['규격', '적용규격', '관련규정']) => $item->regulation, in_array($col->label, ['분류', '카테고리']) => $item->category, default => null, }; @endphp @if($staticValue !== null) @else @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; @endphp @endif @endif @endforeach @endforeach
{{ $col->label }} {{ $col->label }}
{{ $subLabel }}
@if($frequencyN > 1)
@for($nIdx = 1; $nIdx <= $frequencyN; $nIdx++) @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}_n{$nIdx}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; @endphp @endfor
@else @php $fieldKey = "s{$section->id}_r{$rowIndex}_c{$col->id}"; $savedVal = $document?->data->where('field_key', $fieldKey)->first()?->field_value ?? ''; @endphp @endif
{{ $staticValue }}
@endif {{-- 종합판정 / 비고 --}} @if($loop->last && $template->footer_judgement_label)
@php $remarkKey = 'footer_remark'; $remarkVal = $document?->data->where('field_key', $remarkKey)->first()?->field_value ?? ''; @endphp
@php $judgementKey = 'footer_judgement'; $judgementVal = $document?->data->where('field_key', $judgementKey)->first()?->field_value ?? ''; $judgementOptions = $template->footer_judgement_options ?? ['적합', '부적합']; @endphp
@endif
@endforeach @endif {{-- 버튼 --}}
취소 @if(!$isCreate && $document && $document->canEdit()) @endif
@endif
@endsection @push('scripts') @endpush