|| $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,
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)
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->{$_};