summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Schema.pm9
-rw-r--r--FS/FS/hardware_class.pm6
-rw-r--r--FS/FS/hardware_type.pm14
3 files changed, 24 insertions, 5 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 9de1b7f3f..483c5e00a 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -2126,12 +2126,13 @@ sub tables_hashref {
'hardware_type' => {
'columns' => [
- 'typenum', 'serial', '', '', '', '',
- 'classnum', 'int', '', '', '', '',
- 'model', 'varchar', '', $char_d, '', '',
+ 'typenum', 'serial', '', '', '', '',
+ 'classnum', 'int', '', '', '', '',
+ 'model', 'varchar', '', $char_d, '', '',
+ 'revision','varchar', 'NULL', $char_d, '', '',
],
'primary_key' => 'typenum',
- 'unique' => [ ],
+ 'unique' => [ [ 'classnum', 'model', 'revision' ] ],
'index' => [ ],
},
diff --git a/FS/FS/hardware_class.pm b/FS/FS/hardware_class.pm
index 073a97f88..791653baa 100644
--- a/FS/FS/hardware_class.pm
+++ b/FS/FS/hardware_class.pm
@@ -112,7 +112,11 @@ Returns all L<FS::hardware_type> objects belonging to this class.
sub hardware_type {
my $self = shift;
- return qsearch('hardware_type', { 'classnum' => $self->classnum });
+ qsearch({
+ table => 'hardware_type',
+ hashref => { 'classnum' => $self->classnum },
+ order_by=> 'ORDER BY model, revision',
+ })
}
=back
diff --git a/FS/FS/hardware_type.pm b/FS/FS/hardware_type.pm
index ba19fcb21..f19a3f683 100644
--- a/FS/FS/hardware_type.pm
+++ b/FS/FS/hardware_type.pm
@@ -39,6 +39,8 @@ to which this device type belongs.
=item model - descriptive model name or number
+=item revision - revision name/number, subordinate to model
+
=back
=head1 METHODS
@@ -102,6 +104,7 @@ sub check {
$self->ut_numbern('typenum')
|| $self->ut_foreign_key('classnum', 'hardware_class', 'classnum')
|| $self->ut_text('model')
+ || $self->ut_textn('revision')
;
return $error if $error;
@@ -119,6 +122,17 @@ sub hardware_class {
return qsearchs('hardware_class', { 'classnum' => $self->classnum });
}
+=item description
+
+Returns the model and revision number.
+
+=cut
+
+sub description {
+ my $self = shift;
+ $self->model . ($self->revision ? ' '.$self->revision : '');
+}
+
=back
=head1 SEE ALSO