'pkg_category' => {
'columns' => [
- 'categorynum', 'serial', '', '', '', '',
- 'categoryname', 'varchar', '', $char_d, '', '',
- 'weight', 'int', 'NULL', '', '', '',
- 'condense', 'char', 'NULL', 1, '', '',
- 'disabled', 'char', 'NULL', 1, '', '',
+ 'categorynum', 'serial', '', '', '', '',
+ 'categoryname', 'varchar', '', $char_d, '', '',
+ 'weight', 'int', 'NULL', '', '', '',
+ 'ticketing_queueid', 'int', 'NULL', '', '', '',
+ 'condense', 'char', 'NULL', 1, '', '',
+ 'disabled', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'categorynum',
'unique' => [],
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 );
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;
'order_by' => 'ORDER BY categorynum',
},
'count_query' => $count_query,
- 'header' => [ '#', 'Category', 'Weight', 'Condense' ],
- 'fields' => [ 'categorynum', 'categoryname', 'weight', 'condense' ],
- 'links' => [ $link, $link, $link, $link ],
+ 'header' => [ 'Category', 'Weight', 'Ticketing', 'Condense' ],
+ 'fields' => [ 'categoryname', 'weight', 'ticketing_queue', 'condense' ],
+ 'links' => [ $link, '', '', '', ]
)
%>
if ($sth->fetchrow_arrayref->[0]) {
push @$header, 'Category';
push @$fields, 'categoryname';
- push @$links, $link;
+ push @$links, [ $p.'edit/pkg_category.html?', 'categorynum' ]
}
</%init>
% #umm. for select-agent_types at least
% 'label_callback'=> $f->{'label_callback'},
%
+% #for select-ticketing_queueid at least
+% 'post_options' => $f->{'post_options'},
+%
% #any?
% 'colspan' => $f->{'colspan'},
% 'required' => $f->{'required'},
'fields' => [
'categoryname',
'weight',
- { field=>'condense', type=>'checkbox', value=>'Y', },
- { field=>'disabled', type=>'checkbox', value=>'Y', },
+ { field=>'ticketing_queueid',
+ type =>'select-ticketing_queueid',
+ post_options => [ -1 => 'Agent-specific queue' ],
+ },
+ { field=>'condense', type=>'checkbox', value=>'Y' },
+ { field=>'disabled', type=>'checkbox', value=>'Y' },
],
'labels' => {
'categorynum' => 'Category number',
'categoryname' => 'Category name',
'weight' => 'Weight',
+ 'ticketing_queueid' => 'Ticketing queue',
'condense' => 'Collapse identical items to one',
'disabled' => 'Disable category',
},