$self->SUPER::check;
}
-#XXX this is a way-too simplistic implementation
-# at the very least, title should be unique across exports that need that or
-# controlled by a conf setting or something
sub _check_duplicate {
my $self = shift;
my $conf = new FS::Conf;
- return '' if $conf->config('global_unique-pbx_title') eq 'disabled';
-
+
$self->lock_table;
- if ( qsearchs( 'svc_pbx', { 'title' => $self->title } ) ) {
- return "Name in use";
- } else {
- return '';
+ foreach my $field ('title', 'id') {
+ my $global_unique = $conf->config("global_unique-pbx_$field");
+ # can be 'disabled', 'enabled', or empty.
+ # if empty, check per exports; if not empty or disabled, check
+ # globally.
+ next if $global_unique eq 'disabled';
+ my @dup = $self->find_duplicates(
+ ($global_unique ? 'global' : 'export') , $field
+ );
+ next if !@dup;
+ return "duplicate $field '".$self->getfield($field).
+ "': conflicts with svcnum ".$dup[0]->svcnum;
}
+ return '';
}
=item get_cdrs