diff options
| author | ivan <ivan> | 2009-07-30 06:42:33 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2009-07-30 06:42:33 +0000 | 
| commit | 4396080ed2829ae0595f1fd777f39d090c9bcd7c (patch) | |
| tree | bf0b7e0fb2437873447d79d3c1291d62902c3be1 /httemplate/view/cust_main | |
| parent | 50f5d60aef5ee82be33c978db6424372bfd7995b (diff) | |
experimental package balances, RT#4339
Diffstat (limited to 'httemplate/view/cust_main')
| -rwxr-xr-x | httemplate/view/cust_main/packages.html | 3 | ||||
| -rw-r--r-- | httemplate/view/cust_main/packages/status.html | 43 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history.html | 13 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history/credit.html | 14 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history/payment.html | 14 | ||||
| -rw-r--r-- | httemplate/view/cust_main/payment_history/voided_payment.html | 5 | 
6 files changed, 66 insertions, 26 deletions
| diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html index 428794b7d..8fbefae50 100755 --- a/httemplate/view/cust_main/packages.html +++ b/httemplate/view/cust_main/packages.html @@ -138,6 +138,9 @@ my %conf_opt = (    #for status.html    'cust_pkg-show_autosuspend' => $conf->exists('cust_pkg-show_autosuspend'), +  #for status.html pkg-balances +  'pkg-balances'              => $conf->exists('pkg-balances'), +  'money_char'                => ( $conf->config('money_char') || '$' ),    #for location.html    'countrydefault'            => $countrydefault, diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html index 6daff5031..f3b2faaf4 100644 --- a/httemplate/view/cust_main/packages/status.html +++ b/httemplate/view/cust_main/packages/status.html @@ -8,15 +8,16 @@      <% pkg_status_row($cust_pkg, 'Cancelled', 'cancel', 'color'=>'FF0000', %opt ) %> -    <% pkg_status_row_colspan( +    <% pkg_status_row_colspan( $cust_pkg,           ( $cpr ? $cpr->reasontext. ' by '. $cpr->otaker : '' ), '',           'align'=>'right', 'color'=>'ff0000', 'size'=>'-2', 'colspan'=>$colspan, +         %opt         )      %>  %   unless ( $cust_pkg->get('setup') ) {  -        <% pkg_status_row_colspan('Never billed', '', 'colspan'=>$colspan, ) %> +        <% pkg_status_row_colspan( $cust_pkg, 'Never billed', '', 'colspan'=>$colspan, %opt, ) %>  %   } else {  @@ -34,14 +35,15 @@      <% pkg_status_row( $cust_pkg, 'Suspended', 'susp', 'color'=>'FF9900', %opt ) %> -    <% pkg_status_row_colspan( +    <% pkg_status_row_colspan( $cust_pkg,           ( $cpr ? $cpr->reasontext. ' by '. $cpr->otaker : '' ), '',           'align'=>'right', 'color'=>'FF9900', 'size'=>'-2', 'colspan'=>$colspan, +         %opt,         )      %>  %   unless ( $cust_pkg->get('setup') ) {  -      <% pkg_status_row_colspan('Never billed', '', 'colspan'=>$colspan ) %> +      <% pkg_status_row_colspan( $cust_pkg, 'Never billed', '', 'colspan'=>$colspan, %opt ) %>  %   } else {         <% pkg_status_row($cust_pkg, 'Setup', 'setup', %opt ) %>  %   }  @@ -70,7 +72,7 @@  %  %       unless ( $part_pkg->freq ) {  -          <% pkg_status_row_colspan('Not yet billed (one-time charge)', '', 'colspan'=>$colspan, ) %> +          <% pkg_status_row_colspan( $cust_pkg, 'Not yet billed (one-time charge)', '', 'colspan'=>$colspan, %opt ) %>            <% pkg_status_row_if($cust_pkg, 'Start billing', 'start_date', %opt) %> @@ -86,7 +88,7 @@  %       } else {  -         <% pkg_status_row_colspan("Not yet billed ($billed_or_prepaid ". myfreq($part_pkg). ')', '', 'colspan'=>$colspan ) %> +         <% pkg_status_row_colspan($cust_pkg, "Not yet billed ($billed_or_prepaid ". myfreq($part_pkg). ')', '', 'colspan'=>$colspan, %opt ) %>            <% pkg_status_row_if($cust_pkg, 'Start billing', 'start_date', %opt) %> @@ -96,7 +98,7 @@  %  %       unless ( $part_pkg->freq ) {  -          <% pkg_status_row_colspan('One-time charge', '', 'colspan'=>$colspan, ) %> +          <% pkg_status_row_colspan($cust_pkg, 'One-time charge', '', 'colspan'=>$colspan, %opt ) %>            <% pkg_status_row($cust_pkg, 'Billed', 'setup', %opt) %> @@ -104,18 +106,20 @@  %  %         if (scalar($cust_pkg->overlimit)) { -            <% pkg_status_row_colspan( +            <% pkg_status_row_colspan( $cust_pkg,                   'Overlimit',                   $billed_or_prepaid. ' '. myfreq($part_pkg),                   'color'=>'FFD000', 'colspan'=>$colspan, +                 %opt                 )              %>  %         } else { -            <% pkg_status_row_colspan( +            <% pkg_status_row_colspan( $cust_pkg,                   'Active',                   $billed_or_prepaid. ' '. myfreq($part_pkg),                   'color'=>'00CC00', 'colspan'=>$colspan, +                 %opt                 )              %>  %         }  @@ -169,7 +173,6 @@    </TABLE>  </TD> -  <%init>  my %opt = @_; @@ -218,8 +221,15 @@ sub pkg_status_row {    $html   .= qq(<FONT COLOR="#$color"><B>) if length($color);    $html   .= qq($title );    $html   .= qq(</B></FONT>) if length($color); + +  if ( $opt{'pkg_balances'} && ! $cust_pkg->{_printed_balance}++ ) { #kludge +    $html .= ' (Balance: <B>'. $opt{'money_char'}. +             $cust_pkg->cust_main->balance_pkgnum($cust_pkg->pkgnum). +             '</B>)'; +  } +    $html   .= qq(</TD>); -  $html   .= pkg_datestr($cust_pkg, $field, %opt).'</TR>'; +  $html   .= pkg_datestr($cust_pkg, $field, %opt). '</TR>';    $html;  } @@ -253,7 +263,7 @@ sub pkg_status_row_changed {      my $part_pkg = $old->part_pkg;      my $label = 'Changed from '. $cust_pkg->change_pkgnum. ': '.                  $part_pkg->pkg_comment(nopartpkg => 1); -    $html .= pkg_status_row_colspan( $label, '', +    $html .= pkg_status_row_colspan( $cust_pkg, $label, '',                                       'size'    => '-1',                                       'align'   => 'right',                                       'colspan' => $opt{'colspan'}, @@ -264,7 +274,7 @@ sub pkg_status_row_changed {  }  sub pkg_status_row_colspan { -  my($title, $addl, %opt) = @_; +  my($cust_pkg, $title, $addl, %opt) = @_;    my $colspan  = $opt{'colspan'}; @@ -279,6 +289,13 @@ sub pkg_status_row_colspan {    $html   .= qq(</B>) if $color && !$size;    $html   .= qq(</FONT>) if length($color) || $size;    $html   .= ", $addl" if length($addl); + +  if ( $opt{'pkg-balances'} && ! $cust_pkg->{_printed_balance}++ ) { #kludge +    $html .= ' (Balance: <B>'. $opt{'money_char'}. +             $cust_pkg->cust_main->balance_pkgnum($cust_pkg->pkgnum). +             '</B>)'; +  } +    $html   .= qq(</TD></TR>);    $html; diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index 1711e1449..8adc95426 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -374,13 +374,16 @@ my %status = (  #get payment history  my @history = (); -my %opt = +my %opt = (    ( map { $_ => scalar($conf->config($_)) }          qw( card_refund-days )    ),    ( map { $_ => $conf->exists($_) }  -        qw( deletepayments deleterefunds ) -  ); +        qw( deletepayments deleterefunds pkg-balances ) +  ) +); + +warn Dumper(\%opt);  #invoices  foreach my $cust_bill ($cust_main->cust_bill) { @@ -405,7 +408,7 @@ foreach my $cust_pay ($cust_main->cust_pay) {  foreach my $cust_pay_void ($cust_main->cust_pay_void) {    push @history, {      'date'   => $cust_pay_void->_date, -    'desc'   => include('payment_history/voided_payment.html', $cust_pay_void), +    'desc'   => include('payment_history/voided_payment.html', $cust_pay_void, %opt ),      'void_payment' => $cust_pay_void->paid,    }; @@ -415,7 +418,7 @@ foreach my $cust_pay_void ($cust_main->cust_pay_void) {  foreach my $cust_credit ($cust_main->cust_credit) {    push @history, {      'date'   => $cust_credit->_date, -    'desc'   => include('payment_history/credit.html', $cust_credit), +    'desc'   => include('payment_history/credit.html', $cust_credit, %opt ),      'credit' => $cust_credit->amount,    }; diff --git a/httemplate/view/cust_main/payment_history/credit.html b/httemplate/view/cust_main/payment_history/credit.html index 2deb27564..058c6f536 100644 --- a/httemplate/view/cust_main/payment_history/credit.html +++ b/httemplate/view/cust_main/payment_history/credit.html @@ -9,7 +9,13 @@ my $curuser = $FS::CurrentUser::CurrentUser;  my @cust_credit_bill = $cust_credit->cust_credit_bill;  my @cust_credit_refund = $cust_credit->cust_credit_refund; -my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' ); +my $desc = ''; +if ( $opt{'pkg-balances'} && $cust_credit->pkgnum ) { +  my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_credit->pkgnum } ); +  $desc .= ' for '. $cust_pkg->pkg_label_long; +} + +my( $pre, $post, $apply, $ext ) = ( '', '', '', '' );  if (    scalar(@cust_credit_bill)   == 0       && scalar(@cust_credit_refund) == 0 ) {    #completely unapplied @@ -45,15 +51,15 @@ if (    scalar(@cust_credit_bill)   == 0            && scalar(@cust_credit_refund) == 0            && $cust_credit->credited == 0      ) {    #applied to one invoice, the usual situation -  $desc = ' '. $cust_credit_bill[0]->applied_to_invoice; +  $desc .= ' '. $cust_credit_bill[0]->applied_to_invoice;  } elsif (    scalar(@cust_credit_bill)   == 0            && scalar(@cust_credit_refund) == 1            && $cust_credit->credited == 0      ) {    #applied to one refund -  $desc = ' refunded on '.  time2str("%D", $cust_credit_refund[0]->_date); +  $desc .= ' refunded on '.  time2str("%D", $cust_credit_refund[0]->_date);  } else {    #complicated -  $desc = '<BR>'; +  $desc .= '<BR>';    foreach my $app ( sort { $a->_date <=> $b->_date }                           ( @cust_credit_bill, @cust_credit_refund ) ) {      if ( $app->isa('FS::cust_credit_bill') ) { diff --git a/httemplate/view/cust_main/payment_history/payment.html b/httemplate/view/cust_main/payment_history/payment.html index 2e24b1785..a4a349bb8 100644 --- a/httemplate/view/cust_main/payment_history/payment.html +++ b/httemplate/view/cust_main/payment_history/payment.html @@ -32,7 +32,13 @@ $payby =~ s/^MCRD$/Manual credit card/;  $payby =~ s/^BILL$//;  my $info = $payby ? "($payby$payinfo)" : ''; -my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' ); +my $desc = ''; +if ( $opt{'pkg-balances'} && $cust_pay->pkgnum ) { +  my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay->pkgnum } ); +  $desc .= ' for '. $cust_pkg->pkg_label_long; +} + +my( $pre, $post, $apply, $ext ) = ( '', '', '', '' );  if (    scalar(@cust_bill_pay)   == 0       && scalar(@cust_pay_refund) == 0 ) {    #completely unapplied @@ -68,15 +74,15 @@ if (    scalar(@cust_bill_pay)   == 0            && scalar(@cust_pay_refund) == 0            && $cust_pay->unapplied == 0     ) {    #applied to one invoice, the usual situation -  $desc = ' '. $cust_bill_pay[0]->applied_to_invoice; +  $desc .= ' '. $cust_bill_pay[0]->applied_to_invoice;  } elsif (    scalar(@cust_bill_pay)   == 0            && scalar(@cust_pay_refund) == 1            && $cust_pay->unapplied == 0     ) {    #applied to one refund -  $desc = ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date); +  $desc .= ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date);  } else {    #complicated -  $desc = '<BR>'; +  $desc .= '<BR>';    foreach my $app ( sort { $a->_date <=> $b->_date }                           ( @cust_bill_pay, @cust_pay_refund ) ) {      if ( $app->isa('FS::cust_bill_pay') ) { diff --git a/httemplate/view/cust_main/payment_history/voided_payment.html b/httemplate/view/cust_main/payment_history/voided_payment.html index 9cbc47b66..08469dbe9 100644 --- a/httemplate/view/cust_main/payment_history/voided_payment.html +++ b/httemplate/view/cust_main/payment_history/voided_payment.html @@ -18,6 +18,11 @@ $payby =~ s/^BILL$//;  $payby =~ s/^(CARD|COMP)$/$1 /;  my $info = $payby ? " ($payby$payinfo)" : ''; +if ( $opt{'pkg-balances'} && $cust_pay_void->pkgnum ) { +  my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay_void->pkgnum } ); +  $info .= ' for '. $cust_pkg->pkg_label_long; +} +  my $unvoid = '';  if ( $cust_pay_void->closed !~ /^Y/i       && $curuser->access_right('Unvoid') | 
