From 034c465c8f0ee391dea90f330d1ccbf2141519a8 Mon Sep 17 00:00:00 2001 From: berick Date: Tue, 5 Apr 2011 17:14:25 -0400 Subject: [PATCH] initial payments history tab; I18n; some general cleanup --- .../src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm | 2 +- .../lib/OpenILS/WWW/EGCatLoader/Account.pm | 38 +- Open-ILS/web/css/skin/default/opac/style.css | 13 +- .../web/templates/default/opac/myopac/main.tt2 | 551 +++++++++++---------- 4 files changed, 325 insertions(+), 279 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 460dc67b7b..0b60828e7f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -121,7 +121,7 @@ sub load { return $self->load_place_hold if $path =~ m|opac/place_hold|; return $self->load_myopac_holds if $path =~ m|opac/myopac/holds|; return $self->load_myopac_circs if $path =~ m|opac/myopac/circs|; - return $self->load_myopac_fines if $path =~ m|opac/myopac/main|; + return $self->load_myopac_main if $path =~ m|opac/myopac/main|; return $self->load_myopac_update_email if $path =~ m|opac/myopac/update_email|; return $self->load_myopac_bookbags if $path =~ m|opac/myopac/lists|; return $self->load_myopac_bookbag_update if $path =~ m|opac/myopac/list/update|; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm index bee43ba486..3c1d6a650f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm @@ -449,10 +449,46 @@ sub load_myopac_hold_history { return Apache2::Const::OK; } +sub load_myopac_main { + my $self = shift; + my $limit = $self->cgi->param('limit') || 0; + my $offset = $self->cgi->param('offset') || 0; + my $expand = $self->cgi->param('expand') || ''; + + return $self->load_myopac_payments($limit, $offset) + if $expand eq 'payments'; + + return $self->load_myopac_fines($limit, $offset); +} + +# TODO: add other filter options as params/configs/etc. +sub load_myopac_payments { + my $self = shift; + my $limit = shift || 0; + my $offset = shift || 0; + my $e = $self->editor; + + my $args = {}; + $args->{limit} = $limit if $limit; + $args->{offset} = $offset if $offset; + + $self->ctx->{payments} = $U->simplereq( + 'open-ils.actor', + 'open-ils.actor.user.payments.retrieve.atomic', + $e->authtoken, $e->requestor->id, $args); + + return Apache2::Const::OK; +} + + + sub load_myopac_fines { my $self = shift; + my $limit = shift || 0; + my $offset = shift || 0; my $e = $self->editor; my $ctx = $self->ctx; + $ctx->{"fines"} = { "circulation" => [], "grocery" => [], @@ -461,8 +497,6 @@ sub load_myopac_fines { "balance_owed" => 0 }; - my $limit = $self->cgi->param('limit') || 0; - my $offset = $self->cgi->param('offset') || 0; my $cstore = OpenSRF::AppSession->create('open-ils.cstore'); diff --git a/Open-ILS/web/css/skin/default/opac/style.css b/Open-ILS/web/css/skin/default/opac/style.css index 6559ab52ed..e9033500bf 100644 --- a/Open-ILS/web/css/skin/default/opac/style.css +++ b/Open-ILS/web/css/skin/default/opac/style.css @@ -301,13 +301,13 @@ div.select-wrapper:hover { background:url('/images/expert_search_off.gif') no-repeat bottom; } -#acct_tabs { +#acct_tabs, #acct_fines_tabs { height:33px; width:974px; margin:auto; } -#acct_tabs a { +#acct_tabs a, #acct_fines_tabs a { float: left; display: block; height:33px; @@ -860,13 +860,20 @@ div.select-wrapper:hover { top:3px; } -#myopac_tabs, #adv_search_parent { +#myopac_tabs, #adv_search_parent, #fines_payments_wrapper { background: #929292; border-top:1px solid #8b8b8b; padding-top:5px; margin-bottom:20px; } +#fines_payments_wrapper { + padding-left: 5px; + padding-right: 5px; +} + +#myopac_payments_table th { text-align: left; } + #adv_search_parent { margin-bottom:0px; } diff --git a/Open-ILS/web/templates/default/opac/myopac/main.tt2 b/Open-ILS/web/templates/default/opac/myopac/main.tt2 index 8f756e443b..119cf7732c 100644 --- a/Open-ILS/web/templates/default/opac/myopac/main.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/main.tt2 @@ -2,301 +2,306 @@ PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; - myopac_page = "main" %] + myopac_page = "main"; + show_payments = (CGI.param('expand') == 'payments'); +%] +
-
-
-
Account Summary
-
-
-
-
- -
-
-
-
- -
+ +
+
[% l('Account Summary') %]
+
+ + +
+
+
+
-
-
- -
+
+
+
+
-
-
- -
+
+
+
+
- [% l('Fines:') %] - - [% money(ctx.fines.balance_owed) %] -
- [% l('Pay Fines') %]
-
-
-
-
- - - - - -
- [% l("Items Currently Checked out") %] - - ([% ctx.user_stats.checkouts.total_out %]) - -
-
-
- - - - - -
- Items Currently on Hold - - ([% ctx.user_stats.holds.total %]) - -
-
-
- - - - - -
- Items ready for pickup - - ([% ctx.user_stats.holds.ready %]) - -
-
-
- - - - - -
Fees & Fines
-
+
+
+
-
+ [% l('Fines:') %] + + [% money(ctx.user_stats.fines.balance_owed) %] +
+ [% l('Pay Fines') %] +
- - - - [% IF ctx.fines.circulation.size > 0 %] -
-


- - - - - - - - - - - - - - - - - [% FOR f IN ctx.fines.circulation; - attrs = {marc_xml => f.marc_xml}; - PROCESS get_marc_attrs args=attrs %] - - - - - - - - - - [% END %] -
- [% l("Fines") %] -
[% l("Title") %][% l("Author") %][% l("Checkout Date") %][% l("Due Date") %][% l("Date Returned") %][% l("Balance Owed") %]
- [% attrs.title %] - - [% attrs.author %] - - [% date.format( - ctx.parse_datetime( - f.xact.circulation.xact_start - ), DATE_FORMAT - ) %] - - [% date.format( - ctx.parse_datetime( - f.xact.circulation.due_date - ), DATE_FORMAT - ) %] - - [% IF f.xact.circulation.checkin_time; - date.format( - ctx.parse_datetime( - f.xact.circulation.checkin_time - ), DATE_FORMAT - ); - ELSE %] - - [% l('(fines accruing)') %] - [% END %] - - - [% money(f.xact.balance_owed) %] - -
- [% END %] - [% IF ctx.fines.grocery.size > 0 %] - -
-
-
-
- - - - - - - - - - - - - - - - - [% FOR f IN ctx.fines.grocery %] - - - - - - - - - - [% END %] - + + +
+ +
+
+ [% IF show_payments %] + + + [% ELSE %] + + + [% END %] +
+
+ +[% IF !show_payments %] + [% IF ctx.fines.circulation.size > 0 %] +
+


+
- [% l("Other Fees") %] -
[% l("Transaction Start Time") %][% l("Last Payment Time") %][% l("Initial Amount Owed") %][% l("Total Amount Paid") %][% l("Balance Owed") %][% l("Billing Type") %]
[% date.format( - ctx.parse_datetime(f.xact.xact_start), - DATE_FORMAT - ) %] - [% IF f.xact.last_payment_ts; - date.format( - ctx.parse_datetime( - f.xact.last_payment_ts - ), DATE_FORMAT - ); - END %] - [% money(f.xact.total_owed) %][% money(f.xact.total_paid) %] - - [% money(f.xact.balance_owed) %] - - [% f.xact.last_billing_type %]
+ + + + + + + + + + + + + + + + [% FOR f IN ctx.fines.circulation; + attrs = {marc_xml => f.marc_xml}; + PROCESS get_marc_attrs args=attrs %] + + + + + + + + + + [% END %] + +
+ [% l("Fines") %] +
[% l("Title") %][% l("Author") %][% l("Checkout Date") %][% l("Due Date") %][% l("Date Returned") %][% l("Balance Owed") %]
+ [% attrs.title %] + + [% attrs.author %] + + [% date.format( + ctx.parse_datetime( + f.xact.circulation.xact_start + ), DATE_FORMAT + ) %] + + [% date.format( + ctx.parse_datetime( + f.xact.circulation.due_date + ), DATE_FORMAT + ) %] + + [% IF f.xact.circulation.checkin_time; + date.format( + ctx.parse_datetime( + f.xact.circulation.checkin_time + ), DATE_FORMAT + ); + ELSE %] + + [% l('(fines accruing)') %] + [% END %] + + + [% money(f.xact.balance_owed) %] + +
+
+ [% END %] + + [% IF ctx.fines.grocery.size > 0 %] + +
+
+
+
+ + + + + + + + + + + + + + + + + [% FOR f IN ctx.fines.grocery %] + + + + + + + + + + [% END %] + +
+ [% l("Other Fees") %] +
[% l("Transaction Start Time") %][% l("Last Payment Time") %][% l("Initial Amount Owed") %][% l("Total Amount Paid") %][% l("Balance Owed") %][% l("Billing Type") %]
[% date.format( + ctx.parse_datetime(f.xact.xact_start), + DATE_FORMAT + ) %] + [% IF f.xact.last_payment_ts; + date.format( + ctx.parse_datetime( + f.xact.last_payment_ts + ), DATE_FORMAT + ); + END %] + [% money(f.xact.total_owed) %][% money(f.xact.total_paid) %] + + [% money(f.xact.balance_owed) %] + + [% f.xact.last_billing_type %]
+
+ [% END %] + + + +[% ELSE %] +
+
[% l('Payments') %]
+ + + + + + + + + [% FOR payment IN ctx.payments %] + + + + + + + [% END %] + +
[% l('Payment Date') %][% l('Payment For') %][% l('Amount') %][% l('Receipt') %]
[% date.format(ctx.parse_datetime(payment.mp.payment_ts), DATE_FORMAT) %][% (payment.xact_type == 'grocery') ? payment.last_billing_type : payment.title %][% money(payment.mp.amount) %] + [%# post to print/email form... %] + [% l('Print') %] / [% l('Email') %] +
+
+[% END %] + + + +
-- 2.11.0