[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/C4 Members.pm,1.6.2.2,1.6.2.3
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/C4 Members.pm,1.6.2.2,1.6.2.3 |
Date: |
Fri, 23 Sep 2005 02:42:35 -0700 |
Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30116/C4
Modified Files:
Tag: rel_2_2
Members.pm
Log Message:
when calculating the member barcode number
if the checkdigit is set to "katipo" use katipo calc method. Otherwise, just
find the max existing number and add 1 (without check digit or V at the
beginning)
Index: Members.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Members.pm,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -C2 -r1.6.2.2 -r1.6.2.3
*** Members.pm 19 May 2005 21:52:45 -0000 1.6.2.2
--- Members.pm 23 Sep 2005 09:42:33 -0000 1.6.2.3
***************
*** 222,261 ****
if ($cardnumber !~ /\S/ && $autonumber_members) {
! my $dbh = C4::Context->dbh;
! my $sth=$dbh->prepare("select max(substring(borrowers.cardnumber,2,7))
from borrowers");
! $sth->execute;
!
! my $data=$sth->fetchrow_hashref;
! $cardnumber=$data->{'max(substring(borrowers.cardnumber,2,7))'};
! $sth->finish;
!
! # purpose: generate checksum'd member numbers.
! # We'll assume we just got the max value of digits 2-8 of member #'s
! # from the database and our job is to increment that by one,
! # determine the 1st and 9th digits and return the full string.
!
! if (! $cardnumber) { # If DB has no values,
! $cardnumber = 1000000; # start at 1000000
! } else {
! $cardnumber += 1;
}
-
- my $sum = 0;
- for (my $i = 0; $i < 8; $i += 1) {
- # read weightings, left to right, 1 char at a time
- my $temp1 = $weightings[$i];
-
- # sequence left to right, 1 char at a time
- my $temp2 = substr($cardnumber,$i,1);
-
- # mult each char 1-7 by its corresponding weighting
- $sum += $temp1 * $temp2;
- }
-
- my $rem = ($sum%11);
- $rem = 'X' if $rem == 10;
-
- $cardnumber="V$cardnumber$rem";
- }
return $cardnumber;
}
--- 222,270 ----
if ($cardnumber !~ /\S/ && $autonumber_members) {
! my $dbh = C4::Context->dbh;
! if (C4::Context->preference('checkdigit') eq 'katipo') {
! # if checkdigit is selected, calculate katipo-style
cardnumber.
! # otherwise, just use the max()
! # purpose: generate checksum'd member numbers.
! # We'll assume we just got the max value of digits 2-8
of member #'s
! # from the database and our job is to increment that by
one,
! # determine the 1st and 9th digits and return the full
string.
! my $sth=$dbh->prepare("select
max(substring(borrowers.cardnumber,2,7)) from borrowers");
! $sth->execute;
!
! my $data=$sth->fetchrow_hashref;
!
$cardnumber=$data->{'max(substring(borrowers.cardnumber,2,7))'};
! $sth->finish;
! if (! $cardnumber) { # If DB has no
values,
! $cardnumber = 1000000; # start at
1000000
! } else {
! $cardnumber += 1;
! }
!
! my $sum = 0;
! for (my $i = 0; $i < 8; $i += 1) {
! # read weightings, left to right, 1 char at a
time
! my $temp1 = $weightings[$i];
!
! # sequence left to right, 1 char at a time
! my $temp2 = substr($cardnumber,$i,1);
!
! # mult each char 1-7 by its corresponding
weighting
! $sum += $temp1 * $temp2;
! }
!
! my $rem = ($sum%11);
! $rem = 'X' if $rem == 10;
!
! $cardnumber="V$cardnumber$rem";
! } else {
! my $sth=$dbh->prepare("select max(borrowers.cardnumber)
from borrowers");
! $sth->execute;
!
! my ($result)=$sth->fetchrow;
! $sth->finish;
! $cardnumber=$result+1;
! }
}
return $cardnumber;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/C4 Members.pm,1.6.2.2,1.6.2.3,
Paul POULAIN <=