package FS::pkg_category;
+use base qw( FS::category_Common );
use strict;
-use base qw( FS::category_Common );
use vars qw( @ISA $me $DEBUG );
-use FS::Record qw( qsearch dbh );
+use FS::Record qw( qsearch qsearchs );
use FS::pkg_class;
use FS::part_pkg;
Weight
+=item ticketing_queueid
+
+Ticketing Queue
+
+=item condense
+
+Condense flag for invoice display, empty or 'Y'
+
+
=item disabled
Disabled flag, empty or 'Y'
=cut
+sub check {
+ my $self = shift;
+
+ $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;
$weight += 10;
}
}
+
+ # create default category for package fees
+ my $tax_category_name = 'Taxes, Surcharges, and Fees';
+ my $tax_category = qsearchs('pkg_category',
+ { categoryname => $tax_category_name }
+ );
+ if (!$tax_category) {
+ $tax_category = FS::pkg_category->new({
+ categoryname => $tax_category_name,
+ weight => 1000, # doesn't really matter
+ });
+ my $error = $tax_category->insert;
+ die "error creating tax category: $error\n" if $error;
+ }
+
+ my $fee_class_name = 'Fees'; # does not appear on invoice
+ my $fee_class = qsearchs('pkg_class', { classname => $fee_class_name });
+ if (!$fee_class) {
+ $fee_class = FS::pkg_class->new({
+ classname => $fee_class_name,
+ categorynum => $tax_category->categorynum,
+ });
+ my $error = $fee_class->insert;
+ die "error creating fee class: $error\n" if $error;
+ }
+
+ # assign it to all fee defs that don't otherwise have a class
+ foreach my $part_fee (qsearch('part_fee', { classnum => '' })) {
+ $part_fee->set('classnum', $fee_class->classnum);
+ my $error = $part_fee->replace;
+ die "error assigning default class to fee def#".$part_fee->feepart .
+ ":$error\n" if $error;
+ }
+
'';
}