diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2015-05-05 15:49:51 -0500 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2015-05-05 15:49:51 -0500 |
commit | c422010521a7c09673a8d4d0068d3fd482dd2dbc (patch) | |
tree | 036edda657fbfb10083532319ac898471c2ade59 /FS/FS/svc_Common.pm | |
parent | c684757e24c7c64b73a6d636b2d25997b3511053 (diff) |
RT#34289: Flag service fields as mandatory
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r-- | FS/FS/svc_Common.pm | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 8d3b5353e..9d9e50f98 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -167,28 +167,30 @@ sub check { my $required = {}; my $labels = {}; my $tinfo = $self->can('table_info') ? $self->table_info : {}; - my $fields = $tinfo->{'fields'} || {}; - foreach my $field (keys %$fields) { - if (ref($fields->{$field}) && $fields->{$field}->{'required'}) { - $required->{$field} = 1; - $labels->{$field} = $fields->{$field}->{'label'}; + if ($tinfo->{'manual_require'}) { + my $fields = $tinfo->{'fields'} || {}; + foreach my $field (keys %$fields) { + if (ref($fields->{$field}) && $fields->{$field}->{'required'}) { + $required->{$field} = 1; + $labels->{$field} = $fields->{$field}->{'label'}; + } } - } - # add fields marked as required in database - foreach my $column ( - qsearch('part_svc_column',{ - 'svcpart' => $self->svcpart, - 'required' => 'Y' - }) - ) { - $required->{$column->columnname} = 1; - $labels->{$column->columnname} = $column->columnlabel; - } - # do the actual checking - foreach my $field (keys %$required) { - unless ($self->$field) { - my $name = $labels->{$field} || $field; - return "Field $name is required\n" + # add fields marked as required in database + foreach my $column ( + qsearch('part_svc_column',{ + 'svcpart' => $self->svcpart, + 'required' => 'Y' + }) + ) { + $required->{$column->columnname} = 1; + $labels->{$column->columnname} = $column->columnlabel; + } + # do the actual checking + foreach my $field (keys %$required) { + unless (length($self->get($field)) > 0) { + my $name = $labels->{$field} || $field; + return "Field $name is required\n" + } } } |