X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Freport_cust_pkg.html;h=4e17d1f51a71108bc6c3c3e564e5839a8e926fe9;hp=3840663cfbdf9219a55239a480f187602250624e;hb=95cffb2e514c6117fc3eb111581d387b5d0b4e77;hpb=04a69f9d197efee6fa396bd35d04ae553e669978 diff --git a/httemplate/search/report_cust_pkg.html b/httemplate/search/report_cust_pkg.html index 3840663cf..4e17d1f51 100755 --- a/httemplate/search/report_cust_pkg.html +++ b/httemplate/search/report_cust_pkg.html @@ -1,40 +1,103 @@ -<% include('/elements/header.html', 'Package Report' ) %> +<& /elements/header.html, mt($title, @title_arg) &>
+ - +% unless ( $custnum ) { - - - + <% emt('Customer search options') %> +
- Search options -
- <% include( '/elements/tr-select-agent.html', + <& /elements/tr-select-agent.html, 'curr_value' => scalar( $cgi->param('agentnum') ), 'disable_empty' => 0, - ) - %> + 'onchange' => 'agent_changed(this)', + &> + + <& /elements/tr-select-cust_main-status.html, + 'label' => 'Customer status', + 'field' => 'cust_status', + &> + + + + <& /elements/tr-select-sales.html, + 'label' => 'Customer sales person', + 'element_name' => 'cust_main_salesnum', + 'id' => 'cust_main_salesnum', + 'curr_value' => scalar($cgi->param('cust_main_salesnum')), + 'pre_options' => [ '' => 'all', + 0 => '(none)', ], + 'disable_empty' => 1, + &> + +
+
+ +% } + +<% emt('Package search options') %> + - <% include( '/elements/tr-select-cust_pkg-status.html', + <& /elements/tr-select-sales.html, + 'label' => 'Package sales person', + 'curr_value' => scalar($cgi->param('salesnum')), + 'pre_options' => [ '' => 'all', + 0 => '(none)', ], + 'disable_empty' => 1, + &> + + <& /elements/tr-select-cust_pkg-status.html, + 'label' => 'Package status', 'onchange' => 'status_changed(this);', - ) - %> + &> + + <& /elements/tr-select-reason.html, + 'field' => 'reasonnum', + 'reason_class' => 'S', + 'label' => 'Suspended Reason', + 'label_id' => 'reasonnum_label', + 'hide_addnew' => '1', + 'hide_onload' => '1', + 'cgi' => $cgi, + 'control_button' => 'confirm_suspend_cust_button', + 'pre_options' => [ 0 => 'all' ], + &> - <% include( '/elements/tr-select-pkg_class.html', + <& /elements/tr-select-pkg_class.html, 'pre_options' => [ '0' => 'all' ], 'empty_label' => '(empty class)', - ) - %> - -% foreach my $field (qw( setup last_bill bill adjourn susp expire cancel )) { - - - - - + &> + +% if ( scalar( qsearch( 'part_pkg_report_option', { 'disabled' => '' } ) ) ) { + + <& /elements/tr-select-table.html, + 'label' => 'Report classes', + 'table' => 'part_pkg_report_option', + 'name_col' => 'name', + 'hashref' => { 'disabled' => '' }, + 'element_name' => 'report_option', + 'multiple' => 'multiple', + &> % } + + + + + + + + + +% my $noinit = 0; +% foreach my $field (@date_fields) { + + + +% foreach (qw(beginning ending)) { + +% $noinit = 1; +% } + + +% } #foreach $field + + + - <% include( '/elements/tr-checkbox.html', + <& /elements/tr-checkbox.html, 'label' => 'Custom packages', 'field' => 'custom', 'value' => 1, 'onchange' => 'custom_changed(this);', - ) - %> + &> - <% include( '/elements/tr-selectmultiple-part_pkg.html' ) %> + <& /elements/tr-selectmultiple-part_pkg.html, colspan=>3 &> - - - +
<% $label{$field} %> - - <% include( '/elements/tr-input-beginning_ending.html', - prefix => $field, - layout => 'horiz', - ) - %> -
-
<% ' 'x 10 %>From date (m/d/y)To date (m/d/y)Empty date
<% $label{$field} %> + <& /elements/input-date-field.html, { + 'name' => $field.'_'.$_, + 'value' => '', + 'noinit' => $noinit, + 'format' => '%m/%d/%Y', + } &> + + <& /elements/checkbox.html, + 'field' => $field.'_null', + 'value' => 'Y', + 'onchange' => $field.'_null_changed', + &> +
 
+
- - Display options - - <% include( '/elements/tr-select-cust-fields.html' ) %> +<% emt('Location search options') %> + + +% my @location_options = qw(cust nocust census nocensus); +% if ( $conf->config('tax_data_vendor') eq 'cch' ) { +% push @location_options, 'geocode', 'nogeocode'; +% } + <& /elements/tr-checkbox-multiple.html, + 'label' => 'Where package location:', + 'field' => 'loc', + 'options' => \@location_options, + 'labels' => { 'cust' => "is the customer's default location", + 'nocust' => "is not the customer's default location", + 'census' => "has a census tract", + 'nocensus' => "does not have a census tract", + 'nogeocode'=> 'has an implicit tax location', + 'geocode' => 'has a hardcoded tax location', + }, + 'value' => { map { $_ => 0 } @location_options }, + &> + +
+
+ +<% emt('Display options') %> + + + <& /elements/tr-select-cust-fields.html &>
@@ -141,26 +295,47 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List packages'); +my $title = 'Package Report'; +#false laziness w/report_cust_bill.html +my @title_arg = (); + +my $custnum = ''; +if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { + $custnum = $1; + my $cust_main = qsearchs({ + 'table' => 'cust_main', + 'hashref' => { 'custnum' => $custnum }, + 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, + }) or die "unknown custnum $custnum"; + $title .= ': [_1]'; + push @title_arg, $cust_main->name; +} + <%once> -my %label = ( - 'setup' => 'Setup', - 'last_bill' => 'Last bill', - 'bill' => 'Next bill', - 'adjourn' => 'Adjourns', - 'susp' => 'Suspended', - 'expire' => 'Expires', - 'cancel' => 'Cancelled', -); +tie my %label, 'Tie::IxHash', + 'setup' => 'Setup', + 'last_bill' => 'Last bill', + 'bill' => 'Next bill', + 'adjourn' => 'Adjourns', + 'susp' => 'Suspended', + 'dundate' => 'Suspension delayed until', + 'expire' => 'Expires', + 'contract_end' => 'Contract ends', + 'change_date' => 'Changed from other package', + 'cancel' => 'Cancelled', +; +my @date_fields = keys %label; #false laziness w/cust_pkg.cgi my %disable = ( 'all' => {}, - 'not yet billed' => { 'setup'=>1, 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, }, - 'one-time charge' => { 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, }, + 'on hold' => { 'setup'=>1, 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'expire'=>1, 'cancel'=>1, 'dundate'=> 1, }, + 'not yet billed' => { 'setup'=>1, 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, 'dundate'=>1, }, + 'one-time charge' => { 'last_bill'=>1, 'bill'=>1, 'adjourn'=>1, 'susp'=>1, 'expire'=>1, 'cancel'=>1, 'contract_end'=>1, 'dundate'=>1, }, 'active' => { 'susp'=>1, 'cancel'=>1 }, - 'suspended' => { 'cancel' => 1 }, + 'suspended' => { 'cancel'=>1, 'dundate'=>1, }, 'cancelled' => {}, '' => {}, ); @@ -171,8 +346,10 @@ my %checkbox = ( 'last_bill' => 0, 'bill' => 0, 'susp' => 1, + 'dundate' => 1, 'expire' => 1, 'cancel' => 1, ); +my $conf = FS::Conf->new;