Initial import into CVS
[freeside.git] / site_perl / table_template-svc.pm
1 #!/usr/local/bin/perl -Tw
2 #
3 # ivan@voicenet.com 97-jul-21
4
5 package FS::svc_table;
6
7 use strict;
8 use Exporter;
9 use FS::Record qw(fields qsearchs);
10
11 @FS::svc_table::ISA = qw(FS::Record Exporter);
12
13 # Usage: $record = create FS::svc_table ( \%hash );
14 #        $record = create FS::svc_table ( { field=>value, ... } );
15 sub create {
16   my($proto,$hashref)=@_;
17
18   my($field);
19   foreach $field (fields('svc_table')) {
20     $hashref->{$field}='' unless defined $hashref->{$field};
21   }
22
23   $proto->new('svc_table',$hashref);
24
25 }
26
27 # Usage: $error = $record -> insert;
28 sub insert {
29   my($self)=@_;
30   my($error);
31
32   local $SIG{HUP} = 'IGNORE';
33   local $SIG{INT} = 'IGNORE';
34   local $SIG{QUIT} = 'IGNORE';
35   local $SIG{TERM} = 'IGNORE';
36   local $SIG{TSTP} = 'IGNORE';
37
38   $error=$self->check;
39   return $error if $error;
40
41   $error = $self->add;
42   return $error if $error;
43
44   ''; #no error
45 }
46
47 # Usage: $error = $record -> delete;
48 sub delete {
49   my($self)=@_;
50   my($error);
51
52   $error = $self->del;
53   return $error if $error;
54
55 }
56
57 # Usage: $error = $newrecord -> replace($oldrecord)
58 sub replace {
59   my($new,$old)=@_;
60   my($error);
61
62   return "(Old) Not a svc_table record!" unless $old->table eq "svc_table";
63   return "Can't change svcnum!"
64     unless $old->getfield('svcnum') eq $new->getfield('svcnum');
65
66   $error=$new->check;
67   return $error if $error;
68
69   $error = $new->rep($old);
70   return $error if $error;
71
72   ''; #no error
73 }
74
75 # Usage: $error = $record -> suspend;
76 sub suspend {
77   ''; #no error (stub)
78 }
79
80 # Usage: $error = $record -> unsuspend;
81 sub unsuspend {
82   ''; #no error (stub)
83 }
84
85 # Usage: $error = $record -> cancel;
86 sub cancel {
87   ''; #no error (stub)
88 }
89
90 # Usage: $error = $record -> check;
91 sub check {
92   my($self)=@_;
93   return "Not a svc_table record!" unless $self->table eq "svc_table";
94   my($recref) = $self->hashref;
95
96   $recref->{svcnum} =~ /^(\d+)$/ or return "Illegal svcnum";
97   $recref->{svcnum} = $1;
98   return "Unknown svcnum" unless
99     qsearchs('cust_svc',{'svcnum'=> $recref->{svcnum} } );
100
101   #DATA CHECKS GO HERE!
102
103   ''; #no error
104 }
105
106 1;
107