Bug 33168: Prevent debhelper from renaming history.txt to changelog
[koha-ffzg.git] / Koha / Suggestion.pm
index 9fa3e1f..9d9e460 100644 (file)
@@ -4,25 +4,24 @@ package Koha::Suggestion;
 #
 # 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);
@@ -71,9 +70,67 @@ sub suggester {
     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
 
@@ -81,6 +138,53 @@ sub _type {
     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>