koha-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-devel] CVS: koha/C4/Circulation Circ2.pm,1.17,1.18


From: Chris Cormack
Subject: [Koha-devel] CVS: koha/C4/Circulation Circ2.pm,1.17,1.18
Date: Wed, 09 May 2001 16:29:02 -0700

Update of /cvsroot/koha/koha/C4/Circulation
In directory usw-pr-cvs1:/tmp/cvs-serv20579/C4/Circulation

Modified Files:
        Circ2.pm 
Log Message:
Changed the way a lost book being returned is handled.
If the book has already been paid for a credit is added to their account.
And offset against any current charges


Index: Circ2.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Circulation/Circ2.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -r1.17 -r1.18
*** Circ2.pm    2001/05/02 22:38:26     1.17
--- Circ2.pm    2001/05/09 23:29:00     1.18
***************
*** 420,424 ****
--- 420,465 ----
                $usth->execute();
                $usth->finish;
+               #check if any credit is left if so writeoff other accounts]
                my $nextaccntno = 
getnextacctno($env,$data->{'borrowernumber'},$dbh);
+               if ($amountleft < 0){
+                 $amountleft*=-1;
+               }
+               if ($amountleft > 0){
+ #               print $amountleft;
+                 my $query = "select * from accountlines
+                 where (borrowernumber = '$data->{'borrowernumber'}') and 
(amountoutstanding >0)
+                 order by date";
+                 my $sth = $dbh->prepare($query);
+                 $sth->execute;
+                 # offset transactions
+                 my $newamtos;
+                 my $accdata;
+                 while (($accdata=$sth->fetchrow_hashref) and ($amountleft>0)){
+                   if ($accdata->{'amountoutstanding'} < $amountleft) {
+                     $newamtos = 0;
+                     $amountleft = $amountleft - 
$accdata->{'amountoutstanding'};
+                   }  else {
+                     $newamtos = $accdata->{'amountoutstanding'} - $amountleft;
+                     $amountleft = 0;
+                   }
+                   my $thisacct = $accdata->{accountno};
+                   my $updquery = "update accountlines set amountoutstanding= 
'$newamtos'
+                   where (borrowernumber = '$data->{'borrowernumber'}') and 
(accountno='$thisacct')";
+                   my $usth = $dbh->prepare($updquery);
+                   $usth->execute;
+                   $usth->finish;
+                   $updquery = "insert into accountoffsets
+                   (borrowernumber, accountno, offsetaccount,  offsetamount)
+                   values
+                   
($data->{'borrowernumber'},$accdata->{'accountno'},$nextaccntno,$newamtos)";
+                   my $usth = $dbh->prepare($updquery);
+                   $usth->execute;
+                   $usth->finish;
+                 }
+               }
+               if ($amountleft > 0){
+                 $amountleft*=-1;
+               }
+               $sth->finish;
                my $desc="Book Returned ".$iteminformation->{'barcode'};
                $uquery = "insert into accountlines
***************
*** 463,467 ****
      my ($env,$patroninformation,$dbh) = @_;
      my $amount = checkaccount($env,$patroninformation->{'borrowernumber'}, 
$dbh);
!     if ($amount>0) { 
        my %flaginfo;
        $flaginfo{'message'}=sprintf "Patron owes \$%.02f", $amount; 
--- 504,508 ----
      my ($env,$patroninformation,$dbh) = @_;
      my $amount = checkaccount($env,$patroninformation->{'borrowernumber'}, 
$dbh);
!     if ($amount > 0) { 
        my %flaginfo;
        $flaginfo{'message'}=sprintf "Patron owes \$%.02f", $amount; 
***************
*** 470,473 ****
--- 511,519 ----
        }
        $flags{'CHARGES'}=\%flaginfo;
+     } elsif ($amount < 0){
+        my %flaginfo;
+        $amount=$amount*-1;
+        $flaginfo{'message'}=sprintf "Patron has credit of \$%.02f", $amount;
+               $flags{'CHARGES'}=\%flaginfo;
      }
      if ($patroninformation->{'gonenoaddress'} == 1) {




reply via email to

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