[Koha-patches] [PATCH 34/55] (MT #2267) show borrower charges returning a document
Henri-Damien LAURENT
henridamien.laurent at biblibre.com
Wed Mar 10 22:26:16 CET 2010
From: Nahuel ANGELINETTI <nahuel.angelinetti at biblibre.com>
This patch do:
* rewrite setstatus.pl to redirect to the good url
* modify GetFine to don't need itemnumber
* Show borrower's charge when returning a document
Conflict Solved : circ/returns.pl C4/Circulation.pm
Signed-off-by: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>
---
C4/Circulation.pm | 12 +++++++++++-
C4/Overdues.pm | 10 ++++------
circ/returns.pl | 11 +++++++++++
.../prog/en/modules/circ/returns.tmpl | 3 +++
members/setstatus.pl | 4 ++--
5 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index 5f23199..fc7454a 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -30,6 +30,7 @@ use C4::Members;
use C4::Dates;
use C4::Calendar;
use C4::Accounts;
+use C4::Overdues qw/GetFine/;
use C4::ItemCirculationAlertPreference;
use C4::Message;
use C4::Debug;
@@ -1511,10 +1512,19 @@ sub AddReturn {
$messages->{'WasLost'} = 1;
}
- # fix up the overdues in accounts...
if ($borrowernumber) {
+ # fix up the overdues in accounts...
my $fix = _FixOverduesOnReturn($borrowernumber, $item->{itemnumber}, $exemptfine, $dropbox);
defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->{itemnumber}...) failed!"; # zero is OK, check defined
+
+ # fix fine days
+ my $debardate = _FixFineDaysOnReturn($issue->{borrowernumber}, $itemnumber, $issue->{date_due});
+ $messages->{'Debarred'} = $debardate if($debardate);
+
+ # get fines for the borrower
+ my $fineamount = C4::Overdues::GetFine($borrowernumber);
+ $messages->{'HaveFines'} = $fineamount if($fineamount);
+
}
# find reserves.....
diff --git a/C4/Overdues.pm b/C4/Overdues.pm
index ca8cbd0..94b72ab 100644
--- a/C4/Overdues.pm
+++ b/C4/Overdues.pm
@@ -598,25 +598,23 @@ sub ReplacementCost {
=head2 GetFine
-$data->{'sum(amountoutstanding)'} = &GetFine($itemnum,$borrowernumber);
+$data->{'sum(amountoutstanding)'} = &GetFine($borrowernumber);
return the total of fine
-C<$itemnum> is item number
-
C<$borrowernumber> is the borrowernumber
=cut
sub GetFine {
- my ( $itemnum, $borrowernumber ) = @_;
+ my ( $borrowernumber ) = @_;
my $dbh = C4::Context->dbh();
my $query = "SELECT sum(amountoutstanding) FROM accountlines
where accounttype like 'F%'
- AND amountoutstanding > 0 AND itemnumber = ? AND borrowernumber=?";
+ AND amountoutstanding > 0 AND borrowernumber=?";
my $sth = $dbh->prepare($query);
- $sth->execute( $itemnum, $borrowernumber );
+ $sth->execute( $borrowernumber );
my $data = $sth->fetchrow_hashref();
return ( $data->{'sum(amountoutstanding)'} );
}
diff --git a/circ/returns.pl b/circ/returns.pl
index 0b08219..6898087 100755
--- a/circ/returns.pl
+++ b/circ/returns.pl
@@ -36,6 +36,7 @@ use C4::Circulation;
use C4::Dates qw/format_date/;
use Date::Calc qw/Add_Delta_Days/;
use C4::Calendar;
+use C4::Budgets qw/GetCurrency/;
use C4::Print;
use C4::Reserves;
use C4::Biblio;
@@ -395,6 +396,16 @@ foreach my $code ( keys %$messages ) {
elsif ( $code eq 'WasTransfered' ) {
; # FIXME... anything to do here?
}
+ elsif( $code eq 'Debarred' ){
+ $err{debarred} = format_date($messages->{'Debarred'});
+ $err{debarcardnumber} = $borrower->{cardnumber};
+ $err{debarname} = "$borrower->{firstname} $borrower->{surname}";
+ }
+ elsif( $code eq 'HaveFines' ){
+ $err{havefines} = $borrower->{'flags'}->{'CHARGES'}->{'amount'} . %{GetCurrency()}->{symbol};
+ $err{finecardnumber} = $borrower->{cardnumber};
+ $err{finename} = "$borrower->{firstname} $borrower->{surname}";
+ }
elsif ( $code eq 'wthdrawn' ) {
$err{withdrawn} = 1;
$exit_required_p = 1;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
index b8bab7f..61b8d73 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
@@ -293,6 +293,9 @@ function Dopop(link) {
<!-- TMPL_IF Name="waslost" -->
<p class="problem">Item was lost, now found.</p>
<!-- /TMPL_IF -->
+ <!-- TMPL_IF Name="havefines" -->
+ <p class="problem"><!-- TMPL_VAR NAME="finename" --> (<!-- TMPL_VAR NAME="finecardnumber" -->) has an outstanding fine of <!-- TMPL_VAR NAME="havefines" --> for books returned late.</p>
+ <!-- /TMPL_IF -->
<!-- TMPL_IF Name="withdrawn" -->
<p class="problem">Item is withdrawn.</p>
<!-- /TMPL_IF -->
diff --git a/members/setstatus.pl b/members/setstatus.pl
index fc27c17..bf7b96d 100755
--- a/members/setstatus.pl
+++ b/members/setstatus.pl
@@ -63,8 +63,8 @@ if($destination eq "circ"){
}
} else {
if($dateexpiry){
- print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrowernumber&dateexpiry=$dateexpiry");
+ print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrowernumber&dateexpiry=$dateexpiry");
} else {
- print $input->redirect("/cgi-bin/koha/members/moremember.pl?bornum=$borrowernumber");
+ print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$borrowernumber");
}
}
--
1.6.3.3
More information about the Koha-patches
mailing list