diff --git a/app/Models/Common/Report.php b/app/Models/Common/Report.php index e16459895..916651a78 100644 --- a/app/Models/Common/Report.php +++ b/app/Models/Common/Report.php @@ -5,6 +5,7 @@ namespace App\Models\Common; use App\Abstracts\Model; use Bkwld\Cloner\Cloneable; use Illuminate\Support\Str; +use Illuminate\Database\Eloquent\Builder; class Report extends Model { @@ -43,6 +44,43 @@ class Report extends Model return $query->where('class', 'like', $class . '%'); } + /** + * Scope to only include reports of a given class. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param string $class + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeClass($query, $class) + { + return $query->where('class', '=', $class); + } + + public function scopeExpenseSummary(Builder $query): Builder + { + return $query->where($this->qualifyColumn('class'), '=', 'App\\Reports\\ExpenseSummary'); + } + + public function scopeIncomeSummary(Builder $query): Builder + { + return $query->where($this->qualifyColumn('class'), '=', 'App\\Reports\\IncomeSummary'); + } + + public function scopeIncomeExpenseSummary(Builder $query): Builder + { + return $query->where($this->qualifyColumn('class'), '=', 'App\\Reports\\IncomeExpenseSummary'); + } + + public function scopeProfitLoss(Builder $query): Builder + { + return $query->where($this->qualifyColumn('class'), '=', 'App\\Reports\\ProfitLoss'); + } + + public function scopeTaxSummary(Builder $query): Builder + { + return $query->where($this->qualifyColumn('class'), '=', 'App\\Reports\\TaxSummary'); + } + /** * Get the alias based on class. *