X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcust_bill.pm;h=96c1db7fb57934aaf89086e0b008faa0396e66f9;hb=efc68f41987d007de5e792b88df1c63bf3dedf4c;hp=7b05cadfa6188f1adb9ddaaa21d3ac590df06fcd;hpb=a8be11120336b0f1a8565f4abe4758f8211e1f5a;p=freeside.git diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 7b05cadfa..96c1db7fb 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -226,7 +226,12 @@ Returns the line items (see L) for this invoice. sub cust_bill_pkg { my $self = shift; - qsearch( 'cust_bill_pkg', { 'invnum' => $self->invnum } ); + qsearch( + { 'table' => 'cust_bill_pkg', + 'hashref' => { 'invnum' => $self->invnum }, + 'order_by' => 'ORDER BY billpkgnum', + } + ); } =item cust_pkg @@ -557,19 +562,27 @@ sub apply_payments_and_credits { } -=item generate_email PARAMHASH +=item generate_email OPTION => VALUE ... -PARAMHASH can contain the following: +Options: =over 4 -=item from => sender address, required +=item from + +sender address, required + +=item tempate -=item tempate => alternate template name, optional +alternate template name, optional -=item print_text => text attachment arrayref, optional +=item print_text -=item subject => email subject, optional +text attachment arrayref, optional + +=item subject + +email subject, optional =back @@ -1618,6 +1631,8 @@ L and L for conversion functions. cid - +unsquelch_cdr - overrides any per customer cdr squelching when true + =cut sub print_generic { @@ -2041,6 +2056,8 @@ sub print_generic { $options{'section'} = $section if $multisection; $options{'format'} = $format; $options{'escape_function'} = $escape_function; + $options{'format_function'} = sub { () } + unless $params{unsquelch_cdr} || $cust_main->squelch_cdr ne 'Y'; foreach my $line_item ( $self->_items_pkg(%options) ) { my $detail = { @@ -2148,8 +2165,8 @@ sub print_generic { ) ); if ( $multisection ) { - $adjust_section->{'pretotal'} = 'New charges total '. - $total->{'total_amount'}; + $adjust_section->{'pretotal'} = 'New charges total '. $other_money_char. + sprintf('%.2f', $self->charged ); }else{ push @total_items, $total; } @@ -2625,6 +2642,7 @@ sub _items_cust_bill_pkg { my $format = $opt{format} || ''; my $escape_function = $opt{escape_function} || sub { shift }; + my $format_function = $opt{format_function} || ''; my @b = (); foreach my $cust_bill_pkg ( @$cust_bill_pkg ) { @@ -2635,6 +2653,7 @@ sub _items_cust_bill_pkg { my %details_opt = ( 'format' => $format, 'escape_function' => $escape_function, + 'format_function' => $format_function, ); if ( $cust_bill_pkg->pkgnum > 0 ) { @@ -2664,8 +2683,8 @@ sub _items_cust_bill_pkg { my $description = $desc; unless ( $conf->exists('disable_line_item_date_ranges') ) { - $desc .= " (" . time2str("%x", $cust_bill_pkg->sdate). - " - ". time2str("%x", $cust_bill_pkg->edate). ")"; + $description .= " (" . time2str("%x", $cust_bill_pkg->sdate). + " - ". time2str("%x", $cust_bill_pkg->edate). ")"; } #at least until cust_bill_pkg has "past" ranges in addition to @@ -2674,6 +2693,7 @@ sub _items_cust_bill_pkg { $cust_pkg->h_labels_short($self->_date); #$cust_bill_pkg->edate, #$cust_bill_pkg->sdate), + @d = () if $cust_bill_pkg->itemdesc; push @d, $cust_bill_pkg->details(%details_opt); push @b, {