From 3f153d067dd9dc8483943307e9fe927e339612f1 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Tue, 8 Jul 2014 10:30:00 -0400
Subject: [PATCH] Bug 12543 - Add userid as matchpoint for "Import patrons"
 tool

The a patron's userid should be a matchpoint in the same manner as
cardnumber. Though not enforced as a unique key by the database yet
( pending bug 1861 ), this field is effectively unique as uniqueness
is enforced by Koha itself.

Test Plan:
1) Apply this patch
2) Browse to tools/import_borrowers.pl
3) Download the starter CSV file
4) Edit the csv file to include 1 or more patrons
   * Make sure to leave the borrowernumber field empty
   * Make sure the userid field matches the patrons you wish to overwrite
5) From import_borrowers.pl, upload your file
   * Set "Field to use for record matching" to "Username"
   * Set "If matching record is already in the borrowers table" to "Overwrite the existing one with this"
6) Click "Import"
7) Verify the patrons in your file have been updated in Koha

Signed-off-by: Frederic Demians <f.demians@tamil.fr>

Do exactly what's announced. This may help.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
---
 koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt | 1 +
 tools/import_borrowers.pl                                         | 5 +++++
 2 files changed, 6 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 d3bcf5c..f8d9303 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
@@ -114,6 +114,7 @@
             <li class="radio">
                 <select name="matchpoint" id="matchpoint">
                     <option value="cardnumber">Cardnumber</option>
+                    <option value="userid">Username</option>
                     [% FOREACH matchpoint IN matchpoints %]
                         <option value="[% matchpoint.code %]">[% matchpoint.description %]</option>
                     [% END %]
diff --git a/tools/import_borrowers.pl b/tools/import_borrowers.pl
index 3b557f0..bad2475 100755
--- a/tools/import_borrowers.pl
+++ b/tools/import_borrowers.pl
@@ -229,6 +229,11 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
             if ($member) {
                 $borrowernumber = $member->{'borrowernumber'};
             }
+        } elsif ( ($matchpoint eq 'userid') && ($borrower{'userid'}) ) {
+            $member = GetMember( 'userid' => $borrower{'userid'} );
+            if ($member) {
+                $borrowernumber = $member->{'borrowernumber'};
+            }
         } elsif ($extended) {
             if (defined($matchpoint_attr_type)) {
                 foreach my $attr (@$patron_attributes) {
-- 
2.1.0