Kyle M Hall
8f7e38f3b7
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
151 lines
3.4 KiB
Perl
151 lines
3.4 KiB
Perl
package C4::Contract;
|
|
|
|
# Copyright 2009-2010 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.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
use Modern::Perl;
|
|
use strict;
|
|
#use warnings; FIXME - Bug 2505
|
|
use C4::Context;
|
|
use Koha::Database;
|
|
|
|
use vars qw($VERSION @ISA @EXPORT);
|
|
|
|
BEGIN {
|
|
# set the version for version checking
|
|
$VERSION = 3.07.00.049;
|
|
require Exporter;
|
|
@ISA = qw(Exporter);
|
|
@EXPORT = qw(
|
|
&GetContracts
|
|
&GetContract
|
|
&AddContract
|
|
&ModContract
|
|
&DelContract
|
|
);
|
|
}
|
|
|
|
=head1 NAME
|
|
|
|
C4::Contract - Koha functions for dealing with bookseller contracts.
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
use C4::Contract;
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The functions in this module deal with contracts. They allow to
|
|
add a new contract, to modify it or to get some informations around
|
|
a contract.
|
|
|
|
=cut
|
|
|
|
|
|
=head2 GetContracts
|
|
|
|
$contractlist = GetContracts({
|
|
booksellerid => $booksellerid,
|
|
activeonly => $activeonly
|
|
});
|
|
|
|
Looks up the contracts that belong to a bookseller
|
|
|
|
Returns a list of contracts
|
|
|
|
=over
|
|
|
|
=item C<$booksellerid> is the "id" field in the "aqbooksellers" table.
|
|
|
|
=item C<$activeonly> if exists get only contracts that are still active.
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
sub GetContracts {
|
|
my ($filters) = @_;
|
|
if( $filters->{activeonly} ) {
|
|
$filters->{contractenddate} = {'>=' => \'now()'};
|
|
delete $filters->{activeonly};
|
|
}
|
|
|
|
my $rs = Koha::Database->new()->schema->resultset('Aqcontract');
|
|
$rs = $rs->search($filters);
|
|
$rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
|
|
return [ $rs->all ];
|
|
}
|
|
|
|
=head2 GetContract
|
|
|
|
$contract = GetContract( { contractnumber => $contractnumber } );
|
|
|
|
Looks up the contract that has PRIMKEY (contractnumber) value $contractID
|
|
|
|
Returns a contract
|
|
|
|
=cut
|
|
|
|
sub GetContract {
|
|
my ($params) = @_;
|
|
my $contractnumber = $params->{contractnumber};
|
|
|
|
return unless $contractnumber;
|
|
|
|
my $contracts = GetContracts({
|
|
contractnumber => $contractnumber,
|
|
});
|
|
return $contracts->[0];
|
|
}
|
|
|
|
sub AddContract {
|
|
my ($contract) = @_;
|
|
return unless($contract->{booksellerid});
|
|
|
|
my $rs = Koha::Database->new()->schema->resultset('Aqcontract');
|
|
return $rs->create($contract)->id;
|
|
}
|
|
|
|
sub ModContract {
|
|
my ($contract) = @_;
|
|
my $result = Koha::Database->new()->schema->resultset('Aqcontract')->find($contract);
|
|
return unless($result);
|
|
|
|
$result = $result->update($contract);
|
|
return $result->in_storage;
|
|
}
|
|
|
|
sub DelContract {
|
|
my ($contract) = @_;
|
|
return unless($contract->{contractnumber});
|
|
|
|
my $result = Koha::Database->new()->schema->resultset('Aqcontract')->find($contract);
|
|
return unless($result);
|
|
|
|
eval { $result->delete };
|
|
return !( $result->in_storage );
|
|
}
|
|
|
|
1;
|
|
|
|
__END__
|
|
|
|
=head1 AUTHOR
|
|
|
|
Koha Development Team <http://koha-community.org/>
|
|
|
|
=cut
|