[Koha-patches] [PATCH] [SIGNED-OFF] Notify the user on his account page when his account is almost expired
Owen Leonard
oleonard at myacpl.org
Wed Oct 12 16:41:30 CEST 2011
From: Frédérick Capovilla <frederick.capovilla at libeo.com>
New feature : If the "NotifyBorrowerDeparture" system preference is defined, a
notification appears in the user's account page if his subscription is almost
expired.
http://bugs.koha-community.org/show_bug.cgi?id=6978
Signed-off-by: Owen Leonard <oleonard at myacpl.org>
---
koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt | 6 ++++++
opac/opac-user.pl | 21 +++++++++++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
index 9ba6c05..4d33bd4 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt
@@ -79,6 +79,12 @@ $.tablesorter.addParser({
[% IF ( patronupdate ) %]<div class="dialog message"><h3>Thank you!</h3><p>Your corrections have been submitted to the library, and a staff member will update your record as soon as possible.</p></div>[% END %]
+ [% IF ( BORROWER_INF.warndeparture ) %]
+ <div class="dialog alert">
+ <strong>Please note:</strong><span> Your card will expire on [% BORROWER_INF.warndeparture %]. Please contact the library if you wish to renew your subscription.</span>
+ [% IF ( BORROWER_INF.returnbeforeexpiry ) %]<span> Also note that you must return all checked out items before your card expires.</span>[% END %]
+ </div>
+ [% END %]
[% IF ( BORROWER_INF.flagged ) %]
<div class="dialog alert">
diff --git a/opac/opac-user.pl b/opac/opac-user.pl
index e99e557..03c9e81 100755
--- a/opac/opac-user.pl
+++ b/opac/opac-user.pl
@@ -38,6 +38,12 @@ use C4::Branch; # GetBranches
use constant ATTRIBUTE_SHOW_BARCODE => 'SHOW_BCODE';
+use Date::Calc qw(
+ Today
+ Add_Delta_Days
+ Date_to_Days
+);
+
my $query = new CGI;
BEGIN {
@@ -64,6 +70,9 @@ my $patronupdate = $query->param('patronupdate');
# get borrower information ....
my ( $borr ) = GetMemberDetails( $borrowernumber );
+my ( $today_year, $today_month, $today_day) = Today();
+my ($warning_year, $warning_month, $warning_day) = split /-/, $borr->{'dateexpiry'};
+
for (qw(dateenrolled dateexpiry dateofbirth)) {
($borr->{$_}) and $borr->{$_} = format_date($borr->{$_});
}
@@ -99,6 +108,18 @@ $borr->{'amountoutstanding'} = sprintf "%.02f", $borr->{'amountoutstanding'};
my @bordat;
$bordat[0] = $borr;
+# Warningdate is the date that the warning starts appearing
+if ( C4::Context->preference('NotifyBorrowerDeparture') &&
+ Date_to_Days(Add_Delta_Days($warning_year,$warning_month,$warning_day,- C4::Context->preference('NotifyBorrowerDeparture'))) <
+ Date_to_Days( $today_year, $today_month, $today_day ) )
+{
+ # borrower card soon to expire, warn the borrower
+ $borr->{'warndeparture'} = $borr->{dateexpiry};
+ if (C4::Context->preference('ReturnBeforeExpiry')){
+ $borr->{'returnbeforeexpiry'} = 1;
+ }
+}
+
$template->param( BORROWER_INFO => \@bordat,
borrowernumber => $borrowernumber,
patron_flagged => $borr->{flagged},
--
1.7.3
More information about the Koha-patches
mailing list