summaryrefslogtreecommitdiff
path: root/httemplate/edit/process
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/edit/process')
-rw-r--r--httemplate/edit/process/elements/svc_Common.html19
-rwxr-xr-xhttemplate/edit/process/svc_acct.cgi19
2 files changed, 35 insertions, 3 deletions
diff --git a/httemplate/edit/process/elements/svc_Common.html b/httemplate/edit/process/elements/svc_Common.html
index 06f4c00b1..e1b7cbe1a 100644
--- a/httemplate/edit/process/elements/svc_Common.html
+++ b/httemplate/edit/process/elements/svc_Common.html
@@ -1,6 +1,7 @@
<% include( 'process.html',
'edit_ext' => 'cgi',
'redirect' => popurl(3)."view/$table.cgi?",
+ 'args_callback' => $args_callback,
%opt,
)
%>
@@ -16,4 +17,22 @@ foreach (fields($table)) {
}
}
+my $args_callback = sub {
+ my ($cgi, $svc) = @_;
+ my $part_svc = FS::part_svc->by_key($cgi->param('svcpart'))
+ or die "svcpart required";
+ if ( $part_svc->has_router ) {
+ my $router = FS::router->new({
+ map { $_ => $cgi->param("router_$_") }
+ qw( routernum routername blocknum )
+ });
+ if (length($router->routername) == 0) {
+ #sensible default
+ $router->set('routername', $svc->label);
+ }
+ return (child_objects => [ $router ]);
+ }
+ ();
+};
+
</%init>
diff --git a/httemplate/edit/process/svc_acct.cgi b/httemplate/edit/process/svc_acct.cgi
index d4bcd35ed..ca614cbd8 100755
--- a/httemplate/edit/process/svc_acct.cgi
+++ b/httemplate/edit/process/svc_acct.cgi
@@ -88,7 +88,7 @@ if ( ! $error ) {
my $export_info = FS::part_export::export_info();
- my @svc_export_machine =
+ my @child_objects =
map FS::svc_export_machine->new({
'svcnum' => $svcnum,
'exportnum' => $_->exportnum,
@@ -97,6 +97,19 @@ if ( ! $error ) {
grep { $_->machine eq '_SVC_MACHINE' }
$part_svc->part_export;
+ if ( $part_svc->has_router ) {
+ my $router = FS::router->new({
+ map { $_ => $cgi->param("router_$_") }
+ qw( routernum routername blocknum )
+ });
+ if (length($router->routername == 0)) {
+ #sensible default
+ $router->set('routername', $new->label);
+ }
+ push @child_objects, $router;
+ }
+
+
if ( $svcnum ) {
foreach ( grep { $old->$_ != $new->$_ }
qw( seconds upbytes downbytes totalbytes )
@@ -110,9 +123,9 @@ if ( ! $error ) {
$error ||= $new->set_usage(\%hash); #unoverlimit and trigger radius changes
last; #once is enough
}
- $error ||= $new->replace($old, 'child_objects'=>\@svc_export_machine);
+ $error ||= $new->replace($old, 'child_objects'=>\@child_objects);
} else {
- $error ||= $new->insert('child_objects'=>\@svc_export_machine);
+ $error ||= $new->insert('child_objects'=>\@child_objects);
$svcnum = $new->svcnum;
}
}