-<%
-
- my %opt = @_;
-
- #my( $svcnum, $pkgnum, $svcpart, $part_svc );
- my( $pkgnum, $svcpart, $part_svc );
-
- #get & untaint pkgnum & svcpart
- my($query) = $cgi->keywords; #they're not proper cgi params
- if ( $query =~ /^pkgnum(\d+)-svcpart(\d+)$/ ) {
- $pkgnum = $1;
- $svcpart = $2;
- $cgi->delete_all(); #so the standard edit.html treats this correctly as new
- }
-
-%><%= include( 'edit.html',
+%
+% my %opt = @_;
+%
+% #my( $svcnum, $pkgnum, $svcpart, $part_svc );
+% my( $pkgnum, $svcpart, $part_svc );
+%
+% #get & untaint pkgnum & svcpart
+% if ( ! $cgi->param('error')
+% && $cgi->param('pkgnum') && $cgi->param('svcpart')
+% )
+% {
+% $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
+% $pkgnum = $1;
+% $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
+% $svcpart = $1;
+% #$cgi->delete_all(); #so edit.html treats this correctly as new??
+% }
+%
+<% include( 'edit.html',
'menubar' => [],
$part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart });
die "No part_svc entry!" unless $part_svc;
+
+ $svc_x->setfield('svcpart', $svcpart);
},
'edit_callback' => sub {
die "No part_svc entry!" unless $part_svc;
},
- 'new_hash_callback' => sub {
+ 'new_hashref_callback' => sub {
#my( $cgi, $svc_x ) = @_;
{ svcpart => $svcpart };
},
'field_callback' => sub {
- my $f = shift;
+ my ($cgi, $object, $f) = @_;
my $columndef = $part_svc->part_svc_column($f->{'field'});
my $flag = $columndef->columnflag;
if ( $flag eq 'F' ) {
}
},
+ 'html_init' => sub {
+ my $cust_main;
+ if ( $pkgnum ) {
+ my $cust_pkg = qsearchs('cust_pkg', {'pkgnum' => $pkgnum});
+ $cust_main = $cust_pkg->cust_main if $cust_pkg;
+ }
+ $cust_main
+ ? include( '/elements/small_custview.html',
+ $cust_main,
+ '',
+ 1,
+ popurl(2). "view/cust_main.cgi"
+ ). '<BR>'
+ : '';
+
+ },
+
'html_table_bottom' => sub {
my $svc_x = shift;
my $html = '';
qq!<INPUT TYPE="hidden" NAME="svcpart" VALUE="$svcpart">!;
},
- 'debug' => 1,
-
%opt #pass through/override params
)
%>