summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authormark <mark>2010-04-01 04:44:20 +0000
committermark <mark>2010-04-01 04:44:20 +0000
commit7c02bdc86a3b0ca0804f4b0a696ff7d2cdb1f141 (patch)
tree1fde444390fba0064cf502dd254a8a0604d03187 /httemplate
parent5320e62fea03b68d2d106fba8842d7494e1385ef (diff)
RT#866: links to process payments from aging report
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/search/elements/cust_main_dayranges.html32
-rw-r--r--httemplate/search/elements/search-html.html6
-rw-r--r--httemplate/search/elements/search.html30
-rwxr-xr-xhttemplate/search/report_receivables.cgi1
4 files changed, 58 insertions, 11 deletions
diff --git a/httemplate/search/elements/cust_main_dayranges.html b/httemplate/search/elements/cust_main_dayranges.html
index f75927855..6bfe10e85 100644
--- a/httemplate/search/elements/cust_main_dayranges.html
+++ b/httemplate/search/elements/cust_main_dayranges.html
@@ -18,8 +18,9 @@ Example:
'name' => 'customers',
'query' => $sql_query,
'count_query' => $count_sql,
- 'header' => [
+ 'header' => [
FS::UI::Web::cust_header(),
+ @pay_head,
'0-30',
'30-60',
'60-90',
@@ -31,8 +32,9 @@ Example:
( map '',
( 1 ..
scalar(FS::UI::Web::cust_header()-1)
- )
+ ), @pay_labels
),
+
sprintf( $money_char.'%.2f',
$row->{'rangecol_0_30'} ),
sprintf( $money_char.'%.2f',
@@ -45,7 +47,8 @@ Example:
$row->{'rangecol_0_0'} ),
],
'fields' => [
- \&FS::UI::Web::cust_fields,
+ FS::UI::Web::cust_fields_subs(),
+ @pay_labels,
format_rangecol('0_30'),
format_rangecol('30_60'),
format_rangecol('60_90'),
@@ -56,6 +59,7 @@ Example:
( map { $_ ne 'Cust. Status' ? $clink : '' }
FS::UI::Web::cust_header()
),
+ @pay_links,
'',
'',
'',
@@ -67,13 +71,17 @@ Example:
#'size' => [ '', '', '-1', '-1', '', '', '', '', '', ],
#'style' => [ '', '', 'b', 'b', '', '', '', '', 'b', ],
'size' => [ ( map '', FS::UI::Web::cust_header() ),
+ ( map '', @pay_labels ),
#'-1', '', '', '', '', '', ],
- '', '', '', '', '', ],
+ '', '', '', '', '', '', ],
'style' => [ FS::UI::Web::cust_styles(),
+ ( map '', @pay_labels ),
#'b', '', '', '', '', 'b', ],
'', '', '', '', 'b', ],
'color' => [
FS::UI::Web::cust_colors(),
+ ( map '', @pay_labels ),
+ '',
'',
'',
'',
@@ -166,6 +174,7 @@ my $sql_query = {
$range_cols,
$packages_cols,
FS::UI::Web::cust_sql_fields(),
+ 'payby',
),
'extra_sql' => $where,
'order_by' => "order by coalesce(lower(company), ''), lower(last)",
@@ -182,10 +191,25 @@ my $row = $total_sth->fetchrow_hashref();
my $clink = [ "${p}view/cust_main.cgi?", 'custnum' ];
+my (@pay_head, @pay_labels, @pay_links);
+
+if($opt{'payment_links'} && $curuser->access_right('Process payment')) {
+ @pay_head = ({ label => 'Process', nodownload => 1, colspan => 2 },
+ { nodownload => 1 });
+
+ @pay_labels = (map { my ($payby,$label) = @$_;
+ sub {($payby eq $_[0]->payby) ? "<b>$label</b>" : $label}
+ } ([CARD => 'Card'], [CHEK => 'ACH']) );
+
+ @pay_links = (map { [ "${p}misc/payment.cgi?payby=$_;custnum=", 'custnum' ] }
+ 'CARD', 'CHEK' );
+}
+
</%init>
<%once>
my $conf = new FS::Conf;
+my $curuser = $FS::CurrentUser::CurrentUser;
my $money_char = $conf->config('money_char') || '$';
diff --git a/httemplate/search/elements/search-html.html b/httemplate/search/elements/search-html.html
index 6b915a617..3d4a4b039 100644
--- a/httemplate/search/elements/search-html.html
+++ b/httemplate/search/elements/search-html.html
@@ -177,8 +177,13 @@
<TR>
% my $h2 = 0;
+% my $colspan = 0;
% foreach my $header ( @{ $opt{header} } ) {
+% $colspan-- if $colspan > 0;
+% next if $colspan;
+%
% my $label = ref($header) ? $header->{label} : $header;
+% $colspan = ref($header) ? $header->{colspan} : 0;
% my $rowspan = 1;
% my $style = '';
% if ( $opt{header2} ) {
@@ -193,6 +198,7 @@
<TH CLASS = "grid"
BGCOLOR = "#cccccc"
ROWSPAN = "<% $rowspan %>"
+ <% $colspan ? 'COLSPAN = "'.$colspan.'"' : '' %>
<% $style %>
>
diff --git a/httemplate/search/elements/search.html b/httemplate/search/elements/search.html
index 4bfe8b091..1312cac41 100644
--- a/httemplate/search/elements/search.html
+++ b/httemplate/search/elements/search.html
@@ -194,6 +194,9 @@ my(%opt) = @_;
my $curuser = $FS::CurrentUser::CurrentUser;
+my $type = $cgi->param('_type') =~ /^(csv|\w*\.xls|select|html(-print)?)$/
+ ? $1 : 'html' ;
+
my %align = (
'l' => 'left',
'r' => 'right',
@@ -204,6 +207,22 @@ my %align = (
$opt{align} = [ map $align{$_}, split(//, $opt{align}) ],
unless !$opt{align} || ref($opt{align});
+if($type =~ /csv|xls/) {
+ my $h = $opt{'header'};
+ my @del;
+ my $i = 0;
+ do {
+ if( ref($h->[$i]) and exists($h->[$i]->{'nodownload'}) ) {
+ splice(@{$opt{$_}}, $i, 1) foreach
+ qw(header footer fields links link_onclicks
+ align color size style cell_style xls_format);
+ }
+ else {
+ $i++;
+ }
+ } while ( exists($h->[$i]) );
+}
+
$opt{disable_download} = 0
if $opt{disable_download} && $curuser->access_right('Configuration download');
@@ -291,25 +310,22 @@ if ( $opt{'disableable'} ) {
if ( $cgi->param('showdisabled') ) {
$cgi->param('showdisabled', 0);
$opt{'html_posttotal'} .=
- '( <a href="'. $cgi->self_url. qq!">hide disabled $items</a> )!;
+ '( <a href="'. $cgi->self_url. qq!">hide disabled $items</a> )!; #"
$cgi->param('showdisabled', 1);
} else {
$cgi->param('showdisabled', 1);
$opt{'html_posttotal'} .=
- '( <a href="'. $cgi->self_url. qq!">show disabled $items</a> )!;
+ '( <a href="'. $cgi->self_url. qq!">show disabled $items</a> )!; #"
$cgi->param('showdisabled', 0);
}
}
-my $type = $cgi->param('_type') =~ /^(csv|\w*\.xls|select|html(-print)?)$/
- ? $1 : 'html';
-
my $limit = '';
my($confmax, $maxrecords, $offset );
-unless ( $type =~ /^(csv|\w*\.xls)$/ ) {
-
+if ( !$type =~ /^(csv|\w*.xls)$/) {
+# html mode
unless (exists($opt{count_query}) && length($opt{count_query})) {
( $opt{count_query} = $opt{query} ) =~
s/^\s*SELECT\s*(.*?)\s+FROM\s/SELECT COUNT(*) FROM /i; #silly vim:/
diff --git a/httemplate/search/report_receivables.cgi b/httemplate/search/report_receivables.cgi
index 53261849a..73ebee49d 100755
--- a/httemplate/search/report_receivables.cgi
+++ b/httemplate/search/report_receivables.cgi
@@ -1,6 +1,7 @@
<% include( 'elements/cust_main_dayranges.html',
'title' => 'Accounts Receivable Aging Summary',
'range_sub' => \&balance,
+ 'payment_links' => 1,
)
%>
<%init>