1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
<%
# 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' => [
# ]
my(%opt) = @_;
my $table = $opt{'table'};
my $fields = $opt{'fields'}
#|| [ grep { $_ ne 'svcnum' } dbdef->table($table)->columns ];
|| [ grep { $_ ne 'svcnum' } fields($table) ];
my($query) = $cgi->keywords;
$query =~ /^(\d+)$/;
my $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 ) %>
<BR>
<% } else { %>
<SCRIPT>
function areyousure(href) {
if (confirm("Permanently delete this <%= $label %>?") == true)
window.location.href = href;
}
</SCRIPT>
<%= include("/elements/header.html","View $label: $value", menubar(
"Cancel this (unaudited) $label" =>
"javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')"
)) %>
<% } %>
Service #<B><%= $svcnum %></B>
| <A HREF="<%=$p%>edit/<%= $opt{'table'} %>.cgi?<%=$svcnum%>">Edit this <%= $label %></A>
<BR>
<%= ntable("#cccccc") %><TR><TD><%= 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';
}
%>
<TR>
<TD ALIGN="right">
<%= ( $opt{labels} && exists $opt{labels}->{$field} )
? $opt{labels}->{$field}
: $field
%>
</TD>
<%
#eventually more options for <SELECT>, etc. fields
%>
<TD BGCOLOR="#ffffff"><%= $svc_x->$field %><TD>
</TR>
<% } %>
<% foreach (sort { $a cmp $b } $svc_x->virtual_fields) { %>
<%= $svc_x->pvf($_)->widget('HTML', 'view', $svc_x->getfield($_)) %>
<% } %>
</TABLE></TD></TR></TABLE>
<BR>
<%= joblisting({'svcnum'=>$svcnum}, 1) %>
<%= include('/elements/footer.html') %>
|