-package ILS::Transaction::FeePayment;
+package C4::SIP::ILS::Transaction::FeePayment;
use warnings;
use strict;
#
# 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 2 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 C4::Accounts qw(recordpayment);
-use ILS;
-use base qw(ILS::Transaction);
+use Koha::Account;
+use Koha::Account::Lines;
-use vars qw($VERSION @ISA $debug);
-
-our $debug = 0;
-our $VERSION = 3.07.00.049;
+use parent qw(C4::SIP::ILS::Transaction);
my %fields = ();
}
sub pay {
- my $self = shift;
- my $borrowernumber = shift;
- my $amt = shift;
- warn("RECORD:$borrowernumber::$amt");
- recordpayment( $borrowernumber, $amt );
+ my $self = shift;
+ my $borrowernumber = shift;
+ my $amt = shift;
+ my $sip_type = shift;
+ my $fee_id = shift;
+ my $is_writeoff = shift;
+ my $disallow_overpayment = shift;
+ my $register_id = shift;
+
+ my $type = $is_writeoff ? 'WRITEOFF' : 'PAYMENT';
+
+ my $account = Koha::Account->new( { patron_id => $borrowernumber } );
+
+ if ($disallow_overpayment) {
+ return { ok => 0 } if $account->balance < $amt;
+ }
+
+ if ($fee_id) {
+ my $fee = Koha::Account::Lines->find($fee_id);
+ if ( $fee ) {
+ my $pay_response = $account->pay(
+ {
+ amount => $amt,
+ type => $type,
+ payment_type => 'SIP' . $sip_type,
+ lines => [$fee],
+ interface => C4::Context->interface
+ }
+ );
+ return {
+ ok => 1,
+ pay_response => $pay_response
+ };
+ }
+ else {
+ return {
+ ok => 0
+ };
+ }
+ }
+ else {
+ my $pay_response = $account->pay(
+ {
+ amount => $amt,
+ type => $type,
+ payment_type => 'SIP' . $sip_type,
+ interface => C4::Context->interface,
+ cash_register => $register_id
+ }
+ );
+ return {
+ ok => 1,
+ pay_response => $pay_response
+ };
+ }
}
#sub DESTROY {