[freeside-commits] freeside/httemplate/browse part_pkg.cgi, 1.50, 1.51

Ivan,,, ivan at wavetail.420.am
Wed Apr 1 17:14:33 PDT 2009


Update of /home/cvs/cvsroot/freeside/httemplate/browse
In directory wavetail.420.am:/tmp/cvs-serv4809

Modified Files:
	part_pkg.cgi 
Log Message:
add some (undocumented/unaccessable to web UI yet) options to package browse to track down packages missing recurring fees

Index: part_pkg.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/browse/part_pkg.cgi,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- part_pkg.cgi	22 Feb 2009 08:41:27 -0000	1.50
+++ part_pkg.cgi	2 Apr 2009 00:14:30 -0000	1.51
@@ -10,7 +10,7 @@
                  'agent_pos'             => 5,
                  'query'                 => { 'select'    => $select,
                                               'table'     => 'part_pkg',
-                                              'hashref'   => {},
+                                              'hashref'   => \%hash,
                                               'extra_sql' => $extra_sql,
                                               'order_by'  => "ORDER BY $orderby"
                                             },
@@ -41,14 +41,37 @@
 
 my $select = '*';
 my $orderby = 'pkgpart';
+my %hash = ();
+my $extra_count = '';
+
 if ( $cgi->param('active') ) {
   $orderby = 'num_active DESC';
 }
 
 my $extra_sql = '';
 
+#if ( $cgi->param('activeONLY') ) {
+#  $extra_sql = ' WHERE num_active > 0 '; #XXX doesn't affect count...
+#}
+
+if ( $cgi->param('recurring') ) {
+  $hash{'freq'} = { op=>'!=', value=>'0' };
+  $extra_count = ' freq != 0 ';
+}
+
+if ( $cgi->param('missing_recur_fee') ) {
+  my $missing = "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
+                     )";
+  $extra_sql .= ( ( scalar(keys %hash) || $extra_sql ) ? ' AND ' : ' WHERE ' ).
+                $missing;
+}
+
 unless ( $acl_edit_global ) {
-  $extra_sql .= ' WHERE '.  FS::part_pkg->curuser_pkgs_sql;
+  $extra_sql .= ( ( scalar(keys %hash) || $extra_sql ) ? ' AND ' : ' WHERE ' ).
+                 FS::part_pkg->curuser_pkgs_sql;
 }
 
 my $agentnums = join(',', $curuser->agentnums);
@@ -188,9 +211,7 @@
     my $typelink = $p. 'edit/agent_type.cgi?';
     push @fields, sub { my $part_pkg = shift;
                         [
-                          map { warn $_;
-                                my $agent_type = $_->agent_type;
-                                warn $agent_type;
+                          map { my $agent_type = $_->agent_type;
                                 [ 
                                   { 'data'  => $agent_type->atype, #escape?
                                     'align' => 'left',
@@ -362,6 +383,10 @@
 
 # --------
 
-my $count_query = "SELECT COUNT(*) FROM part_pkg $extra_sql";
+my $count_extra_sql = $extra_sql;
+$count_extra_sql =~ s/^\s*AND /WHERE /i;
+$extra_count = ( $count_extra_sql ? ' AND ' : ' WHERE ' ). $extra_count
+  if $extra_count;
+my $count_query = "SELECT COUNT(*) FROM part_pkg $count_extra_sql $extra_count";
 
 </%init>



More information about the freeside-commits mailing list