From befba7e2aef773eab220644a42feeb6916d685b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 6 Mar 2026 11:28:15 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[approvals]=20=ED=92=88=EC=9D=98?= =?UTF-8?q?=EC=84=9C=20=EC=96=91=EC=8B=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 품의서(purchase_request) 전용 폼/뷰 partial 추가 - 지출결의서 기반, 지출방법(카드/계좌) 제거, 구매목적 필드 추가 - 테이블: 품명/수량/단가/금액/업체명/비고 (수량×단가 자동계산) - 희망 납기일, 요청부서/요청자, 첨부파일 지원 - create/edit/show 모두 분기 처리 --- resources/views/approvals/create.blade.php | 19 + resources/views/approvals/edit.blade.php | 24 +- .../partials/_purchase-request-form.blade.php | 502 ++++++++++++++++++ .../partials/_purchase-request-show.blade.php | 101 ++++ resources/views/approvals/show.blade.php | 4 +- 5 files changed, 647 insertions(+), 3 deletions(-) create mode 100644 resources/views/approvals/partials/_purchase-request-form.blade.php create mode 100644 resources/views/approvals/partials/_purchase-request-show.blade.php diff --git a/resources/views/approvals/create.blade.php b/resources/views/approvals/create.blade.php index 6e3eea78..eb11aa99 100644 --- a/resources/views/approvals/create.blade.php +++ b/resources/views/approvals/create.blade.php @@ -122,6 +122,11 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline- 'accounts' => $accounts ?? collect(), ]) + {{-- 품의서 전용 폼 --}} + @include('approvals.partials._purchase-request-form', [ + 'initialData' => [], + ]) + {{-- 액션 버튼 --}}
+ + diff --git a/resources/views/approvals/partials/_purchase-request-show.blade.php b/resources/views/approvals/partials/_purchase-request-show.blade.php new file mode 100644 index 00000000..8ef22eef --- /dev/null +++ b/resources/views/approvals/partials/_purchase-request-show.blade.php @@ -0,0 +1,101 @@ +{{-- + 품의서 읽기전용 렌더링 + Props: + $content (array) - approvals.content JSON +--}} +
+ {{-- 구매 목적 --}} + @if(!empty($content['purpose'])) +
+ 구매 목적 +
{{ $content['purpose'] }}
+
+ @endif + + {{-- 기본 정보 --}} +
+
+ 작성일자 +
{{ $content['write_date'] ?? '-' }}
+
+
+ 희망 납기일 +
{{ $content['desired_date'] ?? '-' }}
+
+
+ 요청부서 +
{{ $content['department'] ?? '-' }}
+
+
+ 요청자 +
{{ $content['writer_name'] ?? '-' }}
+
+
+ + {{-- 내역 테이블 --}} + @if(!empty($content['items'])) +
+ + + + + + + + + + + + + @foreach($content['items'] as $item) + + + + + + + + + @endforeach + + + + + + + + +
품명수량단가금액업체명비고
{{ $item['description'] ?? '' }}{{ $item['quantity'] ?? '' }}{{ number_format($item['unit_price'] ?? 0) }}{{ number_format($item['amount'] ?? 0) }}{{ $item['vendor'] ?? '' }}{{ $item['remark'] ?? '' }}
합계{{ number_format($content['total_amount'] ?? 0) }}
+
+ @endif + + {{-- 첨부서류 --}} + @if(!empty($content['attachment_memo'])) +
+ 첨부서류 +
{{ $content['attachment_memo'] }}
+
+ @endif + + {{-- 첨부파일 --}} + @if(!empty($approval->attachments)) +
+ 첨부파일 +
+ @foreach($approval->attachments as $file) +
+ + + + + {{ $file['name'] ?? '파일' }} + + + {{ isset($file['size']) ? number_format($file['size'] / 1024, 1) . 'KB' : '' }} + +
+ @endforeach +
+
+ @endif +
diff --git a/resources/views/approvals/show.blade.php b/resources/views/approvals/show.blade.php index faa59274..f84730c5 100644 --- a/resources/views/approvals/show.blade.php +++ b/resources/views/approvals/show.blade.php @@ -80,7 +80,9 @@ class="bg-gray-600 hover:bg-gray-700 text-white px-4 py-2 rounded-lg transition

{{ $approval->title }}

- @if(!empty($approval->content) && $approval->form?->code === 'expense') + @if(!empty($approval->content) && $approval->form?->code === 'purchase_request') + @include('approvals.partials._purchase-request-show', ['content' => $approval->content]) + @elseif(!empty($approval->content) && $approval->form?->code === 'expense') @include('approvals.partials._expense-show', ['content' => $approval->content]) @elseif(!empty($approval->content) && $approval->form?->code === 'employment_cert') @include('approvals.partials._certificate-show', ['content' => $approval->content])