- 법인카드관리: 카드 CRUD, 결제일 휴일조정, 사용금액 집계, 선불결제 - 카드사용내역: 바로빌 SOAP 연동, 분개, 거래숨김, 금액수정 - 차량목록: 법인/렌트/리스 차량 등록, 주행거리 자동계산 - 차량일지: 운행기록, 용도별 통계, 출발↔도착 교환 - 정비이력: 카테고리별 비용 관리, 주행거리 자동갱신 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.3 KiB
5.3 KiB
차량목록
개요
차량목록은 회사의 법인차량(법인/렌트/리스)을 등록하고 관리하는 기능입니다. 소유형태별 차량 등록, 총 주행거리 자동 계산, 차량 상태 관리 등을 지원합니다.
- 라우트:
GET /finance/corporate-vehicles - UI 기술: React 18 + Babel (브라우저 트랜스파일링)
파일 구조
mng/
├── app/Http/Controllers/Finance/
│ └── CorporateVehicleController.php # 메인 컨트롤러 (5개 메서드)
├── app/Models/
│ └── CorporateVehicle.php # 차량 모델
└── resources/views/finance/
└── corporate-vehicles.blade.php # React 기반 단일 페이지
api/
└── database/migrations/
└── 2026_02_02_220000_create_corporate_vehicles_table.php
라우트
// routes/web.php (finance prefix 그룹 내)
GET /corporate-vehicles → index() 페이지 렌더링
GET /corporate-vehicles/list → list() 차량 목록 (JSON)
POST /corporate-vehicles → store() 차량 등록
PUT /corporate-vehicles/{id} → update() 차량 수정
DELETE /corporate-vehicles/{id} → destroy() 차량 삭제
컨트롤러
CorporateVehicleController
| 메서드 | HTTP | 설명 |
|---|---|---|
index() |
GET | React 페이지 렌더링 (HX-Redirect 적용) |
list() |
GET | 차량 목록 (필터 + 총 주행거리 계산) |
store() |
POST | 차량 등록 |
update() |
PUT | 차량 수정 |
destroy() |
DELETE | 차량 삭제 |
list() 핵심 로직
필터 파라미터: ownership_type, vehicle_type, status, search
↓
CorporateVehicle::where(tenant_id, ...)
↓
각 차량별 총 주행거리 계산:
total_mileage = initial_mileage + SUM(vehicle_logs.distance_km)
↓
JSON 응답
모델
CorporateVehicle
테이블: corporate_vehicles
| 필드 | 타입 | 설명 |
|---|---|---|
tenant_id |
bigint | 테넌트 ID |
plate_number |
string(20) | 차량번호 |
model |
string(100) | 차량 모델명 |
vehicle_type |
string(20) | 차종 |
ownership_type |
enum | corporate / rent / lease |
year |
year | 연식 |
driver |
string(50) | 주 운전자 |
status |
enum | active / maintenance / disposed |
mileage |
int | 현재 주행거리 (정비 기준) |
memo |
text | 메모 |
법인 전용 필드
| 필드 | 타입 | 설명 |
|---|---|---|
purchase_date |
date | 취득일자 |
purchase_price |
int | 취득가액 |
렌트/리스 전용 필드
| 필드 | 타입 | 설명 |
|---|---|---|
contract_date |
date | 계약일자 |
rent_company |
string | 렌트/리스사 |
rent_company_tel |
string | 연락처 |
rent_period |
string | 계약기간 |
agreed_mileage |
int | 약정주행거리 |
vehicle_price |
int | 차량가액 |
residual_value |
int | 잔존가치 |
deposit |
int | 보증금 |
monthly_rent |
int | 월 렌트료 |
monthly_rent_tax |
int | 부가세 |
insurance_company |
string | 보험사 |
insurance_company_tel |
string | 보험사 연락처 |
Traits / Scope
SoftDeletes적용- Casts: year, mileage, purchase_price, vehicle_price, residual_value, deposit, monthly_rent, monthly_rent_tax → integer
뷰 구성 (React)
corporate-vehicles.blade.php
┌─ 페이지 헤더 ──────────────────────
│ 제목: "차량목록"
│ 검색 | Excel 다운로드 | 차량 등록 버튼
│
├─ 요약 카드 (4열) ──────────────────
│ 총 차량 | 법인 취득가 | 월 렌트/리스비 | 총 주행거리
│
├─ 필터 바 ──────────────────────────
│ 소유형태: 전체 | 법인 | 렌트 | 리스
│ 상태: 전체 | 운행중 | 정비중 | 처분
│
├─ 차량 목록 테이블 (12열 그리드) ──
│ 차량번호 | 차종/모델 | 소유형태 | 운전자 | 주행거리 | 상태
│ └─ 소유형태: 법인(보라), 렌트(파랑), 리스(초록) 배지
│ └─ 상태: 운행중(초록), 정비중(노랑), 처분(빨강) 배지
│
├─ 등록/수정 모달 ───────────────────
│ 차량번호, 모델명, 차종, 소유형태
│ 연식, 주 운전자, 상태, 메모
│ ─────────────────────────
│ [법인일 때] 취득일자, 취득가액
│ [렌트/리스일 때] 계약일, 렌트사, 계약기간,
│ 약정주행, 차량가액, 잔존가치, 보증금,
│ 월렌트료, 부가세, 보험사
│ ─────────────────────────
│ [삭제] [취소] [등록/저장]
│
└─ 비어있을 때: "등록된 차량이 없습니다" 안내
데이터 흐름
CorporateVehicle (1) ← (N) VehicleLog (총 주행거리 합산)
← (N) VehicleMaintenance (주행거리 갱신)
주행거리 계산 방식
총 주행거리 = CorporateVehicle.mileage (정비 시 갱신 기준값)
+ SUM(vehicle_logs.distance_km) (운행일지 거리 합계)
HTMX 호환성
- React 기반 페이지이므로 HX-Redirect 필요
@push('scripts')블록에 React/Babel 스크립트 포함