6
0
Fork 0
jiqu-library-server/app/Models/DealerUserProductLog.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'];
}
}