X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=httemplate%2Fsearch%2Fcust_pkg.cgi;h=3eb0332d247e4d503280b8a6eeb72168c18d29ff;hb=6b5dda03831aef0cb5689cf2acf3fac47e4b12cb;hp=110da91aec42e284fe6c112e3a6eb27e8a2ae61a;hpb=06e353b743e7be88afa8fce50ea10f27ebb7adef;p=freeside.git
diff --git a/httemplate/search/cust_pkg.cgi b/httemplate/search/cust_pkg.cgi
index 110da91ae..3eb0332d2 100755
--- a/httemplate/search/cust_pkg.cgi
+++ b/httemplate/search/cust_pkg.cgi
@@ -4,11 +4,13 @@
'name' => 'packages',
'query' => $sql_query,
'count_query' => $count_query,
+ 'html_init_data' => $search_string,
'header' => [ emt('#'),
emt('Quan.'),
emt('Package'),
emt('Class'),
emt('Status'),
+ emt('Sales Person'),
emt('Ordered by'),
emt('Setup'),
emt('Base Recur'),
@@ -35,6 +37,7 @@
sub { $_[0]->pkg; },
'classname',
sub { ucfirst(shift->status); },
+ 'salesperson',
'otaker',
sub { sprintf( $money_char.'%.2f',
shift->part_pkg->option('setup_fee'),
@@ -42,7 +45,7 @@
},
sub { my $c = shift;
sprintf( $money_char.'%.2f',
- $c->part_pkg->base_recur($c)
+ $c->base_recur
);
},
sub { FS::part_pkg::freq_pretty(shift); },
@@ -99,13 +102,14 @@
'',
'',
'',
+ '',
FS::UI::Web::cust_colors(),
'',
],
- 'style' => [ '', '', '', '', 'b', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+ 'style' => [ '', '', '', '', 'b', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
FS::UI::Web::cust_styles() ],
'size' => [ '', '', '', '', '-1' ],
- 'align' => 'rrlcccrrlrrrrrrrrrrl'. FS::UI::Web::cust_aligns(). 'r',
+ 'align' => 'rrlccccrrlrrrrrrrrrrl'. FS::UI::Web::cust_aligns(). 'r',
'links' => [
$link,
$link,
@@ -123,6 +127,7 @@
'',
'',
'',
+ '',
'', # link to changed-from package?
'',
'',
@@ -146,30 +151,44 @@ my $conf = new FS::Conf;
my $money_char = $conf->config('money_char') || '$';
my %search_hash = ();
+my $search_string;
#some false laziness w/misc/bulk_change_pkg.cgi
$search_hash{'query'} = $cgi->keywords;
#scalars
-for (qw( agentnum custnum magic status custom cust_fields pkgbatch )) {
- $search_hash{$_} = $cgi->param($_) if $cgi->param($_);
+for (qw( agentnum cust_status cust_main_salesnum salesnum custnum magic status
+ reasonnum custom cust_fields pkgbatch zip
+ 477part 477rownum date
+ ))
+{
+ $search_hash{$_} = $cgi->param($_) if length($cgi->param($_));
+ $search_string .= '&'.$_.'='.$cgi->param($_) if length($cgi->param($_));
}
#arrays
-for my $param (qw( pkgpart classnum )) {
+for my $param (qw( pkgpart classnum refnum towernum )) {
$search_hash{$param} = [ $cgi->param($param) ]
if grep { $_ eq $param } $cgi->param;
+ $search_string .= '&'.$param.'='.$cgi->param($param) if grep { $_ eq $param } $cgi->param;
}
#scalars that need to be passed if empty
for my $param (qw( censustract censustract2 )) {
$search_hash{$param} = $cgi->param($param) || ''
if grep { $_ eq $param } $cgi->param;
+ $search_string .= '&'.$param.'='.$cgi->param($param) if grep { $_ eq $param } $cgi->param;
}
+#location flags (checkboxes)
+my @loc = grep /^\w+$/, $cgi->param('loc');
+$search_hash{"location_$_"} = 1 foreach @loc;
+$search_string .= '&location_'.$_.'=1' foreach @loc;
+
my $report_option = $cgi->param('report_option');
$search_hash{report_option} = $report_option if $report_option;
+$search_string .= '&report_option='.$report_option if $report_option;
for my $param (grep /^report_option_any/, $cgi->param) {
$search_hash{$param} = $cgi->param($param);
@@ -191,12 +210,16 @@ my %disable = (
foreach my $field (qw( setup last_bill bill adjourn susp expire contract_end change_date cancel active )) {
+ $search_hash{$field.'_null'} = scalar( $cgi->param($field.'_null') );
+ $search_string .= '&'.$field.'_null='.scalar( $cgi->param($field.'_null') );
+
my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, $field);
next if $beginning == 0 && $ending == 4294967295
or $disable{$cgi->param('status')}->{$field};
$search_hash{$field} = [ $beginning, $ending ];
+ $search_string .= '&'.$field.'_begin='.$beginning.'&'.$field.'_end='.$ending;
}
@@ -247,6 +270,22 @@ my $html_init = sub {
'height' => 210,
). '
';
+ $text .= include( '/elements/popup_link.html',
+ 'label' => emt('Suspend these packages'),
+ 'action' => "${p}misc/bulk_suspend_pkg.cgi?$query",
+ 'actionlabel' => emt('Suspend Packages'),
+ 'width' => 569,
+ 'height' => 210,
+ ). '
' if $search_hash{status} eq 'active';
+
+ $text .= include( '/elements/popup_link.html',
+ 'label' => emt('Unsuspend these packages'),
+ 'action' => "${p}misc/bulk_unsuspend_pkg.cgi?$query",
+ 'actionlabel' => emt('Unsuspend Packages'),
+ 'width' => 569,
+ 'height' => 210,
+ ). '
' if $search_hash{status} eq 'suspended';
+
if ( $curuser->access_right('Edit customer package dates') ) {
$text .= include( '/elements/popup_link.html',
'label' => emt('Increment next bill date'),
@@ -298,11 +337,14 @@ my $process_svc_labels = sub {
foreach ( map { [ $_->label ] } @{ $part_svc->cust_pkg_svc } ) {
push @out, [
{ 'data' => $_->[0]. ':',
- 'align'=> 'right', },
+ 'align'=> 'right',
+ },
+
{ 'data' => $_->[1],
'align'=> 'left',
- 'link' => $p. 'view/' .
- $_->[2]. '.cgi?'. $_->[3], },
+ 'link' => $p. 'view/cust_svc.cgi?' . $_->[3],
+ },
+
];
}
}