diff options
Diffstat (limited to 'FS/FS/Report/Table.pm')
| -rw-r--r-- | FS/FS/Report/Table.pm | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/FS/FS/Report/Table.pm b/FS/FS/Report/Table.pm index 696940679..2e202e5d9 100644 --- a/FS/FS/Report/Table.pm +++ b/FS/FS/Report/Table.pm @@ -56,6 +56,13 @@ sub signups {      push @where, "refnum = ".$opt{'refnum'};    } +  if ( $opt{'cust_classnum'} ) { +    my $classnums = $opt{'cust_classnum'}; +    $classnums = [ $classnums ] if !ref($classnums); +    @$classnums = grep /^\d+$/, @$classnums; +    push @where, 'cust_main.classnum in('. join(',',@$classnums) .')'; +  } +    $self->scalar_sql(      "SELECT COUNT(*) FROM cust_main $join WHERE ".join(' AND ', @where)    ); @@ -439,8 +446,16 @@ sub cust_bill_pkg_setup {      $self->in_time_period_and_agent($speriod, $eperiod, $agentnum),    ); +  # yuck, false laziness    push @where, "cust_main.refnum = ". $opt{'refnum'} if $opt{'refnum'}; +  if ( $opt{'cust_classnum'} ) { +    my $classnums = $opt{'cust_classnum'}; +    $classnums = [ $classnums ] if !ref($classnums); +    @$classnums = grep /^\d+$/, @$classnums; +    push @where, 'cust_main.classnum in('. join(',',@$classnums) .')'; +  } +    my $total_sql = "SELECT COALESCE(SUM(cust_bill_pkg.setup),0)    FROM cust_bill_pkg    $cust_bill_pkg_join @@ -463,6 +478,13 @@ sub cust_bill_pkg_recur {    push @where, 'cust_main.refnum = '. $opt{'refnum'} if $opt{'refnum'}; +  if ( $opt{'cust_classnum'} ) { +    my $classnums = $opt{'cust_classnum'}; +    $classnums = [ $classnums ] if !ref($classnums); +    @$classnums = grep /^\d+$/, @$classnums; +    push @where, 'cust_main.classnum in('. join(',',@$classnums) .')'; +  } +    # subtract all usage from the line item regardless of date    my $item_usage;    if ( $opt{'project'} ) { @@ -518,6 +540,13 @@ sub cust_bill_pkg_detail {    push @where, 'cust_main.refnum = '. $opt{'refnum'} if $opt{'refnum'}; +  if ( $opt{'cust_classnum'} ) { +    my $classnums = $opt{'cust_classnum'}; +    $classnums = [ $classnums ] if !ref($classnums); +    @$classnums = grep /^\d+$/, @$classnums; +    push @where, 'cust_main.classnum in('. join(',',@$classnums) .')'; +  } +    $agentnum ||= $opt{'agentnum'};    push @where, @@ -657,6 +686,14 @@ sub for_opts {      if ( $opt{'refnum'} =~ /^(\d+)$/ ) {        $sql .= " and refnum = $1 ";      } +    if ( $opt{'cust_classnum'} ) { +      my $classnums = $opt{'cust_classnum'}; +      $classnums = [ $classnums ] if !ref($classnums); +      @$classnums = grep /^\d+$/, @$classnums; +      $sql .= ' and cust_main.classnum in('. join(',',@$classnums) .')' +        if @$classnums; +    } +      $sql;  } | 
