X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fmsg_template.pm;h=65890e12552e50adb7a4b979652f659c98de16a3;hb=7b777a5bf7fcdb0f966e3789e00f646febedc60c;hp=4e1f4da2407d9b8cd5430862f38e6234d13604b6;hpb=36ad5e538cb56de33c779e34baf9abdf63c4312e;p=freeside.git diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm index 4e1f4da24..65890e125 100644 --- a/FS/FS/msg_template.pm +++ b/FS/FS/msg_template.pm @@ -1,8 +1,19 @@ package FS::msg_template; +use base qw( FS::Record ); use strict; -use base qw( FS::Record ); +use vars qw( $DEBUG $conf ); + +use Date::Format qw( time2str ); +use File::Temp; +use IPC::Run qw(run); use Text::Template; + +use HTML::Entities qw( decode_entities encode_entities ) ; +use HTML::FormatText; +use HTML::TreeBuilder; +use Encode; + use FS::Misc qw( generate_email send_email do_print ); use FS::Conf; use FS::Record qw( qsearch qsearchs ); @@ -12,16 +23,6 @@ use FS::cust_main; use FS::cust_msg; use FS::template_content; -use Date::Format qw( time2str ); -use HTML::Entities qw( decode_entities encode_entities ) ; -use HTML::FormatText; -use HTML::TreeBuilder; -use Encode; - -use File::Temp; -use IPC::Run qw(run); -use vars qw( $DEBUG $conf ); - FS::UID->install_callback( sub { $conf = new FS::Conf; } ); $DEBUG=0; @@ -527,7 +528,7 @@ sub substitutions { balance credit_limit invoicing_list_emailonly - cust_status ucfirst_cust_status cust_statuscolor + cust_status ucfirst_cust_status cust_statuscolor cust_status_label signupdate dundate packages recurdates @@ -558,6 +559,9 @@ sub substitutions { [ company_phonenum => sub { $conf->config('company_phonenum', shift->agentnum) } ], + [ selfservice_server_base_url => sub { + $conf->config('selfservice_server-base_url') #, shift->agentnum) + } ], ], # next_bill_date 'cust_pkg' => [qw( @@ -592,6 +596,9 @@ sub substitutions { 'cust_bill' => [qw( invnum _date + _date_pretty + due_date + due_date2str )], #XXX not really thinking about cust_bill substitutions quite yet @@ -693,13 +700,13 @@ Returns the L object for this template. =cut -sub agent { - qsearchs('agent', { 'agentnum' => $_[0]->agentnum }); -} - sub _upgrade_data { my ($self, %opts) = @_; + ### + # First move any historical templates in config to real message templates + ### + my @fixes = ( [ 'alerter_msgnum', 'alerter_template', '', '', '' ], [ 'cancel_msgnum', 'cancelmessage', 'cancelsubject', '', '' ], @@ -791,6 +798,11 @@ sub _upgrade_data { } # if alerter_msgnum } + + ### + # Move subject and body from msg_template to template_content + ### + foreach my $msg_template ( qsearch('msg_template', {}) ) { if ( $msg_template->subject || $msg_template->body ) { # create new default content @@ -814,6 +826,35 @@ sub _upgrade_data { die $error if $error; } } + + ### + # Add new-style default templates if missing + ### + $self->_populate_initial_data; + +} + +sub _populate_initial_data { #class method + #my($class, %opts) = @_; + #my $class = shift; + + eval "use FS::msg_template::InitialData;"; + die $@ if $@; + + my $initial_data = FS::msg_template::InitialData->_initial_data; + + foreach my $hash ( @$initial_data ) { + + next if $hash->{_conf} && $conf->config( $hash->{_conf} ); + + my $msg_template = new FS::msg_template($hash); + my $error = $msg_template->insert( @{ $hash->{_insert_args} || [] } ); + die $error if $error; + + $conf->set( $hash->{_conf}, $msg_template->msgnum ) if $hash->{_conf}; + + } + } sub eviscerate {