- 회계: 거래처, 매입/매출, 입출금 상세 페이지 개선 - HR: 직원 관리 및 출퇴근 설정 기능 수정 - 주문관리: 상세폼 구조 분리 (cards, dialogs, hooks, tables) - 알림설정: 컴포넌트 구조 단순화 및 리팩토링 - 캘린더: 헤더 및 일정 타입 개선 - 출고관리: 액션 및 타입 정의 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
290 lines
7.3 KiB
TypeScript
290 lines
7.3 KiB
TypeScript
/**
|
||
* 출하관리 Mock 데이터
|
||
*/
|
||
|
||
import type {
|
||
ShipmentItem,
|
||
ShipmentDetail,
|
||
ShipmentStats,
|
||
ShipmentFilterTab,
|
||
LotOption,
|
||
LogisticsOption,
|
||
VehicleTonnageOption,
|
||
} from './types';
|
||
|
||
// 통계 데이터
|
||
export const mockStats: ShipmentStats = {
|
||
todayShipmentCount: 3,
|
||
scheduledCount: 5,
|
||
shippingCount: 1,
|
||
urgentCount: 4,
|
||
totalCount: 20,
|
||
};
|
||
|
||
// 필터 탭
|
||
export const mockFilterTabs: ShipmentFilterTab[] = [
|
||
{ key: 'all', label: '전체', count: 20 },
|
||
{ key: 'scheduled', label: '출고예정', count: 5 },
|
||
{ key: 'ready', label: '출하대기', count: 1 },
|
||
{ key: 'shipping', label: '배송중', count: 1 },
|
||
{ key: 'completed', label: '배송완료', count: 12 },
|
||
{ key: 'calendar', label: '출하일정', count: 0 },
|
||
];
|
||
|
||
// 출하 목록 Mock 데이터
|
||
export const mockShipmentItems: ShipmentItem[] = [
|
||
{
|
||
id: 'sl-251220-01',
|
||
shipmentNo: 'SL-251220-01',
|
||
lotNo: 'KD-TS-251217-10',
|
||
scheduledDate: '2025-12-20',
|
||
status: 'completed',
|
||
priority: 'urgent',
|
||
deliveryMethod: 'direct',
|
||
customerName: '두산건설(주)',
|
||
siteName: '위브 청라',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251222-03',
|
||
shipmentNo: 'SL-251222-03',
|
||
lotNo: 'KD-TS-251217-09',
|
||
scheduledDate: '2025-12-22',
|
||
status: 'completed',
|
||
priority: 'normal',
|
||
deliveryMethod: 'logistics',
|
||
customerName: '태영건설(주)',
|
||
siteName: '대시앙 동탄',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251224-01',
|
||
shipmentNo: 'SL-251224-01',
|
||
lotNo: 'KD-TS-251217-08',
|
||
scheduledDate: '2025-12-24',
|
||
status: 'completed',
|
||
priority: 'normal',
|
||
deliveryMethod: 'logistics',
|
||
customerName: '호반건설(주)',
|
||
siteName: '버킷 광교',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251221-03',
|
||
shipmentNo: 'SL-251221-03',
|
||
lotNo: 'KD-TS-251217-06',
|
||
scheduledDate: '2025-12-21',
|
||
status: 'shipping',
|
||
priority: 'normal',
|
||
deliveryMethod: 'pickup',
|
||
customerName: '호반건설(주)',
|
||
siteName: '버킷 광교',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251223-02',
|
||
shipmentNo: 'SL-251223-02',
|
||
lotNo: 'KD-TS-251217-05',
|
||
scheduledDate: '2025-12-23',
|
||
status: 'ready',
|
||
priority: 'normal',
|
||
deliveryMethod: 'direct',
|
||
customerName: '포스코건설(주)',
|
||
siteName: '더샵 송도',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251222-02',
|
||
shipmentNo: 'SL-251222-02',
|
||
lotNo: 'KD-TS-251217-04',
|
||
scheduledDate: '2025-12-22',
|
||
status: 'completed',
|
||
priority: 'normal',
|
||
deliveryMethod: 'direct',
|
||
customerName: 'GS건설(주)',
|
||
siteName: '자이 위례',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251222-01',
|
||
shipmentNo: 'SL-251222-01',
|
||
lotNo: 'KD-TS-251217-03',
|
||
scheduledDate: '2025-12-22',
|
||
status: 'completed',
|
||
priority: 'normal',
|
||
deliveryMethod: 'pickup',
|
||
customerName: '대우건설(주)',
|
||
siteName: '푸르지오 일산',
|
||
manager: '-',
|
||
canShip: true,
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
},
|
||
{
|
||
id: 'sl-251223-02b',
|
||
shipmentNo: 'SL-251223-02',
|
||
lotNo: 'KD-TS-251217-02',
|
||
scheduledDate: '2025-12-23',
|
||
status: 'scheduled',
|
||
priority: 'normal',
|
||
deliveryMethod: 'logistics',
|
||
customerName: '현대건설(주)',
|
||
siteName: '힐스테이트 판교',
|
||
manager: '-',
|
||
canShip: false,
|
||
depositConfirmed: false,
|
||
invoiceIssued: false,
|
||
},
|
||
{
|
||
id: 'sl-251221-02',
|
||
shipmentNo: 'SL-251221-02',
|
||
lotNo: 'KD-TS-251217-02',
|
||
scheduledDate: '2025-12-23',
|
||
status: 'scheduled',
|
||
priority: 'normal',
|
||
deliveryMethod: 'pickup',
|
||
customerName: '현대건설(주)',
|
||
siteName: '힐스테이트 판교',
|
||
manager: '-',
|
||
canShip: false,
|
||
depositConfirmed: true,
|
||
invoiceIssued: false,
|
||
},
|
||
{
|
||
id: 'sl-251221-01',
|
||
shipmentNo: 'SL-251221-01',
|
||
lotNo: 'KD-TS-251217-01',
|
||
scheduledDate: '2025-12-21',
|
||
status: 'scheduled',
|
||
priority: 'normal',
|
||
deliveryMethod: 'pickup',
|
||
customerName: '삼성물산(주)',
|
||
siteName: '래미안 강남 포레스트',
|
||
manager: '-',
|
||
canShip: false,
|
||
depositConfirmed: false,
|
||
invoiceIssued: false,
|
||
},
|
||
];
|
||
|
||
// 출하 상세 Mock 데이터
|
||
export const mockShipmentDetail: ShipmentDetail = {
|
||
id: 'sl-251220-01',
|
||
shipmentNo: 'SL-251220-01',
|
||
lotNo: 'KD-TS-251217-10',
|
||
scheduledDate: '2025-12-20',
|
||
status: 'completed',
|
||
priority: 'urgent',
|
||
deliveryMethod: 'direct',
|
||
depositConfirmed: true,
|
||
invoiceIssued: true,
|
||
customerGrade: 'B등급',
|
||
canShip: true,
|
||
loadingManager: '김상차',
|
||
loadingCompleted: '2025.12.20.',
|
||
registrant: '판매1팀 임판매',
|
||
|
||
customerName: '두산건설(주)',
|
||
siteName: '위브 청라',
|
||
deliveryAddress: '인천시 서구 청라동 456',
|
||
receiver: '임현장',
|
||
receiverContact: '010-8901-2345',
|
||
|
||
products: [
|
||
{
|
||
id: 'prod-1',
|
||
no: 1,
|
||
itemCode: 'SH3225',
|
||
itemName: '스크린 셔터 (와이어)',
|
||
floorUnit: '18층/M-01',
|
||
specification: '3200×2500',
|
||
quantity: 1,
|
||
lotNo: 'LOT-20251217-001',
|
||
},
|
||
],
|
||
|
||
logisticsCompany: '-',
|
||
vehicleTonnage: '3.5톤',
|
||
shippingCost: undefined,
|
||
|
||
vehicleNo: '34사 5678',
|
||
driverName: '정운전',
|
||
driverContact: '010-5656-7878',
|
||
|
||
remarks: '[통합테스트10] 두산건설 - 전체 플로우 완료 (견적→수주→생산→품질→출하→회계)',
|
||
};
|
||
|
||
// LOT 선택 옵션 (등록 시)
|
||
export const mockLotOptions: LotOption[] = [
|
||
{
|
||
value: 'KD-TS-251217-10',
|
||
label: 'KD-TS-251217-10',
|
||
customerName: '두산건설(주)',
|
||
siteName: '위브 청라',
|
||
deliveryAddress: '인천시 서구 청라동 456',
|
||
},
|
||
{
|
||
value: 'KD-TS-251217-09',
|
||
label: 'KD-TS-251217-09',
|
||
customerName: '태영건설(주)',
|
||
siteName: '대시앙 동탄',
|
||
deliveryAddress: '경기도 화성시 동탄순환대로 100',
|
||
},
|
||
{
|
||
value: 'KD-TS-251217-08',
|
||
label: 'KD-TS-251217-08',
|
||
customerName: '호반건설(주)',
|
||
siteName: '버킷 광교',
|
||
deliveryAddress: '경기도 수원시 영통구 광교로 200',
|
||
},
|
||
];
|
||
|
||
// 물류사 옵션
|
||
export const mockLogisticsOptions: LogisticsOption[] = [
|
||
{ value: 'hanjin', label: '한진물류' },
|
||
{ value: 'cj', label: 'CJ대한통운' },
|
||
{ value: 'lotte', label: '롯데글로벌로지스' },
|
||
{ value: 'hyundai', label: '현대글로비스' },
|
||
];
|
||
|
||
// 차량 톤수 옵션
|
||
export const mockVehicleTonnageOptions: VehicleTonnageOption[] = [
|
||
{ value: '1t', label: '1톤' },
|
||
{ value: '2.5t', label: '2.5톤' },
|
||
{ value: '3.5t', label: '3.5톤' },
|
||
{ value: '5t', label: '5톤' },
|
||
{ value: '11t', label: '11톤' },
|
||
{ value: '25t', label: '25톤' },
|
||
];
|
||
|
||
// 우선순위 옵션
|
||
export const priorityOptions = [
|
||
{ value: 'urgent', label: '긴급' },
|
||
{ value: 'normal', label: '보통' },
|
||
{ value: 'low', label: '낮음' },
|
||
];
|
||
|
||
// 배송방식 옵션
|
||
export const deliveryMethodOptions = [
|
||
{ value: 'pickup', label: '상차' },
|
||
{ value: 'direct', label: '직접배차' },
|
||
{ value: 'logistics', label: '물류사' },
|
||
]; |