Bug 23926: Limit GIR segment to 5 pieces of info
[koha.git] / Koha / Acquisition / Basket.pm
blob33aa1f4673b5aa17682650c428a7fc74b0559385
1 package Koha::Acquisition::Basket;
3 # Copyright 2017 Aleisha Amohia <aleisha@catalyst.net.nz>
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
20 use Modern::Perl;
22 use Koha::Database;
23 use Koha::Acquisition::BasketGroups;
25 use base qw( Koha::Object Koha::Object::Mixin::AdditionalFields );
27 =head1 NAME
29 Koha::Acquisition::Basket - Koha Basket Object class
31 =head1 API
33 =head2 Class Methods
35 =cut
37 =head3 bookseller
39 Returns the vendor
41 =cut
43 sub bookseller {
44 my ($self) = @_;
45 my $bookseller_rs = $self->_result->booksellerid;
46 return Koha::Acquisition::Bookseller->_new_from_dbic( $bookseller_rs );
49 =head3 basket_group
51 Returns the basket group associated to this basket
53 =cut
55 sub basket_group {
56 my ($self) = @_;
57 my $basket_group_rs = $self->_result->basketgroupid;
58 return unless $basket_group_rs;
59 return Koha::Acquisition::BasketGroup->_new_from_dbic( $basket_group_rs );
62 =head3 effective_create_items
64 Returns C<create_items> for this basket, falling back to C<AcqCreateItem> if unset.
66 =cut
68 sub effective_create_items {
69 my ( $self ) = @_;
71 return $self->create_items || C4::Context->preference('AcqCreateItem');
74 =head3 to_api
76 my $json = $basket->to_api;
78 Overloaded method that returns a JSON representation of the Koha::Acquisition::Basket object,
79 suitable for API output.
81 =cut
83 sub to_api {
84 my ( $self, $params ) = @_;
86 my $json = $self->SUPER::to_api( $params );
88 $json->{closed} = ( $self->closedate )
89 ? Mojo::JSON->true
90 : Mojo::JSON->false;
92 return $json;
95 =head3 to_api_mapping
97 This method returns the mapping for representing a Koha::Acquisition::Basket object
98 on the API.
100 =cut
102 sub to_api_mapping {
103 return {
104 basketno => 'basket_id',
105 basketname => 'name',
106 booksellernote => 'vendor_note',
107 contractnumber => 'contract_id',
108 creationdate => 'creation_date',
109 closedate => 'close_date',
110 booksellerid => 'vendor_id',
111 authorisedby => 'authorised_by',
112 booksellerinvoicenumber => undef,
113 basketgroupid => 'basket_group_id',
114 deliveryplace => 'delivery_place',
115 billingplace => 'billing_place',
116 branch => 'library_id',
117 is_standing => 'standing'
121 =head2 Internal methods
123 =head3 _type
125 =cut
127 sub _type {
128 return 'Aqbasket';
131 =head1 AUTHOR
133 Aleisha Amohia <aleisha@catalyst.net.nz>
134 Catalyst IT
136 =cut