show a name on residential prospect quotations, RT#75990
authorIvan Kohler <ivan@freeside.biz>
Tue, 16 May 2017 23:14:27 +0000 (16:14 -0700)
committerIvan Kohler <ivan@freeside.biz>
Tue, 16 May 2017 23:14:27 +0000 (16:14 -0700)
FS/FS/Template_Mixin.pm
FS/FS/prospect_main.pm

index b5f7aaa..758b8ce 100644 (file)
@@ -603,6 +603,9 @@ sub print_generic {
     'total_pages'     => 1,
 
   );
+
+  #quotations have $name
+  $invoice_data{'name'} = $invoice_data{'payname'};
  
   #localization
   $invoice_data{'emt'} = sub { &$escape_function($self->mt(@_)) };
index 76faf0f..c54c569 100644 (file)
@@ -279,10 +279,45 @@ sub name {
   'Prospect #'. $self->prospectnum;
 }
 
+=item contact_firstlast
+
+If this prospect has a company, returns the empty string.  If not, returns the
+first contact's first and last name.
+
+Primarily intended for use in quotation substitutions, like the FS::cust_main
+method of the same name.
+
+=cut
+
+sub contact_firstlast {
+  my $self = shift;
+  return '' if $self->company;
+  my @contacts = $self->contact;
+  #return '' unless @contacts;
+  warn $contacts[0]->first;
+  warn $contacts[0]->get('last');
+  $contacts[0]->first. ' '. $contacts[0]->get('last');
+}
+
 =item contact
 
 Returns the contacts (see L<FS::contact>) associated with this prospect.
 
+=cut
+
+sub contact {
+  my $self = shift;
+  my $search = {
+    table       => 'contact',
+    addl_from   => ' JOIN prospect_contact USING (contactnum)',
+    extra_sql   => ' WHERE prospect_contact.prospectnum = '.$self->prospectnum,
+  };
+
+  #classnum argument like FS::cust_main->contact?
+
+  qsearch($search);
+}
+
 =item cust_location
 
 Returns the locations (see L<FS::cust_location>) associated with this prospect.