X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcust_pay.pm;h=3e368f6ca932cdd30b5922a52a9074a53ffd0e84;hb=6a56250efed2a118b2cebaedb4110c4323cd0f4f;hp=285ab3f3ce72044308f051df07b550ed9c9d47d6;hpb=0bc6f2a95309807cc9372a6be3a36d5e8b3485d8;p=freeside.git diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm index 285ab3f3c..3e368f6ca 100644 --- a/FS/FS/cust_pay.pm +++ b/FS/FS/cust_pay.pm @@ -227,6 +227,8 @@ sub insert { local $FS::UID::AutoCommit = 0; my $dbh = dbh; + my $conf = new FS::Conf; + my $cust_bill; if ( $self->invnum ) { $cust_bill = qsearchs('cust_bill', { 'invnum' => $self->invnum } ) @@ -652,6 +654,8 @@ sub send_receipt { return '' unless $conf->config_bool('payment_receipt', $cust_main->agentnum); + return '' if ($conf->config_bool('allow_payment_receipt_noemail', $cust_main->agentnum) && $cust_main->paymentreceipt_noemail); + my @invoicing_list = $cust_main->invoicing_list_emailonly; return '' unless @invoicing_list; @@ -664,11 +668,12 @@ sub send_receipt { || ! $cust_bill ) { + $error = $self->send_message_receipt( 'cust_main' => $cust_main, 'cust_bill' => $opt->{cust_bill}, 'cust_pkg' => $opt->{cust_pkg}, - 'invoicing_list' => @invoicing_list, + 'invoicing_list' => \@invoicing_list, 'msgnum' => $conf->config('payment_receipt_msgnum', $cust_main->agentnum) ); @@ -705,9 +710,6 @@ sub send_receipt { $error = $queue->insert(%opt); } - - - } warn "send_receipt: $error\n" if $error; @@ -716,7 +718,13 @@ sub send_receipt { =item send_message_receipt sends out a message receipt. -send_message_receipt($cust_main, $msgnum); +$error = $self->send_message_receipt( + 'cust_main' => $cust_main, + 'cust_bill' => $opt->{cust_bill}, + 'cust_pkg' => $opt->{cust_pkg}, + 'invoicing_list' => \@invoicing_list, + 'msgnum' => $conf->config('payment_receipt_msgnum', $cust_main->agentnum) + ); =cut @@ -725,7 +733,7 @@ sub send_message_receipt { my $cust_main = $opt{'cust_main'}; my $cust_bill = $opt{'cust_bill'}; my $cust_pkg = $opt{'cust_pkg'}; - my @invoicing_list = $opt{'invoicing_list'}; + my @invoicing_list = ref($opt{'invoicing_list'}) ? @{ $opt{'invoicing_list'} } : ( $opt{'invoicing_list'} ); my $msgnum = $opt{'msgnum'}; my $error = ''; @@ -734,6 +742,11 @@ sub send_message_receipt { my %substitutions = (); $substitutions{invnum} = $cust_bill->invnum if $cust_bill; + my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum}); + unless ($msg_template) { + return "send_receipt could not load msg_template"; + } + my $queue = new FS::queue { 'job' => 'FS::Misc::process_send_email', 'paynum' => $self->paynum, @@ -754,8 +767,7 @@ sub send_message_receipt { TYPE => 'ARRAY', SOURCE => [ map "$_\n", $conf->config('payment_receipt_email') ], ) or do { - warn "can't create payment receipt template: $Text::Template::ERROR"; - return ''; + return "can't create payment receipt template: $Text::Template::ERROR"; }; my $payby = $self->payby; @@ -800,8 +812,7 @@ sub send_message_receipt { 'body' => [ $receipt_template->fill_in( HASH => \%fill_in ) ], ); } else { - warn "payment_receipt is on, but no payment_receipt_msgnum\n"; - $error = "payment_receipt is on, but no payment_receipt_msgnum"; + $error = "payment_receipt is on, but no payment_receipt_msgnum\n"; } return $error;