X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_hardware.pm;h=cbf3ddfa9c4bb048c1c09e6f6c9b0457169a10f8;hb=58dfeb5412c54d676119d1c6b8a9ff7edde7e234;hp=2be8954c8655e5ac466983309f9102ab8ba8ddef;hpb=fb7f3203c7d839ae3964d5e2cac71892422a10d1;p=freeside.git diff --git a/FS/FS/svc_hardware.pm b/FS/FS/svc_hardware.pm index 2be8954c8..cbf3ddfa9 100644 --- a/FS/FS/svc_hardware.pm +++ b/FS/FS/svc_hardware.pm @@ -135,15 +135,22 @@ sub search_sql { sub label { my $self = shift; + my $part_svc = $self->cust_svc->part_svc; my @label = (); if (my $type = $self->hardware_type) { - push @label, 'Type:' . $type->description; + my $typenum_label = $part_svc->part_svc_column('typenum'); + push @label, ( $typenum_label && $typenum_label->columnlabel || 'Type:' ). + $type->description; } if (my $ser = $self->serial) { - push @label, 'Serial#' . $ser; + my $serial_label = $part_svc->part_svc_column('serial'); + push @label, ( $serial_label && $serial_label->columnlabel || 'Serial#' ). + $ser; } if (my $mac = $self->display_hw_addr) { - push @label, 'MAC:'. $mac; + my $hw_addr_label = $part_svc->part_svc_column('hw_addr'); + push @label, ( $hw_addr_label && $hw_addr_label->columnlabel || 'MAC:'). + $mac; } return join(', ', @label); } @@ -208,6 +215,40 @@ sub check { $self->SUPER::check; } +sub _check_duplicate { + my $self = shift; + + return '' unless $conf->exists('global_unique-svc_hardware'); + + $self->lock_table; + + if ( $self->hw_addr ) { + my @dup_mac; + @dup_mac = $self->find_duplicates('global', 'hw_addr'); + if ( @dup_mac ) { + return "Hardware address in use (svcnum ".$dup_mac[0]->svcnum.")"; + } + } + + if ( $self->ip_addr ) { + my @dup_ip; + @dup_ip = $self->find_duplicates('global', 'ip_addr'); + if ( @dup_ip ) { + return "IP address in use (svcnum ".$dup_ip[0]->svcnum.")"; + } + } + + if ( $self->serial ) { + my @dup_serial; + @dup_serial = $self->find_duplicates('global', 'typenum', 'serial'); + if ( @dup_serial ) { + return "Serial number in use (svcnum ".$dup_serial[0]->svcnum.")"; + } + } + + ''; +} + =item hardware_type Returns the L object associated with this installation.