% % % # options example... % # % # 'table' => 'svc_something' % # % # 'labels' => { % # 'column' => 'Label', % # }, % # % # listref - each item is a literal column name (or method) or (notyet) coderef % # if not specified all columns (except for the primary key) will be viewable % # 'fields' => [ % # ] % # % # # defaults to "edit/$table.cgi?", will have svcnum appended % # 'edit_url' => % % my(%opt) = @_; % % my $table = $opt{'table'}; % % my $fields = $opt{'fields'} % #|| [ grep { $_ ne 'svcnum' } dbdef->table($table)->columns ]; % || [ grep { $_ ne 'svcnum' } fields($table) ]; % % my $svcnum; % if ( $cgi->param('svcnum') ) { % $cgi->param('svcnum') =~ /^(\d+)$/ or die "unparsable svcnum"; % $svcnum = $1; % } else { % my($query) = $cgi->keywords; % $query =~ /^(\d+)$/ or die "no svcnum"; % $svcnum = $1; % } % my $svc_x = qsearchs( $opt{'table'}, { 'svcnum' => $svcnum } ) % or die "Unknown svcnum $svcnum in ". $opt{'table'}. " table\n"; % % my $cust_svc = $svc_x->cust_svc; % my($label, $value, $svcdb) = $cust_svc->label; % % my $pkgnum = $cust_svc->pkgnum; % % my($cust_pkg, $custnum); % if ($pkgnum) { % $cust_pkg = $cust_svc->cust_pkg; % $custnum = $cust_pkg->custnum; % } else { % $cust_pkg = ''; % $custnum = ''; % } % % % if ( $custnum ) { <% include("/elements/header.html","View $label: $value", menubar( "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum", )) %> <% include( '/elements/small_custview.html', $custnum, '', 1 ) %>
% } else { <% include("/elements/header.html","View $label: $value", menubar( "Cancel this (unaudited) $label" => "javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')" )) %> % } Service #<% $svcnum %> % my $url = $opt{'edit_url'} || $p. 'edit/'. $opt{'table'}. '.cgi?'; | Edit this <% $label %>
<% ntable("#cccccc") %><% ntable("#cccccc",2) %> % foreach my $f ( @$fields ) { % % my( $field, $type); % if ( ref($f) ) { % $field = $f->{'field'}, % $type = $f->{'type'} || 'text', % } else { % $field = $f; % $type = 'text'; % } % <% ( $opt{labels} && exists $opt{labels}->{$field} ) ? $opt{labels}->{$field} : $field %> % % #eventually more options for