58 lines
1.3 KiB
PHP
58 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Shop;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use LaracraftTech\LaravelDateScopes\DateScopes;
|
|
use Venturecraft\Revisionable\RevisionableTrait;
|
|
use Znck\Eloquent\Traits\BelongsToThrough;
|
|
|
|
class Invoice extends Model
|
|
{
|
|
use BelongsToThrough, DateScopes, RevisionableTrait, SoftDeletes;
|
|
|
|
protected $guarded = ['id'];
|
|
|
|
protected $table = 'shop_invoices';
|
|
|
|
protected $revisionCreationsEnabled = false;
|
|
|
|
protected $dontKeepRevisionOf = ['updated_by', 'updated_at'];
|
|
|
|
public function payments()
|
|
{
|
|
return $this->hasMany(InvoicePayment::class);
|
|
}
|
|
|
|
public function order()
|
|
{
|
|
return $this->belongsTo(Order::class);
|
|
}
|
|
|
|
public function customer()
|
|
{
|
|
return $this->belongsTo(Customer::class, 'customer_id');
|
|
}
|
|
|
|
public function address()
|
|
{
|
|
return $this->belongsTo(CustomerAddress::class, 'invoice_address_id');
|
|
}
|
|
|
|
public function scopeByUUID($query, $uuid)
|
|
{
|
|
return $query->where('uuid', $uuid);
|
|
}
|
|
|
|
public function scopeById($query, $id)
|
|
{
|
|
return $query->where('id', $id);
|
|
}
|
|
|
|
public function scopeByPeriod($query, $start, $end, $field = 'created_at')
|
|
{
|
|
return $query->whereBetween($field, [$start, $end]);
|
|
}
|
|
}
|