From 8d0a57f5241a911d7e95a24ddb01acd824451c99 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 17 Feb 2016 16:21:50 +0000 Subject: [PATCH] Bug 15840: Catch errors if userid already exists when importing patrons Import borrowers tool explodes if userid already exists. This error should be caught to avoid the script to explodes. TEST PLAN --------- 1) back up DB 2) drop DB, create empty DB 3) Apply patch 15842 4) web install all the sample data 5) login as system user and import patron data -- sample provided to trigger error. -- you will get a DBIx::class exception "Duplicate entry ' for key 'userid'" 6) Apply this patch 7) Repeat steps 2-5 -- patrons won't be inserted but an error will be nicely displayed in the error list. 8) run koha qa test tools Note that it would be easy to insert the patrons anyway and generate a userid based on the surname and firstname. Signed-off-by: Mark Tompsett Signed-off-by: Katrin Fischer Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com (cherry picked from commit f1e156453a1bc636914bc5c969e1665d7108cb95) Signed-off-by: Julian Maurice --- .../prog/en/modules/tools/import_borrowers.tt | 5 +++++ tools/import_borrowers.pl | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt index fa955dac8b..f31d7dab84 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt @@ -90,6 +90,11 @@ [% IF ERROR.borrowernumber %] (for patron with borrowernumber [% ERROR.borrowernumber %])[% END %] [% END %] + [% IF ERROR.duplicate_userid %] +
  • + Userid [% ERROR.userid %] is already used by another patron or is empty. +
  • + [% END %] [% END %] diff --git a/tools/import_borrowers.pl b/tools/import_borrowers.pl index 6a32611435..d5cf3b272b 100755 --- a/tools/import_borrowers.pl +++ b/tools/import_borrowers.pl @@ -253,6 +253,13 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) { next; } + # generate a proper login if none provided + if ( $borrower{userid} eq '' || !Check_Userid( $borrower{userid} ) ) { + push @errors, { duplicate_userid => 1, userid => $borrower{userid} }; + $invalid++; + next LINE; + } + if ($borrowernumber) { # borrower exists -- 2.39.5