summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2017-11-15 22:27:47 -0500
committerChristopher Burger <burgerc@freeside.biz>2017-11-15 22:27:47 -0500
commitf228534e7bc57e615657d6a8b9c09069f34f914e (patch)
tree2f899c47394ed9140fc2a0ac5676bf18dccb316f
parent679da2cb45e49797636f722abc52d41ee273ba00 (diff)
parent8036d190629e546818b7418938b4e8fcda3f16a8 (diff)
Merge branch 'master' of ssh://git.freeside.biz/home/git/freeside
-rw-r--r--FS/FS/Misc.pm28
-rw-r--r--FS/FS/cust_bill_pkg.pm9
-rw-r--r--FS/FS/part_event/Condition/has_referral_custnum.pm18
3 files changed, 34 insertions, 21 deletions
diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm
index 4d9d57beb..0e366e8c7 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -109,8 +109,7 @@ use vars qw( $conf );
use Date::Format;
use MIME::Entity;
use Email::Sender::Simple qw(sendmail);
-use Email::Sender::Transport::SMTP;
-use Email::Sender::Transport::SMTP::TLS 0.11;
+use Email::Sender::Transport::SMTP 1.300027; #for SSL/TLS support
use FS::UID;
FS::UID->install_callback( sub {
@@ -249,18 +248,18 @@ sub send_email {
my($port, $enc) = split('-', ($conf->config('smtp-encryption') || '25') );
$smtp_opt{'port'} = $port;
- my $transport;
if ( defined($enc) && $enc eq 'starttls' ) {
- $smtp_opt{$_} = $conf->config("smtp-$_") for qw(username password);
- $transport = Email::Sender::Transport::SMTP::TLS->new( %smtp_opt );
- } else {
- if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) {
- $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password);
- }
- $smtp_opt{'ssl'} = 1 if defined($enc) && $enc eq 'tls';
- $transport = Email::Sender::Transport::SMTP->new( %smtp_opt );
+ $smtp_opt{'ssl'} = 'starttls';
+ } elsif ( defined($enc) && $enc eq 'tls' ) {
+ $smtp_opt{'ssl'} = 'ssl';
+ }
+
+ if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) {
+ $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password);
}
+ my $transport = Email::Sender::Transport::SMTP->new( %smtp_opt );
+
push @to, $options{bcc} if defined($options{bcc});
# fully unpack all addresses found in @to (including Bcc) to make the
# envelope list
@@ -732,6 +731,8 @@ sub generate_ps {
my $papersize = $conf->config('papersize') || 'letter';
+ local($SIG{CHLD}) = sub {};
+
system('dvips', '-q', '-t', $papersize, "$file.dvi", '-o', "$file.ps" ) == 0
or die "dvips failed";
@@ -789,6 +790,8 @@ sub generate_pdf {
#system('dvipdf', "$file.dvi", "$file.pdf" );
my $papersize = $conf->config('papersize') || 'letter';
+ local($SIG{CHLD}) = sub {};
+
system(
"dvips -q -f $sfile.dvi -t $papersize ".
"| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
@@ -871,6 +874,7 @@ sub do_print {
: $conf->config('lpr', $opt{'agentnum'} );
my $outerr = '';
+ local($SIG{CHLD}) = sub {};
run3 $lpr, $data, \$outerr, \$outerr;
if ( $? ) {
$outerr = ": $outerr" if length($outerr);
@@ -960,6 +964,8 @@ sub ocr_image {
print $fh $logo_data;
close $fh;
+ local($SIG{CHLD}) = sub {};
+
run( [qw(ocroscript recognize), $filename], '>'=>"$filename.hocr" )
or die "ocroscript recognize failed\n";
diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm
index a1762e471..e44a84709 100644
--- a/FS/FS/cust_bill_pkg.pm
+++ b/FS/FS/cust_bill_pkg.pm
@@ -1189,9 +1189,12 @@ sub tax_location {
if ( $self->pkgnum ) { # normal sales
return $self->cust_pkg->tax_location;
} elsif ( $self->feepart ) { # fees
- my $custnum = $self->fee_origin->custnum;
- if ( $custnum ) {
- return FS::cust_main->by_key($custnum)->ship_location;
+ my $fee_origin = $self->fee_origin;
+ if ( $fee_origin ) {
+ my $custnum = $fee_origin->custnum;
+ if ( $custnum ) {
+ return FS::cust_main->by_key($custnum)->ship_location;
+ }
}
} else { # taxes
return;
diff --git a/FS/FS/part_event/Condition/has_referral_custnum.pm b/FS/FS/part_event/Condition/has_referral_custnum.pm
index 564c6524b..007ce4548 100644
--- a/FS/FS/part_event/Condition/has_referral_custnum.pm
+++ b/FS/FS/part_event/Condition/has_referral_custnum.pm
@@ -1,6 +1,5 @@
package FS::part_event::Condition::has_referral_custnum;
-use v5.14;
use strict;
use FS::cust_main;
@@ -61,14 +60,19 @@ sub condition {
sub condition_sql {
my( $class, $table, %opt ) = @_;
- my $age = $class->condition_sql_option_age_from('age', $opt{'time'});
- my $balance_sql = FS::cust_main->balance_sql( $age ) =~ s/cust_main.custnum/cust_main.referral_custnum/r;
- my $balance_date_sql = FS::cust_main->balance_date_sql =~ s/cust_main.custnum/cust_main.referral_custnum/r;
- my $active_sql = FS::cust_main->active_sql =~ s/cust_main.custnum/cust_main.referral_custnum/r;
+ my $age = $class->condition_sql_option_age_from('age', $opt{'time'});
+ my $balance_sql = FS::cust_main->balance_sql( $age );
+ my $balance_date_sql = FS::cust_main->balance_date_sql;
+ my $active_sql = FS::cust_main->active_sql;
+ $balance_sql =~ s/cust_main.custnum/cust_main.referral_custnum/;
+ $balance_date_sql =~ s/cust_main.custnum/cust_main.referral_custnum/;
+ $active_sql =~ s/cust_main.custnum/cust_main.referral_custnum/;
my $sql = "cust_main.referral_custnum IS NOT NULL".
- " AND ( ". $class->condition_sql_option('active') . " IS NULL OR $active_sql )".
- " AND ( $balance_date_sql <= $balance_sql )";
+ " AND (".$class->condition_sql_option('active')." IS NULL OR $active_sql)".
+ " AND ($balance_date_sql <= $balance_sql)";
+
+ return $sql;
}
1;