X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=042c243fdf7d710737000a8008f9202314efcbe7;hb=1fd6d8cf5d7854860ef4fd10ed89828e0c04ec39;hp=ac7cab72f288b01089a00573d27a7d924fa87259;hpb=fb13e429f8499f6eadad09c1452489ca0f4f7031;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index ac7cab72f..042c243fd 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -2,7 +2,7 @@ package FS::svc_Common; use strict; use vars qw( @ISA ); -use FS::Record qw( qsearchs fields ); +use FS::Record qw( qsearchs fields dbh ); use FS::cust_svc; use FS::part_svc; @@ -107,7 +107,7 @@ sub delete { $error = $self->SUPER::delete; return $error if $error; - my $cust_svc = qsearchs( 'cust_svc' , { 'svcnum' => $svcnum } ); + my $cust_svc = $self->cust_svc; $error = $cust_svc->delete; return $error if $error; @@ -154,7 +154,7 @@ sub setx { #get part_svc my $svcpart; if ( $self->svcnum ) { - my $cust_svc = qsearchs( 'cust_svc', { 'svcnum' => $self->svcnum } ); + my $cust_svc = $self->cust_svc; return "Unknown svcnum" unless $cust_svc; $svcpart = $cust_svc->svcpart; } else { @@ -164,9 +164,11 @@ sub setx { return "Unkonwn svcpart" unless $part_svc; #set default/fixed/whatever fields from part_svc - foreach my $field ( fields('svc_acct') ) { - if ( $part_svc->getfield('svc_acct__'. $field. '_flag') eq $x ) { - $self->setfield( $field, $part_svc->getfield('svc_acct__'. $field) ); + my $table = $self->table; + foreach my $field ( grep { $_ ne 'svcnum' } fields($table) ) { + my $part_svc_column = $part_svc->part_svc_column($field); + if ( $part_svc_column->columnflag eq $x ) { + $self->setfield( $field, $part_svc_column->columnvalue ); } } @@ -174,6 +176,18 @@ sub setx { } +=item cust_svc + +Returns the cust_svc record associated with this svc_ record, as a FS::cust_svc +object (see L). + +=cut + +sub cust_svc { + my $self = shift; + qsearchs('cust_svc', { 'svcnum' => $self->svcnum } ); +} + =item suspend =item unsuspend @@ -193,15 +207,12 @@ sub cancel { ''; } =head1 VERSION -$Id: svc_Common.pm,v 1.3 2001-04-15 13:35:12 ivan Exp $ +$Id: svc_Common.pm,v 1.7 2001-11-30 00:04:38 ivan Exp $ =head1 BUGS The setfixed method return value. -The new method should set defaults from part_svc (like the check method -sets fixed values)? - =head1 SEE ALSO L, L, L, L, schema.html