added status scope

This commit is contained in:
Denis Duliçi 2022-06-14 00:36:26 +03:00
parent 445f151c15
commit d17c3a89b3

View File

@ -179,24 +179,29 @@ class Document extends Model
return $query->whereDate('due_at', '=', $date); return $query->whereDate('due_at', '=', $date);
} }
public function scopeStatus(Builder $query, string $status): Builder
{
return $query->where($this->qualifyColumn('status'), '=', $status);
}
public function scopeAccrued(Builder $query): Builder public function scopeAccrued(Builder $query): Builder
{ {
return $query->whereNotIn('status', ['draft', 'cancelled']); return $query->whereNotIn($this->qualifyColumn('status'), ['draft', 'cancelled']);
} }
public function scopePaid(Builder $query): Builder public function scopePaid(Builder $query): Builder
{ {
return $query->where('status', '=', 'paid'); return $query->where($this->qualifyColumn('status'), '=', 'paid');
} }
public function scopeNotPaid(Builder $query): Builder public function scopeNotPaid(Builder $query): Builder
{ {
return $query->where('status', '<>', 'paid'); return $query->where($this->qualifyColumn('status'), '<>', 'paid');
} }
public function scopeFuture(Builder $query): Builder public function scopeFuture(Builder $query): Builder
{ {
return $query->whereIn('status', $this->getDocumentStatusesForFuture()); return $query->whereIn($this->qualifyColumn('status'), $this->getDocumentStatusesForFuture());
} }
public function scopeType(Builder $query, string $type): Builder public function scopeType(Builder $query, string $type): Builder
@ -244,7 +249,7 @@ class Document extends Model
public function getSentAtAttribute(string $value = null) public function getSentAtAttribute(string $value = null)
{ {
$sent = $this->histories()->where('status', 'sent')->first(); $sent = $this->histories()->where($this->qualifyColumn('status'), 'sent')->first();
return $sent->created_at ?? null; return $sent->created_at ?? null;
} }