) or die dbh->errstr;
} else {
- $sortby = \*pkgpart_sort;
+ $sortby = sub { $a->pkgpart <=> $b->pkgpart; };
}
+my $conf = new FS::Conf;
+my $taxclasses = $conf->exists('enable_taxclasses');
+
%>
<%= header("Package Definition Listing",menubar( 'Main Menu' => $p )) %>
<% unless ( $cgi->param('active') ) { %>
<% } %>
<%= $total %> package definitions
-<%
-if ( $cgi->param('showdisabled') ) {
- $cgi->param('showdisabled', 0);
- print qq!( <a href="!. $cgi->self_url. qq!">hide disabled packages</a> )!;
-} else {
- $cgi->param('showdisabled', 1);
- print qq!( <a href="!. $cgi->self_url. qq!">show disabled packages</a> )!;
-}
+<% if ( $cgi->param('showdisabled') ) { $cgi->param('showdisabled', 0); %>
+ ( <a href="<%= $cgi->self_url %>">hide disabled packages</a> )
+<% } else { $cgi->param('showdisabled', 1); %>
+ ( <a href="<%= $cgi->self_url %>">show disabled packages</a> )
+<% } %>
-my $colspan = $cgi->param('showdisabled') ? 2 : 3;
-print &table(), <<END;
+<% my $colspan = $cgi->param('showdisabled') ? 2 : 3; %>
+
+<%= &table() %>
<TR>
- <TH COLSPAN=$colspan>Package</TH>
+ <TH COLSPAN=<%= $colspan %>>Package</TH>
<TH>Comment</TH>
-END
-print ' <TH><FONT SIZE=-1>Customer<BR>packages</FONT></TH>'
- if $cgi->param('active');
-print <<END;
+<% if ( $cgi->param('active') ) { %>
+ <TH><FONT SIZE=-1>Customer<BR>packages</FONT></TH>
+<% } %>
<TH><FONT SIZE=-1>Freq.</FONT></TH>
+<% if ( $taxclasses ) { %>
+ <TH><FONT SIZE=-1>Taxclass</FONT></TH>
+<% } %>
<TH><FONT SIZE=-1>Plan</FONT></TH>
<TH><FONT SIZE=-1>Data</FONT></TH>
<TH>Service</TH>
<TH><FONT SIZE=-1>Quan.</FONT></TH>
-END
-print '<TH><FONT SIZE=-1>Primary</FONT></TH>'
- if dbdef->table('pkg_svc')->column('primary_svc');
-print '</TR>';
+<% if ( dbdef->table('pkg_svc')->column('primary_svc') ) { %>
+ <TH><FONT SIZE=-1>Primary</FONT></TH>
+<% } %>
+ </TR>
+
+<%
foreach my $part_pkg ( sort $sortby @part_pkg ) {
- my($hashref)=$part_pkg->hashref;
- my(@pkg_svc)=grep $_->getfield('quantity'),
- qsearch('pkg_svc',{'pkgpart'=> $hashref->{pkgpart} });
+ my @pkg_svc = $part_pkg->pkg_svc;
my($rowspan)=scalar(@pkg_svc);
my $plandata;
- if ( $hashref->{plan} ) {
- $plandata = $hashref->{plandata};
+ if ( $part_pkg->plan ) {
+ $plandata = $part_pkg->plandata;
$plandata =~ s/^(\w+)=/$1 /mg;
$plandata =~ s/\n/<BR>/g;
} else {
- $hashref->{plan} = "(legacy)";
- $plandata = "Setup ". $hashref->{setup}.
- "<BR>Recur ". $hashref->{recur};
+ $part_pkg->plan('(legacy)');
+ $plandata = "Setup ". $part_pkg->setup.
+ "<BR>Recur ". $part_pkg->recur;
}
- print <<END;
+%>
<TR>
- <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">$hashref->{pkgpart}</A></TD>
-END
-
- unless ( $cgi->param('showdisabled') ) {
- print "<TD ROWSPAN=$rowspan>";
- print "DISABLED" if $hashref->{disabled};
- print '</TD>';
- }
+ <TD ROWSPAN=<%= $rowspan %>><A HREF="<%=$p%>edit/part_pkg.cgi?<%= $part_pkg->pkgpart %>"><%= $part_pkg->pkgpart %></A></TD>
+
+<% unless ( $cgi->param('showdisabled') ) { %>
+ <TD ROWSPAN=<%= $rowspan %>>
+ <% if ( $part_pkg->disabled ) { %>
+ DISABLED
+ <% } %>
+ </TD>
+<% } %>
- print <<END;
- <TD ROWSPAN=$rowspan><A HREF="${p}edit/part_pkg.cgi?$hashref->{pkgpart}">$hashref->{pkg}</A></TD>
- <TD ROWSPAN=$rowspan>$hashref->{comment}</TD>
-END
- if ( $cgi->param('active') ) {
- print " <TD ROWSPAN=$rowspan>";
- print '<FONT COLOR="#00CC00"><B>'.
- $num_active_cust_pkg{$hashref->{'pkgpart'}}.
- qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=active;pkgpart=$hashref->{pkgpart}">active</A><BR>!;
+ <TD ROWSPAN=<%= $rowspan %>><A HREF="<%=$p%>edit/part_pkg.cgi?<%= $part_pkg->pkgpart %>"><%= $part_pkg->pkg %></A></TD>
+ <TD ROWSPAN=<%= $rowspan %>><%= $part_pkg->comment %></TD>
+
+<% if ( $cgi->param('active') ) { %>
+ <TD ROWSPAN=<%= $rowspan %>>
+ <FONT COLOR="#00CC00"><B><%= $num_active_cust_pkg{$part_pkg->pkgpart} %></B></FONT> <A HREF="<%=$p%>search/cust_pkg.cgi?magic=active;pkgpart=<%= $part_pkg->pkgpart %>">active</A><BR>
+
+ <% $suspended_sth->execute( $part_pkg->pkgpart )
+ or die $suspended_sth->errstr;
+ my $num_suspended = $suspended_sth->fetchrow_arrayref->[0];
+ %>
+ <FONT COLOR="#FF9900"><B><%= $num_suspended %></B></FONT> <A HREF="<%=$p%>search/cust_pkg.cgi?magic=suspended;pkgpart=<%= $part_pkg->pkgpart %>">suspended</A><BR>
+
+ <% $canceled_sth->execute( $part_pkg->pkgpart )
+ or die $canceled_sth->errstr;
+ my $num_canceled = $canceled_sth->fetchrow_arrayref->[0];
+ %>
+ <FONT COLOR="#FF0000"><B><%= $num_canceled %></B></FONT> <A HREF="<%=$p%>search/cust_pkg.cgi?magic=canceled;pkgpart=<%= $part_pkg->pkgpart %>">canceled</A>
+ </TD>
+<% } %>
- $suspended_sth->execute( $part_pkg->pkgpart ) or die $suspended_sth->errstr;
- my $num_suspended = $suspended_sth->fetchrow_arrayref->[0];
- print '<FONT COLOR="#FF9900"><B>'. $num_suspended.
- qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=suspended;pkgpart=$hashref->{pkgpart}">suspended</A><BR>!;
+ <TD ROWSPAN=<%= $rowspan %>><%= $part_pkg->freq_pretty %></TD>
- $canceled_sth->execute( $part_pkg->pkgpart ) or die $canceled_sth->errstr;
- my $num_canceled = $canceled_sth->fetchrow_arrayref->[0];
- print '<FONT COLOR="#FF0000"><B>'. $num_canceled.
- qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=canceled;pkgpart=$hashref->{pkgpart}">canceled</A>!;
+<% if ( $taxclasses ) { %>
+ <TD ROWSPAN=<%= $rowspan %>><%= $part_pkg->taxclass || ' ' %></TD>
+<% } %>
+ <TD ROWSPAN=<%= $rowspan %>><%= $part_pkg->plan %></TD>
+ <TD ROWSPAN=<%= $rowspan %>><%= $plandata %></TD>
- print '</TD>';
- }
- print <<END;
- <TD ROWSPAN=$rowspan>$hashref->{freq}</TD>
- <TD ROWSPAN=$rowspan>$hashref->{plan}</TD>
- <TD ROWSPAN=$rowspan>$plandata</TD>
-END
-
- my($pkg_svc);
+<%
my($n)="";
- foreach $pkg_svc ( @pkg_svc ) {
+ foreach my $pkg_svc ( @pkg_svc ) {
my($svcpart)=$pkg_svc->getfield('svcpart');
my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart });
print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!,
print "</TR>\n";
$n="<TR>";
}
+%>
- print "</TR>";
-}
-
-$colspan = $cgi->param('showdisabled') ? 8 : 9;
-print <<END;
+ </TR>
+<% } %>
</TABLE>
</BODY>
</HTML>
-END
-
-sub pkgpart_sort {
- $a->pkgpart <=> $b->pkgpart;
-}
-
-%>