Summary: | Editing a patron fails with blank cardnumber | ||
---|---|---|---|
Product: | Koha | Reporter: | Robin Sheat <robin> |
Component: | Patrons | Assignee: | Robin Sheat <robin> |
Status: | CLOSED FIXED | QA Contact: | Bugs List <koha-bugs> |
Severity: | normal | ||
Priority: | PATCH-Sent (DO NOT USE) | CC: | chris, gbengaadara, gmcharlt, koha.sekjal, nengard |
Version: | 3.4 | ||
Hardware: | All | ||
OS: | All | ||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: | ||
Circulation function: | |||
Attachments: |
Bug 6521 - allow blank cardnumbers to not trigger "already in use"
follow up |
Description
Robin Sheat
2011-06-21 04:09:34 UTC
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 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. *** 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. |