RT# 81961 Repair broken links in POD documentation
[freeside.git] / FS / FS / cust_main_Mixin.pm
index 5f9a3d6..e31a310 100644 (file)
@@ -262,6 +262,17 @@ sub cust_statuscolor {
     : '000000';
 }
 
+=item agent_name
+
+=cut
+
+sub agent_name {
+  my $self = shift;
+  $self->cust_linked
+    ? $self->cust_main->agent_name
+    : $self->cust_unlinked_msg;
+}
+
 =item prospect_sql
 
 =item active_sql
@@ -337,10 +348,21 @@ sub cust_search_sql {
 
 =item email_search_result HASHREF
 
-Emails a notice to the specified customers.  Customers without 
-invoice email destinations will be skipped.
+Emails a notice to the specified customer's contact_email addresses.
+
 
-Parameters: 
+If the user has specified "Invoice recipients" on the send e-mail screen,
+contact_email rows containing the invoice_dest flag will be included.
+This option is default, if neither 'invoice' nor 'message' are present.
+
+If the user has specified "Message recipients" on the send e-mail screen,
+contact_email rows containing the message_dest flag will be included.
+
+The selection is indicated by the presence of the text 'message' or
+'invoice' within the to_contact_classnum argument.
+
+
+Parameters:
 
 =over 4
 
@@ -350,7 +372,7 @@ Queue job for status updates.  Required.
 
 =item search
 
-Hashref of params to the L<search()> method.  Required.
+Hashref of params to the L<FS::Record/search> method.  Required.
 
 =item msgnum
 
@@ -375,9 +397,19 @@ Text body
 
 =item to_contact_classnum
 
-The customer contact class (or classes, as a comma-separated list) to send
-the message to. If unspecified, will be sent to any contacts that are marked
-as invoice destinations (the equivalent of specifying 'invoice').
+This field contains a comma-separated list.  This list may contain:
+
+- the text "invoice" indicating contacts with invoice_dest flag should
+  be included
+- the text "message" indicating contacts with message_dest flag should
+  be included
+- numbers representing classnum id values for email contact classes.
+  If any classnum are present, emails should only be sent to contact_email
+  addresses where contact_email.classnum contains one of these classes.
+  The classnum 0 also includes where contact_email.classnum IS NULL
+
+If neither 'invoice' nor 'message' has been specified, this method will
+behave as if 'invoice' had been selected
 
 =back
 
@@ -398,7 +430,7 @@ sub email_search_result {
   my($class, $param) = @_;
 
   my $conf = FS::Conf->new;
-  my $send_to_domain = $conf->config('send-to-domain');
+  my $send_to_domain = $conf->config('email-to-voice_domain');
 
   my $msgnum = $param->{msgnum};
   my $from = delete $param->{from};
@@ -472,8 +504,8 @@ sub email_search_result {
       next; # unlinked object; nothing else we can do
     }
 
-my %to = {};
-if ($to) { $to{'to'} = $to; }
+    my %to = ();
+    if ($to) { $to{'to'} = $to; }
 
     my $cust_msg = $msg_template->prepare(
       'cust_main' => $cust_main,
@@ -628,13 +660,13 @@ sub time2str_local {
 
   $self->{_date_format} ||= {};
   if (!exists($self->{_dh})) {
-    my $cust_main = $self->cust_main;
-    my $locale = $cust_main->locale  if $cust_main;
-    $locale ||= 'en_US';
+    my $locale = $self->cust_main->locale if $self->cust_main;
+    $locale ||= FS::Conf->new->config('locale') || 'en_US';
+
     my %info = FS::Locales->locale_info($locale);
-    my $dh = eval { Date::Language->new($info{'name'}) } ||
-             Date::Language->new(); # fall back to English
-    $self->{_dh} = $dh;
+
+    $self->{_dh} = eval { Date::Language->new($info{'name'}) }
+      || Date::Language->new(); # fall back to English
   }
 
   if ($format eq 'short') {
@@ -705,7 +737,9 @@ sub unsuspend_balance {
   }
   my $balance = $cust_main->balance || 0;
   if ($balance <= $maxbalance) {
-    my @errors = $cust_main->unsuspend;
+    my @errors = $cust_main->unsuspend(
+                  'reason_type' => $conf->config('unsuspend_reason_type')
+                );
     # side-fx with nested transactions?  upstack rolls back?
     warn "WARNING:Errors unsuspending customer ". $cust_main->custnum. ": ".
          join(' / ', @errors)
@@ -725,4 +759,3 @@ L<FS::cust_main>, L<FS::Record>
 =cut
 
 1;
-