<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.6.2">
</HEAD>
<BODY>
Hello Chris,<BR>
<BR>
I edited my the figure for maxfines in my Fines2.pl to read: <BR>
<BR>
my $maxFine=5000 (this can be anything you want depending on your needs)<BR>
<BR>
then I edited my Fines.pm as follows<BR>
<BR>
Fines.pm (edited the sub CalcFine)<BR>
=============================================<BR>
<BR>
sub CalcFine {<BR>
&nbsp; my ($itemnumber,$bortype,$difference)=@_;<BR>
&nbsp; my $dbh = C4::Context-&gt;dbh;<BR>
<BR>
&nbsp; # Look up the categoryitem record for this book's item type and the<BR>
&nbsp; # given borrwer type.<BR>
&nbsp; # The reason this query is so messy is that it's a messy question:<BR>
&nbsp; # given the barcode, we can find the book's items record. This gives<BR>
&nbsp; # us the biblioitems record, which gives us a set of categoryitem<BR>
&nbsp; # records. Then we select the one that corresponds to the desired<BR>
&nbsp; # borrower type.<BR>
<BR>
&nbsp; # FIXME - Is it really necessary to get absolutely everything from<BR>
&nbsp; # all four tables? It looks as if this code only wants<BR>
&nbsp; # firstremind, chargeperiod, accountsent, and chargename from the<BR>
&nbsp; # categoryitem table.<BR>
<BR>
&nbsp; my $sth=$dbh-&gt;prepare(&quot;Select * from items,biblioitems,itemtypes,issuingrules where items.itemnumber=?<BR>
&nbsp; and items.biblioitemnumber=biblioitems.biblioitemnumber and<BR>
&nbsp; biblioitems.itemtype=itemtypes.itemtype and<BR>
&nbsp; issuingrules.itemtype=itemtypes.itemtype and<BR>
&nbsp; issuingrules.categorycode=? and (items.itemlost &lt;&gt; 1 or items.itemlost is NULL)&quot;);<BR>
<BR>
&nbsp; $sth-&gt;execute($itemnumber,$bortype);<BR>
&nbsp; my $data=$sth-&gt;fetchrow_hashref;<BR>
        # FIXME - Error-checking: the item might be lost, or there<BR>
        # might not be an entry in 'categoryitem' for this item type<BR>
        # or borrower type.<BR>
&nbsp; $sth-&gt;finish;<BR>
&nbsp; my $amount=0;<BR>
&nbsp; my $printout;<BR>
<BR>
&nbsp; # Is it time to send out the first reminder?<BR>
&nbsp; # FIXME - I'm not sure the &quot;==&quot;s are correct here. Let's say that<BR>
&nbsp; # $data-&gt;{firstremind} is today, but 'fines2.pl' doesn't run for<BR>
&nbsp; # some reason (the cron daemon died, the server crashed, the<BR>
&nbsp; # sysadmin had the machine down for maintenance, or whatever).<BR>
&nbsp; #<BR>
&nbsp; # Then the next day, the book is $data-&gt;{firstremind}+1 days<BR>
&nbsp; # overdue. But this function returns $amount == 0, $printout ==<BR>
&nbsp; # undef, on the assumption that 'fines2.pl' ran the previous day. So<BR>
&nbsp; # the first thing the patron gets is a second notice, but that's a<BR>
&nbsp; # week after the server crash, so people may not connect the two<BR>
&nbsp; # events.<BR>
&nbsp; if ($difference &gt;= $data-&gt;{'Remind'}){<BR>
&nbsp;&nbsp;&nbsp; # Yes. Set the fine as listed.<BR>
&nbsp;&nbsp;&nbsp; $amount=$data-&gt;{'fine'}*$difference;<BR>
&nbsp;&nbsp;&nbsp; $printout=&quot;Fine Updated&quot;;<BR>
&nbsp; }<BR>
<BR>
&nbsp; # Is it time to send out a second reminder? (killing - Bernard)<BR>
&nbsp; #my $second=$data-&gt;{'firstremind'}+$data-&gt;{'chargeperiod'};<BR>
&nbsp; #if ($difference == $second){<BR>
&nbsp;&nbsp;&nbsp; # Yes. The fine is double.<BR>
&nbsp;&nbsp; # $amount=$data-&gt;{'fine'}*2;<BR>
&nbsp;&nbsp;&nbsp; #$printout=&quot;Second Notice&quot;;<BR>
&nbsp; #}<BR>
<BR>
&nbsp; # Is it time to send the account to a collection agency?<BR>
&nbsp; # FIXME - At least, I *think* that's what this code is doing.<BR>
&nbsp; #if ($difference == $data-&gt;{'accountsent'} &amp;&amp; $data-&gt;{'fine'} &gt; 0){ (killed - Bernard)<BR>
&nbsp;&nbsp;&nbsp; # Yes. Set the fine at 5 local monetary units.<BR>
&nbsp;&nbsp;&nbsp; # FIXME - This '5' shouldn't be hard-wired.<BR>
&nbsp;&nbsp; # $amount=5000;<BR>
&nbsp;&nbsp;&nbsp; #$printout=&quot;Final Notice&quot;;<BR>
&nbsp; #}<BR>
&nbsp; return($amount,$data-&gt;{'chargename'},$printout);<BR>
}<BR>
=======================================================<BR>
I'm still tweaking it but this seems to work OK for me (koha 2.2.5 on FC4)...<BR>
<BR>
Secondly, for your fines calculation to work OK, your issuing rules table MUST be in order. See an earlier post by Joshua on the 11th about this.<BR>
<BR>
Bernard Shiundu<BR>
Strathmore University<BR>
Nairobi, Kenya<BR>
<BR>
<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <FONT COLOR="#000000">On Thu, 2006-03-16 at 12:00 +1300, koha-request@lists.katipo.co.nz wrote:</FONT>
    <BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">With apologies for cross-posting.</FONT>

