X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FTemplate_Mixin.pm;h=12a0e7c0661071eb110e2a1906d6f844830ae1db;hb=7a1f0f2c760932b4a7d3732a298fce0570f3fe7d;hp=ed4bb62737db73f596e9fe68b5593288e78438ef;hpb=6bed58c0b8187d22efb7cd0aba9d62b6a3b4ca32;p=freeside.git diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index ed4bb6273..12a0e7c06 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); } @@ -2409,6 +2417,7 @@ sub postal_mail_fsinc { 'ssl_opts' => { verify_hostname => 0, SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE, + SSL_version => 'SSLv3', } ); my $response = $ua->request( POST $url, [ @@ -2442,7 +2451,8 @@ sub postal_mail_fsinc { 'country' => $bill_location->country, ]); - die "Print connection error: ". $response->message. "\n" + die "Print connection error: ". $response->message. + ' ('. $response->as_string. ")\n" unless $response->is_success; local $@; @@ -3177,7 +3187,9 @@ sub _items_cust_bill_pkg { # for location labels: use default location on the invoice date my $default_locationnum; - if ( $self->custnum ) { + if ( $conf->exists('invoice-all_pkg_addresses') ) { + $default_locationnum = 0; # treat them all as non-default + } elsif ( $self->custnum ) { my $h_cust_main; my @h_search = FS::h_cust_main->sql_h_search($self->_date); $h_cust_main = qsearchs({