X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;h=164bad079bafa597cf5464ab87670d27b6ba4d4b;hb=f9a181e4c2e505df84de16190ee3b75011326f3f;hp=db39ea9ae715ab0977ca5bc26b2630ada2f612c5;hpb=57f5975a062022e280680feed1f692f3e937414b;p=freeside.git diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index db39ea9ae..164bad079 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -459,6 +459,17 @@ sub part_export_did { grep $_->can('get_dids'), $self->part_export; } +=item part_export_dsl_pull + +Returns a list of any exports (see L) for this service that +are capable of pulling/pushing DSL orders. + +=cut + +sub part_export_dsl_pull { + my $self = shift; + grep $_->can('dsl_pull'), $self->part_export; +} =item cust_svc [ PKGPART ] @@ -724,7 +735,18 @@ sub process { ref($param->{'svc_acct__usergroup'}) ? join(',', @{$param->{'svc_acct__usergroup'}} ) : $param->{'svc_acct__usergroup'}; + + #unmunge cgp_accessmodes (falze laziness-ish w/edit/process/svc_acct.cgi) + $param->{'svc_acct__cgp_accessmodes'} ||= + join(' ', sort + grep { $_ !~ /^(flag|label)$/ } + map { /^svc_acct__cgp_accessmodes_([\w\/]+)$/ or die "no way"; $1; } + grep $param->{$_}, + grep /^svc_acct__cgp_accessmodes_([\w\/]+)$/, + keys %$param + ); + my $new = new FS::part_svc ( { map { $_ => $param->{$_};