# 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' ) {
sub checkcardnumber {
my ($cardnumber,$borrowernumber) = @_;
+ # If cardnumber is null, we assume they're allowed.
+ return 0 if !defined($cardnumber);
my $dbh = C4::Context->dbh;
my $query = "SELECT * FROM borrowers WHERE cardnumber=?";
$query .= " AND borrowernumber <> ?" if ($borrowernumber);
$debug and warn join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry);
my $extended_patron_attributes = ();
if ($op eq 'save' || $op eq 'insert'){
- if (checkcardnumber($newdata{cardnumber},$newdata{borrowernumber})){
- push @errors, 'ERROR_cardnumber';
- }
- my $dateofbirthmandatory = (scalar grep {$_ eq "dateofbirth"} @field_check) ? 1 : 0;
- if ($newdata{dateofbirth} && $dateofbirthmandatory) {
- my $age = GetAge($newdata{dateofbirth});
- my $borrowercategory=GetBorrowercategory($newdata{'categorycode'});
- my ($low,$high) = ($borrowercategory->{'dateofbirthrequired'}, $borrowercategory->{'upperagelimit'});
- if (($high && ($age > $high)) or ($age < $low)) {
- push @errors, 'ERROR_age_limitations';
- $template->param('ERROR_age_limitations' => "$low to $high");
+ # If the cardnumber is blank, treat it as null.
+ $newdata{'cardnumber'} = undef if $newdata{'cardnumber'} =~ /^\s*$/;
+
+ if (checkcardnumber($newdata{cardnumber},$newdata{borrowernumber})){
+ push @errors, 'ERROR_cardnumber';
+ }
+ my $dateofbirthmandatory = (scalar grep {$_ eq "dateofbirth"} @field_check) ? 1 : 0;
+ if ($newdata{dateofbirth} && $dateofbirthmandatory) {
+ my $age = GetAge($newdata{dateofbirth});
+ my $borrowercategory=GetBorrowercategory($newdata{'categorycode'});
+ my ($low,$high) = ($borrowercategory->{'dateofbirthrequired'}, $borrowercategory->{'upperagelimit'});
+ if (($high && ($age > $high)) or ($age < $low)) {
+ push @errors, 'ERROR_age_limitations';
+ $template->param('ERROR_age_limitations' => "$low to $high");
+ }
}
- }
if($newdata{surname} && C4::Context->preference('uppercasesurnames')) {
$newdata{'surname'} = uc($newdata{'surname'});
$template->param( step_1 => 1, step_2 => 1, step_3 => 1, step_4 => 1, step_5 => 1, step_6 => 1 ) unless $step;
}
-# my $cardnumber=$data{'cardnumber'};
$data{'cardnumber'}=fixup_cardnumber($data{'cardnumber'}) if $op eq 'add';
if(!defined($data{'sex'})){
$template->param( none => 1);