1 package C4
::Bookseller
::Contact
;
3 # Copyright 2013 C & P Bibliography Services
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 3 of the License, or (at your option) any later
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 C4::Bookseller::Contact - object class for contacts associated with vendors
26 This class provides an object-oriented interface for handling vendor contacts.
27 It uses Class::Accessor to provide access to the following fields:
35 ID of the contact. This is not used initially, since contacts are actually
36 stored in the aqbooksellers table.
48 Contact's primary phone number.
52 Contact's alternate phone number.
60 Contact's e-mail address.
66 =item claimacquisition
68 Whether the contact should receive acquisitions claims.
72 Whether the contact should receive serials claims.
76 Whether the contact is the primary contact for acquisitions.
80 Whether the contact is the primary contact for serials.
84 ID of the bookseller the contact is associated with.
93 use base
qw(Class::Accessor);
95 __PACKAGE__
->mk_accessors(qw(id name position phone altphone fax email notes claimacquisition claimissues acqprimary serialsprimary bookseller));
99 =head2 get_from_bookseller
101 my @contacts = @{C4::Bookseller::Contact->get_from_bookseller($booksellerid)};
103 Returns a reference to an array of C4::Bookseller::Contact objects for the
104 specified bookseller. This will always return at least one item, though that one
105 item may be an empty contact.
109 sub get_from_bookseller
{
110 my ($class, $bookseller) = @_;
112 return unless $bookseller;
115 my $query = "SELECT * FROM aqcontacts WHERE booksellerid = ?";
116 my $dbh = C4
::Context
->dbh;
117 my $sth = $dbh->prepare($query);
118 $sth->execute($bookseller);
119 while (my $rec = $sth->fetchrow_hashref()) {
120 push @contacts, $class->new($rec);
123 push @contacts, $class->new() unless @contacts;
131 my $contact = C4::Bookseller::Contact->fetch($contactid);
133 Retrieves the specified contact from the database. Currently commented out
134 because there is no separate table from which contacts can be fetched.
139 my ($class, $id) = @_;
143 my $query = "SELECT * FROM aqcontacts WHERE id = ?";
144 my $dbh = C4
::Context
->dbh;
145 my $sth = $dbh->prepare($query);
147 $rec = $sth->fetchrow_hashref();
149 my $self = $class->new($rec);
158 Save a contact to the database.
167 $self->name, $self->position,
168 $self->phone, $self->altphone,
169 $self->fax, $self->email,
170 $self->notes, $self->acqprimary ?
1 : 0,
171 $self->serialsprimary ?
1 : 0, $self->claimacquisition ?
1 : 0,
172 $self->claimissues ?
1 : 0, $self->bookseller
175 $query = 'UPDATE aqcontacts SET name = ?, position = ?, phone = ?, altphone = ?, fax = ?, email = ?, notes = ?, acqprimary = ?, serialsprimary = ?, claimacquisition = ?, claimissues = ?, booksellerid = ? WHERE id = ?;';
176 push @params, $self->id;
178 $query = 'INSERT INTO aqcontacts (name, position, phone, altphone, fax, email, notes, acqprimary, serialsprimary, claimacquisition, claimissues, booksellerid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);';
180 my $dbh = C4
::Context
->dbh;
181 my $sth = $dbh->prepare($query);
182 $sth->execute(@params);
183 $self->id($dbh->{'mysql_insertid'}) unless $self->id;
190 return unless $self->id;
192 my $dbh = C4
::Context
->dbh;
193 my $sth = $dbh->prepare("DELETE FROM aqcontacts WHERE id = ?;");
194 $sth->execute($self->id);
200 Jared Camins-Esakov <jcamins@cpbibliography.com>