lock down manual batch approval
[freeside.git] / httemplate / search / cust_bill_pkg.cgi
index f2a5ccd..b974304 100644 (file)
                    sub { time2str('%b %d %Y', shift->_date ) },
                    \&FS::UI::Web::cust_fields,
                  ],
+                 'sort_fields' => [
+                   'setup', #broken in $unearned case i guess
+                   ( $unearned ? ('', '') : () ),
+                   ( $use_usage eq 'recurring' ? 'recur - usage' :
+                     $use_usage eq 'usage'     ? 'usage'
+                                               : 'recur'
+                   ),
+                   ( $unearned ? ('sdate', 'edate') : () ),
+                   'invnum',
+                   '_date',
+                 ],
                  'links'       => [
                    #'',
                    '',
@@ -452,7 +463,8 @@ if ( $cgi->param('pkg_tax') ) {
 
 } else {
 
-  $count_query = "SELECT COUNT(*), ";
+  #$count_query = "SELECT COUNT(*), ";
+  $count_query = "SELECT COUNT(DISTINCT billpkgnum), ";
 
   if ( $use_usage eq 'recurring' ) {
     $count_query .= "SUM(setup + recur - usage)";
@@ -461,7 +473,12 @@ if ( $cgi->param('pkg_tax') ) {
   } elsif ( $unearned ) {
     $count_query .= "SUM(cust_bill_pkg.recur)";
   } else {
-    $count_query .= "SUM(cust_bill_pkg.setup + cust_bill_pkg.recur)";
+    if ( scalar( grep( /locationtaxid/, $cgi->param ) ) ||
+              $cgi->param('iscredit') eq 'rate') {
+      $count_query .= "SUM( COALESCE(amount, cust_bill_pkg.setup + cust_bill_pkg.recur))";
+    } else {
+      $count_query .= "SUM(cust_bill_pkg.setup + cust_bill_pkg.recur)";
+    }
   }
 
   if ( $unearned ) {