<FONT COLOR="#000000">I would like to know if anyone using Koha has managed to set up fines that</FONT>
<FONT COLOR="#000000">are applied each night, regardless of how many days the item is overdue by.</FONT>

<FONT COLOR="#000000">Put simply, what I'm looking for is: total fine = daily fine amount</FONT>
<FONT COLOR="#000000">(multiplied by) days overdue</FONT>

<FONT COLOR="#000000">I don't want the fine to stop being applied after 21 days or whatever, I'd</FONT>
<FONT COLOR="#000000">just like it to continue. Does anyone have such a setup? Could you send me</FONT>
<FONT COLOR="#000000">any related scripts/files?</FONT>

<FONT COLOR="#000000">I'm using Koha 2.2.4 W32 R0, if it makes a difference. I'm not a coder</FONT>
<FONT COLOR="#000000">myself (although I'm not scared of having a go at editing files), but just</FONT>
<FONT COLOR="#000000">can't get my head around the default fines scripts that come with Koha.</FONT>

<FONT COLOR="#000000">Regards,</FONT>

<FONT COLOR="#000000">Chris Hearn</FONT>
<FONT COLOR="#000000">Rheolwr y Siop Gop&#239;o</FONT>
<FONT COLOR="#000000">Copy Shop Manager</FONT>

<FONT COLOR="#000000">-----------------------------------------------</FONT>
<FONT COLOR="#000000">Siop Gop&#239;o Urdd Myfyrwyr Aberystwyth</FONT>
<FONT COLOR="#000000">mewn partneriaeth &#226; Call Print</FONT>
<FONT COLOR="#000000"><A HREF="http://www.urddaber.co.uk/gwasanaethau/siopgopi">http://www.urddaber.co.uk/gwasanaethau/siopgopi</A></FONT>
<FONT COLOR="#000000">E-bost: <A HREF="mailto:undeb.siopgopi@aber.ac.uk">undeb.siopgopi@aber.ac.uk</A></FONT>
<FONT COLOR="#000000">Yr Undeb, Penglais, Aberystwyth, SY23 3DX</FONT>
<FONT COLOR="#000000">Ff&#244;n: 01970 621705   Ffacs: 01970 621724</FONT>
<FONT COLOR="#000000"> </FONT>

<FONT COLOR="#000000">Aberystwyth Guild of Students Copy Shop</FONT>
<FONT COLOR="#000000">in partnership with Call Print</FONT>
<FONT COLOR="#000000"><A HREF="http://www.aberguild.co.uk/services/copyshop">www.aberguild.co.uk/services/copyshop</A></FONT>
<FONT COLOR="#000000">E-mail: <A HREF="mailto:union.copyshop@aber.ac.uk">union.copyshop@aber.ac.uk</A></FONT>
<FONT COLOR="#000000">The Union, Penglais, Aberystwyth, SY23 3DX</FONT>
<FONT COLOR="#000000">Phone: 01970 621705   Fax: 01970 621724</FONT>
<FONT COLOR="#000000"> </FONT>


</PRE>
    </BLOCKQUOTE>
<PRE>
<FONT COLOR="#000000">_______________________________________________</FONT>
<FONT COLOR="#000000">Koha mailing list</FONT>
<FONT COLOR="#000000"><A HREF="mailto:Koha@lists.katipo.co.nz">Koha@lists.katipo.co.nz</A></FONT>
<FONT COLOR="#000000"><A HREF="http://lists.katipo.co.nz/mailman/listinfo/koha">http://lists.katipo.co.nz/mailman/listinfo/koha</A></FONT>
</PRE>
</BLOCKQUOTE>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>

<HR NOSHADE>
<BR>
<BR>
Bernard Shiundu<BR>
Strathmore University<BR>
Madaraka Estate<BR>
Ole Sangale Road<BR>
P. O. Box 59857, 00200<BR>
Nairobi, Kenya <BR>
<BR>
Tel.: (+254) (0)20-606155 Ext 2251<BR>
Mob.: (+254) (0)722-205428, (0)733-618135<BR>
Fax.: (+254) (0)20-607498 <BR>
<BR>
<BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>