. */ declare(strict_types=1); namespace FireflyIII\Helpers\Collector\Extensions; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; /** * Trait AmountCollection */ trait AmountCollection { /** * Get transactions with a specific amount. * * @param string $amount * * @return GroupCollectorInterface */ public function amountIs(string $amount): GroupCollectorInterface { $this->query->where( static function (EloquentBuilder $q) use ($amount) { $q->where('source.amount', app('steam')->negative($amount)); } ); return $this; } /** * Get transactions where the amount is less than. * * @param string $amount * * @return GroupCollectorInterface */ public function amountLess(string $amount): GroupCollectorInterface { $this->query->where( function (EloquentBuilder $q) use ($amount) { $q->where('destination.amount', '<=', app('steam')->positive($amount)); } ); return $this; } /** * Get transactions where the amount is more than. * * @param string $amount * * @return GroupCollectorInterface */ public function amountMore(string $amount): GroupCollectorInterface { $this->query->where( function (EloquentBuilder $q) use ($amount) { $q->where('destination.amount', '>=', app('steam')->positive($amount)); } ); return $this; } }