mastercut/app/Models/Payroll.php

66 lines
1.5 KiB
PHP
Executable File

<?php
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Auth;
class Payroll extends Model
{
use HasFactory, SoftDeletes;
protected $fillable = [
'user_id',
'employee_id',
'barbershop_id',
'amount',
'incentive',
'shaving_result',
'cut',
'percentage_shaving',
'total',
'description',
];
public function scopeBarbershop(Builder $query): Builder
{
return $query->where('barbershop_id', Auth::user()->barbershop_id);
}
public function scopeToday(Builder $query): Builder
{
return $query->whereDate('created_at', Carbon::today());
}
public function scopeYesterday(Builder $query): Builder
{
return $query->whereDate('created_at', Carbon::yesterday());
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function employee(): BelongsTo
{
return $this->belongsTo(User::class, 'employee_id');
}
public function barbershop(): BelongsTo
{
return $this->belongsTo(Barbershop::class);
}
public function attachment(): MorphOne
{
return $this->morphOne(Attachment::class, 'attachmentable');
}
}