X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FTemplate_Mixin.pm;h=8734a78b4a1038fdc1e777f3e638128a51ab3199;hb=01f9e027252b87d21c76b8dad737a761e61bb1f7;hp=b197c6ce20d16cbcbccf37854e5a8e1b40b2084a;hpb=7773547423c9cd0e8ac7915de58daacbec7ccf09;p=freeside.git diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index b197c6ce2..8734a78b4 100644 --- a/FS/FS/Template_Mixin.pm +++ b/FS/FS/Template_Mixin.pm @@ -10,6 +10,7 @@ use vars qw( $invoice_lines @buf ); #yuck use List::Util qw(sum); #can't import first, it conflicts with cust_main.first use Date::Format; use Date::Language; +use Time::Local qw( timelocal ); use Text::Template 1.20; use File::Temp 0.14; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); @@ -1919,6 +1920,12 @@ sub due_date { my $duedate = ''; if ( $self->terms =~ /^\s*Net\s*(\d+)\s*$/ ) { $duedate = $self->_date() + ( $1 * 86400 ); + } elsif ( $self->terms =~ /^End of Month$/ ) { + my ($mon,$year) = (localtime($self->_date) )[4,5]; + $mon++; + until ( $mon < 12 ) { $mon -= 12; $year++; } + my $nextmonth_first = timelocal(0,0,0,1,$mon,$year); + $duedate = $nextmonth_first - 86400; } $duedate; } @@ -1947,7 +1954,8 @@ sub balance_due_msg { # (yes, or if invoice_sections is enabled; this is just for compatibility) if ( $self->due_date ) { $msg .= ' - ' . $self->mt('Please pay by'). ' '. - $self->due_date2str('short'); + $self->due_date2str('short') + unless $self->conf->config_bool('invoice_omit_due_date',$self->agentnum); } elsif ( $self->terms ) { $msg .= ' - '. $self->mt($self->terms); } @@ -3396,7 +3404,7 @@ sub _items_cust_bill_pkg { # location, and we're not grouping items by location already if ( $cust_pkg->locationnum != $default_locationnum and !defined($locationnum) ) { - my $loc = $cust_pkg->location_label(no_prefix => 1); + my $loc = $cust_pkg->location_label; $loc = substr($loc, 0, $maxlength). '...' if $format eq 'latex' && length($loc) > $maxlength; push @d, &{$escape_function}($loc); @@ -3506,7 +3514,7 @@ sub _items_cust_bill_pkg { # location, and we're not grouping items by location already if ( $cust_pkg->locationnum != $default_locationnum and !defined($locationnum) ) { - my $loc = $cust_pkg->location_label(no_prefix => 1); + my $loc = $cust_pkg->location_label; $loc = substr($loc, 0, $maxlength). '...' if $format eq 'latex' && length($loc) > $maxlength; push @d, &{$escape_function}($loc);