summaryrefslogtreecommitdiff
path: root/FS/FS/svc_Common.pm
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2015-05-05 15:49:51 -0500
committerJonathan Prykop <jonathan@freeside.biz>2015-05-05 15:49:51 -0500
commitc422010521a7c09673a8d4d0068d3fd482dd2dbc (patch)
tree036edda657fbfb10083532319ac898471c2ade59 /FS/FS/svc_Common.pm
parentc684757e24c7c64b73a6d636b2d25997b3511053 (diff)
RT#34289: Flag service fields as mandatory
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r--FS/FS/svc_Common.pm44
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"
+ }
}
}