bulk DID orders/inventory improvements, RT11291
[freeside.git] / httemplate / elements / tr-select-agent.html
index 69cd95c..515a11d 100644 (file)
@@ -1,12 +1,39 @@
+<%doc>
+
+Example:
+
+  include( '/elements/tr-select-agent.html',
+
+    #recommended to keep things "sticky" on errors
+    'curr_value'    => $curr_value,
+
+    ##
+    # optional
+    ##
+
+    'label'         => 'Agent for this thing',
+    'empty_label'   => 'Select agent', #override default 
+    'disable_empty' => 1,
+
+    #set to 'None' or something to override default of showing all agents
+    #for employees w/ 'View customers of all agents' right
+    viewall_right   => 'None',
+
+  );
+
+</%doc>
 % if ( scalar(@agents) == 1 ) { 
 
   <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'agentnum' %>" VALUE="<% $agents[0]->agentnum %>">
 
+%# YUCK.  empty row so we don't throw g_row in edit.html off :/
+  <TR>
+  </TR>
 % } else { 
 
   <TR>
     <TD ALIGN="right"><% $opt{'label'} || 'Agent' %></TD>
-    <TD>
+    <TD <% $colspan %>>
       <% include( '/elements/select-agent.html',
                      'curr_value' => $agentnum,
                      'agents'     => \@agents,
 my %opt = @_;
 my $agentnum = $opt{'curr_value'} || $opt{'value'};
 
-my @agents;
-if ( $opt{'agents'} ) {
-  #@agents = @{ $opt{'agents'} };
-  #here is the agent virtualization
-  my $agentnums_href = $FS::CurrentUser::CurrentUser->agentnums_href;
-  @agents = grep $agentnums_href->{$_->agentnum}, @{ $opt{'agents'} };
-  delete $opt{'agents'};
-} else {
-  @agents = $FS::CurrentUser::CurrentUser->agents;
-}
+my @agents =
+  $opt{'agents'}
+    ? @{ $opt{'agents'} }
+    : $FS::CurrentUser::CurrentUser->agents(
+        'viewall_right' => $opt{'viewall_right'},
+      );
+
+my $colspan = $opt{'colspan'} ? 'COLSPAN="'.$opt{'colspan'}.'"' : '';
 
 </%init>