X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fstatus.html;h=2707803efc98d9b58a63c90098f642b4fdc78370;hb=38532144b08af1ae9e577c32ad1924e7c891b8c6;hp=f3b2faaf489b9cf4d732b31b2b19612b240a7e21;hpb=4396080ed2829ae0595f1fd777f39d090c9bcd7c;p=freeside.git diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html index f3b2faaf4..2707803ef 100644 --- a/httemplate/view/cust_main/packages/status.html +++ b/httemplate/view/cust_main/packages/status.html @@ -3,6 +3,10 @@ %#this should use cust_pkg->status and cust_pkg->statuscolor eventually +% if ( $cust_pkg->order_date ) { + <% pkg_status_row($cust_pkg, 'Ordered', 'order_date', %opt ) %> +% } + % if ( $cust_pkg->get('cancel') ) { #status: cancelled % my $cpr = $cust_pkg->last_cust_pkg_reason('cancel'); @@ -42,6 +46,10 @@ ) %> + <% pkg_status_row_noauto( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_discount( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + % unless ( $cust_pkg->get('setup') ) { <% pkg_status_row_colspan( $cust_pkg, 'Never billed', '', 'colspan'=>$colspan, %opt ) %> % } else { @@ -50,8 +58,11 @@ <% pkg_status_row_changed( $cust_pkg, %opt, 'colspan'=>$colspan ) %> <% pkg_status_row_if( $cust_pkg, $last_bill_or_renewed, 'last_bill', %opt, curuser=>$curuser ) %> -% # pkg_status_row($cust_pkg, 'Next bill', 'bill', %opt) +% if ( $part_pkg->option('suspend_bill', 1) ) { + <% pkg_status_row_if( $cust_pkg, 'Next bill', 'bill', %opt, curuser=>$curuser ) %> +% } <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', %opt, curuser=>$curuser ) %> + <% pkg_status_row_if( $cust_pkg, 'Contract ends', 'contract_end', %opt ) %> > @@ -70,11 +81,21 @@ % % unless ( $cust_pkg->get('setup') ) { #not setup % -% unless ( $part_pkg->freq ) { +% unless ( $part_pkg->freq ) { <% 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) %> + <% pkg_status_row_noauto( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_discount( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_if( + $cust_pkg, + ( $part_pkg->freq ? 'Start billing' : 'Bill on' ), + 'start_date', + %opt + ) + %> > @@ -88,7 +109,11 @@ % } else { - <% pkg_status_row_colspan($cust_pkg, "Not yet billed ($billed_or_prepaid ". myfreq($part_pkg). ')', '', 'colspan'=>$colspan, %opt ) %> + <% pkg_status_row_colspan($cust_pkg, "Not yet billed ($billed_or_prepaid ". myfreq($part_pkg). ')', '', 'colspan'=>$colspan, %opt ) %> + + <% pkg_status_row_noauto( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_discount( $cust_pkg, %opt, 'colspan'=>$colspan ) %> <% pkg_status_row_if($cust_pkg, 'Start billing', 'start_date', %opt) %> @@ -102,6 +127,10 @@ <% pkg_status_row($cust_pkg, 'Billed', 'setup', %opt) %> + <% pkg_status_row_noauto( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_discount( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + % } else { % % if (scalar($cust_pkg->overlimit)) { @@ -124,6 +153,10 @@ %> % } + <% pkg_status_row_noauto( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + + <% pkg_status_row_discount( $cust_pkg, %opt, 'colspan'=>$colspan ) %> + <% pkg_status_row($cust_pkg, 'Setup', 'setup', %opt) %> % } @@ -141,6 +174,7 @@ <% pkg_status_row_if($cust_pkg, 'Will automatically suspend by', 'autosuspend', %opt) %> <% pkg_status_row_if( $cust_pkg, 'Will suspend on', 'adjourn', %opt, curuser=>$curuser ) %> <% pkg_status_row_if( $cust_pkg, 'Expires', 'expire', %opt, curuser=>$curuser ) %> + <% pkg_status_row_if( $cust_pkg, 'Contract ends', 'contract_end', %opt ) %> % if ( $part_pkg->freq ) { @@ -267,12 +301,61 @@ sub pkg_status_row_changed { 'size' => '-1', 'align' => 'right', 'colspan' => $opt{'colspan'}, + #%opt, ); } $html; } +sub pkg_status_row_noauto { + my( $cust_pkg, %opt ) = @_; + my $part_pkg = $opt{'part_pkg'}; + return '' unless $cust_pkg->no_auto || $part_pkg->no_auto; + + #inefficient, should be passed in + my $cust_main = $cust_pkg->cust_main; + + return '' unless $cust_main->payby =~ /^(CARD|CHEK)$/; + my $what = lc(FS::payby->shortname($cust_main->payby)); + + pkg_status_row_colspan( $cust_pkg, "No automatic $what charge", '', + 'colspan' => $opt{'colspan'}, + #%opt, + ); +} + +sub pkg_status_row_discount { + my( $cust_pkg, %opt ) = @_; + + my $html; + + foreach my $cust_pkg_discount ( $cust_pkg->cust_pkg_discount_active ) { + + my $discount = $cust_pkg_discount->discount; + + my $label = 'Discount: '. $discount->description; + if ( $discount->months ) { + my $remaining = $discount->months - $cust_pkg_discount->months_used; + $remaining = sprintf('%.2f', $remaining) if $remaining =~ /\./; + $label .= " ($remaining months remaining)" + } + + $label .= ' ('. + 'remove discount)'; + + $html .= pkg_status_row_colspan( $cust_pkg, $label, '', + 'colspan' => $opt{'colspan'}, + #%opt, + ); + + } + + $html; +} + sub pkg_status_row_colspan { my($cust_pkg, $title, $addl, %opt) = @_;