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 );
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;
}
# (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);
}
# 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);
# 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);