Projekt

Allgemein

Profil

Herunterladen (1,28 KB) Statistiken
| Zweig: | Markierung: | Revision:
package SL::DB::Chart;

use strict;

use SL::DB::MetaSetup::Chart;
use SL::DB::Manager::Chart;

__PACKAGE__->meta->add_relationships(taxkeys => { type => 'one to many',
class => 'SL::DB::TaxKey',
column_map => { id => 'chart_id' },
},
);

__PACKAGE__->meta->initialize;

sub get_active_taxkey {
my ($self, $date) = @_;
$date ||= DateTime->today_local;

my $cache = $::request->cache("get_active_taxkey")->{$date} //= {};
return $cache->{$self->id} if $cache->{$self->id};

require SL::DB::TaxKey;
return $cache->{$self->id} = SL::DB::Manager::TaxKey->get_all(
query => [ and => [ chart_id => $self->id,
startdate => { le => $date } ] ],
sort_by => "startdate DESC")->[0];
}

1;

__END__

=pod

=encoding utf8

=head1 NAME

SL::DB::Chart - Rose database model for the "chart" table

=head1 FUNCTIONS

=over 4

=item C<get_active_taxkey $date>

Returns the active tax key object for a given date. C<$date> defaults
to the current date if undefined.

=back

=head1 BUGS

Nothing here yet.

=head1 AUTHOR

Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>

=cut
(17-17/109)