diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Conf.pm | 14 | ||||
| -rw-r--r-- | FS/FS/cust_main.pm | 27 | 
2 files changed, 39 insertions, 2 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index b11728f65..e3183452f 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -2135,6 +2135,20 @@ httemplate/docs/config.html +  { +    'key'         => 'cust_main-require_phone', +    'section'     => '', +    'description' => 'Require daytime or night for all customer records.', +    'type'        => 'checkbox', +  }, + +  { +    'key'         => 'cust_main-require_invoicing_list_email', +    'section'     => '', +    'description' => 'Require at least one invoicing email address for all customer records.', +    'type'        => 'checkbox', +  }, +  );  1; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 3ad2c1ac7..a28b9eeb2 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -350,7 +350,8 @@ sub insert {      $error = $self->check_invoicing_list( $invoicing_list );      if ( $error ) {        $dbh->rollback if $oldAutoCommit; -      return "checking invoicing_list (transaction rolled back): $error"; +      #return "checking invoicing_list (transaction rolled back): $error"; +      return $error;      }      $self->invoicing_list( $invoicing_list );    } @@ -1273,6 +1274,21 @@ sub check {    ;    return $error if $error; +  if ( $conf->exists('cust_main-require_phone') +       && ! length($self->daytime) && ! length($self->night) +     ) { + +    my $daytime_label = FS::Msgcat::_gettext('daytime') =~ /^(daytime)?$/ +                          ? 'Day Phone' +                          : FS::Msgcat::_gettext('daytime'); +    my $night_label = FS::Msgcat::_gettext('night') =~ /^(night)?$/ +                        ? 'Night Phone' +                        : FS::Msgcat::_gettext('night'); +   +    return "$daytime_label or $night_label is required" +   +  } +    my @addfields = qw(      last first company address1 address2 city county state zip      country daytime night fax @@ -3749,7 +3765,8 @@ is an error, returns the error, otherwise returns false.  sub check_invoicing_list {    my( $self, $arrayref ) = @_; -  foreach my $address ( @{$arrayref} ) { + +  foreach my $address ( @$arrayref ) {      if ($address eq 'FAX' and $self->getfield('fax') eq '') {        return 'Can\'t add FAX invoice destination with a blank FAX number.'; @@ -3764,7 +3781,13 @@ sub check_invoicing_list {                  : $cust_main_invoice->checkdest      ;      return $error if $error; +    } + +  return "Email address required" +    if $conf->exists('cust_main-require_invoicing_list_email') +    && ! grep { $_ !~ /^([A-Z]+)$/ } @$arrayref; +    '';  }  | 
