Files
sam-api/app/Models/Production/WorkOrderItem.php

81 lines
2.2 KiB
PHP
Raw Normal View History

<?php
namespace App\Models\Production;
use App\Models\Items\Item;
use App\Traits\BelongsToTenant;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* 작업지시 품목 모델
*/
class WorkOrderItem extends Model
{
use BelongsToTenant;
protected $table = 'work_order_items';
protected $fillable = [
'tenant_id',
'work_order_id',
'item_id',
'item_name',
'specification',
'quantity',
'unit',
'sort_order',
'status',
];
/**
* 품목 상태 상수
*/
public const STATUS_WAITING = 'waiting';
public const STATUS_IN_PROGRESS = 'in_progress';
public const STATUS_COMPLETED = 'completed';
public const STATUSES = [
self::STATUS_WAITING,
self::STATUS_IN_PROGRESS,
self::STATUS_COMPLETED,
];
protected $casts = [
'quantity' => 'decimal:2',
'sort_order' => 'integer',
];
// ──────────────────────────────────────────────────────────────
// 관계
// ──────────────────────────────────────────────────────────────
/**
* 작업지시
*/
public function workOrder(): BelongsTo
{
return $this->belongsTo(WorkOrder::class);
}
/**
* 품목
*/
public function item(): BelongsTo
{
return $this->belongsTo(Item::class);
}
// ──────────────────────────────────────────────────────────────
// 스코프
// ──────────────────────────────────────────────────────────────
/**
* 정렬 순서
*/
public function scopeOrdered($query)
{
return $query->orderBy('sort_order');
}
}