Browse Source

Bug 26059: Create guarantor/guarantee links on patron import

The change to allow multiple guarantors was meant to maintain the
ability to import patrons with a Koha patron guarantor, but is not
working as intended.

A) Adding the guarantor simply doesn't work
B) We have two columns named 'relationship', one for the borrowers
table, and one for the guarantor relationships table. This clearly
doesn't work and will cause confusion. The one for the guarantor
relationships table should be renamed.
C) guarantor_firstname and guarantor_surname in the CSV file do nothing
and should be removed.

This patch also fixes a minor issue that causes warnings like:
CGI::param called in list context from
/kohadevbox/koha/tools/import_borrowers.pl line 124

Test Plan:
1) Create a CSV with contents like:
cardnumber,surname,firstname,branchcode,categorycode,guarantor_relationship,guarantor_id
bloop,gloop,froop,MPL,J,father,48
brim,flim,zim,MPL,J,father,48
2) Attempt to upload this file, ensure you have a borrowernumber 48 that
can have guarantors
3) Note the accounts are not linked
4) Apply this patch
5) Restart all the things!
6) Upload the file again
7) The patrons should now be linked!
8) Download the starter CSV file
9) Note the second relationship column is now guarantor_relationship
10) Note the columns guarantor_firstname and guarantor_surname are no longer present

Signed-off-by: Amit Gupta <amit.gupta@informaticsglobal.com>

Signed-off-by: Marti Fuerst <mfuerst@hmcpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.05.x
Kyle Hall 1 year ago
committed by Jonathan Druart
parent
commit
5cd08373b1
  1. 27
      Koha/Patrons/Import.pm
  2. 6
      tools/import_borrowers.pl

27
Koha/Patrons/Import.pm

@ -227,9 +227,9 @@ sub import_patrons {
next LINE;
}
my $relationship = $borrower{relationship};
my $guarantor_id = $borrower{guarantor_id};
delete $borrower{relationship};
my $guarantor_relationship = $borrower{guarantor_relationship};
delete $borrower{guarantor_relationship};
my $guarantor_id = $borrower{guarantor_id};
delete $borrower{guarantor_id};
# Remove warning for int datatype that cannot be null
@ -358,6 +358,7 @@ sub import_patrons {
Koha::Patron->new(\%borrower)->store;
};
unless ( $@ ) {
$borrowernumber = $patron->id;
if ( $patron->is_debarred ) {
AddDebarment(
@ -410,13 +411,26 @@ sub import_patrons {
# Add a guarantor if we are given a relationship
if ( $guarantor_id ) {
Koha::Patron::Relationship->new(
my $relationship = Koha::Patron::Relationships->find(
{
guarantee_id => $borrowernumber,
relationship => $relationship,
guarantor_id => $guarantor_id,
}
)->store();
);
if ( $relationship ) {
$relationship->relationship( $guarantor_relationship );
$relationship->store();
}
else {
Koha::Patron::Relationship->new(
{
guarantee_id => $borrowernumber,
relationship => $guarantor_relationship,
guarantor_id => $guarantor_id,
}
)->store();
}
}
}
@ -494,6 +508,7 @@ sub set_column_keys {
my @columnkeys = map { $_ ne 'borrowernumber' ? $_ : () } Koha::Patrons->columns();
push( @columnkeys, 'patron_attributes' ) if $extended;
push( @columnkeys, qw( guarantor_relationship guarantor_id ) );
return @columnkeys;
}

6
tools/import_borrowers.pl

@ -62,7 +62,7 @@ my $extended = C4::Context->preference('ExtendedPatronAttributes');
my @columnkeys = map { $_ ne 'borrowernumber' ? $_ : () } Koha::Patrons->columns();
push( @columnkeys, 'patron_attributes' ) if $extended;
push( @columnkeys, qw( relationship guarantor_id guarantor_firstname guarantor_surname ) );
push( @columnkeys, qw( guarantor_relationship guarantor_id ) );
my $input = CGI->new();
@ -123,9 +123,9 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
file => $handle,
defaults => \%defaults,
matchpoint => $matchpoint,
overwrite_cardnumber => $input->param('overwrite_cardnumber'),
overwrite_cardnumber => scalar $input->param('overwrite_cardnumber'),
overwrite_passwords => $overwrite_passwords,
preserve_extended_attributes => $input->param('ext_preserve') || 0,
preserve_extended_attributes => scalar $input->param('ext_preserve') || 0,
}
);

Loading…
Cancel
Save