From: ivan Date: Thu, 24 Sep 1998 06:20:57 +0000 (+0000) Subject: Initial revision X-Git-Tag: freeside_1_2_0~249 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=4fe44937087247a57a952b292b50b1e63531b8ed Initial revision --- diff --git a/site_perl/svc_acct_pop.pm b/site_perl/svc_acct_pop.pm new file mode 100644 index 000000000..a6f801f22 --- /dev/null +++ b/site_perl/svc_acct_pop.pm @@ -0,0 +1,163 @@ +package FS::svc_acct_pop; + +use strict; +use vars qw(@ISA @EXPORT_OK); +use Exporter; +use FS::Record qw(fields qsearchs); + +@ISA = qw(FS::Record Exporter); +@EXPORT_OK = qw(fields); + +=head1 NAME + +FS::svc_acct_pop - Object methods for svc_acct_pop records + +=head1 SYNOPSIS + + use FS::svc_acct_pop; + + $record = create FS::svc_acct_pop \%hash; + $record = create FS::svc_acct_pop { 'column' => 'value' }; + + $error = $record->insert; + + $error = $new_record->replace($old_record); + + $error = $record->delete; + + $error = $record->check; + +=head1 DESCRIPTION + +An FS::svc_acct object represents an point of presence. FS::svc_acct_pop +inherits from FS::Record. The following fields are currently supported: + +=over 4 + +=item popnum - primary key (assigned automatically for new accounts) + +=item city + +=item state + +=item ac - area code + +=item exch - exchange + +=back + +=head1 METHODS + +=over 4 + +=item create HASHREF + +Creates a new point of presence (if only it were that easy!). To add the +point of presence to the database, see L<"insert">. + +=cut + +sub create { + my($proto,$hashref)=@_; + + #now in FS::Record::new + #my($field); + #foreach $field (fields('svc_acct_pop')) { + # $hashref->{$field}='' unless defined $hashref->{$field}; + #} + + $proto->new('svc_acct_pop',$hashref); +} + +=item insert + +Adds this point of presence to the databaes. If there is an error, returns the +error, otherwise returns false. + +=cut + +sub insert { + my($self)=@_; + + $self->check or + $self->add; +} + +=item delete + +Currently unimplemented. + +=cut + +sub delete { + my($self)=@_; + return "Can't (yet) delete POPs!"; + #$self->del; +} + +=item replace OLD_RECORD + +Replaces OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +=cut + +sub replace { + my($new,$old)=@_; + return "(Old) Not an svc_acct_pop record!" + unless $old->table eq "svc_acct_pop"; + return "Can't change popnum!" + unless $old->getfield('popnum') eq $new->getfield('popnum'); + $new->check or + $new->rep($old); +} + +=item check + +Checks all fields to make sure this is a valid point of presence. If there is +an error, returns the error, otherwise returns false. Called by the insert +and replace methods. + +=cut + +sub check { + my($self)=@_; + return "Not a svc_acct_pop record!" unless $self->table eq "svc_acct_pop"; + + my($error)= + $self->ut_numbern('popnum') + or $self->ut_text('city') + or $self->ut_text('state') + or $self->ut_number('ac') + or $self->ut_number('exch') + ; + return $error if $error; + + ''; + +} + +=back + +=head1 BUGS + +It doesn't properly override FS::Record yet. + +It should be renamed to part_pop. + +=head1 SEE ALSO + +L, L, schema.html from the base documentation. + +=head1 HISTORY + +Class dealing with pops + +ivan@sisd.com 98-mar-8 + +pod ivan@sisd.com 98-sep-23 + +=cut + +1; +