Getting writeoff stats being stored as well
[koha.git] / sec / writeoff.pl
1 #!/usr/bin/perl
2
3 #written 11/1/2000 by chris@katipo.co.nz
4 #script to write off accounts
5
6 use strict;
7 use CGI;
8 use C4::Database;
9 use C4::Stats;
10 my $input=new CGI;
11
12 #print $input->header;
13 #print $input->dump;
14
15 my%inp;
16
17 my @name=$input->param;
18 for (my $i=0;$i<@name;$i++){
19   my $test=$input->param($name[$i]);
20   if ($test eq 'wo'){
21     my $temp=$name[$i];
22     $temp=~ s/payfine//;
23     $inp{$name[$i]}=$temp;
24   }
25 }
26 my $bornum;
27 while ( my ($key, $value) = each %inp){
28 #  print $key,$value;
29   my $accounttype=$input->param("accounttype$value");
30   $bornum=$input->param("bornum$value");
31   my $itemno=$input->param("itemnumber$value");
32   my $amount=$input->param("amount$value");
33   if ($accounttype eq 'Res'){
34     my $accountno=$input->param("accountno$value");
35     writeoff($bornum,$accountno,$itemno,$accounttype,$amount);
36   } else {
37     writeoff($bornum,'',$itemno,$accounttype,$amount);
38   }
39 }
40 #print $input->header;
41 $bornum=$input->param('bornum');
42 print $input->redirect("/cgi-bin/koha/pay.pl?bornum=$bornum");
43
44 #needs to be shifted to a module when time permits
45 sub writeoff{
46   my ($bornum,$accountnum,$itemnum,$accounttype,$amount)=@_;
47   my $user=$input->remote_user;
48   my $dbh=C4Connect;
49   my $env;
50   my $query="Update accountlines set amountoutstanding=0 where ";
51   if ($accounttype eq 'Res'){
52     $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'";
53   } else {
54     $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'";
55   }
56   my $sth=$dbh->prepare($query);
57 #  print $query;
58   $sth->execute;
59   $sth->finish;
60   $query="select max(accountno) from accountlines";
61   $sth=$dbh->prepare($query);
62   $sth->execute;
63   my $account=$sth->fetchrow_hashref;
64   $sth->finish;
65   $account->{'max(accountno)'}++;
66   $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype)
67   values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')";
68   $sth=$dbh->prepare($query);
69   $sth->execute;
70   $sth->finish; 
71 #  print $query;
72   $dbh->disconnect;
73   UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum);
74 }