[Koha-patches] [PATCH] Bug 5605 SIP: Add Support for the Fee Paid Message
Colin Campbell
colin.campbell at ptfs-europe.com
Tue Apr 5 15:39:21 CEST 2011
Allow fee paid to be supported for those machines which handle it
Development Sponsered by Halton Borough Council
---
C4/SIP/ILS.pm | 14 ++++++---
C4/SIP/ILS/Transaction/FeePayment.pm | 52 ++++++++++++++++++++++++++++++----
C4/SIP/Sip/MsgType.pm | 8 ++--
3 files changed, 59 insertions(+), 15 deletions(-)
diff --git a/C4/SIP/ILS.pm b/C4/SIP/ILS.pm
index 9e20845..7dc29a7 100644
--- a/C4/SIP/ILS.pm
+++ b/C4/SIP/ILS.pm
@@ -32,7 +32,7 @@ my %supports = (
"login" => 1,
"patron information" => 1,
"end patron session" => 1,
- "fee paid" => 0,
+ "fee paid" => 1,
"item information" => 1,
"item status update" => 0,
"patron enable" => 1,
@@ -214,14 +214,18 @@ sub pay_fee {
my ($self, $patron_id, $patron_pwd, $fee_amt, $fee_type,
$pay_type, $fee_id, $trans_id, $currency) = @_;
my $trans;
- my $patron;
-# $trans = new ILS::Transaction::FeePayment;
+ $trans = ILS::Transaction::FeePayment->new();
- $patron = new ILS::Patron $patron_id;
$trans->transaction_id($trans_id);
- $trans->patron($patron);
+ my $patron;
+ $trans->patron($patron = ILS::Patron->new($patron_id));
+ if (!$patron) {
+ $trans->screen_msg('Invalid patron barcode.');
+ return $trans;
+ }
+ $trans->pay($patron->{borrowernumber},$fee_amt);
$trans->ok(1);
return $trans;
diff --git a/C4/SIP/ILS/Transaction/FeePayment.pm b/C4/SIP/ILS/Transaction/FeePayment.pm
index 8a156b7..3026296 100644
--- a/C4/SIP/ILS/Transaction/FeePayment.pm
+++ b/C4/SIP/ILS/Transaction/FeePayment.pm
@@ -3,16 +3,56 @@ package ILS::Transaction::FeePayment;
use warnings;
use strict;
+# Copyright 2011 PTFS-Europe Ltd.
+#
+# 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 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.
+
+use C4::Accounts qw(recordpayment);
+use ILS;
+use base qw(ILS::Transaction);
+
use vars qw($VERSION @ISA $debug);
-BEGIN {
- $VERSION = 1.00;
- @ISA = qw(ILS::Transaction);
- $debug = 0;
+our $debug = 0;
+our $VERSION = 1.00;
+
+my %fields = ();
+
+sub new {
+ my $class = shift;
+ my $self = $class->SUPER::new();
+
+ foreach ( keys %fields ) {
+ $self->{_permitted}->{$_} = $fields{$_}; # overlaying _permitted
+ }
+
+ @{$self}{ keys %fields } = values %fields; # copying defaults into object
+ return bless $self, $class;
}
-use ILS;
-use ILS::Transaction;
+sub pay {
+ my $self = shift;
+ my $borrowernumber = shift;
+ my $amt = shift;
+ warn("RECORD:$borrowernumber::$amt");
+ recordpayment( $borrowernumber, $amt );
+}
+
+#sub DESTROY {
+#}
1;
__END__
diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm
index 508a06b..e2cb3da 100644
--- a/C4/SIP/Sip/MsgType.pm
+++ b/C4/SIP/Sip/MsgType.pm
@@ -176,13 +176,13 @@ my %handlers = (
handler => \&handle_fee_paid,
protocol => {
2 => {
- template => "A18A2A3",
- template_len => 0,
+ template => "A18A2A2A3",
+ template_len => 25,
fields => [(FID_FEE_AMT), (FID_INST_ID),
(FID_PATRON_ID), (FID_TERMINAL_PWD),
(FID_PATRON_PWD), (FID_FEE_ID),
- (FID_TRANSACTION_ID)],
- }
+ (FID_TRANSACTION_ID)],
+ }
}
},
(ITEM_INFORMATION) => {
--
1.7.4
More information about the Koha-patches
mailing list