X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_hardware.pm;h=96502e41e0e5b29dd50ff998c0ae9b118a4711f9;hb=0babd0e62f87f5c36535b30c40002c5c1abff7ea;hp=22e627538b1d517bca80143e8707776d0e3e491f;hpb=7d68066ea33f9f85fe14ce663372642d7ec2ad20;p=freeside.git diff --git a/FS/FS/svc_hardware.pm b/FS/FS/svc_hardware.pm index 22e627538..96502e41e 100644 --- a/FS/FS/svc_hardware.pm +++ b/FS/FS/svc_hardware.pm @@ -2,9 +2,13 @@ package FS::svc_hardware; use strict; use base qw( FS::svc_Common ); +use vars qw( $conf ); use FS::Record qw( qsearch qsearchs ); use FS::hardware_type; use FS::hardware_status; +use FS::Conf; + +FS::UID->install_callback(sub { $conf = FS::Conf->new; }); =head1 NAME @@ -125,7 +129,7 @@ sub search_sql { sub label { my $self = shift; - $self->serial || $self->hw_addr; + $self->serial || $self->display_hw_addr; } =item insert @@ -160,7 +164,7 @@ sub check { return $x unless ref $x; my $hw_addr = $self->getfield('hw_addr'); - $hw_addr = join('', split(/\W/, $hw_addr)); + $hw_addr = join('', split(/[_\W]/, $hw_addr)); if ( $conf->exists('svc_hardware-check_mac_addr') ) { $hw_addr = uc($hw_addr); $hw_addr =~ /^[0-9A-F]{12}$/ @@ -213,6 +217,18 @@ sub status_label { $status->label; } +=item display_hw_addr + +Returns the 'hw_addr' field, formatted as a MAC address if the +'svc_hardware-check_mac_addr' option is enabled. + +=cut + +sub display_hw_addr { + my $self = shift; + ($conf->exists('svc_hardware-check_mac_addr') ? + join(':', $self->hw_addr =~ /../g) : $self->hw_addr) +} =back