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.
68 Flag to indicate whether a contact is "primary" or not. Initially unused since
69 each bookseller can have only one contact.
73 ID of the bookseller the contact is associated with.
82 use base qw(Class::Accessor);
84 __PACKAGE__->mk_accessors(qw(id name position phone altphone fax email notes primary bookseller));
88 =head2 get_from_bookseller
90 my @contacts = @{C4::Bookseller::Contact->get_from_bookseller($booksellerid)};
92 Returns a reference to an array of C4::Bookseller::Contact objects for the
97 sub get_from_bookseller {
98 my ($class, $bookseller) = @_;
100 return unless $bookseller;
103 my $query = "SELECT contact AS name, contpos AS position, contphone AS phone, contaltphone AS altphone, contfax AS fax, contemail AS email, contnotes AS notes, id AS bookseller FROM aqbooksellers WHERE id = ?";
104 # When we have our own table, we can use: my $query = "SELECT * FROM aqcontacts WHERE bookseller = ?";
105 my $dbh = C4::Context->dbh;
106 my $sth = $dbh->prepare($query);
107 $sth->execute($bookseller);
108 while (my $rec = $sth->fetchrow_hashref()) {
109 $rec->{'primary'} = 1;
110 push @contacts, $class->new($rec);
119 my $contact = C4::Bookseller::Contact->fetch($contactid);
121 Retrieves the specified contact from the database. Currently commented out
122 because there is no separate table from which contacts can be fetched.
127 # my ($class, $id) = @_;
131 # my $query = "SELECT * FROM aqcontacts WHERE id = ?";
132 # my $dbh = C4::Context->dbh;
133 # my $sth = $dbh->prepare($query);
134 # $sth->execute($id);
135 # $rec = $sth->fetchrow_hashref();
137 # my $self = $class->SUPER::new($rec);
138 # bless $self, $class;
146 Save a contact to the database.
155 # $query = 'UPDATE aqcontacts SET name = ?, position = ?, phone = ?, altphone = ?, fax = ?, email = ?, notes = ?, primary = ? WHERE id = ?;';
157 # $query = 'INSERT INTO aqcontacts (name, position, phone, altphone, fax, email, notes, primary) VALUES (?, ?, ?, ?, ? ,? ,?, ?);';
159 if ($self->bookseller) {
160 $query = 'UPDATE aqbooksellers SET contact = ?, contpos = ?, contphone = ?, contaltphone = ?, contfax = ?, contemail = ?, contnotes = ? WHERE id = ?;';
164 my $dbh = C4::Context->dbh;
165 my $sth = $dbh->prepare($query);
166 $sth->execute($self->name, $self->position, $self->phone, $self->altphone, $self->fax, $self->email, $self->notes, $self->bookseller);
167 #$self->id = $dbh->last_insert_id(undef, undef, 'aqcontacts', undef);
168 return $self->bookseller;
173 Jared Camins-Esakov <jcamins@cpbibliography.com>