141 lines
3.2 KiB
Perl
141 lines
3.2 KiB
Perl
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__
|
|
|
|
=head1 AUTHOR
|
|
|
|
Koha Developement team <info@koha.org>
|
|
|
|
=cut
|