From: Nahuel ANGELINETTI <[email protected]> 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 <[email protected]> --- 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 _______________________________________________ Koha-patches mailing list [email protected] http://lists.koha.org/mailman/listinfo/koha-patches
