a714d853c90716cab29113483dfd3fac5c563527
[koha_gimpoz] / 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   $user=~ s/Levin/C/;
49   $user=~ s/Foxton/F/;
50   $user=~ s/Shannon/S/;
51   my $dbh=C4Connect;
52   my $env;
53   my $query="Update accountlines set amountoutstanding=0 where ";
54   if ($accounttype eq 'Res'){
55     $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'";
56   } else {
57     $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'";
58   }
59   my $sth=$dbh->prepare($query);
60 #  print $query;
61   $sth->execute;
62   $sth->finish;
63   $query="select max(accountno) from accountlines";
64   $sth=$dbh->prepare($query);
65   $sth->execute;
66   my $account=$sth->fetchrow_hashref;
67   $sth->finish;
68   $account->{'max(accountno)'}++;
69   $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype)
70   values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')";
71   $sth=$dbh->prepare($query);
72   $sth->execute;
73   $sth->finish; 
74 #  print $query;
75   $dbh->disconnect;
76   UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum);
77 }