pdv.backend/app/Models/CashRegister.php
Juan Felipe Zapata Moreno 599bb68ce6 ADD: Corte de caja
2025-12-31 13:45:42 -06:00

63 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CashRegister extends Model
{
protected $fillable = [
'user_id',
'opened_at',
'closed_at',
'initial_cash',
'final_cash',
'expected_cash',
'difference',
'total_sales',
'sales_count',
'notes',
'status',
];
protected $casts = [
'opened_at' => 'datetime',
'closed_at' => 'datetime',
'initial_cash' => 'decimal:2',
'final_cash' => 'decimal:2',
'expected_cash' => 'decimal:2',
'difference' => 'decimal:2',
'total_sales' => 'decimal:2',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function sales()
{
return $this->hasMany(Sale::class);
}
/**
* Verificar si la caja está abierta
*/
public function isOpen(): bool
{
return $this->status === 'open';
}
/**
* Calcular totales por método de pago
*/
public function getTotalsByPaymentMethod()
{
return $this->sales()
->where('status', 'completed')
->selectRaw('payment_method, SUM(total) as total, COUNT(*) as count')
->groupBy('payment_method')
->get();
}
}