share/html/Elements/SelectCustomerAgent #SearchCustomerFields
share/html/Elements/SelectCustomerClass #SearchCustomerFields
share/html/Elements/SelectCustomerTag #SearchCustomerFields
+ share/html/Elements/SelectCustomerReferral #SearchCustomerFields
share/html/Prefs/SavedSearches.html #saved searches
share/html/Search/Bulk.html #bulk increment priority #mandatory fields
share/html/Search/Build.html
#freeside
Agentnum => [ 'FREESIDEFIELD', ],
Classnum => [ 'FREESIDEFIELD', ],
+ Refnum => [ 'FREESIDEFIELD', ],
Tagnum => [ 'FREESIDEFIELD', 'cust_tag' ],
WillResolve => [ 'DATE' => 'WillResolve', ], #loc_left_pair
);
elsif ( $subkey eq 'Agent' ) {
$field = "$custalias.agentnum";
}
+ elsif ( $subkey eq 'Referral' ) {
+ $field = "$custalias.refnum";
+ }
else {
# no other cases exist yet, but for obviousness:
$field = $subkey;
=back
+=item Referral
+
+Return the customer's advertising source, as a string.
+
=cut
+sub Referral { undef }
+
1;
-sub _FreesideGetRecord {
+sub _FreesideGetRecord { # cache this?
my $self = shift;
my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'});
} @part_tag;
}
+sub Referral {
+ my $self = shift;
+ my $rec = $self->_FreesideGetRecord() or return;
+ my $ref = qsearchs('part_referral', { refnum => $rec->{'_object'}->refnum });
+ $ref ? $ref->referral : ''
+}
+
1;
Path => '/Elements/SelectCustomerTag',
},
},
+ {
+ Name => 'Refnum',
+ Field => 'Advertising Source',
+ Op => {
+ Type => 'component',
+ Path => '/Elements/SelectBoolean',
+ Arguments => { TrueVal=> '=', FalseVal => '!=' },
+ },
+ Value => {
+ Type => 'component',
+ Path => '/Elements/SelectCustomerReferral',
+ },
+ },
;
</%init>
<%ARGS>
@return;
},
},
+ AdvertisingSource => {
+ title => 'Advertising Source',
+ attribute => 'Customer.Referral',
+ value => sub {
+ my $Ticket = shift;
+ my @return = ();
+ foreach my $c (ticket_cust_resolvers($Ticket)) {
+ push @return, $c->Referral, \'<BR>';
+ }
+ pop @return;
+ @return;
+ },
+ },
};
sub ticket_cust_resolvers {
--- /dev/null
+% return if ($RT::URI::freeside::IntegrationType ne 'Internal');
+<select name="<%$Name%>">
+% if ($ShowNullOption) {
+ <option value="">-</option>
+% }
+% for my $referral (qsearch('part_referral', {'disabled' => ''})) {
+ <option value="<%$referral->refnum%>" <%
+ $referral->refnum == $Default||'' ? 'selected' : ''%>
+ ><%$referral->referral%></option>
+% }
+</select>
+<%init></%init>
+<%args>
+$ShowNullOption => 1
+$Name => undef
+$Default => 0
+</%args>
my @fields = qw(
id QueueName Subject
- Customer Agent CustomerClass CustomerTags
+ Customer Agent CustomerClass CustomerTags AdvertisingSource
Status ExtendedStatus UpdateStatus
Type