X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;h=580038be2bfdc6888f587e08ff1769522357ef23;hb=106d0163556c31a3b2cf9c065ec6d9d6ded0ce64;hp=5b4e54cc216aab1769520eef9a6964e6cf60ed43;hpb=633c48448d9468690b7ad77eb6ff7c660a286658;p=freeside.git diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index 5b4e54cc2..580038be2 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -145,9 +145,11 @@ sub insert { my $flag = $self->getfield($svcdb.'__'.$field.'_flag'); #if ( uc($flag) =~ /^([DFMAX])$/ ) { if ( uc($flag) =~ /^([A-Z])$/ ) { #part_svc_column will test it + my $parser = FS::part_svc->svc_table_fields($svcdb)->{$field}->{parse} + || sub { shift }; $part_svc_column->setfield('columnflag', $1); $part_svc_column->setfield('columnvalue', - $self->getfield($svcdb.'__'.$field) + &$parser($self->getfield($svcdb.'__'.$field)) ); if ( $previous ) { $error = $part_svc_column->replace($previous); @@ -264,9 +266,11 @@ sub replace { my $flag = $new->getfield($svcdb.'__'.$field.'_flag'); #if ( uc($flag) =~ /^([DFMAX])$/ ) { if ( uc($flag) =~ /^([A-Z])$/ ) { #part_svc_column will test it + my $parser = FS::part_svc->svc_table_fields($svcdb)->{$field}->{parse} + || sub { shift }; $part_svc_column->setfield('columnflag', $1); $part_svc_column->setfield('columnvalue', - $new->getfield($svcdb.'__'.$field) + &$parser($new->getfield($svcdb.'__'.$field)) ); if ( $previous ) { $error = $part_svc_column->replace($previous); @@ -421,6 +425,19 @@ sub part_export_usage { grep $_->can('usage_sessions'), $self->part_export; } +=item part_export_did + +Returns a list of any exports (see L) for this service that +are capable of returing available DID (phone number) information. + +=cut + +sub part_export_did { + my $self = shift; + grep $_->can('get_dids'), $self->part_export; +} + + =item cust_svc [ PKGPART ] Returns a list of associated customer services (FS::cust_svc records).