diff options
-rw-r--r-- | FS/FS/cust_attachment.pm | 2 | ||||
-rw-r--r-- | httemplate/elements/menu.html | 2 | ||||
-rwxr-xr-x | httemplate/search/cust_attachment.html (renamed from httemplate/browse/cust_attachment.html) | 70 | ||||
-rw-r--r-- | httemplate/search/report_cust_attachment.html | 42 |
4 files changed, 95 insertions, 21 deletions
diff --git a/FS/FS/cust_attachment.pm b/FS/FS/cust_attachment.pm index 5e5e07673..8f6278960 100644 --- a/FS/FS/cust_attachment.pm +++ b/FS/FS/cust_attachment.pm @@ -1,7 +1,7 @@ package FS::cust_attachment; use strict; -use base qw( FS::otaker_Mixin FS::Record ); +use base qw( FS::cust_main_Mixin FS::otaker_Mixin FS::Record ); use Carp; use FS::Record qw( qsearch qsearchs ); use FS::Conf; diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index d7fad4b5d..9bc3582a8 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -495,7 +495,7 @@ $report_menu{'SQL Query'} = [ $fsurl.'search/report_sql.html', 'SQL Query'] tie my %tools_customers, 'Tie::IxHash', (); $tools_customers{'Appointments'} = [ $fsurl.'rt/Search/Schedule.html?LengthMin=0', 'View appointment schedule' ] if $curuser->access_right('View appointments'); -$tools_customers{'Attachments'} = [ $fsurl.'browse/cust_attachment.html', 'View customer attachments' ] +$tools_customers{'Attachments'} = [ $fsurl.'search/cust_attachment.html', 'View customer attachments' ] if !$conf->config('disable_cust_attachment') and $curuser->access_right('View attachments') and $curuser->access_right('Browse attachments'); $tools_customers{'Customer email settings'} = [ $fsurl.'misc/manage_cust_email.html' ] if $curuser->access_right('Edit customer'); diff --git a/httemplate/browse/cust_attachment.html b/httemplate/search/cust_attachment.html index f81ec1b6b..7c34733a0 100755 --- a/httemplate/browse/cust_attachment.html +++ b/httemplate/search/cust_attachment.html @@ -1,4 +1,4 @@ -<% include( 'elements/browse.html', +<% include( 'elements/search.html', 'title' => 'Attachments', 'menubar' => '', 'name' => ($disabled ? 'deleted' : '') .' attachments', @@ -11,13 +11,13 @@ <INPUT TYPE="hidden" NAME="orderby" VALUE="$orderby"> <INPUT TYPE="hidden" NAME="show_deleted" VALUE="$disabled">! , - 'query' => { 'table' => 'cust_attachment', - 'hashref' => $hashref, - 'order_by' => 'ORDER BY '.$orderby, - }, + 'query' => $query, 'count_query' => $count_query, 'header' => [ selflink('#',orderby => 'attachnum'), - selflink('Customer',orderby => 'custnum'), + #selflink('Customer',orderby => 'custnum'), + FS::UI::Web::cust_header( + $cgi->param('cust_fields') + ), selflink('Date',orderby => '_date'), selflink('Filename',orderby => 'filename'), selflink('Size',orderby => 'length(body)'), @@ -27,7 +27,8 @@ ], 'fields' => [ 'attachnum', - $sub_cust, + #$sub_cust, + \&FS::UI::Web::cust_fields, $sub_date, 'filename', $sub_size, @@ -36,14 +37,30 @@ $sub_checkbox, ], 'links' => [ '', - [ $p.'view/cust_main.cgi?', 'custnum' ], + ( map { $_ ne 'Cust. Status' ? $clink : '' } + FS::UI::Web::cust_header( + $cgi->param('cust_fields') + ) + ), ], 'link_onclicks' => [ '', - '', + ( map '', FS::UI::Web::cust_header( + $cgi->param('cust_fields') + ) + ), '', $sub_edit_link, ], + 'color' => [ + '', + FS::UI::Web::cust_colors(), + ], + 'style' => [ + '', + FS::UI::Web::cust_styles(), + ], + 'align' => 'r'. FS::UI::Web::cust_aligns(), #'links' => [ # '', @@ -90,20 +107,35 @@ else { } } -my $hashref = $disabled ? - { disabled => { op => '>', value => 0 } } : - { disabled => '' }; - -my $count_query = 'SELECT COUNT(*) FROM cust_attachment WHERE '. ($disabled ? - 'disabled > 0' : 'disabled IS NULL'); - my $orderby = $cgi->param('orderby') || 'custnum'; -my $sub_cust = sub { - my $c = qsearchs('cust_main', { custnum => shift->custnum } ); - return $c ? encode_entities($c->name) : '<FONT COLOR="red"><B>(not found)</B></FONT>'; +my $extra_sql = ''; +if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) { + $extra_sql = " AND agentnum = $1 "; +} + +my $query = { + table => 'cust_attachment', + hashref => { disabled => $disabled ? { op => '>', value => 0 } : '', }, + order_by => "ORDER BY $orderby", + addl_from => 'JOIN cust_main USING (custnum)', + extra_sql => "$extra_sql AND ". $curuser->agentnums_sql, }; +my $count_query = 'SELECT COUNT(*) FROM cust_attachment' + . ' JOIN cust_main USING (custnum)' + . ' WHERE ' . $curuser->agentnums_sql + . ' AND disabled ' . ( $disabled ? '> 0' : 'IS NULL' ); + + +#still need to report on attachments with deleted customer? did we ever? +#my $sub_cust = sub { +# my $c = qsearchs('cust_main', { custnum => shift->custnum } ); +# return $c ? encode_entities($c->name) : '<FONT COLOR="red"><B>(not found)</B></FONT>'; +#}; + +my $clink = [ $p.'view/cust_main.cgi?', 'custnum' ]; + my $sub_date = sub { time2str("%b %o, %Y", shift->_date); }; diff --git a/httemplate/search/report_cust_attachment.html b/httemplate/search/report_cust_attachment.html new file mode 100644 index 000000000..d9d9cb430 --- /dev/null +++ b/httemplate/search/report_cust_attachment.html @@ -0,0 +1,42 @@ +<& /elements/header.html, mt('Customer attachment report') &> + +<FORM ACTION="cust_attachment.html" METHOD="GET"> + +<FONT CLASS="fsinnerbox-title"><% emt('Attachment search options') %></FONT> +<TABLE CLASS="fsinnerbox"> + + <& /elements/tr-select-agent.html &> + +% if ( $curuser->access_right('View deleted attachments') ) { + + <& /elements/tr-checkbox.html, + 'label' => 'Show deleted attachments', + 'field' => 'show_deleted', + 'value' => 1, + &> + +% } + +</TABLE> +<BR><BR> + +<FONT CLASS="fsinnerbox-title"><% emt('Display options') %></FONT> +<TABLE CLASS="fsinnerbox"> + + <& /elements/tr-select-cust-fields.html &> + +</TABLE> + +<BR> +<INPUT TYPE="submit" VALUE="<% emt('Get Report') %>"> + +</FORM> + +<& /elements/footer.html &> +<%init> + +my $curuser = $FS::CurrentUser::CurrentUser; +die "access denied" if !$curuser->access_right('View attachments') + || !$curuser->access_right('Browse attachments'); + +</%init> |