diff options
Diffstat (limited to 'httemplate/browse')
-rwxr-xr-x | httemplate/browse/part_pkg.cgi | 135 | ||||
-rwxr-xr-x | httemplate/browse/part_referral.cgi | 59 | ||||
-rwxr-xr-x | httemplate/browse/part_svc.cgi | 22 |
3 files changed, 139 insertions, 77 deletions
diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi index efaa59e00..be67338e1 100755 --- a/httemplate/browse/part_pkg.cgi +++ b/httemplate/browse/part_pkg.cgi @@ -41,9 +41,12 @@ if ( $cgi->param('active') ) { ) 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') ) { %> @@ -55,32 +58,36 @@ if ( $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> +<% if ( dbdef->table('pkg_svc')->column('primary_svc') ) { %> + <TH><FONT SIZE=-1>Primary</FONT></TH> +<% } %> + </TR> -END +<% foreach my $part_pkg ( sort $sortby @part_pkg ) { my($hashref)=$part_pkg->hashref; my(@pkg_svc)=grep $_->getfield('quantity'), @@ -96,46 +103,49 @@ foreach my $part_pkg ( sort $sortby @part_pkg ) { $plandata = "Setup ". $hashref->{setup}. "<BR>Recur ". $hashref->{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>'; - } - - 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?<%= $hashref->{pkgpart} %>"><%= $hashref->{pkgpart} %></A></TD> + +<% unless ( $cgi->param('showdisabled') ) { %> + <TD ROWSPAN=<%= $rowspan %>> + <% if ( $hashref->{disabled} ) { %> + DISABLED + <% } %> + </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 %>><A HREF="<%=$p%>edit/part_pkg.cgi?<%= $hashref->{pkgpart} %>"><%= $hashref->{pkg} %></A></TD> + <TD ROWSPAN=<%= $rowspan %>><%= $hashref->{comment} %></TD> + +<% if ( $cgi->param('active') ) { %> + <TD ROWSPAN=<%= $rowspan %>> + <FONT COLOR="#00CC00"><B><%= $num_active_cust_pkg{$hashref->{'pkgpart'}} %></B></FONT> <A HREF="<%=$p%>search/cust_pkg.cgi?magic=active;pkgpart=<%= $hashref->{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=<%= $hashref->{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=<%= $hashref->{pkgpart} %>">canceled</A> + </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>!; + <TD ROWSPAN=<%= $rowspan %>><%= $hashref->{freq} %></TD> +<% if ( $taxclasses ) { %> + <TD ROWSPAN=<%= $rowspan %>><%= $hashref->{taxclass} || ' ' %></TD> +<% } %> - print '</TD>'; - } - print <<END; - <TD ROWSPAN=$rowspan>$hashref->{freq}</TD> - <TD ROWSPAN=$rowspan>$hashref->{plan}</TD> - <TD ROWSPAN=$rowspan>$plandata</TD> -END + <TD ROWSPAN=<%= $rowspan %>><%= $hashref->{plan} %></TD> + <TD ROWSPAN=<%= $rowspan %>><%= $plandata %></TD> +<% my($pkg_svc); my($n)=""; foreach $pkg_svc ( @pkg_svc ) { @@ -143,23 +153,20 @@ END my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart }); print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!, $part_svc->getfield('svc'),"</A></TD><TD>", - $pkg_svc->getfield('quantity'),"</TD></TR>\n"; + $pkg_svc->getfield('quantity'),"</TD>"; + if ( dbdef->table('pkg_svc')->column('primary_svc') ) { + print '<TD>'; + print 'PRIMARY' if $pkg_svc->primary_svc =~ /^Y/i; + print '</TD>'; + } + 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; -} - -%> diff --git a/httemplate/browse/part_referral.cgi b/httemplate/browse/part_referral.cgi index 3f59abcf5..581e01bb6 100755 --- a/httemplate/browse/part_referral.cgi +++ b/httemplate/browse/part_referral.cgi @@ -10,31 +10,46 @@ Where a customer heard about your service. Tracked for informational purposes. <% my $today = timelocal(0, 0, 0, (localtime(time))[3..5] ); - my %past; - tie %past, 'Tie::IxHash', + my %after; + tie %after, 'Tie::IxHash', 'Today' => 0, + 'Yesterday' => 86400, # 60sec * 60min * 24hrs 'Past week' => 518400, # 60sec * 60min * 24hrs * 6days 'Past 30 days' => 2505600, # 60sec * 60min * 24hrs * 29days - 'Past 60 days' => 5097600, # 60sec * 60min * 24hrs * 29days - 'Past 90 days' => 7689600, # 60sec * 60min * 24hrs * 29days + 'Past 60 days' => 5097600, # 60sec * 60min * 24hrs * 59days + 'Past 90 days' => 7689600, # 60sec * 60min * 24hrs * 89days 'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days 'Past year' => 31486000, # 60sec * 60min * 24hrs * 364days 'Total' => $today, ; + my %before = ( + 'Today' => 86400, # 60sec * 60min * 24hrs + 'Yesterday' => 0, + 'Past week' => 86400, # 60sec * 60min * 24hrs + 'Past 30 days' => 86400, # 60sec * 60min * 24hrs + 'Past 60 days' => 86400, # 60sec * 60min * 24hrs + 'Past 90 days' => 86400, # 60sec * 60min * 24hrs + 'Past 6 months' => 86400, # 60sec * 60min * 24hrs + 'Past year' => 86400, # 60sec * 60min * 24hrs + 'Total' => 86400, # 60sec * 60min * 24hrs + ); - my $sth = dbh->prepare("SELECT COUNT(*) FROM h_cust_main - WHERE history_action = 'insert' - AND refnum = ? - AND history_date > ? ") + my $statement = "SELECT COUNT(*) FROM h_cust_main + WHERE history_action = 'insert' + AND refnum = ? + AND history_date >= ? + AND history_date < ? + "; + my $sth = dbh->prepare($statement) or die dbh->errstr; %> <%= table() %> <TR> <TH COLSPAN=2 ROWSPAN=2>Advertising source</TH> - <TH COLSPAN=<%= scalar(keys %past) %>>Customers</TH> + <TH COLSPAN=<%= scalar(keys %after) %>>Customers</TH> </TR> -<% for my $period ( keys %past ) { %> +<% for my $period ( keys %after ) { %> <TH><FONT SIZE=-1><%= $period %></FONT></TH> <% } %> </TR> @@ -49,9 +64,11 @@ foreach my $part_referral ( sort { <%= $part_referral->refnum %></A></TD> <TD><A HREF="<%= $p %>edit/part_referral.cgi?<%= $part_referral->refnum %>"> <%= $part_referral->referral %></A></TD> - <% for my $period ( values %past ) { - $sth->execute($part_referral->refnum, $today-$period) - or die $sth->errstr; + <% for my $period ( keys %after ) { + $sth->execute( $part_referral->refnum, + $today-$after{$period}, + $today+$before{$period}, + ) or die $sth->errstr; my $number = $sth->fetchrow_arrayref->[0]; %> <TD ALIGN="right"><%= $number %></TD> @@ -59,6 +76,22 @@ foreach my $part_referral ( sort { </TR> <% } %> +<% + $statement =~ s/AND refnum = \?//; + $sth = dbh->prepare($statement) + or die dbh->errstr; +%> + <TR> + <TH COLSPAN=2>Total</TH> + <% for my $period ( keys %after ) { + $sth->execute( $today-$after{$period}, + $today+$before{$period}, + ) or die $sth->errstr; + my $number = $sth->fetchrow_arrayref->[0]; + %> + <TD ALIGN="right"><%= $number %></TD> + <% } %> + </TR> </TABLE> </BODY> </HTML> diff --git a/httemplate/browse/part_svc.cgi b/httemplate/browse/part_svc.cgi index 7c83924a2..fd9ef3cf3 100755 --- a/httemplate/browse/part_svc.cgi +++ b/httemplate/browse/part_svc.cgi @@ -13,6 +13,20 @@ my @part_svc = qsearch('part_svc', \%search ); my $total = scalar(@part_svc); +my %num_active_cust_svc = (); +if ( $cgi->param('active') ) { + my $active_sth = dbh->prepare( + 'SELECT COUNT(*) FROM cust_svc WHERE svcpart = ?' + ) or die dbh->errstr; + foreach my $part_svc ( @part_svc ) { + $active_sth->execute($part_svc->svcpart) or die $active_sth->errstr; + $num_active_cust_svc{$part_svc->svcpart} = + $active_sth->fetchrow_arrayref->[0]; + } + @part_svc = sort { $num_active_cust_svc{$b->svcpart} <=> + $num_active_cust_svc{$a->svcpart} } @part_svc; +} + %> <%= header('Service Definition Listing', menubar( 'Main Menu' => $p) ) %> @@ -45,6 +59,9 @@ function part_export_areyousure(href) { <TR> <TH COLSPAN=<%= $cgi->param('showdisabled') ? 2 : 3 %>>Service</TH> <TH>Table</TH> +<% if ( $cgi->param('active') ) { %> + <TH><FONT SIZE=-1>Customer<BR>Services</FONT></TH> +<% } %> <TH>Export</TH> <TH>Field</TH> <TH COLSPAN=2>Modifier</TH> @@ -74,6 +91,11 @@ function part_export_areyousure(href) { <%= $hashref->{svc} %></A></TD> <TD ROWSPAN=<%= $rowspan %>> <%= $hashref->{svcdb} %></TD> +<% if ( $cgi->param('active') ) { %> + <TD ROWSPAN=<%= $rowspan %>> + <FONT COLOR="#00CC00"><B><%= $num_active_cust_svc{$hashref->{svcpart}} %></B></FONT> <A HREF="<%=$p%>search/<%= $hashref->{svcdb} %>.cgi?svcpart=<%= $hashref->{svcpart} %>">active</A> + </TD> +<% } %> <TD ROWSPAN=<%= $rowspan %>><%= itable() %> <% # my @part_export = |