1 package Koha::Acquisition::Bookseller;
3 # This file is part of Koha.
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
20 use Koha::Acquisition::Bookseller::Aliases;
21 use Koha::Acquisition::Bookseller::Contacts;
22 use Koha::Acquisition::Bookseller::Interfaces;
23 use Koha::Acquisition::Bookseller::Issues;
24 use Koha::Subscriptions;
26 use base qw( Koha::Object );
30 Koha::Acquisition::Bookseller Object class
38 my $vendor = Koha::Acquisition::Booksellers->find( $id );
39 my @baskets = $vendor->baskets();
41 Returns the list of baskets for the vendor
47 my $baskets_rs = $self->_result->aqbaskets;
48 return Koha::Acquisition::Baskets->_new_from_dbic( $baskets_rs );
53 my $vendor = Koha::Acquisition::Booksellers->find( $id );
54 my @contacts = $vendor->contacts();
56 Returns the list of contacts for the vendor
62 my $contacts_rs = $self->_result->aqcontacts;
63 return Koha::Acquisition::Bookseller::Contacts->_new_from_dbic( $contacts_rs );
68 my $vendor = Koha::Acquisition::Booksellers->find( $id );
69 my $subscriptions = $vendor->subscriptions();
71 Returns the list of subscriptions for the vendor
78 # FIXME FK missing at DB level
79 return Koha::Subscriptions->search( { aqbooksellerid => $self->id } );
84 my $aliases = $vendor->aliases
86 $vendor->aliases([{ alias => 'one alias'}]);
91 my ($self, $aliases) = @_;
94 my $schema = $self->_result->result_source->schema;
97 $self->aliases->delete;
98 for my $alias (@$aliases) {
99 $self->_result->add_to_aqbookseller_aliases($alias);
105 my $rs = $self->_result->aqbookseller_aliases;
106 return Koha::Acquisition::Bookseller::Aliases->_new_from_dbic( $rs );
111 my $interfaces = $vendor->interfaces
113 $vendor->interfaces(\@interfaces);
118 my ($self, $interfaces) = @_;
121 my $schema = $self->_result->result_source->schema;
124 $self->interfaces->delete;
125 for my $interface (@$interfaces) {
126 Koha::Acquisition::Bookseller::Interface->new(
129 vendor_id => $self->id,
137 my $rs = $self->_result->aqbookseller_interfaces;
138 return Koha::Acquisition::Bookseller::Interfaces->_new_from_dbic( $rs );
143 my $issues = $vendor->issues
149 my $rs = $self->_result->aqbookseller_issues;
150 return Koha::Acquisition::Bookseller::Issues->_new_from_dbic($rs);
153 =head3 to_api_mapping
155 This method returns the mapping for representing a Koha::Acquisition::Bookseller object
162 listprice => 'list_currency',
163 invoiceprice => 'invoice_currency',
165 listincgst => 'list_includes_gst',
166 invoiceincgst => 'invoice_includes_gst'
170 =head2 Internal methods
177 return 'Aqbookseller';