From f8eee0da9fb100baefa20fb8e4ef0e8a02c6382f Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 3 Nov 2017 09:35:16 -0700 Subject: more v4 taxes vs. fees, RT#78395 --- FS/FS/cust_bill_pkg.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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; -- cgit v1.2.1 From dfe18a92acfb091dca8fdd79e329616bfc1af323 Mon Sep 17 00:00:00 2001 From: Nick Logan Date: Fri, 3 Nov 2017 17:46:29 +0000 Subject: RT# 74452 - address code format change request - Wrap at col 80 for new code - Use the more familiar destructive search-and-replace instead of the non-destructive inline search and replace (s///r) from 5.14. - Explicitly return. --- FS/FS/part_event/Condition/has_referral_custnum.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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; -- cgit v1.2.1 From 7aaa671f8ddf3652f1865ce34bde0c05c040dbaf Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Wed, 8 Nov 2017 08:00:43 -0800 Subject: scalability: always reap children, RT#78270 --- FS/FS/Misc.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 4d9d57beb..669c44e70 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -732,6 +732,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 +791,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 +875,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 +965,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"; -- cgit v1.2.1 From 8036d190629e546818b7418938b4e8fcda3f16a8 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Thu, 9 Nov 2017 14:39:13 -0800 Subject: Email::Sender::Transport::SMTP::TLS is obsolete and being removed from debian, Email::Sender::Transport::SMTP does starttls starting with deb9 "stretch" --- FS/FS/Misc.pm | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 669c44e70..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,17 +248,17 @@ 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 -- cgit v1.2.1