[Koha-patches] [PATCH] bug 3159: allow editing child patron that has no valid guarantor
Galen Charlton
galen.charlton at liblime.com
Sat Apr 25 02:46:36 CEST 2009
If a patron with a child patron category is not linked
to a guarantor (or a valid one), it was not possible to edit
the child patron's record. When attempt, no changes were saved
and the following error is recorded in the Apache error log:
memberentry.pl: DBD::mysql::st execute failed: Cannot add or
update a child row: a foreign key constraint
fails (`gmc_koha/borrowers`, CONSTRAINT `borrowers_ibfk_2`
FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`)) ...
This patch fixes this bug, allowing a child patron record to be
edited even if it has no guarantor.
---
members/memberentry.pl | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/members/memberentry.pl b/members/memberentry.pl
index bf20434..e142e74 100755
--- a/members/memberentry.pl
+++ b/members/memberentry.pl
@@ -186,21 +186,27 @@ if (($op eq 'insert') and !$nodouble){
}
#recover all data from guarantor address phone ,fax...
-if (defined($guarantorid) and ($category_type eq 'C' || $category_type eq 'P') and $guarantorid ne '' ){
- my $guarantordata=GetMember($guarantorid);
- $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'};
- if (!defined($data{'contactname'}) or $data{'contactname'} eq '' or $data{'contactname'} ne $guarantordata->{'surname'}) {
- $newdata{'contactfirstname'}= $guarantordata->{'firstname'};
- $newdata{'contactname'} = $guarantordata->{'surname'};
- $newdata{'contacttitle'} = $guarantordata->{'title'};
- foreach (qw(streetnumber address streettype address2 zipcode city phone phonepro mobile fax email emailpro branchcode)) {
- $newdata{$_} = $guarantordata->{$_};
- }
- }
+if ( defined($guarantorid) and
+ ( $category_type eq 'C' || $category_type eq 'P' ) and
+ $guarantorid ne '' and
+ $guarantorid ne '0' ) {
+ if (my $guarantordata=GetMember($guarantorid)) {
+ $guarantorinfo=$guarantordata->{'surname'}." , ".$guarantordata->{'firstname'};
+ if ( !defined($data{'contactname'}) or $data{'contactname'} eq '' or
+ $data{'contactname'} ne $guarantordata->{'surname'} ) {
+ $newdata{'contactfirstname'}= $guarantordata->{'firstname'};
+ $newdata{'contactname'} = $guarantordata->{'surname'};
+ $newdata{'contacttitle'} = $guarantordata->{'title'};
+ foreach (qw(streetnumber address streettype address2
+ zipcode city phone phonepro mobile fax email emailpro branchcode)) {
+ $newdata{$_} = $guarantordata->{$_};
+ }
+ }
+ }
}
###############test to take the right zipcode and city name ##############
-if (!defined($guarantorid) or $guarantorid eq '') {
+if (!defined($guarantorid) or $guarantorid eq '' or $guarantorid eq '0') {
# set only if parameter was passed from the form
$newdata{'city'} = $input->param('city') if defined($input->param('city'));
$newdata{'zipcode'} = $input->param('zipcode') if defined($input->param('zipcode'));
--
1.5.6.5
More information about the Koha-patches
mailing list