#not manual and no noemail flag (here or on the customer)
} elsif ( ! $opt->{'noemail'} && ! $cust_main->invoice_noemail ) {
- my $queue = new FS::queue {
- 'job' => 'FS::cust_bill::queueable_email',
- 'paynum' => $self->paynum,
- 'custnum' => $cust_main->custnum,
- };
+ # check to see if they want to send specific message template as receipt for auto payments
+ my $msgnum = $conf->config('payment_receipt_msgnum_auto', $cust_main->agentnum);
+ if ( $msgnum ) {
- my %opt = (
- 'invnum' => $cust_bill->invnum,
- 'no_coupon' => 1,
- );
+ my %substitutions = ();
+ $substitutions{invnum} = $opt->{cust_bill}->invnum if $opt->{cust_bill};
+
+ my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum});
+ unless ($msg_template) {
+ warn "send_receipt could not load msg_template";
+ return;
+ }
+
+ my $cust_msg = $msg_template->prepare(
+ 'cust_main' => $cust_main,
+ 'object' => $self,
+ 'from_config' => 'payment_receipt_from',
+ 'substitutions' => \%substitutions,
+ 'msgtype' => 'receipt',
+ );
+ $error = $cust_msg ? $cust_msg->insert : 'error preparing msg_template';
+ if ($error) {
+ warn "send_receipt: $error";
+ return;
+ }
+
+ my $queue = new FS::queue {
+ 'job' => 'FS::cust_msg::process_send',
+ 'paynum' => $self->paynum,
+ 'custnum' => $cust_main->custnum,
+ };
+ $error = $queue->insert( $cust_msg->custmsgnum );
- if ( my $mode = $conf->config('payment_receipt_statement_mode') ) {
- $opt{'mode'} = $mode;
- } else {
- # backward compatibility, no good fix for this yet as some people may
- # still have "invoice_latex_statement" and such options
- $opt{'template'} = 'statement';
- $opt{'notice_name'} = 'Statement';
}
+ else {
+ my $queue = new FS::queue {
+ 'job' => 'FS::cust_bill::queueable_email',
+ 'paynum' => $self->paynum,
+ 'custnum' => $cust_main->custnum,
+ };
+
+ my %opt = (
+ 'invnum' => $cust_bill->invnum,
+ 'no_coupon' => 1,
+ );
+
+ if ( my $mode = $conf->config('payment_receipt_statement_mode') ) {
+ $opt{'mode'} = $mode;
+ } else {
+ # backward compatibility, no good fix for this yet as some people may
+ # still have "invoice_latex_statement" and such options
+ $opt{'template'} = 'statement';
+ $opt{'notice_name'} = 'Statement';
+ }
+
+ $error = $queue->insert(%opt);
+ }
+
- $error = $queue->insert(%opt);
}
};
}
+=item SSAPI_getinfo
+
+=cut
+
+sub SSAPI_getinfo {
+ #my( $self, %opt ) = @_;
+ my $self = shift;
+
+ +{ 'paynum' => $self->paynum,
+ '_date' => $self->_date,
+ 'date' => time2str("%b %o, %Y", $self->_date),
+ 'date_short' => time2str("%m-%d-%Y", $self->_date),
+ 'paid' => sprintf('%.2f', $self->paid),
+ 'payby' => $self->payby,
+ 'paycardtype' => $self->paycardtype,
+ 'paymask' => $self->paymask,
+ 'processor' => $self->processor,
+ 'auth' => $self->auth,
+ 'order_number' => $self->order_number,
+ };
+
+}
+
+
# _upgrade_data
#
# Used by FS::Upgrade to migrate to a new database.