[Koha-patches] [PATCH] Bug 2968 - SIP ACS_STATUS message (98) misreported config.
Joe Atzberger
joe.atzberger at liblime.com
Thu Feb 19 17:20:07 CET 2009
The *_ok methods in ILS.pm were targeting the wrong depth.
This also resolves a longstanding FIXME on to_bool() warning like:
Argument "\x{66}\x{61}..." isn't numeric in numeric ne (!=) at /ILS.pm line 94.
The example_institution_dump.sh essentially provides the proof test case for this patch.
Run it before/after on SIPconfig.xml where "MAIN" has checkout="true" and checkin="true".
---
C4/SIP/ILS.pm | 25 +++++++++++--------------
C4/SIP/example_institution_dump.sh | 15 ++++++++++++++-
2 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/C4/SIP/ILS.pm b/C4/SIP/ILS.pm
index 2dcc616..4315540 100644
--- a/C4/SIP/ILS.pm
+++ b/C4/SIP/ILS.pm
@@ -86,33 +86,30 @@ sub to_bool {
my $bool = shift;
# If it's defined, and matches a true sort of string, or is
# a non-zero number, then it's true.
- #
- # FIXME: this test is faulty
- # We're running under warnings and strict.
- # But if we don't match regexp, then we go ahead and numerical compare?
- # That means we'd generate a warning on 'FALSE' or ''.
- return defined($bool) && (($bool =~ /true|y|yes/i) || $bool != 0);
+ defined($bool) or return; # false
+ ($bool =~ /true|y|yes/i) and return 1; # true
+ return ($bool =~ /^\d+$/ and $bool != 0); # true for non-zero numbers, false otherwise
}
sub checkout_ok {
my $self = shift;
- return (exists($self->{policy}->{checkout})
- && to_bool($self->{policy}->{checkout}));
+ return (exists($self->{institution}->{policy}->{checkout})
+ && to_bool($self->{institution}->{policy}->{checkout}));
}
sub checkin_ok {
my $self = shift;
- return (exists($self->{policy}->{checkin})
- && to_bool($self->{policy}->{checkin}));
+ return (exists($self->{institution}->{policy}->{checkin})
+ && to_bool($self->{institution}->{policy}->{checkin}));
}
sub status_update_ok {
my $self = shift;
- return (exists($self->{policy}->{status_update})
- && to_bool($self->{policy}->{status_update}));
+ return (exists($self->{institution}->{policy}->{status_update})
+ && to_bool($self->{institution}->{policy}->{status_update}));
}
sub offline_ok {
my $self = shift;
- return (exists($self->{policy}->{offline})
- && to_bool($self->{policy}->{offline}));
+ return (exists($self->{institution}->{policy}->{offline})
+ && to_bool($self->{institution}->{policy}->{offline}));
}
#
diff --git a/C4/SIP/example_institution_dump.sh b/C4/SIP/example_institution_dump.sh
index 3aa32f3..3837e75 100755
--- a/C4/SIP/example_institution_dump.sh
+++ b/C4/SIP/example_institution_dump.sh
@@ -1,3 +1,16 @@
#!/bin/bash
-perl -I ./ -e 'use Data::Dumper; use ILS; use Sip::Configuration; $conf=Sip::Configuration->new("SIPconfig.xml"); print Dumper($conf->{institutions}->{"MAIN"}),"\n";'
+perl -I ./ -e '
+use Data::Dumper;
+use ILS;
+use Sip::Configuration;
+my $code = "MAIN";
+my $conf = Sip::Configuration->new("SIPconfig.xml");
+my $ils = ILS->new($conf->{institutions}->{$code});
+print "XML for $code: ", Dumper($conf->{institutions}->{$code}), "\n";
+print "ILS for $code: ", Dumper($ils), "\n";
+print "\$ils->checkout_ok(): ", ($ils->checkout_ok() ? "Y" : "N"), "\n";
+print "\$ils->checkin_ok() : ", ($ils->checkin_ok() ? "Y" : "N"), "\n";
+print "\$ils->offline_ok() : ", ($ils->offline_ok() ? "Y" : "N"), "\n";
+print "\n";
+'
--
1.5.5.GIT
More information about the Koha-patches
mailing list