summaryrefslogtreecommitdiff
path: root/httemplate/browse/part_pkg.cgi
diff options
context:
space:
mode:
authorivan <ivan>2007-01-30 20:59:14 +0000
committerivan <ivan>2007-01-30 20:59:14 +0000
commit15777da47bab33e8f0021e6dd9aa6b434fa9be30 (patch)
tree83359450ba8dcac02c86bdbd0c85db45a699fc06 /httemplate/browse/part_pkg.cgi
parent655b4043942c7d361224d283accb4c2a02ef7359 (diff)
its all about control
Diffstat (limited to 'httemplate/browse/part_pkg.cgi')
-rwxr-xr-xhttemplate/browse/part_pkg.cgi481
1 files changed, 242 insertions, 239 deletions
diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi
index b572f8ab5..6b62ec67b 100755
--- a/httemplate/browse/part_pkg.cgi
+++ b/httemplate/browse/part_pkg.cgi
@@ -1,242 +1,3 @@
-%
-%
-%#false laziness w/access_user.html
-%my %search = ();
-%my $search = '';
-%unless ( $cgi->param('showdisabled') ) {
-% %search = ( 'disabled' => '' );
-% $search = "( disabled = '' OR disabled IS NULL )";
-%}
-%
-%my $select = '*';
-%my $orderby = 'pkgpart';
-%if ( $cgi->param('active') ) {
-%
-% $orderby = 'num_active DESC';
-%}
-% $select = "
-%
-% *,
-%
-% ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
-% AND ( cancel IS NULL OR cancel = 0 )
-% AND ( susp IS NULL OR susp = 0 )
-% ) AS num_active,
-%
-% ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
-% AND ( cancel IS NULL OR cancel = 0 )
-% AND susp IS NOT NULL AND susp != 0
-% ) AS num_suspended,
-%
-% ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
-% AND cancel IS NOT NULL AND cancel != 0
-% ) AS num_cancelled
-%
-% ";
-%
-%#}
-%
-%my $conf = new FS::Conf;
-%my $taxclasses = $conf->exists('enable_taxclasses');
-%
-%my $html_init;
-%#unless ( $cgi->param('active') ) {
-% $html_init = qq!
-% One or more service definitions are grouped together into a package
-% definition and given pricing information. Customers purchase packages
-% rather than purchase services directly.<BR><BR>
-% <A HREF="${p}edit/part_pkg.cgi"><I>Add a new package definition</I></A>
-% <BR><BR>
-% !;
-%#}
-%
-%my $posttotal;
-%if ( $cgi->param('showdisabled') ) {
-% $cgi->param('showdisabled', 0);
-% $posttotal = '( <a href="'. $cgi->self_url. '">hide disabled packages</a> )';
-% $cgi->param('showdisabled', 1);
-%} else {
-% $cgi->param('showdisabled', 1);
-% $posttotal = '( <a href="'. $cgi->self_url. '">show disabled packages</a> )';
-% $cgi->param('showdisabled', 0);
-%}
-%
-%
-%# ------
-%
-%my $link = [ $p.'edit/part_pkg.cgi?', 'pkgpart' ];
-%
-%my @header = ( '#', 'Package', 'Comment' );
-%my @fields = ( 'pkgpart', 'pkg', 'comment' );
-%my $align = 'rll';
-%my @links = ( $link, $link, '' );
-%my @style = ( '', '', '' );
-%
-%#false laziness w/access_user.html
-%#unless ( $cgi->param('showdisabled') ) { #its been reversed already
-%if ( $cgi->param('showdisabled') ) { #its been reversed already
-% push @header, 'Status';
-% push @fields, sub { shift->disabled
-% ? '<FONT COLOR="#FF0000">DISABLED</FONT>'
-% : '<FONT COLOR="#00CC00">Active</FONT>'
-% };
-% push @links, '';
-% $align .= 'c';
-% push @style, 'b';
-%}
-%
-%unless ( 0 ) { #already showing only one class or something?
-% push @header, 'Class';
-% push @fields, sub { shift->classname || '(none)'; };
-% $align .= 'l';
-%}
-%
-%#if ( $cgi->param('active') ) {
-% push @header, 'Customer<BR>packages';
-% my %col = (
-% 'active' => '00CC00',
-% 'suspended' => 'FF9900',
-% 'cancelled' => 'FF0000',
-% #'one-time charge' => '000000',
-% 'charge' => '000000',
-% );
-% my $cust_pkg_link = $p. 'search/cust_pkg.cgi?pkgpart=';
-% push @fields, sub { my $part_pkg = shift;
-% [
-% map {
-% my $magic = $_;
-% my $label = $_;
-% if ( $magic eq 'active' && $part_pkg->freq == 0 ) {
-% $magic = 'inactive';
-% #$label = 'one-time charge',
-% $label = 'charge',
-% }
-%
-% [
-% {
-% 'data' => '<B><FONT COLOR="#'. $col{$label}. '">'.
-% $part_pkg->get("num_$_").
-% '</FONT></B>',
-% 'align' => 'right',
-% },
-% {
-% 'data' => $label.
-% ( $part_pkg->get("num_$_") != 1
-% && $label =~ /charge$/
-% ? 's'
-% : ''
-% ),
-% 'align' => 'left',
-% 'link' => ( $part_pkg->get("num_$_")
-% ? $cust_pkg_link.
-% $part_pkg->pkgpart.
-% ";magic=$magic"
-% : ''
-% ),
-% },
-% ],
-% } (qw( active suspended cancelled ))
-% ]; };
-% $align .= 'r';
-%#}
-%
-%push @header, 'Frequency';
-%push @fields, sub { shift->freq_pretty; };
-%$align .= 'l';
-%
-%if ( $taxclasses ) {
-% push @header, 'Taxclass';
-% push @fields, sub { shift->taxclass() || '&nbsp;'; };
-% $align .= 'l';
-%}
-%
-%push @header, 'Plan',
-% 'Data',
-% 'Services';
-% #'Service', 'Quan', 'Primary';
-%
-%push @fields, sub { shift->plan || '(legacy)' },
-%
-% sub {
-% my $part_pkg = shift;
-% if ( $part_pkg->plan ) {
-%
-% [ map {
-% /^(\w+)=(.*)$/; #or something;
-% [
-% { 'data' => $1,
-% 'align' => 'right',
-% },
-% { 'data' => $2,
-% 'align' => 'left',
-% },
-% ];
-% }
-% split(/\n/, $part_pkg->plandata)
-% ];
-%
-% } else {
-%
-% [ map { [
-% { 'data' => uc($_),
-% 'align' => 'right',
-% },
-% {
-% 'data' => $part_pkg->$_(),
-% 'align' => 'left',
-% },
-% ];
-% }
-% (qw(setup recur))
-% ];
-%
-% }
-%
-% },
-%
-% sub {
-% my $part_pkg = shift;
-%
-% [ map {
-% my $pkg_svc = $_;
-% my $part_svc = $pkg_svc->part_svc;
-% my $svc = $part_svc->svc;
-% if ( $pkg_svc->primary_svc =~ /^Y/i ) {
-% $svc = "<B>$svc (PRIMARY)</B>";
-% }
-% $svc =~ s/ +/&nbsp;/g;
-%
-% [
-% {
-% 'data' => '<B>'. $pkg_svc->quantity. '</B>',
-% 'align' => 'right'
-% },
-% {
-% 'data' => $svc,
-% 'align' => 'left',
-% 'link' => $p. 'edit/part_svc.cgi?'.
-% $part_svc->svcpart,
-% },
-% ];
-% }
-% sort { $b->primary_svc =~ /^Y/i
-% <=> $a->primary_svc =~ /^Y/i
-% }
-% $part_pkg->pkg_svc
-%
-% ];
-%
-% };
-%
-%$align .= 'lrl'; #rr';
-%
-%# --------
-%
-%my $count_query = 'SELECT COUNT(*) FROM part_pkg';
-%$count_query .= " WHERE $search"
-% if $search;
-%
-%
<% include( 'elements/browse.html',
'title' => 'Package Definitions',
'menubar' => [ 'Main Menu' => $p ],
@@ -256,3 +17,245 @@
'style' => \@style,
)
%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+#false laziness w/access_user.html
+my %search = ();
+my $search = '';
+unless ( $cgi->param('showdisabled') ) {
+ %search = ( 'disabled' => '' );
+ $search = "( disabled = '' OR disabled IS NULL )";
+}
+
+my $select = '*';
+my $orderby = 'pkgpart';
+if ( $cgi->param('active') ) {
+
+ $orderby = 'num_active DESC';
+}
+ $select = "
+
+ *,
+
+ ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
+ AND ( cancel IS NULL OR cancel = 0 )
+ AND ( susp IS NULL OR susp = 0 )
+ ) AS num_active,
+
+ ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
+ AND ( cancel IS NULL OR cancel = 0 )
+ AND susp IS NOT NULL AND susp != 0
+ ) AS num_suspended,
+
+ ( SELECT COUNT(*) FROM cust_pkg WHERE cust_pkg.pkgpart = part_pkg.pkgpart
+ AND cancel IS NOT NULL AND cancel != 0
+ ) AS num_cancelled
+
+ ";
+
+#}
+
+my $conf = new FS::Conf;
+my $taxclasses = $conf->exists('enable_taxclasses');
+
+my $html_init;
+#unless ( $cgi->param('active') ) {
+ $html_init = qq!
+ One or more service definitions are grouped together into a package
+ definition and given pricing information. Customers purchase packages
+ rather than purchase services directly.<BR><BR>
+ <A HREF="${p}edit/part_pkg.cgi"><I>Add a new package definition</I></A>
+ <BR><BR>
+ !;
+#}
+
+my $posttotal;
+if ( $cgi->param('showdisabled') ) {
+ $cgi->param('showdisabled', 0);
+ $posttotal = '( <a href="'. $cgi->self_url. '">hide disabled packages</a> )';
+ $cgi->param('showdisabled', 1);
+} else {
+ $cgi->param('showdisabled', 1);
+ $posttotal = '( <a href="'. $cgi->self_url. '">show disabled packages</a> )';
+ $cgi->param('showdisabled', 0);
+}
+
+
+# ------
+
+my $link = [ $p.'edit/part_pkg.cgi?', 'pkgpart' ];
+
+my @header = ( '#', 'Package', 'Comment' );
+my @fields = ( 'pkgpart', 'pkg', 'comment' );
+my $align = 'rll';
+my @links = ( $link, $link, '' );
+my @style = ( '', '', '' );
+
+#false laziness w/access_user.html
+#unless ( $cgi->param('showdisabled') ) { #its been reversed already
+if ( $cgi->param('showdisabled') ) { #its been reversed already
+ push @header, 'Status';
+ push @fields, sub { shift->disabled
+ ? '<FONT COLOR="#FF0000">DISABLED</FONT>'
+ : '<FONT COLOR="#00CC00">Active</FONT>'
+ };
+ push @links, '';
+ $align .= 'c';
+ push @style, 'b';
+}
+
+unless ( 0 ) { #already showing only one class or something?
+ push @header, 'Class';
+ push @fields, sub { shift->classname || '(none)'; };
+ $align .= 'l';
+}
+
+#if ( $cgi->param('active') ) {
+ push @header, 'Customer<BR>packages';
+ my %col = (
+ 'active' => '00CC00',
+ 'suspended' => 'FF9900',
+ 'cancelled' => 'FF0000',
+ #'one-time charge' => '000000',
+ 'charge' => '000000',
+ );
+ my $cust_pkg_link = $p. 'search/cust_pkg.cgi?pkgpart=';
+ push @fields, sub { my $part_pkg = shift;
+ [
+ map {
+ my $magic = $_;
+ my $label = $_;
+ if ( $magic eq 'active' && $part_pkg->freq == 0 ) {
+ $magic = 'inactive';
+ #$label = 'one-time charge',
+ $label = 'charge',
+ }
+
+ [
+ {
+ 'data' => '<B><FONT COLOR="#'. $col{$label}. '">'.
+ $part_pkg->get("num_$_").
+ '</FONT></B>',
+ 'align' => 'right',
+ },
+ {
+ 'data' => $label.
+ ( $part_pkg->get("num_$_") != 1
+ && $label =~ /charge$/
+ ? 's'
+ : ''
+ ),
+ 'align' => 'left',
+ 'link' => ( $part_pkg->get("num_$_")
+ ? $cust_pkg_link.
+ $part_pkg->pkgpart.
+ ";magic=$magic"
+ : ''
+ ),
+ },
+ ],
+ } (qw( active suspended cancelled ))
+ ]; };
+ $align .= 'r';
+#}
+
+push @header, 'Frequency';
+push @fields, sub { shift->freq_pretty; };
+$align .= 'l';
+
+if ( $taxclasses ) {
+ push @header, 'Taxclass';
+ push @fields, sub { shift->taxclass() || '&nbsp;'; };
+ $align .= 'l';
+}
+
+push @header, 'Plan',
+ 'Data',
+ 'Services';
+ #'Service', 'Quan', 'Primary';
+
+push @fields, sub { shift->plan || '(legacy)' },
+
+ sub {
+ my $part_pkg = shift;
+ if ( $part_pkg->plan ) {
+
+ [ map {
+ /^(\w+)=(.*)$/; #or something;
+ [
+ { 'data' => $1,
+ 'align' => 'right',
+ },
+ { 'data' => $2,
+ 'align' => 'left',
+ },
+ ];
+ }
+ split(/\n/, $part_pkg->plandata)
+ ];
+
+ } else {
+
+ [ map { [
+ { 'data' => uc($_),
+ 'align' => 'right',
+ },
+ {
+ 'data' => $part_pkg->$_(),
+ 'align' => 'left',
+ },
+ ];
+ }
+ (qw(setup recur))
+ ];
+
+ }
+
+ },
+
+ sub {
+ my $part_pkg = shift;
+
+ [ map {
+ my $pkg_svc = $_;
+ my $part_svc = $pkg_svc->part_svc;
+ my $svc = $part_svc->svc;
+ if ( $pkg_svc->primary_svc =~ /^Y/i ) {
+ $svc = "<B>$svc (PRIMARY)</B>";
+ }
+ $svc =~ s/ +/&nbsp;/g;
+
+ [
+ {
+ 'data' => '<B>'. $pkg_svc->quantity. '</B>',
+ 'align' => 'right'
+ },
+ {
+ 'data' => $svc,
+ 'align' => 'left',
+ 'link' => $p. 'edit/part_svc.cgi?'.
+ $part_svc->svcpart,
+ },
+ ];
+ }
+ sort { $b->primary_svc =~ /^Y/i
+ <=> $a->primary_svc =~ /^Y/i
+ }
+ $part_pkg->pkg_svc
+
+ ];
+
+ };
+
+$align .= 'lrl'; #rr';
+
+# --------
+
+my $count_query = 'SELECT COUNT(*) FROM part_pkg';
+$count_query .= " WHERE $search"
+ if $search;
+
+</%init>