X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcust_refund.pm;h=d156d22a883719cf3b02c78eaaed6ab69e2bed93;hb=249f7d6cf45f8df5679ac36fc28dd8376e695496;hp=7df7a557a7b4e163f77736f11e0dc02b1258fb60;hpb=0fb307c305e4bc2c9c27dc25a3308beae3a4d33c;p=freeside.git diff --git a/FS/FS/cust_refund.pm b/FS/FS/cust_refund.pm index 7df7a557a..d156d22a8 100644 --- a/FS/FS/cust_refund.pm +++ b/FS/FS/cust_refund.pm @@ -14,6 +14,7 @@ use FS::cust_pay_refund; use FS::cust_main; @encrypted_fields = ('payinfo'); +sub nohistory_fields { ('payinfo'); } =head1 NAME @@ -87,6 +88,11 @@ order taker (see L books closed flag, empty or `Y' +=item gatewaynum, processor, auth, order_number + +Same as for L, but specifically the result of realtime +authorization of the refund. + =back =head1 METHODS @@ -336,6 +342,59 @@ sub unapplied { sprintf("%.2f", $amount ); } +=item send_receipt HASHREF | OPTION => VALUE ... + +Sends a payment receipt for this payment. + +refund_receipt_msgnum must be configured. + +Available options: + +=over 4 + +=item cust_main + +Customer (FS::cust_main) object (for efficiency). + +=cut + +=back + +=cut + +sub send_receipt { + my $self = shift; + my $opt = ref($_[0]) ? shift : { @_ }; + + my $cust_main = $opt->{'cust_main'} || $self->cust_main; + + my $conf = new FS::Conf; + + my $msgnum = $conf->config('refund_receipt_msgnum', $cust_main->agentnum); + return "No refund_receipt_msgnum configured" unless $msgnum; + + my $msg_template = qsearchs('msg_template',{ msgnum => $msgnum}); + return "Could not load template" + unless $msg_template; + + my $cust_msg = $msg_template->prepare( + 'cust_main' => $cust_main, + 'object' => $self, + 'msgtype' => 'receipt', + ); + return 'Error preparing message' unless $cust_msg; + my $error = $cust_msg->insert; + return $error if $error; + + my $queue = new FS::queue { + 'job' => 'FS::cust_msg::process_send', + 'custnum' => $cust_main->custnum, + }; + $error = $queue->insert( $cust_msg->custmsgnum ); + + return $error; +} + =back =head1 CLASS METHODS