[PATCH 2/2] Adds instant fine calculation at checkin
Elliott Davis
tdavis at uttyler.edu
Thu Mar 29 22:05:10 CEST 2012
---
C4/Circulation.pm | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index 9c43f36..0adb8e3 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -36,6 +36,7 @@ use C4::Message;
use C4::Debug;
use C4::Branch; # GetBranches
use C4::Log; # logaction
+use C4::Overdues qw(CalcFine UpdateFine);
use Data::Dumper;
use Koha::DateUtils;
@@ -1595,17 +1596,32 @@ sub AddReturn {
# case of a return of document (deal with issues and holdingbranch)
if ($doreturn) {
+ my $today =3D DateTime->now( time_zone =3D> C4::Context->tz() );
+ my $datedue =3D $issue->{date_due};
$borrower or warn "AddReturn without current borrower";
- my $circControlBranch;
+ my $circControlBranch;
if ($dropbox) {
# define circControlBranch only if dropbox mode is set
# don't allow dropbox mode to create an invalid entry in issue=
s (issuedate > today)
# FIXME: check issuedate > returndate, factoring in holidays
#$circControlBranch =3D _GetCircControlBranch($item,$borrower)=
unless ( $item->{'issuedate'} eq C4::Dates->today('iso') );;
$circControlBranch =3D _GetCircControlBranch($item,$borrower);
+ $today->add(days =3D> -1 );
+ $issue->{'overdue'} =3D DateTime->compare($issue->{'date_due'}, $toda=
y ) =3D=3D -1 ? 1 : 0;
}
-
if ($borrowernumber) {
+ if($issue->{'overdue'}){
+ my ( $amount, $type, $daycounttotal ) =3D C4::Overdues::CalcFine( $item, =
$borrower->{categorycode},$branch, $datedue, $today );
+ my $type ||=3D q{};
+ print STDERR "\n\nAMOUNT: $amount";
+ if ( $amount > 0 ) {
+ C4::Overdues::UpdateFine(
+ $issue->{itemnumber},
+ $issue->{borrowernumber},
+ $amount, $type, output_pref($datedue)
+ );
+ }
+ }
MarkIssueReturned($borrowernumber, $item->{'itemnumber'}, $cir=
cControlBranch, '', $borrower->{'privacy'});
$messages->{'WasReturned'} =3D 1; # FIXME is the "=3D 1" ri=
ght? This could be the borrower hash.
}
--
1.7.2.5
--_000_CB9A7531404Etdavisuttyleredu_
Content-Type: text/html; charset="us-ascii"
Content-ID: <2FC4BE3240726442BA969F73FEF0FB31 at uttyler.edu>
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-lin=
e-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-fami=
ly: Calibri, sans-serif; ">
<div>
<div>
<pre class=3D"bz_comment_text" id=3D"comment_text_2" style=3D"font-size: me=
dium; font-family: monospace; white-space: pre-wrap; width: 50em; color: rg=
b(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webki=
t-auto; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0p=
x; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span =
class=3D"Apple-style-span" style=3D"background-color: transparent; ">Adds I=
nstant fine calculation at checkin
To Test:
Check out an Item, hourly items are best but any will do. Make sure the it=
em is overdue, and when you check the item in you should see a fine reflect=
ed that is correct for the amount of time it is overdue according to your s=
mart rules.</span></pre>
</div>
<div><br>
</div>
<div><br>
</div>
<div>From e13e051ca6742a02c70bdbcba04136da4046ee83 Mon Sep 17 00:00:00 2001=
</div>
<div>From: Elliott Davis <<a href=3D"mailto:tdavis at uttyler.edu">tdavis at u=
ttyler.edu</a>></div>
<div>Date: Thu, 29 Mar 2012 20:05:10 +0000</div>
<div>Subject: [PATCH 2/2] Adds instant fine calculation at checkin</div>
<div><br>
</div>
<div>---</div>
<div> C4/Circulation.pm | 20 +++++++=
;+++++++++++--</div>
<div> 1 files changed, 18 insertions(+), 2 deletions(-)</div>
<div><br>
</div>
<div>diff --git a/C4/Circulation.pm b/C4/Circulation.pm</div>
<div>index 9c43f36..0adb8e3 100644</div>
<div>--- a/C4/Circulation.pm</div>
<div>+++ b/C4/Circulation.pm</div>
<div>@@ -36,6 +36,7 @@ use C4::Message;</div>
<div> use C4::Debug;</div>
<div> use C4::Branch; # GetBranches</div>
<div> use C4::Log; # logaction</div>
<div>+use C4::Overdues qw(CalcFine UpdateFine);</div>
<div> </div>
<div> use Data::Dumper;</div>
<div> use Koha::DateUtils;</div>
<div>@@ -1595,17 +1596,32 @@ sub AddReturn {</div>
<div> </div>
<div> # case of a return of document (deal with issues a=
nd holdingbranch)</div>
<div> if ($doreturn) {</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>my $today =3D DateTime->now( time_zone =3D> C4::Context->tz() )=
;</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>my $datedue =3D $issue->{date_due};</div>
<div> $borrower or warn "AddReturn wi=
thout current borrower";</div>
<div>-<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </span>m=
y $circControlBranch;</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>my $circControlBranch;</div>
<div> if ($dropbox) {</div>
<div> # define circControlBr=
anch only if dropbox mode is set</div>
<div> # don't allow dropbox =
mode to create an invalid entry in issues (issuedate > today)</div>
<div> # FIXME: check issueda=
te > returndate, factoring in holidays</div>
<div> #$circControlBranch =
=3D _GetCircControlBranch($item,$borrower) unless ( $item->{'issuedate'}=
eq C4::Dates->today('iso') );;</div>
<div> $circControlBranch =3D=
_GetCircControlBranch($item,$borrower);</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an> $today->add(days =3D> -1 );</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an> $issue->{'overdue'} =3D DateTime->compare($issu=
e->{'date_due'}, $today ) =3D=3D -1 ? 1 : 0;</div>
<div> }</div>
<div>-</div>
<div> if ($borrowernumber) {</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an> if($issue->{'overdue'}){</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>my ( $amount, $type, $daycounttotal ) =3D C4::Overdues::CalcFine( $item,=
$borrower->{categorycode},$branch, $datedue, $today );</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>my $type ||=3D q{};</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>print STDERR "\n\nAMOUNT: $amount";</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>if ( $amount > 0 ) {</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an> C4::Overdues::UpdateFine(</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>$issue->{itemnumber},</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>$issue->{borrowernumber},</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>$amount, $type, output_pref($datedue)</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>);</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an>}</div>
<div>+<span class=3D"Apple-tab-span" style=3D"white-space: pre; "> </sp=
an> }</div>
<div> MarkIssueReturned($bor=
rowernumber, $item->{'itemnumber'}, $circControlBranch, '', $borrower-&g=
t;{'privacy'});</div>
<div> $messages->{'WasRet=
urned'} =3D 1; # FIXME is the "=3D 1" right? T=
his could be the borrower hash.</div>
<div> }</div>
<div>-- </div>
<div>1.7.2.5</div>
</div>
<div><br>
</div>
</body>
</html>
--_000_CB9A7531404Etdavisuttyleredu_--
More information about the Koha-patches
mailing list