RT# 82137 - default payment amount now has processing fee in total if processing...
[freeside.git] / httemplate / elements / checkboxes-table.html
index 16376fa..96d1303 100644 (file)
-<%
+%
+%
+%  ##
+%  # required
+%  ##
+%  # 'target_table'    => 'table_name',
+%  # 'link_table'      => 'table_name',
+%  #
+%  # 'name_col' => 'name_column',
+%  # #or
+%  # 'name_callback' => sub { },
+%  #
+%  ##
+%  # recommended (required?)
+%  ##
+%  # 'source_obj'   => $obj,
+%  # #or?
+%  # #'source_table' => 'table_name',
+%  # #'sourcenum'    => '4', #current value of primary key in source_table
+%  # #                       # (none is okay, just pass it if you have it)
+%  ##
+%  # optional
+%  ##
+%  # 'disable-able' => 1,
+%
+%  my( %opt ) = @_;
+%
+%  my $target_pkey = dbdef->table($opt{'target_table'})->primary_key;
+%
+%  my( $source_pkey, $sourcenum, $source_obj );
+%  if ( $opt{'source_obj'} || $opt{'object'} ) {
+%
+%    $source_obj = $opt{'source_obj'} || $opt{'object'};
+%    #$source_table = $source_obj->dbdef_table->table;
+%    $source_pkey = $source_obj->dbdef_table->primary_key;
+%    $sourcenum = $source_obj->$source_pkey();
+%
+%  } else {
+%
+%    #$source_obj?
+%    $source_pkey = $opt{'source_table'}
+%                     ? dbdef->table($opt{'source_table'})->primary_key
+%                     : '';
+%    $sourcenum = $opt{'sourcenum'};
+%  }
+%
+%  my $hashref = $opt{'hashref'} || {};
+%
+%  my $extra_sql = $opt{'extra_sql'} || '';
+%
+%  if ( $opt{'agent_virt'} ) {
+%    $extra_sql .= ' AND' . $FS::CurrentUser::CurrentUser->agentnums_sql(
+%                             'null_right' => $opt{'agent_null_right'}
+%                           );
+%  }
+%
+%  if ( $opt{'disable-able'} ) {
+%    $hashref->{'disabled'} = '';
+%
+%    $extra_sql .= ( $sourcenum && $source_pkey ) 
+%                    ? " OR $source_pkey = $sourcenum"
+%                    : '';
+%  }
+%
+%
+% foreach my $target_obj (
+%     qsearch({ 'table'     => $opt{'target_table'},
+%               'hashref'   => $hashref,
+%               'select'    => $opt{'target_table'}. '.*',
+%               'addl_from' => "LEFT JOIN $opt{'link_table'} USING ( $target_pkey )",
+%               'extra_sql' => $extra_sql,
+%               'order_by'  => $opt{'order_by'},
+%            })
+%   ) {
+%
+%     my $targetnum = $target_obj->$target_pkey();
+%
+%     my $checked;
+%     if ( $cgi->param('error') ) {
+%
+%       $checked = $cgi->param($target_pkey.$targetnum)
+%                    ? 'CHECKED'
+%                    : '';
+%
+%     } elsif ( !$sourcenum ) { # newly created object, has no links yet
+%
+%       if ( ref($opt{'default'}) ) {
+%         $checked = $opt{'default'}->{$targetnum} ? 'CHECKED' : '';
+%       } else {
+%         $checked = $opt{'default'}               ? 'CHECKED' : ''
+%       }
+%
+%     } else {
+%
+%       $checked = qsearchs( $opt{'link_table'}, {
+%                                                  $source_pkey => $sourcenum,
+%                                                  $target_pkey => $targetnum,
+%                                                }                             )
+%                    ? 'CHECKED'
+%                    : ''
+%
+%     }
+%
+
+% ### use name sent to function else use target table and key.
+% my $checkbox_name;
+% if ($opt{'field'}) { $checkbox_name = $opt{'field'}; } else { $checkbox_name = "$target_pkey$targetnum"; }
+
+% ### use values sent to function rather than values in table to determine CHECKED if values are sent.
+% my $values;
+% if (ref $opt{'value'} eq ref {} ) { $values = $opt{'value'}; }
+% else { foreach my $value ( split(/\,/, $opt{'value'}) ) { $values->{$value} = $value; } }
+% if ($values->{$targetnum}) { $checked = "CHECKED"; }
+
+% my $color_col = $opt{'color_col'};
+  <INPUT TYPE="checkbox" NAME="<% $checkbox_name %>" <% $checked %> VALUE="<% $targetnum %>"><DIV STYLE="display:inline; background-color: #<% $color_col ? $target_obj->$color_col : '' %>">
+% if ( $opt{'target_link'} ) { 
+    <A HREF="<% $opt{'target_link'} %><% $targetnum %>">
+%  }
+%  
+% if ( $opt{'name_callback'} ) { 
+
+
+    <% &{ $opt{'name_callback'} }( $target_obj ) %><% $opt{'target_link'} ? '</A>' : '' %>
+% } else {
+%       my $name_col = $opt{'name_col'};
+%  
+
+
+    <% $target_obj->$name_col() %></DIV><% $opt{'target_link'} ? '</A>' : '' %>
+% } 
+% if ( $opt{'disable-able'} ) { 
+
+
+    <% $target_obj->disabled =~ /^Y/i ? ' (DISABLED)' : '' %>
+% } 
 
-  ##
-  # required
-  ##
-  # 'target_table'    => 'table_name',
-  # 'link_table'      => 'table_name',
-  #
-  # 'name_col' => 'name_column',
-  # #or
-  # 'name_callback' => sub { },
-  #
-  ##
-  # recommended (required?)
-  ##
-  # 'source_obj'   => $obj,
-  # #or?
-  # #'source_table' => 'table_name',
-  # #'sourcenum'    => '4', #current value of primary key in source_table
-  # #                       # (none is okay, just pass it if you have it)
-  ##
-  # optional
-  ##
-  # 'disable-able' => 1,
-
-  my( %opt ) = @_;
-
-  my $target_pkey = dbdef->table($opt{'target_table'})->primary_key;
-
-  my( $source_pkey, $sourcenum, $source_obj );
-  if ( $opt{'source_obj'} ) {
-
-    $source_obj = $opt{'source_obj'};
-    #$source_table = $source_obj->dbdef_table->table;
-    $source_pkey = $source_obj->dbdef_table->primary_key;
-    $sourcenum = $source_obj->$source_pkey();
-
-  } else {
-
-    #$source_obj?
-    $source_pkey = $opt{'source_table'}
-                     ? dbdef->table($opt{'source_table'})->primary_key
-                     : '';
-    $sourcenum = $opt{'sourcenum'};
-  }
-
-  my $hashref = $opt{'hashref'} || {};
-
-  my $extra_sql = '';
-
-  if ( $opt{'disable-able'} ) {
-    $hashref->{'disabled'} = '';
-
-    $extra_sql .= ( $sourcenum && $source_pkey ) 
-                    ? "OR $source_pkey = $sourcenum"
-                    : '';
-  }
-
-%>
-
-<% foreach my $target_obj (
-     qsearch({ 'table'     => $opt{'target_table'},
-               'hashref'   => $hashref,
-               'select'    => $opt{'target_table'}. '.*',
-               'addl_from' => "LEFT JOIN $opt{'link_table'} USING ( $target_pkey )",
-               'extra_sql' => $extra_sql,
-            })
-   ) {
-
-     my $targetnum = $target_obj->$target_pkey();
-
-     my $checked;
-     if ( $cgi->param('error') ) {
-
-       $checked = $cgi->param($target_pkey.$targetnum)
-                    ? 'CHECKED'
-                    : '';
-
-     } else {
-
-       $checked = qsearchs( $opt{'link_table'}, {
-                                                  $source_pkey => $sourcenum,
-                                                  $target_pkey => $targetnum,
-                                                }                             )
-                    ? 'CHECKED'
-                    : ''
-
-     }
-
-%>
-
-  <INPUT TYPE="checkbox" NAME="<%= $target_pkey. $targetnum %>" <%= $checked %> VALUE="ON">
-
-  <% if ( $opt{'target_link'} ) { %>
-
-    <A HREF="<%= $opt{'target_link'} %><%= $targetnum %>"><%
-
-  }
-  %><%= $targetnum %>: 
-
-  <% if ( $opt{'name_callback'} ) { %>
-
-    <%= &{ $opt{'name_callback'} }( $target_obj ) %><%= $opt{'target_link'} ? '</A>' : '' %>
-
-  <% } else {
-       my $name_col = $opt{'name_col'};
-  %>
-
-    <%= $target_obj->$name_col() %><%= $opt{'target_link'} ? '</A>' : '' %>
-
-  <% } %>
-
-  <% if ( $opt{'disable-able'} ) { %>
-
-    <%= $target_obj->disabled =~ /^Y/i ? ' (DISABLED)' : '' %>
-
-  <% } %>
 
   <BR>
+% } 
 
-<% } %>