This commit was generated by cvs2svn to compensate for changes in r4, which
[freeside.git] / site_perl / table_template-unique.pm
1 #!/usr/local/bin/perl -Tw
2 #
3 # ivan@voicenet.com 97-jul-1
4
5 # added hfields
6 # ivan@sisd.com 97-nov-13
7
8 package FS::table_name;
9
10 use strict;
11 use Exporter;
12 #use FS::UID qw(getotaker);
13 use FS::Record qw(fields hfields qsearch qsearchs);
14
15 @FS::table_name::ISA = qw(FS::Record Exporter);
16 @FS::table_name::EXPORT_OK = qw(hfields);
17
18 # Usage: $record = create FS::table_name ( \%hash );
19 #        $record = create FS::table_name ( { field=>value, ... } );
20 sub create {
21   my($proto,$hashref)=@_;
22
23   my($field);
24   foreach $field (fields('table_name')) {
25     $hashref->{$field}='' unless defined $hashref->{$field};
26   }
27
28   $proto->new('table_name',$hashref);
29 }
30
31 # Usage: $error = $record -> insert;
32 sub insert {
33   my($self)=@_;
34
35   $self->check or
36   $self->add;
37 }
38
39 # Usage: $error = $record -> delete;
40 sub delete {
41   my($self)=@_;
42
43   $self->del;
44 }
45
46 # Usage: $error = $newrecord -> replace($oldrecord)
47 sub replace {
48   my($new,$old)=@_;
49   return "(Old) Not a table_name record!" unless $old->table eq "table_name";
50   return "Can't change keyfield!"
51     unless $old->getfield('keyfield') eq $new->getfield('keyfield');
52   $new->check or
53   $new->rep($old);
54 }
55
56 # Usage: $error = $record -> check;
57 sub check {
58   my($self)=@_;
59   return "Not a table_name record!" unless $self->table eq "table_name";
60   my($recref) = $self->hashref;
61
62   ''; #no error
63 }
64
65 1;
66