koha-devel
[Top][All Lists]
Advanced

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

[Koha-devel] CVS: koha/C4 Accounts2.pm,1.5,1.6


From: Chris Cormack
Subject: [Koha-devel] CVS: koha/C4 Accounts2.pm,1.5,1.6
Date: Wed, 02 May 2001 14:13:17 -0700

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

Modified Files:
        Accounts2.pm 
Log Message:
Added functions to add credits and invoices to borrowers account


Index: Accounts2.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Accounts2.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** Accounts2.pm        2001/05/01 23:24:50     1.5
--- Accounts2.pm        2001/05/02 21:13:15     1.6
***************
*** 16,20 ****
      
  @ISA = qw(Exporter);
! @EXPORT = qw(&recordpayment &fixaccounts &makepayment);
  %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
                  
--- 16,20 ----
      
  @ISA = qw(Exporter);
! @EXPORT = qw(&recordpayment &fixaccounts &makepayment &manualinvoice);
  %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
                  
***************
*** 197,201 ****
    $sth->execute;
    $sth->finish;
!   my @datearr = localtime($time);
    my $date = (1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
    my $bor="$borrower->{'firstname'} $borrower->{'surname'} 
$borrower->{'cardnumber'}";
--- 197,201 ----
    $sth->execute;
    $sth->finish;
!   my @datearr = localtime(time);
    my $date = (1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3];
    my $bor="$borrower->{'firstname'} $borrower->{'surname'} 
$borrower->{'cardnumber'}";
***************
*** 207,209 ****
--- 207,290 ----
  }
  
+ sub manualinvoice{
+   my ($bornum,$itemnum,$desc,$type,$amount)address@hidden;
+   my $dbh=C4Connect;
+   my $insert;
+   $itemnum=~ s/ //g;
+   my $accountno=getnextacctno('',$bornum,$dbh);
+   my $amountleft=$amount;
+   
+   if ($type eq 'C' || $type eq 'BAY'){
+     my $amount2=$amount*-1;
+     $amountleft=fixcredit('',$bornum,$amount2);
+   }
+   if ($type eq 'N'){
+     $desc.="New Card";
+   }
+   if ($type eq 'L' && $desc eq ''){
+     $desc="Lost Item";
+   }
+   if ($itemnum ne ''){
+     my $sth=$dbh->prepare("Select * from items where barcode='$itemnum'");
+     $sth->execute;
+     my $data=$sth->fetchrow_hashref;
+     $sth->finish;
+     $desc.=" ".$itemnum;
+     $insert="insert into accountlines 
(borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding,itemnumber)
+     values 
($bornum,$accountno,now(),'$amount','$desc','$type','$amountleft','$data->{'itemnumber'}')";
+   } else {
+     $insert="insert into accountlines 
(borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding)
+     values 
($bornum,$accountno,now(),'$amount','$desc','$type','$amountleft')";
+   }
+   
+   my $sth=$dbh->prepare($insert);
+   $sth->execute;
+   $sth->finish;
+   
+   $dbh->disconnect;
+ }
+   
+ sub fixcredit{
+   #here we update both the accountoffsets and the account lines
+   my ($env,$bornumber,$data)address@hidden;
+   my $dbh=C4Connect;
+   my $updquery = "";
+   my $newamtos = 0;
+   my $accdata = "";
+ #  my $branch=$env->{'branchcode'};
+   my $amountleft = $data;
+   # begin transaction
+   my $nextaccntno = getnextacctno($env,$bornumber,$dbh);
+   # get lines with outstanding amounts to offset
+   my $query = "select * from accountlines 
+   where (borrowernumber = '$bornumber') and (amountoutstanding<>0)
+   order by date";
+   my $sth = $dbh->prepare($query);
+   $sth->execute;
+   # offset transactions
+   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};
+      $updquery = "update accountlines set amountoutstanding= '$newamtos'
+      where (borrowernumber = '$bornumber') and (accountno='$thisacct')";
+      my $usth = $dbh->prepare($updquery);
+      $usth->execute;
+      $usth->finish;
+      $updquery = "insert into accountoffsets 
+      (borrowernumber, accountno, offsetaccount,  offsetamount)
+      values ($bornumber,$accdata->{'accountno'},$nextaccntno,$newamtos)";
+      my $usth = $dbh->prepare($updquery);
+      $usth->execute;
+      $usth->finish;
+   }
+   $sth->finish;
+   $dbh->disconnect;
+   return($amountleft);
+ }
  END { }       # module clean-up code here (global destructor)




reply via email to

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