=head1 NAME LedgerSMB::Date Date Handling Back-end Routines for LedgerSMB =head1 SYNOPSIS Provides the functions for generating the data structures for dates used in LedgerSMB. =cut package LedgerSMB::DBObject::Date; use base qw(LedgerSMB::DBObject); use strict; use Math::BigFloat lib => 'GMP'; our $VERSION = '0.1.0'; =head1 METHODS =over =item LedgerSMB::DBObject::Payment->new() Inherited from LedgerSMB::DBObject. Please see that documnetation for details. =item $self->build_filter_by_period() This function takes $locale as an argument to build the list boxes, of the period filter. It sets $self->{yearsOptions}, $self->{$monthsOptions}, $self->{radioOptions} so you just pass the hash to the template system. :) =back =cut sub build_filter_by_period { my ($self, $locale) = @_; my @all_years = $self->call_procedure(procname => 'date_get_all_years'); for my $ref (0 .. $#all_years) { push @{$self->{yearsOptions}} , { value => $all_years[$ref]{year}, text => $all_years[$ref]{year}} } @{$self->{monthsOptions}} = ( { value => '01', text => $locale->text('January')}, { value => '02', text => $locale->text('February')}, { value => '03', text => $locale->text('March')}, { value => '04', text => $locale->text('April')}, { value => '05', text => $locale->text('May')}, { value => '06', text => $locale->text('June')}, { value => '07', text => $locale->text('July')}, { value => '08', text => $locale->text('August')}, { value => '09', text => $locale->text('September')}, { value => '10', text => $locale->text('October')}, { value => '11', text => $locale->text('November')}, { value => '12', text => $locale->text('December')} ); @{$self->{radioOptions}} = ( { label => $locale->text('Current'), name => 'radioPeriod', value => '1', }, { label => $locale->text('Month'), name => 'radioPeriod', value => '2', active => '1', }, { label => $locale->text('Quarter'), name => 'radioPeriod', value => '3', }, { label => $locale->text('Year'), name => 'radioPeriod', value => '4', }); } 1;