X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;h=a76d93dabcb48eb794c3a8b02faf6c3c191327d0;hb=1e64160a779e96d84c5db648622dee4f88f34215;hp=452f250d8ee2f4e666d39d185f215b7c49385979;hpb=4e68cf76788b220cc15f2a080df5e7a1ea4962b8;p=freeside.git diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 452f250d8..a76d93dab 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -57,6 +57,7 @@ use FS::svc_forward; use FS::svc_www; use FS::cdr; use FS::tower_sector; +use FS::Misc; $DEBUG = 0; $me = '[FS::svc_acct]'; @@ -260,6 +261,7 @@ sub table_info { 'display_weight' => 10, 'cancel_weight' => 50, 'ip_field' => 'slipip', + 'manual_require' => 1, 'fields' => { 'dir' => 'Home directory', 'uid' => { @@ -283,6 +285,7 @@ sub table_info { disable_default => 1, disable_fixed => 1, disable_select => 1, + required => 1, }, 'password_selfchange' => { label => 'Password modification', type => 'checkbox', @@ -310,7 +313,9 @@ sub table_info { type => 'text', disable_inventory => 1, }, - '_password' => 'Password', + '_password' => { label => 'Password', + required => 1 + }, 'gid' => { label => 'GID', def_info => 'when blank, defaults to UID', @@ -333,6 +338,7 @@ sub table_info { select_key => 'svcnum', select_label => 'domain', disable_inventory => 1, + required => 1, }, 'pbxsvc' => { label => 'PBX', type => 'select-svc_pbx.html', @@ -723,9 +729,11 @@ sub insert { $cust_main->invoicing_list(\@invoicing_list); } - #welcome email + #welcome email/letter my @welcome_exclude_svcparts = $conf->config('svc_acct_welcome_exclude'); unless ( grep { $_ eq $self->svcpart } @welcome_exclude_svcparts ) { + #indent skips a level for some reason + #welcome email my $error = ''; my $msgnum = $conf->config('welcome_msgnum', $agentnum); if ( $msgnum ) { @@ -809,7 +817,21 @@ sub insert { } # if $welcome_template } # if !$msgnum - } + # print welcome letter + if ($conf->exists('svc_acct_welcome_letter')) { + my $queue = new FS::queue { + 'job' => 'FS::svc_acct::process_print_welcome_letter', + }; + $error = $queue->insert( + 'svcnum' => $self->svcnum, + 'template' => 'svc_acct_welcome_letter', + ); + if ($error) { + warn "can't send welcome letter: $error"; + } + } + #indent skipped a level for some reason + } # unless in @welcome_exclude_svcparts } # if $cust_pkg $dbh->commit or die $dbh->errstr if $oldAutoCommit; @@ -3014,6 +3036,26 @@ sub reached_threshold { } } +sub process_print_welcome_letter { + my %opt = @_; + + my $self = qsearchs('svc_acct', { 'svcnum' => $opt{'svcnum'} } ) + or die "invalid svc_acct: " . $opt{'svcnum'}; + my $cust_main = $self->cust_svc->cust_pkg->cust_main; + + my $ps = $cust_main->print_ps('svc_acct_welcome_letter', + 'extra_fields' => { + map { $_ => $self->$_ } $self->fields, # or maybe just username & password? + }, + ); + my $error = FS::Misc::do_print( + [ $ps ], + 'agentnum' => $cust_main->agentnum, + ); + die $error if $error; + +} + =back =head1 BUGS