X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;fp=FS%2FFS%2Fpart_svc.pm;h=1da30cbb495ef94347fdb4212a391bcb6712bf15;hp=f56878acf4f938903aa708766cb2a158db5af1a1;hb=4fda726fa9f8e709c68ec823edc5ae702723281c;hpb=326075e45814387624303357207eae9069301f58 diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index f56878acf..1da30cbb4 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -95,8 +95,12 @@ the part_svc_column table appropriately (see L). =item I__I - Default or fixed value for I in I. +=item I__I_label + =item I__I_flag - defines I__I action: null or empty (no default), `D' for default, `F' for fixed (unchangeable), , `S' for selectable choice, `M' for manual selection from inventory, or `A' for automatic selection from inventory. For virtual fields, can also be 'X' for excluded. +=item I__I_required - I should always have a true value + =back If you want to add part_svc_column records for fields that do not exist as @@ -145,6 +149,7 @@ sub insert { foreach my $field ( grep { $_ ne 'svcnum' && ( defined( $self->getfield($svcdb.'__'.$_.'_flag') ) + || defined($self->getfield($svcdb.'__'.$_.'_required')) || $self->getfield($svcdb.'__'.$_.'_label') !~ /^\s*$/ ) } (fields($svcdb), @fields) ) { @@ -156,6 +161,7 @@ sub insert { my $flag = $self->getfield($svcdb.'__'.$field.'_flag'); my $label = $self->getfield($svcdb.'__'.$field.'_label'); + my $required = $self->getfield($svcdb.'__'.$field.'_required') ? 'Y' : ''; if ( uc($flag) =~ /^([A-Z])$/ || $label !~ /^\s*$/ ) { if ( uc($flag) =~ /^([A-Z])$/ ) { @@ -170,6 +176,8 @@ sub insert { $part_svc_column->setfield('columnlabel', $label) if $label !~ /^\s*$/; + $part_svc_column->setfield('required', $required); + if ( $previous ) { $error = $part_svc_column->replace($previous); } else { @@ -279,6 +287,7 @@ sub replace { foreach my $field ( grep { $_ ne 'svcnum' && ( defined( $new->getfield($svcdb.'__'.$_.'_flag') ) + || defined($new->getfield($svcdb.'__'.$_.'_required')) || $new->getfield($svcdb.'__'.$_.'_label') !~ /^\s*$/ ) } (fields($svcdb),@fields) ) { @@ -291,6 +300,7 @@ sub replace { my $flag = $new->getfield($svcdb.'__'.$field.'_flag'); my $label = $new->getfield($svcdb.'__'.$field.'_label'); + my $required = $new->getfield($svcdb.'__'.$field.'_required') ? 'Y' : ''; if ( uc($flag) =~ /^([A-Z])$/ || $label !~ /^\s*$/ ) { @@ -309,6 +319,8 @@ sub replace { $part_svc_column->setfield('columnlabel', $label) if $label !~ /^\s*$/; + $part_svc_column->setfield('required', $required); + if ( $previous ) { $error = $part_svc_column->replace($previous); } else { @@ -699,6 +711,8 @@ some components specified by "select-.*.html", and a bunch more... =item select_allow_empty - Used with select_table, adds an empty option +=item required - This field should always have a true value (do not use with type checkbox or disabled) + =back =cut @@ -773,7 +787,7 @@ sub process { and ref($param->{ $f }) ) { $param->{ $f } = join(',', @{ $param->{ $f } }); } - ( $f, $f.'_flag', $f.'_label' ); + ( $f, $f.'_flag', $f.'_label', $f.'_required' ); } @fields;