X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_svc_column.pm;h=75a2dfb1a1dc2aa77b9beae28b77ec094f0ee865;hp=37e841e8778e563da94751ed8af4c9c4d62b91d5;hb=f822e27a1e00594332ffa487a1c284234c5580a6;hpb=c0567c688084e89fcd11bf82348b6c418f1254ac diff --git a/FS/FS/part_svc_column.pm b/FS/FS/part_svc_column.pm index 37e841e87..75a2dfb1a 100644 --- a/FS/FS/part_svc_column.pm +++ b/FS/FS/part_svc_column.pm @@ -39,9 +39,13 @@ fields are currently supported: =item columnname - column name in part_svc.svcdb table +=item columnlabel - label for the column + =item columnvalue - default or fixed value for the column -=item columnflag - null, D or F +=item columnflag - null or empty (no default), `D' for default, `F' for fixed (unchangeable), `S' for selectable choice, `M' for manual selection from inventory, `A' for automatic selection from inventory, or `H' for selection from a hardware class. For virtual fields, can also be 'X' for excluded. + +=item required - column value expected to be true =back @@ -87,23 +91,37 @@ sub check { $self->ut_numbern('columnnum') || $self->ut_number('svcpart') || $self->ut_alpha('columnname') + || $self->ut_textn('columnlabel') || $self->ut_anything('columnvalue') + || $self->ut_flag('required') ; return $error if $error; - $self->columnflag =~ /^([DF])$/ + $self->columnflag =~ /^([DFSMAHX]?)$/ or return "illegal columnflag ". $self->columnflag; $self->columnflag(uc($1)); - ''; #no error + if ( $self->columnflag =~ /^[MA]$/ ) { + # split, check all values independently, and normalize + my @classnums = split(/\s*,\s*/, $self->columnvalue); + foreach (@classnums) { + $self->set('columnvalue', $_); + $error = $self->ut_foreign_key( 'columnvalue', 'inventory_class', 'classnum' ); + return $error if $error; + } + $self->set('columnvalue', join(',', @classnums)); + } + if ( $self->columnflag eq 'H' ) { + $error = + $self->ut_foreign_key( 'columnvalue', 'hardware_class', 'classnum' ); + } + return $error if $error; + + $self->SUPER::check; } =back -=head1 VERSION - -$Id: part_svc_column.pm,v 1.1 2001-09-07 20:49:15 ivan Exp $ - =head1 BUGS =head1 SEE ALSO