X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fprospect_main.pm;h=5d909a3ea0020ebc355708fe8b7c444e5311771d;hb=c2dbe36096332d1e09bc58d7d9903e05247f0c9b;hp=67e91cf994fc2b674bdd968736ca075496eb1882;hpb=1aecd5bf33146bf3f374341a3814960ae1d419e8;p=freeside.git diff --git a/FS/FS/prospect_main.pm b/FS/FS/prospect_main.pm index 67e91cf99..5d909a3ea 100644 --- a/FS/FS/prospect_main.pm +++ b/FS/FS/prospect_main.pm @@ -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) 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) associated with this prospect. @@ -406,15 +441,18 @@ sub search { my @where = (); my $orderby; - ## - # parse agent - ## - + #agent if ( $params->{'agentnum'} =~ /^(\d+)$/ and $1 ) { push @where, "prospect_main.agentnum = $1"; } + #refnum + if ( $params->{'refnum'} =~ /^(\d+)$/ and $1 ) { + push @where, + "prospect_main.refnum = $1"; + } + ## # setup queries, subs, etc. for the search ## @@ -424,7 +462,7 @@ sub search { # here is the agent virtualization push @where, $FS::CurrentUser::CurrentUser->agentnums_sql; - my $extra_sql = scalar(@where) ? ' WHERE '. join(' AND ', @where) : ''; + my $extra_sql = scalar(@where) ? ' WHERE prospect_main.custnum IS NULL AND '. join(' AND ', @where) : ''; my $count_query = "SELECT COUNT(*) FROM prospect_main $extra_sql";