summaryrefslogtreecommitdiff
path: root/FS/FS/svc_cable.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-03-20 19:11:40 -0700
committerIvan Kohler <ivan@freeside.biz>2016-03-20 19:11:40 -0700
commit1a8f4aeadd9f619c2f9535eb850bde58a651f82b (patch)
treef83221d40408c8f973a135eee925ea9c75fb11ad /FS/FS/svc_cable.pm
parent4c20bb23330aff5df05a211762106ec50402f7c7 (diff)
allow null serial and mac, RT#31388
Diffstat (limited to 'FS/FS/svc_cable.pm')
-rw-r--r--FS/FS/svc_cable.pm24
1 files changed, 14 insertions, 10 deletions
diff --git a/FS/FS/svc_cable.pm b/FS/FS/svc_cable.pm
index 122d8c6..01c5de7 100644
--- a/FS/FS/svc_cable.pm
+++ b/FS/FS/svc_cable.pm
@@ -160,8 +160,8 @@ sub check {
|| $self->ut_foreign_keyn('providernum', 'cable_provider', 'providernum')
|| $self->ut_alphan('ordernum')
|| $self->ut_foreign_key('modelnum', 'cable_model', 'modelnum')
- || $self->ut_alpha('serialnum')
- || $self->ut_mac_addr('mac_addr')
+ || $self->ut_alphan('serialnum')
+ || $self->ut_mac_addrn('mac_addr')
;
return $error if $error;
@@ -174,16 +174,20 @@ sub _check_duplicate {
# Not reliable checks because the table isn't locked, but that's why we have
# unique indices. These are just to give friendlier error messages.
- my @dup_mac;
- @dup_mac = $self->find_duplicates('global', 'mac_addr');
- if ( @dup_mac ) {
- return "MAC address in use (svcnum ".$dup_mac[0]->svcnum.")";
+ if ( $self->mac_addr ) {
+ my @dup_mac;
+ @dup_mac = $self->find_duplicates('global', 'mac_addr');
+ if ( @dup_mac ) {
+ return "MAC address in use (svcnum ".$dup_mac[0]->svcnum.")";
+ }
}
- my @dup_serial;
- @dup_serial = $self->find_duplicates('global', 'serialnum');
- if ( @dup_serial ) {
- return "Serial number in use (svcnum ".$dup_serial[0]->svcnum.")";
+ if ( $self->serialnum ) {
+ my @dup_serial;
+ @dup_serial = $self->find_duplicates('global', 'serialnum');
+ if ( @dup_serial ) {
+ return "Serial number in use (svcnum ".$dup_serial[0]->svcnum.")";
+ }
}
'';