feat: [ai-quotation] 제조업 표준 견적서 문서 뷰 추가

- 인쇄 전용 standalone 레이아웃 (layouts/document.blade.php) 생성
- 한국 제조업 표준 견적서 양식 문서 뷰 생성 (A4 인쇄/PDF 최적화)
- RdController에 documentQuotation 메서드 추가
- /rd/ai-quotation/{id}/document 라우트 등록
- 상세 페이지에 "견적서 보기" 버튼 추가 (완료 상태만 표시)
- 한글 금액 변환, VAT 자동 계산, 비고란 포함
This commit is contained in:
김보곤
2026-03-02 19:11:33 +09:00
parent 2e3dc556d1
commit a26e66bb8e
5 changed files with 306 additions and 9 deletions

View File

@@ -14,6 +14,10 @@
use App\Http\Controllers\BoardController;
use App\Http\Controllers\CategoryController;
use App\Http\Controllers\CategorySyncController;
use App\Http\Controllers\ClaudeCode\CoworkController as ClaudeCodeCoworkController;
use App\Http\Controllers\ClaudeCode\NewsController as ClaudeCodeNewsController;
use App\Http\Controllers\ClaudeCode\PricingController as ClaudeCodePricingController;
use App\Http\Controllers\ClaudeCode\UsagePlanController as ClaudeCodeUsagePlanController;
use App\Http\Controllers\CommonCodeController;
use App\Http\Controllers\CommonCodeSyncController;
use App\Http\Controllers\CustomerCenterController;
@@ -27,19 +31,15 @@
use App\Http\Controllers\ESign\EsignController;
use App\Http\Controllers\ESign\EsignPublicController;
use App\Http\Controllers\FcmController;
use App\Http\Controllers\GoogleCloud\AiGuideController as GoogleCloudAiGuideController;
use App\Http\Controllers\GoogleCloud\CloudApiPricingController as GoogleCloudCloudApiPricingController;
use App\Http\Controllers\GoogleCloud\WorkspacePolicyController as GoogleCloudWorkspacePolicyController;
use App\Http\Controllers\GoogleCloud\WorkspacePricingController as GoogleCloudWorkspacePricingController;
use App\Http\Controllers\ItemFieldController;
use App\Http\Controllers\ItemManagementController;
use App\Http\Controllers\Juil\ConstructionSitePhotoController;
use App\Http\Controllers\Juil\MeetingMinuteController;
use App\Http\Controllers\Juil\PlanningController;
use App\Http\Controllers\ClaudeCode\NewsController as ClaudeCodeNewsController;
use App\Http\Controllers\ClaudeCode\CoworkController as ClaudeCodeCoworkController;
use App\Http\Controllers\ClaudeCode\PricingController as ClaudeCodePricingController;
use App\Http\Controllers\ClaudeCode\UsagePlanController as ClaudeCodeUsagePlanController;
use App\Http\Controllers\GoogleCloud\WorkspacePolicyController as GoogleCloudWorkspacePolicyController;
use App\Http\Controllers\GoogleCloud\WorkspacePricingController as GoogleCloudWorkspacePricingController;
use App\Http\Controllers\GoogleCloud\AiGuideController as GoogleCloudAiGuideController;
use App\Http\Controllers\GoogleCloud\CloudApiPricingController as GoogleCloudCloudApiPricingController;
use App\Http\Controllers\Lab\StrategyController;
use App\Http\Controllers\MenuController;
use App\Http\Controllers\MenuSyncController;
@@ -48,9 +48,9 @@
use App\Http\Controllers\PostController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ProjectManagementController;
use App\Http\Controllers\QuoteFormulaController;
use App\Http\Controllers\RdController;
use App\Http\Controllers\RoadmapController;
use App\Http\Controllers\QuoteFormulaController;
use App\Http\Controllers\RoleController;
use App\Http\Controllers\RolePermissionController;
use App\Http\Controllers\Sales\SalesProductController;
@@ -375,6 +375,7 @@
Route::get('/', [RdController::class, 'index'])->name('index');
Route::get('/ai-quotation', [RdController::class, 'quotations'])->name('ai-quotation.index');
Route::get('/ai-quotation/create', [RdController::class, 'createQuotation'])->name('ai-quotation.create');
Route::get('/ai-quotation/{id}/document', [RdController::class, 'documentQuotation'])->name('ai-quotation.document');
Route::get('/ai-quotation/{id}', [RdController::class, 'showQuotation'])->name('ai-quotation.show');
});