feat: [approval] 지출결의서 body_template 고도화
- 참조 문서 기반으로 정형 양식 HTML 리디자인 - 지출형식/세금계산서 체크박스, 기본정보, 8열 내역 테이블, 합계, 첨부 섹션 포함
This commit is contained in:
@@ -0,0 +1,180 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
$bodyTemplate = <<<'HTML'
|
||||||
|
<h2 style="text-align:center; margin-bottom:16px; font-size:20px; font-weight:bold; letter-spacing:2px;">지 출 결 의 서</h2>
|
||||||
|
<table style="width:100%; border-collapse:collapse; margin-bottom:12px; font-size:13px;">
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold; width:110px;">지출형식</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px;" colspan="5">
|
||||||
|
☐ 법인카드 ☐ 송금 ☐ 현금/가지급정산 ☐ 복지카드
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold;">세금계산서</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px;" colspan="5">
|
||||||
|
☐ 일반 ☐ 이월발행
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table style="width:100%; border-collapse:collapse; margin-bottom:12px; font-size:13px;">
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold; width:110px;">작성일자</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; width:22%;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold; width:80px;">지출부서</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; width:22%;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold; width:60px;">이름</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px; background:#f8f9fa; font-weight:bold;">제목</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 10px;" colspan="5"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table style="width:100%; border-collapse:collapse; margin-bottom:12px; font-size:13px;">
|
||||||
|
<thead>
|
||||||
|
<tr style="background:#e9ecef;">
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:90px;">년/월/일</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center;">내용</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:90px;">금액</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:90px;">업체명</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:70px;">지급은행</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:100px;">계좌번호</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:60px;">예금주</th>
|
||||||
|
<th style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center; width:60px;">비고</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr style="background:#f8f9fa;">
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:center;" colspan="2">합 계</td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px; font-weight:bold; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:6px 8px;" colspan="5"></td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
<p style="font-size:13px; color:#666;">첨부서류:</p>
|
||||||
|
HTML;
|
||||||
|
|
||||||
|
DB::table('approval_forms')
|
||||||
|
->where('tenant_id', 1)
|
||||||
|
->where('code', 'expense')
|
||||||
|
->update([
|
||||||
|
'body_template' => $bodyTemplate,
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
// 이전 body_template으로 복원
|
||||||
|
$oldBodyTemplate = <<<'HTML'
|
||||||
|
<table style="width:100%; border-collapse:collapse; font-size:14px; border:2px solid #333;">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:15%;">
|
||||||
|
<col style="width:35%;">
|
||||||
|
<col style="width:15%;">
|
||||||
|
<col style="width:35%;">
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; background:#f5f5f5; font-weight:bold;">지출일자</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; background:#f5f5f5; font-weight:bold;">부서</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; background:#f5f5f5; font-weight:bold;">거래처</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;" colspan="3"></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="background:#e8e8e8;">
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:center;">계정과목</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:center;">적요</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:center;">금액</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:center;">비고</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="background:#f5f5f5;">
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:center;" colspan="2">합계</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; font-weight:bold; text-align:right;"></td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px;"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; background:#f5f5f5; font-weight:bold;">지출 사유</td>
|
||||||
|
<td style="border:1px solid #999; padding:8px 12px; min-height:60px;" colspan="3"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
HTML;
|
||||||
|
|
||||||
|
DB::table('approval_forms')
|
||||||
|
->where('tenant_id', 1)
|
||||||
|
->where('code', 'expense')
|
||||||
|
->update([
|
||||||
|
'body_template' => $oldBodyTemplate,
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user