fix multiple pkgpart search, RT#5924
[freeside.git] / httemplate / search / svc_acct.cgi
index fb9ce8a..2324399 100755 (executable)
@@ -23,20 +23,6 @@ sub format_time {
 sub timelast {
   my( $svc_acct, $last, $permonth ) = @_;
 
-  #some false laziness w/search/rt_transaction.html
-
-  my $transactiontime = "
-    CASE transactions.type when 'Set'
-      THEN (  to_number(newvalue, '999999')
-            - to_number(oldvalue, '999999')
-           ) * 60
-      ELSE timetaken*60
-    END
-  ";
-
-  #Transactions
-#  my $sql = "
-#    SELECT SUM($transactiontime) FROM acct_rt_transaction
   my $sql = "
     SELECT SUM(support) FROM acct_rt_transaction
       LEFT JOIN Transactions
@@ -97,6 +83,9 @@ if ( $cgi->param('domain') ) {
     push @extra_sql, 'domsvc = '. $svc_domain->svcnum;
   }
 }
+if ( $cgi->param('domsvc') =~ /^(\d+)$/ ) { 
+  push @extra_sql, "domsvc = $1";
+}
 
 my $timepermonth = '';
 
@@ -134,13 +123,17 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
           my $seconds = $svc_acct->seconds;
           my $cust_pkg = $svc_acct->cust_svc->cust_pkg;
           my $part_pkg = $cust_pkg->part_pkg;
+
           #my $timepermonth = $part_pkg->option('seconds');
           $timepermonth = $part_pkg->option('seconds');
           $timepermonth = $timepermonth / $part_pkg->freq
             if $part_pkg->freq =~ /^\d+$/ && $part_pkg->freq != 0;
-          return format_time($seconds) unless $timepermonth;
+
           #my $recur = $part_pkg->calc_recur($cust_pkg);
           my $recur = $part_pkg->base_recur($cust_pkg);
+
+          return format_time($seconds) unless $timepermonth && $recur;
+
           my $balance = $cust_pkg->cust_main->balance;
           my $months_unpaid = $balance / $recur;
           my $time_unpaid = $months_unpaid * $timepermonth;