X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fpart_svc.pm;h=164bad079bafa597cf5464ab87670d27b6ba4d4b;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hp=e57efe4d0ebcc835f823d073f56343ee6d238fc0;hpb=f920fdb29a19105c9102d29e532f8cbb40dd1171;p=freeside.git diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index e57efe4d0..164bad079 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -267,6 +267,7 @@ sub replace { || $new->getfield($svcdb.'__'.$_.'_label') !~ /^\s*$/ ) } (fields($svcdb),@fields) ) { + my $part_svc_column = $new->part_svc_column($field); my $previous = qsearchs('part_svc_column', { 'svcpart' => $new->svcpart, @@ -279,12 +280,15 @@ sub replace { if ( uc($flag) =~ /^([A-Z])$/ || $label !~ /^\s*$/ ) { if ( uc($flag) =~ /^([A-Z])$/ ) { + $part_svc_column->setfield('columnflag', $1); my $parser = FS::part_svc->svc_table_fields($svcdb)->{$field}->{parse} || sub { shift }; - $part_svc_column->setfield('columnflag', $1); $part_svc_column->setfield('columnvalue', &$parser($new->getfield($svcdb.'__'.$field)) ); + } else { + $part_svc_column->setfield('columnflag', ''); + $part_svc_column->setfield('columnvalue', ''); } $part_svc_column->setfield('columnlabel', $label) @@ -455,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 ] @@ -720,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->{$_};