package C4::Frequency; # Copyright 2000-2002 Biblibre SARL # # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # Koha is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA use strict; use C4::Context; use C4::SQLHelper qw<:all>; use C4::Debug; use vars qw($VERSION @ISA @EXPORT); BEGIN { # set the version for version checking $VERSION = 3.01; require Exporter; @ISA = qw(Exporter); @EXPORT = qw( &GetFrequencies &GetFrequency &new &all &AddFrequency &ModFrequency &DelFrequency ); } # ------------------------------------------------------------------- my %count_issues_a_year=( day=>365, week=>52, month=>12, quarter=>4, year=>1 ); sub new { my ($class, $opts) = @_; bless $opts => $class; } sub AddFrequency { my ($class,$frequency) = @_; return InsertInTable("subscription_frequency",$frequency); } sub GetExpectedissuesayear { my ($class,$unit,$issuesperunit,$unitperissues) = @_; return Int($count_issues_a_year{$unit}/$issuesperunit)*$unitperissues; } # ------------------------------------------------------------------- sub ModFrequency { my ($class,$frequency) = @_; return UpdateInTable("subscription_frequency",$frequency); } # ------------------------------------------------------------------- sub DelFrequency { my ($class,$frequency) = @_; return DeleteInTable("subscription_frequency",$frequency); } sub all { my ($class) = @_; my $dbh = C4::Context->dbh; return map { $class->new($_) } @{$dbh->selectall_arrayref( # The subscription_frequency table is small enough for # `SELECT *` to be harmless. "SELECT * FROM subscription_frequency ORDER BY description", { Slice => {} }, )}; } =head3 GetFrequency =over 4 &GetFrequency($freq_id); gets frequency where $freq_id is the identifier =back =cut # ------------------------------------------------------------------- sub GetFrequency { my ($freq_id) = @_; return undef unless $freq_id; my $results= SearchInTable("subscription_frequency",{frequency_id=>$freq_id}, undef, undef,undef, undef, "wide"); return undef unless ($results); return $$results[0]; } =head3 GetFrequencies =over 4 &GetFrequencies($filter, $order_by); gets frequencies restricted on filters =back =cut # ------------------------------------------------------------------- sub GetFrequencies { my ($filters,$orderby) = @_; return SearchInTable("subscription_frequency",$filters, $orderby, undef,undef, undef, "wide"); } END { } # module clean-up code here (global destructor) 1; __END__ =back =head1 AUTHOR Koha Developement team =cut