Initial revision
[wip/koha-chris_n.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 my $input=new CGI;
10
11 #print $input->header;
12 #print $input->dump;
13
14 my%inp;
15
16 my @name=$input->param;
17 for (my $i=0;$i<@name;$i++){
18   my $test=$input->param($name[$i]);
19   if ($test eq 'wo'){
20     my $temp=$name[$i];
21     $temp=~ s/payfine//;
22     $inp{$name[$i]}=$temp;
23   }
24 }
25 my $bornum;
26 while ( my ($key, $value) = each %inp){
27 #  print $key,$value;
28   my $accounttype=$input->param("accounttype$value");
29   $bornum=$input->param("bornum$value");
30   my $itemno=$input->param("itemnumber$value");
31   my $amount=$input->param("amount$value");
32   if ($accounttype eq 'Res'){
33     my $accountno=$input->param("accountno$value");
34     writeoff($bornum,$accountno,$itemno,$accounttype,$amount);
35   } else {
36     writeoff($bornum,'',$itemno,$accounttype,$amount);
37   }
38 }
39 #print $input->header;
40 $bornum=$input->param('bornum');
41 print $input->redirect("/cgi-bin/koha/pay.pl?bornum=$bornum");
42
43 #needs to be shifted to a module when time permits
44 sub writeoff{
45   my ($bornum,$accountnum,$itemnum,$accounttype,$amount)=@_;
46   my $dbh=C4Connect;
47   my $query="Update accountlines set amountoutstanding=0 where ";
48   if ($accounttype eq 'Res'){
49     $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'";
50   } else {
51     $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'";
52   }
53   my $sth=$dbh->prepare($query);
54 #  print $query;
55   $sth->execute;
56   $sth->finish;
57   $query="select max(accountno) from accountlines";
58   $sth=$dbh->prepare($query);
59   $sth->execute;
60   my $account=$sth->fetchrow_hashref;
61   $sth->finish;
62   $account->{'max(accountno)'}++;
63   $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype)
64   values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')";
65   $sth=$dbh->prepare($query);
66   $sth->execute;
67   $sth->finish; 
68 #  print $query;
69   $dbh->disconnect;
70 }