% include( 'edit.html',
'menubar' => [],
'error_callback' => sub {
my( $cgi, $svc_x ) = @_;
#$svcnum = $svc_x->svcnum;
$pkgnum = $cgi->param('pkgnum');
$svcpart = $cgi->param('svcpart');
$part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart });
die "No part_svc entry!" unless $part_svc;
$svc_x->setfield('svcpart', $svcpart);
},
'edit_callback' => sub {
my( $cgi, $svc_x ) = @_;
#$svcnum = $svc_x->svcnum;
my $cust_svc = $svc_x->cust_svc
or die "Unknown (cust_svc) svcnum!";
$pkgnum = $cust_svc->pkgnum;
$svcpart = $cust_svc->svcpart;
$part_svc = qsearchs ('part_svc', { svcpart=>$svcpart });
die "No part_svc entry!" unless $part_svc;
},
'new_hashref_callback' => sub {
#my( $cgi, $svc_x ) = @_;
{ svcpart => $svcpart };
},
'new_callback' => sub {
my( $cgi, $svc_x ) = @_;;
$part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart });
die "No part_svc entry!" unless $part_svc;
#$svcnum='';
$svc_x->set_default_and_fixed;
},
'field_callback' => sub {
my ($cgi, $object, $f) = @_;
my $columndef = $part_svc->part_svc_column($f->{'field'});
my $flag = $columndef->columnflag;
if ( $flag eq 'F' ) {
$f->{'type'} = length($columndef->columnvalue)
? 'fixed'
: 'hidden';
$f->{'value'} = $columndef->columnvalue;
}
},
'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"
). '
'
: '';
},
'html_table_bottom' => sub {
my $svc_x = shift;
my $html = '';
foreach my $field ($svc_x->virtual_fields) {
if ($part_svc->part_svc_column($field)->columnflag ne 'F'){
# If the flag is X, it won't even show up
# in $svc_acct->virtual_fields.
$html .=
$svc_x->pvf($field)->widget( 'HTML',
'edit',
$svc_x->getfield($field)
);
}
}
$html;
},
'html_bottom' => sub {
qq!!.
qq!!;
},
%opt #pass through/override params
)
%>
<%init>
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??
}
%init>