If it's permissible to have a blank cardnumber, only one person can have one of ''. Editing someone else who has no cardnumber fails with "Cardnumber already in use". Instead, if the cardnumber is empty, it should save as undef.
Created attachment 4511 [details] [review] Bug 6521 - allow blank cardnumbers to not trigger "already in use" Now a blank cardnumber will get stored as a null in the database, which is a value that allows duplicates. As such, if cardnumbers aren't mandatory, then you can actually save a user with it being blank.
Patch pushed,please test
Problem: if the library is using autoMemberNum, this patch prevents the cardnumber from being generated upon page load of members/memberentry.pl. Seems to be this line that's the offender: @@ -900,6 +900,7 @@ sub fixup_cardnumber ($) { # if ($cardnumber !~ /\S/ && $autonumber_members) { ($autonumber_members) or return $cardnumber; + defined($cardnumber) or return $cardnumber; my $checkdigit = C4::Context->preference('checkdigit'); my $dbh = C4::Context->dbh; if ( $checkdigit and $checkdigit eq 'katipo' ) { If autonumber_members is defined, then cardnumber SHOULDN'T be, because we're auto-generating, and don't yet know what the max value is in the database. That call comes later in the script. This subroutine is only called in two places: member/memberentry.pl and tools/import_borrowers.pl. In both cases, the undefined cardnumber should be passed to the subroutine, and given back as 'undef' if autoMemberNum is off, or the newly calculated cardnumber if ON. Patch forthcoming.
Follow up signed off.
Created attachment 4681 [details] [review] follow up
*** Bug 6603 has been marked as a duplicate of this bug. ***
Follow up fix easy to test, and already signed off by QA manager, pushed
I can save 2 and more patrons without cardnumber and edit them. Tested on current master. Marking fixed.