63 lines
1.3 KiB
PHP
63 lines
1.3 KiB
PHP
<?php namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class CashClose extends Model
|
|
{
|
|
protected $fillable = [
|
|
'user_id',
|
|
'opened_at',
|
|
'closed_at',
|
|
'initial_balance',
|
|
'income',
|
|
'exit',
|
|
'income_cash',
|
|
'income_card',
|
|
'income_transfer',
|
|
'status',
|
|
];
|
|
|
|
protected $casts = [
|
|
'initial_balance' => 'decimal:2',
|
|
'income' => 'decimal:2',
|
|
'exit' => 'decimal:2',
|
|
'income_cash' => 'decimal:2',
|
|
'income_card' => 'decimal:2',
|
|
'income_transfer' => 'decimal:2',
|
|
'opened_at' => 'datetime',
|
|
'closed_at' => 'datetime',
|
|
];
|
|
|
|
/**
|
|
* Relación con el usuario que realizó el corte
|
|
*/
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
|
|
/**
|
|
* Relación con las ventas asociadas a este corte
|
|
*/
|
|
public function sales()
|
|
{
|
|
return $this->hasMany(Sale::class);
|
|
}
|
|
|
|
/**
|
|
* Scope para cortes abiertos
|
|
*/
|
|
public function scopeOpen($query)
|
|
{
|
|
return $query->where('status', 'open');
|
|
}
|
|
|
|
/**
|
|
* Scope para cortes cerrados
|
|
*/
|
|
public function scopeClosed($query)
|
|
{
|
|
return $query->where('status', 'closed');
|
|
}
|
|
}
|