package FS::pkg_category;
+use base qw( FS::category_Common );
use strict;
use vars qw( @ISA $me $DEBUG );
-use FS::Record qw( qsearch dbh );
+use FS::Record qw( qsearch );
+use FS::pkg_class;
use FS::part_pkg;
-@ISA = qw( FS::Record );
$DEBUG = 0;
$me = '[FS::pkg_category]';
=over 4
-=item categorynum - primary key (assigned automatically for new package categoryes)
+=item categorynum
-=item categoryname - Text name of this package category
+primary key (assigned automatically for new package categoryes)
-=item disabled - Disabled flag, empty or 'Y'
+=item categoryname
+
+Text name of this package category
+
+=item weight
+
+Weight
+
+=item ticketing_queueid
+
+Ticketing Queue
+
+=item condense
+
+Condense flag for invoice display, empty or 'Y'
+
+
+=item disabled
+
+Disabled flag, empty or 'Y'
=back
=item new HASHREF
-Creates a new package category. To add the package category to the database, see
-L<"insert">.
+Creates a new package category. To add the package category to the database,
+see L<"insert">.
=cut
=item delete
-Deletes this package category from the database. Only package categoryes with no
-associated package definitions can be deleted. If there is an error, returns
-the error, otherwise returns false.
-
-=cut
-
-sub delete {
- my $self = shift;
-
- return "Can't delete an pkg_category with pkg_class records!"
- if qsearch( 'pkg_class', { 'categorynum' => $self->categorynum } );
-
- $self->SUPER::delete;
-}
+Deletes this package category from the database. Only package categoryes with
+no associated package definitions can be deleted. If there is an error,
+returns the error, otherwise returns false.
-=item replace OLD_RECORD
+=item replace [ OLD_RECORD ]
Replaces OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
sub check {
my $self = shift;
- $self->ut_numbern('categorynum')
- or $self->ut_text('categoryname')
- or $self->ut_snumber('weight')
- or $self->SUPER::check;
+ $self->ut_enum('condense', [ '', 'Y' ])
+ || $self->ut_snumbern('ticketing_queueid')
+ || $self->SUPER::check;
+}
+
+=item ticketing_queue
+Returns the queue name corresponding with the id from the I<ticketing_queueid>
+field, or the empty string.
+
+=cut
+
+sub ticketing_queue {
+ my $self = shift;
+ return 'Agent-specific queue' if $self->ticketing_queueid == -1;
+ return '' unless $self->ticketing_queueid;
+ FS::TicketSystem->queue($self->ticketing_queueid);
}
# _ upgrade_data
#
# Used by FS::Upgrade to migrate to a new database.
-#
-#
sub _upgrade_data {
my ($class, %opts) = @_;
- my $dbh = dbh;
warn "$me upgrading $class\n" if $DEBUG;
=head1 SEE ALSO
-L<FS::Record>, L<FS::part_pkg>, schema.html from the base documentation.
+L<FS::category_Common>, L<FS::Record>
=cut