fix(WEB): 수주 페이지 필드 매핑 및 제품-부품 트리 구조 개선
- ApiClient 인터페이스: representative → manager_name, contact_person 변경 - transformApiToFrontend: client.representative → client.manager_name 수정 - ApiOrderItem에 floor_code, symbol_code 필드 추가 (제품-부품 매핑) - ApiOrder에 options 타입 정의 추가 - ApiQuote에 calculation_inputs 타입 정의 추가 - 수주 상세 페이지 제품-부품 트리 구조 UI 개선
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
use App\Models\Items\Item;
|
||||
use App\Models\Production\WorkOrder;
|
||||
use App\Models\Quote\Quote;
|
||||
use App\Models\Tenants\Shipment;
|
||||
use App\Traits\BelongsToTenant;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -27,10 +28,48 @@ class Order extends Model
|
||||
|
||||
public const STATUS_IN_PROGRESS = 'IN_PROGRESS';
|
||||
|
||||
public const STATUS_IN_PRODUCTION = 'IN_PRODUCTION'; // 생산중
|
||||
|
||||
public const STATUS_PRODUCED = 'PRODUCED'; // 생산완료
|
||||
|
||||
public const STATUS_SHIPPING = 'SHIPPING'; // 출하중
|
||||
|
||||
public const STATUS_SHIPPED = 'SHIPPED'; // 출하완료
|
||||
|
||||
public const STATUS_COMPLETED = 'COMPLETED';
|
||||
|
||||
public const STATUS_CANCELLED = 'CANCELLED';
|
||||
|
||||
/**
|
||||
* 전체 상태 목록
|
||||
*/
|
||||
public const STATUSES = [
|
||||
self::STATUS_DRAFT,
|
||||
self::STATUS_CONFIRMED,
|
||||
self::STATUS_IN_PROGRESS,
|
||||
self::STATUS_IN_PRODUCTION,
|
||||
self::STATUS_PRODUCED,
|
||||
self::STATUS_SHIPPING,
|
||||
self::STATUS_SHIPPED,
|
||||
self::STATUS_COMPLETED,
|
||||
self::STATUS_CANCELLED,
|
||||
];
|
||||
|
||||
/**
|
||||
* 상태 라벨
|
||||
*/
|
||||
public const STATUS_LABELS = [
|
||||
self::STATUS_DRAFT => '임시저장',
|
||||
self::STATUS_CONFIRMED => '확정',
|
||||
self::STATUS_IN_PROGRESS => '진행중',
|
||||
self::STATUS_IN_PRODUCTION => '생산중',
|
||||
self::STATUS_PRODUCED => '생산완료',
|
||||
self::STATUS_SHIPPING => '출하중',
|
||||
self::STATUS_SHIPPED => '출하완료',
|
||||
self::STATUS_COMPLETED => '완료',
|
||||
self::STATUS_CANCELLED => '취소',
|
||||
];
|
||||
|
||||
// 주문 유형
|
||||
public const TYPE_ORDER = 'ORDER'; // 수주
|
||||
|
||||
@@ -127,6 +166,14 @@ public function client(): BelongsTo
|
||||
return $this->belongsTo(Client::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 작성자 (담당자)
|
||||
*/
|
||||
public function writer(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(\App\Models\Members\User::class, 'writer_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 품목 (통합 items 테이블)
|
||||
*/
|
||||
@@ -143,6 +190,14 @@ public function workOrders(): HasMany
|
||||
return $this->hasMany(WorkOrder::class, 'sales_order_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 출하 목록
|
||||
*/
|
||||
public function shipments(): HasMany
|
||||
{
|
||||
return $this->hasMany(Shipment::class, 'order_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 품목들로부터 금액 합계 재계산
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user