1. 實作「目前庫存」矩陣化視圖:將商品作為行、倉庫作為列,支援跨倉庫水位分析與自動加總。 2. 優化矩陣 UI:實作固定欄位 (Sticky Columns) 以應對多倉庫場景,並修正深色模式下的背景色對齊問題。 3. 強化倉儲操作驗證:實作調撥與補貨單的 Alpine.js 前端欄位驗證與 AJAX 提交邏輯,提升操作流暢度。 4. 優化機台地址定位:實作結構化地址解析與 Nominatim API 對接,提升經緯度自動獲取的準確性。 5. 標準化 UI 組件:更新 Breadcrumbs、刪除確認彈窗與搜尋下拉選單,確保全站視覺一致性。 6. 完善多語系支援:補全倉儲管理、機台設定與 UI 提示的繁體中文翻譯。 7. 增加 Product Model 的 stocks() 關聯,支援高效率的庫存矩陣查詢。
79 lines
1.7 KiB
PHP
79 lines
1.7 KiB
PHP
<?php
|
||
|
||
namespace App\Models\System;
|
||
|
||
use App\Models\Machine\Machine;
|
||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||
use Illuminate\Database\Eloquent\Model;
|
||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||
use Spatie\Permission\Models\Role;
|
||
|
||
class Company extends Model
|
||
{
|
||
use HasFactory, SoftDeletes;
|
||
|
||
protected $fillable = [
|
||
'name',
|
||
'code',
|
||
'original_type',
|
||
'current_type',
|
||
'tax_id',
|
||
'contact_name',
|
||
'contact_phone',
|
||
'contact_email',
|
||
'status',
|
||
'start_date',
|
||
'end_date',
|
||
'warranty_start_date',
|
||
'warranty_end_date',
|
||
'software_start_date',
|
||
'software_end_date',
|
||
'note',
|
||
'settings',
|
||
];
|
||
|
||
protected $casts = [
|
||
'start_date' => 'date:Y-m-d',
|
||
'end_date' => 'date:Y-m-d',
|
||
'warranty_start_date' => 'date:Y-m-d',
|
||
'warranty_end_date' => 'date:Y-m-d',
|
||
'software_start_date' => 'date:Y-m-d',
|
||
'software_end_date' => 'date:Y-m-d',
|
||
'status' => 'integer',
|
||
'settings' => 'array',
|
||
];
|
||
|
||
/**
|
||
* Get the contract history for the company.
|
||
*/
|
||
public function contracts(): HasMany
|
||
{
|
||
return $this->hasMany(CompanyContract::class)->latest();
|
||
}
|
||
|
||
/**
|
||
* Get the users for the company.
|
||
*/
|
||
public function users(): HasMany
|
||
{
|
||
return $this->hasMany(User::class);
|
||
}
|
||
|
||
/**
|
||
* Get the machines for the company.
|
||
*/
|
||
public function machines(): HasMany
|
||
{
|
||
return $this->hasMany(Machine::class);
|
||
}
|
||
|
||
/**
|
||
* Scope:僅篩選啟用的公司
|
||
*/
|
||
public function scopeActive($query)
|
||
{
|
||
return $query->where('status', 1);
|
||
}
|
||
}
|