#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 3 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
-use Carp;
use Koha::Database;
-use Koha::DateUtils qw(dt_from_string);
+use Koha::DateUtils qw( dt_from_string );
use Koha::Patrons;
use base qw(Koha::Object);
return Koha::Patron->_new_from_dbic($suggester_rs);
}
-=head2 Internal methods
+=head3 manager
-=head3 _type
+my $manager = $suggestion->manager;
+
+Returns the manager of the suggestion (Koha::Patron for managedby field)
+
+=cut
+
+sub manager {
+ my ($self) = @_;
+ my $manager_rs = $self->_result->managedby;
+ return unless $manager_rs;
+ return Koha::Patron->_new_from_dbic($manager_rs);
+}
+
+=head3 rejecter
+
+my $rejecter = $suggestion->rejecter;
+
+Returns the rejecter of the suggestion (Koha::Patron for rejectebby field)
+
+=cut
+
+sub rejecter {
+ my ($self) = @_;
+ my $rejecter_rs = $self->_result->managedby;
+ return unless $rejecter_rs;
+ return Koha::Patron->_new_from_dbic($rejecter_rs);
+}
+
+=head3 last_modifier
+
+my $last_modifier = $suggestion->last_modifier;
+
+Returns the librarian who last modified the suggestion (Koha::Patron for lastmodificationby field)
+
+=cut
+
+sub last_modifier {
+ my ($self) = @_;
+ my $last_modifier_rs = $self->_result->managedby;
+ return unless $last_modifier_rs;
+ return Koha::Patron->_new_from_dbic($last_modifier_rs);
+}
+
+=head3 fund
+
+my $fund = $suggestion->fund;
+
+Return the fund associated to the suggestion
+
+=cut
+
+sub fund {
+ my ($self) = @_;
+ my $fund_rs = $self->_result->budgetid;
+ return unless $fund_rs;
+ return Koha::Acquisition::Fund->_new_from_dbic($fund_rs);
+}
+
+=head3 type
=cut
return 'Suggestion';
}
+=head3 to_api_mapping
+
+This method returns the mapping for representing a Koha::Patron object
+on the API.
+
+=cut
+
+sub to_api_mapping {
+ return {
+ suggestionid => 'suggestion_id',
+ suggestedby => 'suggested_by',
+ suggesteddate => 'suggestion_date',
+ managedby => 'managed_by',
+ manageddate => 'managed_date',
+ acceptedby => 'accepted_by',
+ accepteddate => 'accepted_date',
+ rejectedby => 'rejected_by',
+ rejecteddate => 'rejected_date',
+ lastmodificationdate => 'last_status_change_date',
+ lastmodificationby => 'last_status_change_by',
+ STATUS => 'status',
+ note => 'note',
+ staff_note => 'staff_note',
+ author => 'author',
+ title => 'title',
+ copyrightdate => 'copyright_date',
+ publishercode => 'publisher_code',
+ date => 'timestamp',
+ volumedesc => 'volume_desc',
+ publicationyear => 'publication_year',
+ place => 'publication_place',
+ isbn => 'isbn',
+ biblionumber => 'biblio_id',
+ reason => 'reason',
+ patronreason => 'patron_reason',
+ budgetid => 'budget_id',
+ branchcode => 'library_id',
+ collectiontitle => 'collection_title',
+ itemtype => 'item_type',
+ quantity => 'quantity',
+ currency => 'currency',
+ price => 'item_price',
+ total => 'total_price',
+ archived => 'archived',
+ };
+}
+
=head1 AUTHOR
Kyle M Hall <kyle@bywatersolutions.com>