126 lines
3.1 KiB
PHP
126 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace app\common\model;
|
|
|
|
use support\Model;
|
|
use app\common\traits\HasMoneyJournal;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
|
|
class StockOrders extends Model
|
|
{
|
|
|
|
use SoftDeletes;
|
|
|
|
/**
|
|
* The connection name for the model.
|
|
*
|
|
* @var string|null
|
|
*/
|
|
protected $connection = 'mysql';
|
|
|
|
/**
|
|
* The table associated with the model.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $table = 'stock_orders';
|
|
|
|
/**
|
|
* The primary key associated with the table.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $primaryKey = 'id';
|
|
|
|
/**
|
|
* Indicates if the model should be timestamped.
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $timestamps = true;
|
|
|
|
|
|
protected $dateFormat = 'U';
|
|
|
|
/**
|
|
* 允许自动填充模型字段
|
|
*/
|
|
protected $fillable = [
|
|
'id', 'order_no', 'pi_no', 'biz_date', 'salesperson_id', 'salesperson_snapshot',
|
|
'clearance_country_id', 'clearance_country_snapshot', 'ali_order_no',
|
|
'customer_source_id', 'customer_source_snapshot', 'customer_id', 'customer_snapshot',
|
|
'customer_country_id', 'customer_country_snapshot', 'declarant_name', 'eta_ship_date',
|
|
'shipping_method_id', 'shipping_method_snapshot', 'domestic_port_id', 'domestic_port_snapshot',
|
|
'trade_term_id', 'trade_term_snapshot', 'clearance_port_id', 'clearance_port_snapshot',
|
|
'latest_arrival_date', 'contract_exchange_rate', 'settlement_currency', 'status',
|
|
'remark', 'created_at', 'updated_at', 'deleted_at',
|
|
'object_id', 'is_use', 'is_final', 'approval_status', 'file_url', 'pick_up_date', 'collect_all_date', 'profit_total'
|
|
];
|
|
|
|
/**
|
|
* 不允许自动填充模型字段
|
|
*/
|
|
protected $guarded = [];
|
|
|
|
|
|
use HasMoneyJournal;
|
|
// 实现抽象方法
|
|
protected static function moneyObjectScene(): string
|
|
{
|
|
return 'stock_orders';
|
|
}
|
|
|
|
/**
|
|
* 关联订单项
|
|
*/
|
|
public function items()
|
|
{
|
|
return $this->hasMany(StockOrderItems::class, 'order_id', 'id');
|
|
}
|
|
|
|
/**
|
|
* 关联订单账户信息
|
|
*/
|
|
public function accounts()
|
|
{
|
|
return $this->hasMany(StockOrderAccounts::class, 'order_id', 'id');
|
|
}
|
|
|
|
/**
|
|
* 关联货币价值信息(一个订单可以有多个货币价值记录)
|
|
*/
|
|
public function moneyValues()
|
|
{
|
|
return $this->hasMany(VehMoneyValue::class, 'object_id', 'id')->where('object_scene', 'stock_orders');
|
|
}
|
|
|
|
/**
|
|
* 关联订单文件附件
|
|
*/
|
|
public function files()
|
|
{
|
|
return $this->hasMany(StockOrdersFiles::class, 'order_id', 'id');
|
|
}
|
|
|
|
|
|
public function salesperson()
|
|
{
|
|
return $this->hasOne(User::class, 'id', 'salesperson_id');
|
|
}
|
|
|
|
/**
|
|
* 客户的标签
|
|
*/
|
|
public function payment()
|
|
{
|
|
return $this->belongsToMany(FinPaymentApply::class, 'fin_payment_stock', 'stock_id', 'payment_apply_id');
|
|
}
|
|
|
|
/**
|
|
* 关联收款记录(多对多,经由中间表)
|
|
*/
|
|
public function receipts()
|
|
{
|
|
return $this->belongsToMany(FinReceipt::class, 'fin_payment_stock', 'stock_id', 'receipt_id');
|
|
}
|
|
} |