72 lines
2.0 KiB
PHP
72 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
|
use EloquentFilter\Filterable;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class DealerUserProductLog extends Model
|
|
{
|
|
use HasFactory;
|
|
use Filterable;
|
|
use HasDateTimeFormatter;
|
|
|
|
// 本地库存
|
|
public const TYPE_ORDER_IN = 1; //采购加库存
|
|
public const TYPE_ORDER_OUT = 2; //发货扣库存
|
|
public const TYPE_OFFLINE_OUT = 3; //线下去库存
|
|
public const TYPE_ADMIN_IN = 4; //后台添加库存
|
|
public const TYPE_ADMIN_OUT = 5; //后台扣减库存
|
|
public const TYPE_REVOKE_IN = 9; //撤销线下去库存
|
|
public const TYPE_TRANSFER_IN = 6; // 云库存转本地库存
|
|
|
|
// 云库存
|
|
public const TYPE_DEPOSIT_TRANSFER_OUT = 10; // 云库存转本地库存
|
|
public const TYPE_DEPOSIT_TRANSFER_REVOKE = 11; // 撤销云库存转本地库存
|
|
public const TYPE_ORDER_OUT_REVOKE = 12;//撤销发货扣库存
|
|
|
|
protected $attributes = [
|
|
'is_deposit' => false,
|
|
];
|
|
|
|
protected $casts = [
|
|
'is_deposit' => 'bool',
|
|
];
|
|
|
|
protected $fillable = [
|
|
'user_id',
|
|
'product_id',
|
|
'type',
|
|
'qty',
|
|
'remark',
|
|
'revoke_id',
|
|
'is_deposit',
|
|
];
|
|
|
|
public function product()
|
|
{
|
|
return $this->belongsTo(DealerProduct::class, 'product_id');
|
|
}
|
|
|
|
public function canRevoke()
|
|
{
|
|
return ($this->type == static::TYPE_OFFLINE_OUT) && ($this->revoke_id == 0);
|
|
}
|
|
|
|
public function getQtyFormatAttribute()
|
|
{
|
|
$symbok = in_array($this->type, [
|
|
DealerUserProductLog::TYPE_ORDER_IN,
|
|
DealerUserProductLog::TYPE_ADMIN_IN,
|
|
DealerUserProductLog::TYPE_REVOKE_IN,
|
|
DealerUserProductLog::TYPE_TRANSFER_IN,
|
|
DealerUserProductLog::TYPE_DEPOSIT_TRANSFER_REVOKE,
|
|
DealerUserProductLog::TYPE_ORDER_OUT_REVOKE,
|
|
]) ? '+' : '-';
|
|
|
|
return $symbok . $this->attributes['qty'];
|
|
}
|
|
}
|