X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fbrowse%2Fpart_pkg.cgi;h=e3d9de13acac5c42f72c3f0f5bb3dc06b24d7fba;hb=330f2110dfa35f690533c8baf25e2609a8b6d4a6;hp=26e01700a58e6032896b9a8a7fa2a20148068ded;hpb=0fb307c305e4bc2c9c27dc25a3308beae3a4d33c;p=freeside.git
diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi
index 26e01700a..e3d9de13a 100755
--- a/httemplate/browse/part_pkg.cgi
+++ b/httemplate/browse/part_pkg.cgi
@@ -45,6 +45,7 @@ my $select = '*';
my $orderby = 'pkgpart';
my %hash = ();
my $extra_count = '';
+my $family_pkgpart;
if ( $cgi->param('active') ) {
$orderby = 'num_active DESC';
@@ -73,10 +74,20 @@ if ( $cgi->param('missing_recur_fee') ) {
push @where, "0 = ( SELECT COUNT(*) FROM part_pkg_option
WHERE optionname = 'recur_fee'
AND part_pkg_option.pkgpart = part_pkg.pkgpart
- AND CAST ( optionvalue AS NUMERIC ) > 0
+ AND CAST( optionvalue AS NUMERIC ) > 0
)";
}
+if ( $cgi->param('family') =~ /^(\d+)$/ ) {
+ $family_pkgpart = $1;
+ push @where, "family_pkgpart = $1";
+ # Hiding disabled or one-time charges and limiting by classnum aren't
+ # very useful in this mode, so all links should still refer back to the
+ # non-family-limited display.
+ $cgi->param('showdisabled', 1);
+ $cgi->delete('family');
+}
+
push @where, FS::part_pkg->curuser_pkgs_sql
unless $acl_edit_global;
@@ -148,6 +159,7 @@ my $filter_change =
#restore this so pagination works
$cgi->param('classnum', $classnum) if length($classnum);
+#should hide this if there aren't any classes
my $html_posttotal =
"$filter_change\n
( show class: ".
include('/elements/select-pkg_class.html',
@@ -208,6 +220,16 @@ push @fields, sub {
$part_pkg->part_pkg_discount;
[
+ ( !$family_pkgpart &&
+ $part_pkg->pkgpart == $part_pkg->family_pkgpart ? () : [
+ {
+ 'align'=> 'center',
+ 'colspan' => 2,
+ 'size' => '-1',
+ 'data' => 'Show all versions',
+ 'link' => $p.'browse/part_pkg.cgi?family='.$part_pkg->family_pkgpart,
+ }
+ ] ),
[
{ data =>$plan,
align=>'center',
@@ -219,20 +241,34 @@ push @fields, sub {
sprintf('%.2f', $part_pkg->option('setup_fee') ),
align=>'right'
},
- { data => ( $is_recur ? ' setup' : ' one-time' ),
+ { data => ( ( $is_recur ? ' setup' : ' one-time' ).
+ ( $part_pkg->option('recur_fee') == 0
+ && $part_pkg->setup_show_zero
+ ? ' (printed on invoices)'
+ : ''
+ )
+ ),
align=>'left',
},
],
[
- { data=>( $is_recur
- ? $money_char.sprintf('%.2f ', $part_pkg->option('recur_fee') )
- : $part_pkg->freq_pretty
- ),
+ { data=>(
+ $is_recur
+ ? $money_char. sprintf('%.2f ', $part_pkg->option('recur_fee'))
+ : $part_pkg->freq_pretty
+ ),
align=> ( $is_recur ? 'right' : 'center' ),
colspan=> ( $is_recur ? 1 : 2 ),
},
( $is_recur
- ? { data => ( $is_recur ? $part_pkg->freq_pretty : '' ),
+ ? { data => ( $is_recur
+ ? $part_pkg->freq_pretty.
+ ( $part_pkg->option('recur_fee') == 0
+ && $part_pkg->recur_show_zero
+ ? ' (printed on invoices)'
+ : ''
+ )
+ : '' ),
align=>'left',
}
: ()
@@ -400,7 +436,7 @@ push @fields,
[ map {
[
- { 'data' => $_,
+ { 'data' => "$_: ",
'align' => 'right',
},
{ 'data' => $part_pkg->format($_,$options{$_}),