svc_hardware uniqueness checks, RT#81534
[freeside.git] / FS / FS / svc_cable.pm
index 01c5de7..daaf680 100644 (file)
@@ -36,6 +36,26 @@ from FS::Record.  The following fields are currently supported:
 
 primary key
 
+=item providernum
+
+Provider (see L<FS::cable_provider>)
+
+=item ordernum
+
+Provider order number
+
+=item modelnum
+
+Cable device model (see L<FS::cable_model>)
+
+=item serialnum
+
+Cable device serial number
+
+=item mac_addr
+
+Cable device MAC address
+
 =back
 
 =head1 METHODS
@@ -122,11 +142,16 @@ Returns the MAC address and serial number.
 
 sub label {
   my $self = shift;
+  my $part_svc = $self->cust_svc->part_svc;
   my @label = ();
   push @label, 'MAC:'. $self->mac_addr_pretty
     if $self->mac_addr;
-  push @label, 'Serial#'. $self->serialnum
-    if $self->serialnum;
+  if ( $self->serialnum ) {
+    my $serialnum_label = $part_svc->part_svc_column('serialnum');
+    push @label,
+      ($serialnum_label && $serialnum_label->columnlabel || 'Serial#').
+      $self->serialnum;
+  }
   return join(', ', @label);
 }
 
@@ -184,7 +209,7 @@ sub _check_duplicate {
 
   if ( $self->serialnum ) {
     my @dup_serial;
-    @dup_serial = $self->find_duplicates('global', 'serialnum');
+    @dup_serial = $self->find_duplicates('global', 'modelnum', 'serialnum');
     if ( @dup_serial ) {
       return "Serial number in use (svcnum ".$dup_serial[0]->svcnum.")";
     }