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 orderacquisition
68 Whether the contact should receive acquisitions orders.
70 =item claimacquisition
72 Whether the contact should receive acquisitions claims.
76 Whether the contact should receive serials claims.
80 Whether the contact is the primary contact for acquisitions.
84 Whether the contact is the primary contact for serials.
88 ID of the bookseller the contact is associated with.
97 use base
qw(Class::Accessor);
99 __PACKAGE__
->mk_accessors(qw(id name position phone altphone fax email notes orderacquisition claimacquisition claimissues acqprimary serialsprimary bookseller));
103 =head2 get_from_bookseller
105 my @contacts = @{C4::Bookseller::Contact->get_from_bookseller($booksellerid)};
107 Returns a reference to an array of C4::Bookseller::Contact objects for the
108 specified bookseller. This will always return at least one item, though that one
109 item may be an empty contact.
113 sub get_from_bookseller
{
114 my ($class, $bookseller) = @_;
116 return unless $bookseller;
119 my $query = "SELECT * FROM aqcontacts WHERE booksellerid = ?";
120 my $dbh = C4
::Context
->dbh;
121 my $sth = $dbh->prepare($query);
122 $sth->execute($bookseller);
123 while (my $rec = $sth->fetchrow_hashref()) {
124 push @contacts, $class->new($rec);
127 push @contacts, $class->new() unless @contacts;
135 my $contact = C4::Bookseller::Contact->fetch($contactid);
137 Retrieves the specified contact from the database. Currently commented out
138 because there is no separate table from which contacts can be fetched.
143 my ($class, $id) = @_;
147 my $query = "SELECT * FROM aqcontacts WHERE id = ?";
148 my $dbh = C4
::Context
->dbh;
149 my $sth = $dbh->prepare($query);
151 $rec = $sth->fetchrow_hashref();
153 my $self = $class->new($rec);
162 Save a contact to the database.
171 $self->name, $self->position,
172 $self->phone, $self->altphone,
173 $self->fax, $self->email,
174 $self->notes, $self->acqprimary ?
1 : 0,
175 $self->serialsprimary ?
1 : 0,
176 $self->orderacquisition ?
1 : 0, $self->claimacquisition ?
1 : 0,
177 $self->claimissues ?
1 : 0, $self->bookseller
180 $query = 'UPDATE aqcontacts SET name = ?, position = ?, phone = ?, altphone = ?, fax = ?, email = ?, notes = ?, acqprimary = ?, serialsprimary = ?, orderacquisition = ?, claimacquisition = ?, claimissues = ?, booksellerid = ? WHERE id = ?;';
181 push @params, $self->id;
183 $query = 'INSERT INTO aqcontacts (name, position, phone, altphone, fax, email, notes, acqprimary, serialsprimary, orderacquisition, claimacquisition, claimissues, booksellerid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);';
185 my $dbh = C4
::Context
->dbh;
186 my $sth = $dbh->prepare($query);
187 $sth->execute(@params);
188 $self->id($dbh->{'mysql_insertid'}) unless $self->id;
195 return unless $self->id;
197 my $dbh = C4
::Context
->dbh;
198 my $sth = $dbh->prepare("DELETE FROM aqcontacts WHERE id = ?;");
199 $sth->execute($self->id);
205 Jared Camins-Esakov <jcamins@cpbibliography.com>