summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/contact.html19
-rw-r--r--httemplate/elements/tr-select-contact.html10
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;