koha-cvs
[Top][All Lists]
Advanced

[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;
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]