Browse Source

Bug 19921: Fix update child when only one adult patron category exist

We are passing the Koha::Patron::Category object to the template instead
of the categorycode.

To reproduce this bug you must test in a system which has only one
patron category of the "adult" type. View the details of a patron with a
child-type patron category and choose More -> Update child to adult
patron.

This results in an error:

Can't call method "category_type" on an undefined value at
/home/vagrant/kohaclone/members/update-child.pl line 84.

The URL of the error page shows a problem with the parameters being
passed:

members/update-child.pl?op=update&borrowernumber=12345&catcode=Koha::Patron::Category=HASH(0xa168a18)&catcode_multi=

Test plan:
Make sure you have only 1 adult patron category
Update a child to adult
=> With this patch applied the error is gone and the patron has been
correctly updated

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
18.05.x
Jonathan Druart 5 years ago
parent
commit
585453fe20
  1. 2
      circ/circulation.pl
  2. 2
      members/boraccount.pl
  3. 2
      members/holdshistory.pl
  4. 2
      members/mancredit.pl
  5. 2
      members/maninvoice.pl
  6. 2
      members/member-flags.pl
  7. 2
      members/member-password.pl
  8. 2
      members/moremember.pl
  9. 2
      members/pay.pl
  10. 2
      members/paycollect.pl
  11. 2
      members/printfeercpt.pl
  12. 2
      members/printinvoice.pl
  13. 2
      members/readingrec.pl

2
circ/circulation.pl

@ -548,7 +548,7 @@ my ( $total, $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
if ( $patron && $patron->category->category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
my $messages = Koha::Patron::Messages->search(

2
members/boraccount.pl

@ -66,7 +66,7 @@ if ( $action eq 'reverse' ) {
if ( $patron->category->category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
#get account details

2
members/holdshistory.pl

@ -77,7 +77,7 @@ if ( $borrowernumber eq C4::Context->preference('AnonymousPatron') ){
if ( $patron->category->category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $patron->category->category_type eq 'A' || $patron->category->category_type eq 'I' );

2
members/mancredit.pl

@ -80,7 +80,7 @@ if ($add){
if ( $patron->category->category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $patron->category->category_type =~ /^(A|I)$/ );

2
members/maninvoice.pl

@ -107,7 +107,7 @@ if ($add){
if ( $patron->category->category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $patron->category->category_type =~ /^(A|I)$/ );

2
members/member-flags.pl

@ -181,7 +181,7 @@ if ($input->param('newflags')) {
if ( $category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $category_type =~ /^(A|I)$/ );

2
members/member-password.pl

@ -104,7 +104,7 @@ if ( $newpassword and not @errors) {
if ( $category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $category_type =~ /^(A|I)$/ );

2
members/moremember.pl

@ -172,7 +172,7 @@ $data->{ "sex_".$data->{'sex'}."_p" } = 1 if defined $data->{sex};
if ( $category_type eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
my @relatives;

2
members/pay.pl

@ -235,7 +235,7 @@ sub borrower_add_additional_fields {
if ( $b_ref->{category_type} eq 'C' ) {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
} elsif ( $b_ref->{category_type} eq 'A' || $b_ref->{category_type} eq 'I' ) {
$b_ref->{adultborrower} = 1;
}

2
members/paycollect.pl

@ -200,7 +200,7 @@ sub borrower_add_additional_fields {
if ( $b_ref->{category_type} eq 'C' ) {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
} elsif ( $b_ref->{category_type} eq 'A' || $b_ref->{category_type} eq 'I' ) {
$b_ref->{adultborrower} = 1;
}

2
members/printfeercpt.pl

@ -67,7 +67,7 @@ if ( $action eq 'print' ) {
if ( $data->{'category_type'} eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycde ) if $patron_categories->count == 1;
}
#get account details

2
members/printinvoice.pl

@ -62,7 +62,7 @@ $data->{category_type} = $category->category_type;
if ( $data->{'category_type'} eq 'C' ) {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
#get account details

2
members/readingrec.pl

@ -104,7 +104,7 @@ if ( $op eq 'export_barcodes' ) {
if ( $data->{'category_type'} eq 'C') {
my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
$template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
$template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1;
$template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1;
}
$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' || $data->{'category_type'} eq 'I' );

Loading…
Cancel
Save