diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2015-05-05 15:49:51 -0500 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2015-05-21 17:50:56 -0500 |
commit | fb7f3203c7d839ae3964d5e2cac71892422a10d1 (patch) | |
tree | 59baf4406ffd32c82bf8c45430f44770fe505ca2 /FS/FS/svc_Common.pm | |
parent | ec271a1445bf232cd172c38e2dd3fd9d3c5c7c4e (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 34ae2195e..9853d5b74 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -170,28 +170,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" + } } } |