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>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit d735b4957b)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
b5ceced576
commit
a4245efd87
|
|
@ -551,7 +551,7 @@ my ( $total, $accts, $numaccts) = GetMemberAccountRecords( $borrowernumber );
|
|||
if ( $borrowernumber && $borrower->{'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(
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ if ( $action eq 'reverse' ) {
|
|||
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
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ if ($add){
|
|||
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' );
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ if ($add){
|
|||
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' );
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ if ($input->param('newflags')) {
|
|||
if ( $bor->{'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 ( $bor->{'category_type'} eq 'A' || $bor->{'category_type'} eq 'I' );
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ else {
|
|||
if ( $bor->{'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 ( $bor->{'category_type'} eq 'A' || $bor->{'category_type'} eq 'I' );
|
||||
|
|
|
|||
|
|
@ -174,7 +174,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;
|
||||
|
|
|
|||
|
|
@ -232,7 +232,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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,7 +195,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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,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
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ my $data = GetMember( 'borrowernumber' => $borrowernumber );
|
|||
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
|
||||
|
|
|
|||
|
|
@ -98,7 +98,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…
Reference in New Issue