X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_msg.pm;h=27272b8a37e2f399c6ddaaf96f2ec1a6efbebf46;hp=934632725b5413b9cab361c2f461c78aa45f4f12;hb=674cb2d9d7105f4cc2871539b2e9f7088cdaa750;hpb=33f1c704766af0621159d5a8453379b6706d8c8a diff --git a/FS/FS/cust_msg.pm b/FS/FS/cust_msg.pm index 934632725..27272b8a3 100644 --- a/FS/FS/cust_msg.pm +++ b/FS/FS/cust_msg.pm @@ -47,8 +47,12 @@ from FS::Record. The following fields are currently supported: =item body - message body (as a complete MIME document) +=item preview - HTML fragment to show as a preview of the message + =item error - Email::Sender error message (or null for success) +=item status - "prepared", "sent", or "failed" + =back =head1 METHODS @@ -137,12 +141,14 @@ sub check { || $self->ut_textn('env_to') || $self->ut_anything('header') || $self->ut_anything('body') + || $self->ut_anything('preview') || $self->ut_enum('status', \@statuses) || $self->ut_textn('error') || $self->ut_enum('msgtype', [ '', 'invoice', 'receipt', 'admin', + 'report', ]) ; return $error if $error; @@ -159,8 +165,9 @@ message on error, or an empty string. sub send { my $self = shift; - my $msg_template = $self->msg_template - or return 'message was created without a template object'; + # it's still allowed to have cust_msgs without message templates, but only + # for email. + my $msg_template = $self->msg_template || 'FS::msg_template::email'; $msg_template->send_prepared($self); } @@ -199,6 +206,25 @@ sub parts { =back +=head1 SUBROUTINES + +=over 4 + +=item process_send CUSTMSGNUM + +Given a C value, sends the message. It must already +have been prepared (via L). + +=cut + +sub process_send { + my $custmsgnum = shift; + my $cust_msg = FS::cust_msg->by_key($custmsgnum) + or die "cust_msg #$custmsgnum not found"; + my $error = $cust_msg->send; + die $error if $error; +} + =head1 SEE ALSO L, L, L.