*** empty log message ***
[freeside.git] / site_perl / part_pkg.pm
index 7434a9b..4b6cc09 100644 (file)
@@ -1,12 +1,10 @@
 package FS::part_pkg;
 
 use strict;
 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
 
 
 =head1 NAME
 
@@ -16,8 +14,8 @@ FS::part_pkg - Object methods for part_pkg objects
 
   use FS::part_pkg;
 
 
   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;
 
 
   $custom_record = $template_record->clone;
 
@@ -31,8 +29,8 @@ FS::part_pkg - Object methods for part_pkg objects
 
 =head1 DESCRIPTION
 
 
 =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
 
 
 =over 4
 
@@ -57,38 +55,33 @@ just as you would normally.  More advanced semantics are not yet defined.
 
 =over 4 
 
 
 =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
 
 
 Creates a new billing item definition.  To add the billing item definition to
 the database, see L<"insert">.
 
 =cut
 
-sub create {
-  my($proto,$hashref)=@_;
-
-  #now in FS::Record::new
-  #my($field);
-  #foreach $field (fields('part_pkg')) {
-  #  $hashref->{$field}='' unless defined $hashref->{$field};
-  #}
-
-  $proto->new('part_pkg',$hashref);
-}
+sub table { 'part_pkg'; }
 
 =item clone
 
 
 =item clone
 
-Creates a new billing item definition by duplicating an existing definition.
-A new pkgpart is assigned and "(CUSTOM) " is prepended to the comment 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">.
 
 =cut
 
 sub clone {
   my $self = shift;
 
 =cut
 
 sub clone {
   my $self = shift;
+  my $class = ref($self);
   my %hash = $self->hash;
   my %hash = $self->hash;
+  $hash{'pkgpart'} = '';
   $hash{'comment'} = "(CUSTOM) ". $hash{'comment'}
     unless $hash{'comment'} =~ /^\(CUSTOM\) /;
   $hash{'comment'} = "(CUSTOM) ". $hash{'comment'}
     unless $hash{'comment'} =~ /^\(CUSTOM\) /;
-  create ( { $self->hash } );
+  #new FS::part_pkg ( \%hash ); # ?
+  new $class ( \%hash ); # ?
 }
 
 =item insert
 }
 
 =item insert
@@ -96,15 +89,6 @@ sub clone {
 Adds this billing item definition to the database.  If there is an error,
 returns the error, otherwise returns false.
 
 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.
 =item delete
 
 Currently unimplemented.
@@ -113,10 +97,7 @@ Currently unimplemented.
 
 sub delete {
   return "Can't (yet?) delete package definitions.";
 
 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
 }
 
 =item replace OLD_RECORD
@@ -124,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.
 
 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
 =item check
 
 Checks all fields to make sure this is a valid billing item definition.  If
@@ -144,24 +114,22 @@ insert and replace methods.
 =cut
 
 sub check {
 =cut
 
 sub check {
-  my($self)=@_;
-  return "Not a part_pkg record!" unless $self->table eq "part_pkg";
+  my $self = shift;
 
   $self->ut_numbern('pkgpart')
 
   $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
 
 }
 
 =back
 
 =head1 VERSION
 
-$Id: part_pkg.pm,v 1.2 1998-11-15 09:08:15 ivan Exp $
+$Id: part_pkg.pm,v 1.5 1998-12-31 01:04:16 ivan Exp $
 
 =head1 BUGS
 
 
 =head1 BUGS
 
@@ -184,8 +152,11 @@ ivan@sisd.com 97-dec-5
 pod ivan@sisd.com 98-sep-21
 
 $Log: part_pkg.pm,v $
 pod ivan@sisd.com 98-sep-21
 
 $Log: part_pkg.pm,v $
-Revision 1.2  1998-11-15 09:08:15  ivan
-added clone method to support per-customer pricing
+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
 
 
 =cut