=item bcc_addr - Bcc all mail to this address.
-=item disabled - disabled ('Y' or NULL).
+=item disabled - disabled (NULL for not-disabled and selectable, 'D' for a
+draft of a one-time message, 'C' for a completed one-time message, 'Y' for a
+normal template disabled by user action).
=back
|| $self->ut_text('msgname')
|| $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum')
|| $self->ut_textn('mime_type')
- || $self->ut_enum('disabled', [ '', 'Y' ] )
+ || $self->ut_enum('disabled', [ '', 'Y', 'D', 'S' ] )
|| $self->ut_textn('from_addr')
|| $self->ut_textn('bcc_addr')
# fine for now, but change this to some kind of dynamic check if we
=item cust_main
-Customer object (required).
+Customer object
=item object
my( $self, %opt ) = @_;
my $cust_main = $opt{'cust_main'}; # or die 'cust_main required';
- my $object = $opt{'object'} or die 'object required';
+ my $object = $opt{'object'}; # or die 'object required';
warn "preparing substitutions for '".$self->msgname."'\n"
if $DEBUG;
$cust_pay->paymask : $cust_pay->decrypt($cust_pay->payinfo)
} ],
],
+ # for refund receipts
+ 'cust_refund' => [
+ 'refundnum',
+ [ refund => sub { sprintf("%.2f", shift->refund) } ],
+ [ payby => sub { FS::payby->shortname(shift->payby) } ],
+ [ date => sub { time2str("%a %B %o, %Y", shift->_date) } ],
+ [ payinfo => sub {
+ my $cust_refund = shift;
+ ($cust_refund->payby eq 'CARD' || $cust_refund->payby eq 'CHEK') ?
+ $cust_refund->paymask : $cust_refund->decrypt($cust_refund->payinfo)
+ } ],
+ ],
# for payment decline messages
# try to support all cust_pay fields
# 'error' is a special case, it contains the raw error from the gateway