@@ -, +, @@ --- Koha/Patrons/Import.pm | 27 +++++++++++++++++++++------ tools/import_borrowers.pl | 6 +++--- 2 files changed, 24 insertions(+), 9 deletions(-) --- a/Koha/Patrons/Import.pm +++ a/Koha/Patrons/Import.pm @@ -223,9 +223,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 @@ -354,6 +354,7 @@ sub import_patrons { Koha::Patron->new(\%borrower)->store; }; unless ( $@ ) { + $borrowernumber = $patron->id; if ( $patron->is_debarred ) { AddDebarment( @@ -406,13 +407,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(); + } } } @@ -488,6 +502,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; } --- a/tools/import_borrowers.pl +++ a/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(); @@ -124,9 +124,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, } ); --