X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=site_perl%2Fpart_pkg.pm;h=4b6cc09a41ed75a4bc80d48ce094f9d61b4ab493;hp=d1c12e47e99b0608637fba5ad646dfa41a86ead0;hb=7613e14fd13aabb2a44bb26ca8640053f44930ea;hpb=889bf4b600c134f91174caf0919a86dbdc4dcf03 diff --git a/site_perl/part_pkg.pm b/site_perl/part_pkg.pm index d1c12e47e..4b6cc09a4 100644 --- a/site_perl/part_pkg.pm +++ b/site_perl/part_pkg.pm @@ -1,12 +1,10 @@ package FS::part_pkg; use strict; -use vars qw(@ISA @EXPORT_OK); -use Exporter; -use FS::Record qw(fields hfields); +use vars qw( @ISA ); +use FS::Record; -@ISA = qw(FS::Record Exporter); -@EXPORT_OK = qw(hfields fields); +@ISA = qw( FS::Record ); =head1 NAME @@ -16,8 +14,10 @@ FS::part_pkg - Object methods for part_pkg objects use FS::part_pkg; - $record = create FS::part_pkg \%hash - $record = create FS::part_pkg { 'column' => 'value' }; + $record = new FS::part_pkg \%hash + $record = new FS::part_pkg { 'column' => 'value' }; + + $custom_record = $template_record->clone; $error = $record->insert; @@ -29,8 +29,8 @@ FS::part_pkg - Object methods for part_pkg objects =head1 DESCRIPTION -An FS::part_pkg represents a billing item definition. FS::part_pkg inherits -from FS::Record. The following fields are currently supported: +An FS::part_pkg object represents a billing item definition. FS::part_pkg +inherits from FS::Record. The following fields are currently supported: =over 4 @@ -55,23 +55,33 @@ just as you would normally. More advanced semantics are not yet defined. =over 4 -=item create HASHREF +=item new HASHREF Creates a new billing item definition. To add the billing item definition to the database, see L<"insert">. =cut -sub create { - my($proto,$hashref)=@_; +sub table { 'part_pkg'; } + +=item clone - #now in FS::Record::new - #my($field); - #foreach $field (fields('part_pkg')) { - # $hashref->{$field}='' unless defined $hashref->{$field}; - #} +An alternate constructor. Creates a new billing item definition by duplicating +an existing definition. A new pkgpart is assigned and `(CUSTOM) ' is prepended +to the comment field. To add the billing item definition to the database, see +L<"insert">. - $proto->new('part_pkg',$hashref); +=cut + +sub clone { + my $self = shift; + my $class = ref($self); + my %hash = $self->hash; + $hash{'pkgpart'} = ''; + $hash{'comment'} = "(CUSTOM) ". $hash{'comment'} + unless $hash{'comment'} =~ /^\(CUSTOM\) /; + #new FS::part_pkg ( \%hash ); # ? + new $class ( \%hash ); # ? } =item insert @@ -79,15 +89,6 @@ sub create { Adds this billing item definition to the database. 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. @@ -96,10 +97,7 @@ Currently unimplemented. sub delete { return "Can't (yet?) delete package definitions."; -# maybe check & make sure the pkgpart isn't in cust_pkg or type_pkgs? -# my($self)=@_; -# -# $self->del; +# check & make sure the pkgpart isn't in cust_pkg or type_pkgs? } =item replace OLD_RECORD @@ -107,17 +105,6 @@ sub delete { 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 a part_pkg record!" unless $old->table eq "part_pkg"; - return "Can't change pkgpart!" - unless $old->getfield('pkgpart') eq $new->getfield('pkgpart'); - $new->check or - $new->rep($old); -} - =item check Checks all fields to make sure this is a valid billing item definition. If @@ -127,21 +114,23 @@ insert and replace methods. =cut sub check { - my($self)=@_; - return "Not a part_pkg record!" unless $self->table eq "part_pkg"; + my $self = shift; $self->ut_numbern('pkgpart') - or $self->ut_text('pkg') - or $self->ut_text('comment') - or $self->ut_anything('setup') - or $self->ut_number('freq') - or $self->ut_anything('recur') + || $self->ut_text('pkg') + || $self->ut_text('comment') + || $self->ut_anything('setup') + || $self->ut_number('freq') + || $self->ut_anything('recur') ; - } =back +=head1 VERSION + +$Id: part_pkg.pm,v 1.5 1998-12-31 01:04:16 ivan Exp $ + =head1 BUGS It doesn't properly override FS::Record yet. @@ -162,6 +151,14 @@ ivan@sisd.com 97-dec-5 pod ivan@sisd.com 98-sep-21 +$Log: part_pkg.pm,v $ +Revision 1.5 1998-12-31 01:04:16 ivan +doc + +Revision 1.3 1998/11/15 13:00:15 ivan +bugfix in clone method, clone method doc clarification + + =cut 1;