summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorjeff <jeff>2010-05-13 05:43:57 +0000
committerjeff <jeff>2010-05-13 05:43:57 +0000
commit16ac0d9bacf239ecbf24b4b7d2231981bd9efe89 (patch)
tree6d1087695730dffc36f7ae301e6a338726d15f19 /httemplate
parent94919f6776efc3b5a0c2117f2147a1730beee2e8 (diff)
cope with poor tax liability report performance by allowing queuing of reports RT#8274
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/misc/queued_report.html29
-rw-r--r--httemplate/search/queue.html6
-rwxr-xr-xhttemplate/search/report_newtax.html2
-rwxr-xr-xhttemplate/search/report_queued_newtax.cgi16
4 files changed, 51 insertions, 2 deletions
diff --git a/httemplate/misc/queued_report.html b/httemplate/misc/queued_report.html
new file mode 100755
index 0000000..8754045
--- /dev/null
+++ b/httemplate/misc/queued_report.html
@@ -0,0 +1,29 @@
+<% include($report_comp) %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+my $report = '';
+$cgi->param('report') =~ /^([.\w]+)$/ && ($report = $1);
+die "no such report" unless $report;
+
+my $prefix = "$FS::UID::cache_dir/cache.$FS::UID::datasrc";
+open my $fh, "$prefix/report.$report"
+ or die "can't open report: $!\n";
+
+my $reportvalue = '';
+{
+ local $/;
+ $reportvalue = <$fh>;
+}
+close $fh;
+
+#my ($interp, $other) = FS::Mason::mason_interps('standalone');
+my $interp = $m->interp;
+my $report_comp =
+ eval { $interp->make_component ( comp_source => $reportvalue ) };
+die $@ if $@;
+errorpage($@) if $@;
+
+</%init>
diff --git a/httemplate/search/queue.html b/httemplate/search/queue.html
index 125a6f7..e5f7aed 100644
--- a/httemplate/search/queue.html
+++ b/httemplate/search/queue.html
@@ -50,10 +50,14 @@
|| ( ! $noactions
&& $status =~ /^failed/
|| $status =~ /^locked/
+ || $status =~ /^done/
);
if ( $changable ) {
+ $status .= qq! (!;
+ $status .=
+ qq! &nbsp;<A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=new">retry</A>&nbsp;|!
+ unless $status =~ /^done/;
$status .=
- qq! (&nbsp;<A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=new">retry</A>&nbsp;|!.
qq!&nbsp;<A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=del">remove</A>&nbsp;)!;
}
$status;
diff --git a/httemplate/search/report_newtax.html b/httemplate/search/report_newtax.html
index daf2d23..2588b48 100755
--- a/httemplate/search/report_newtax.html
+++ b/httemplate/search/report_newtax.html
@@ -1,6 +1,6 @@
<% include('/elements/header.html', 'Tax Report' ) %>
-<FORM ACTION="report_newtax.cgi" METHOD="GET">
+<FORM ACTION="report_queued_newtax.cgi" METHOD="GET">
<TABLE>
diff --git a/httemplate/search/report_queued_newtax.cgi b/httemplate/search/report_queued_newtax.cgi
new file mode 100755
index 0000000..1d5813e
--- /dev/null
+++ b/httemplate/search/report_queued_newtax.cgi
@@ -0,0 +1,16 @@
+<% include("/elements/header.html", "Queue Tax Report") %>
+<% include("/elements/error.html") %>
+% unless ($error) {
+ <CENTER>
+ Report queued. Check the job queue for status.
+ </CENTER>
+% }
+<% include("/elements/footer.html") %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+my $error = FS::tax_rate::queue_liability_report($cgi);
+
+</%init>