fix 'Can't call method "setup" on an undefined value' error when using into rates...
[freeside.git] / FS / FS / TicketSystem / RT_External.pm
index cdb4e90..f976ac0 100644 (file)
@@ -273,7 +273,7 @@ sub href_customer_tickets {
 
 }
 
-sub href_new_ticket {
+sub href_params_new_ticket {
   my( $self, $custnum_or_cust_main, $requestors ) = @_;
 
   my( $custnum, $cust_main );
@@ -284,14 +284,31 @@ sub href_new_ticket {
     $custnum = $custnum_or_cust_main;
     $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
   }
-  my $queueid = $cust_main->agent->ticketing_queueid || $default_queueid;
-
-  $self->baseurl.
-  'Ticket/Create.html?'.
-    "Queue=$queueid".
-    "&new-MemberOf=freeside://freeside/cust_main/$custnum".
-    ( $requestors ? '&Requestors='. uri_escape($requestors) : '' )
-    ;
+
+  # explicit $requestors > config option > invoicing_list
+  $requestors = $conf->config('ticket_system-requestor')
+      if !$requestors;
+  $requestors = $cust_main->invoicing_list_emailonly_scalar
+      if (!$requestors) and defined($cust_main);
+
+  my %param = (
+    'Queue'       => ($cust_main->agent->ticketing_queueid || $default_queueid),
+    'new-MemberOf'=> "freeside://freeside/cust_main/$custnum",
+    'Requestors'  => $requestors,
+  );
+
+  ( $self->baseurl.'Ticket/Create.html', %param );
+}
+
+sub href_new_ticket {
+  my $self = shift;
+
+  my( $base, %param ) = $self->href_params_new_ticket(@_);
+
+  my $uri = new URI $base;
+  $uri->query_form(%param);
+  $uri;
+
 }
 
 sub href_ticket {
@@ -386,5 +403,9 @@ sub create_ticket {
   return 'create_ticket unimplemented w/external RT (write something w/RT::Client::REST?)';
 }
 
+sub init { } #unimplemented
+
+sub selfservice_priority { '' } #unimplemented
+
 1;