diff options
Diffstat (limited to 'httemplate/elements')
-rw-r--r-- | httemplate/elements/contact.html | 19 | ||||
-rw-r--r-- | httemplate/elements/tr-select-contact.html | 10 |
2 files changed, 24 insertions, 5 deletions
diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html index 979c26b49..ef74481c0 100644 --- a/httemplate/elements/contact.html +++ b/httemplate/elements/contact.html @@ -9,7 +9,7 @@ <SELECT NAME="<%$name%>_classnum" <% $onchange %>> <OPTION VALUE=""> % my $classnum = scalar($cgi->param($name.'_classnum')) -% || $contact->classnum; +% || $X_contact->classnum; % foreach my $contact_class (@contact_class) { <OPTION VALUE="<% $contact_class->classnum %>" <% ($contact_class->classnum == $classnum) ? 'SELECTED' : '' %> @@ -40,6 +40,8 @@ % } % } elsif ( $field eq 'emailaddress' ) { % $value = join(', ', map $_->emailaddress, $contact->contact_email); +% } elsif ( $field eq 'selfservice_access' || $field eq 'comment' ) { +% $value = $X_contact->get($field); % } else { % $value = $contact->get($field); % } @@ -100,10 +102,25 @@ if ( $opt{'onchange'} ) { my @contact_class = qsearch('contact_class', { 'disabled' => '' }); my $contact; +my $X_contact; if ( $curr_value ) { $contact = qsearchs('contact', { 'contactnum' => $curr_value } ); + if ( $opt{'custnum'} ) { + $X_contact = qsearchs('cust_contact', { + 'contactnum' => $curr_value, + 'custnum' => $opt{'custnum'}, + }); + } elsif ( $opt{'prospectnum'} ) { + $X_contact = qsearchs('prospect_contact', { + 'contactnum' => $curr_value, + 'prospectnum' => $opt{'prospectnum'}, + }); + } else { + die 'neither custnum nor prospectnum specified'; + } } else { $contact = new FS::contact {}; + $X_contact = new FS::cust_contact; #arbitrary, it could be prospect_contact } my %size = ( 'title' => 12 ); diff --git a/httemplate/elements/tr-select-contact.html b/httemplate/elements/tr-select-contact.html index e37d26d1b..0bfa8934c 100644 --- a/httemplate/elements/tr-select-contact.html +++ b/httemplate/elements/tr-select-contact.html @@ -138,8 +138,8 @@ if ( $cgi->param('error') ) { if ( length($opt{'curr_value'}) ) { $contactnum = $opt{'curr_value'}; } elsif ($prospect_main) { - my @cust_contact = $prospect_main->contact; - $contactnum = $cust_contact[0]->contactnum if scalar(@cust_contact)==1; + my @prospect_contact = $prospect_main->prospect_contact; + $contactnum = $prospect_contact[0]->contactnum if scalar(@cust_contact)==1; } else { #$cust_main $cgi->param('contactnum') =~ /^(\-?\d*)$/ or die "illegal contactnum"; $contactnum = $1; @@ -176,8 +176,10 @@ my $contact_sort = sub { }; my @contact; -push @contact, $cust_main->cust_contact if $cust_main; -push @contact, $prospect_main->contact if $prospect_main; +push @contact, map $_->contact, $cust_main->cust_contact + if $cust_main; +push @contact, map $_->contact, $prospect_main->prospect_contact + if $prospect_main; push @contact, $contact if !$cust_main && $contact && $contact->contactnum > 0 && ! grep { $_->contactnum == $contact->contactnum } @contact; |