diff --git a/lib/Magnum/Schema/ResultSet/InvoiceLine.pm b/lib/Magnum/Schema/ResultSet/InvoiceLine.pm index c4e2133..7ffc759 100644 --- a/lib/Magnum/Schema/ResultSet/InvoiceLine.pm +++ b/lib/Magnum/Schema/ResultSet/InvoiceLine.pm @@ -2,12 +2,24 @@ package Magnum::Schema::ResultSet::InvoiceLine; use strict; use warnings; -use base 'DBIx::Class::ResultSet'; +use Moose; +use MooseX::NonMoose; +extends 'DBIx::Class::ResultSet'; + +sub BUILDARGS { $_[2] } + +has default_vat_type => ( + is => 'ro', + isa => 'Str', + default => 'standard', +); sub filter_by_vat_type { my $self = shift; my ($vat_type) = @_; + $vat_type //= $self->default_vat_type; + $self->search({ vat => $vat_type, }); diff --git a/lib/Magnum/Schema/ResultSet/VatRate.pm b/lib/Magnum/Schema/ResultSet/VatRate.pm index aa89d7b..d296e1e 100644 --- a/lib/Magnum/Schema/ResultSet/VatRate.pm +++ b/lib/Magnum/Schema/ResultSet/VatRate.pm @@ -2,7 +2,20 @@ package Magnum::Schema::ResultSet::VatRate; use strict; use warnings; -use base 'DBIx::Class::ResultSet'; +use Moose; +use MooseX::NonMoose; +extends 'DBIx::Class::ResultSet'; + +sub BUILDARGS { $_[2] } + +has datetime_formatter => ( + is => 'ro', + lazy_build => 1, +); + +sub _build_datetime_formatter { + return $_[0]->result_source->schema->storage->datetime_parser; +} sub vat_rate_for_date { my $self = shift; @@ -10,8 +23,7 @@ sub vat_rate_for_date { $type //= 'standard'; - my $dtf = $self->result_source->schema->storage->datetime_parser; - my $search_date = $dtf->format_datetime($date); + my $search_date = $self->datetime_formatter->format_datetime($date); my ($rate) = $self->search({ type => $type,