5 use FS::Record qw( qsearchs );
9 @ISA = qw( FS::Record );
13 FS::pkg_svc - Object methods for pkg_svc records
19 $record = new FS::pkg_svc \%hash;
20 $record = new FS::pkg_svc { 'column' => 'value' };
22 $error = $record->insert;
24 $error = $new_record->replace($old_record);
26 $error = $record->delete;
28 $error = $record->check;
30 $part_pkg = $record->part_pkg;
32 $part_svc = $record->part_svc;
36 An FS::pkg_svc record links a billing item definition (see L<FS::part_pkg>) to
37 a service definition (see L<FS::part_svc>). FS::pkg_svc inherits from
38 FS::Record. The following fields are currently supported:
42 =item pkgsvcnum - primary key
44 =item pkgpart - Billing item definition (see L<FS::part_pkg>)
46 =item svcpart - Service definition (see L<FS::part_svc>)
48 =item quantity - Quantity of this service definition that this billing item
51 =item primary_svc - primary flag, empty or 'Y'
61 Create a new record. To add the record to the database, see L<"insert">.
65 sub table { 'pkg_svc'; }
69 Adds this record to the database. If there is an error, returns the error,
70 otherwise returns false.
74 Deletes this record from the database. If there is an error, returns the
75 error, otherwise returns false.
77 =item replace OLD_RECORD
79 Replaces OLD_RECORD with this one in the database. If there is an error,
80 returns the error, otherwise returns false.
85 my ( $new, $old ) = ( shift, shift );
87 return "Can't change pkgpart!" if $old->pkgpart != $new->pkgpart;
88 return "Can't change svcpart!" if $old->svcpart != $new->svcpart;
90 $new->SUPER::replace($old);
95 Checks all fields to make sure this is a valid record. If there is an error,
96 returns the error, otherwise returns false. Called by the insert and replace
106 $self->ut_numbern('pkgsvcnum')
107 || $self->ut_number('pkgpart')
108 || $self->ut_number('svcpart')
109 || $self->ut_number('quantity')
111 return $error if $error;
113 return "Unknown pkgpart!" unless $self->part_pkg;
114 return "Unknown svcpart!" unless $self->part_svc;
116 if ( $self->dbdef_table->column('primary_svc') ) {
117 $error = $self->ut_enum('primary_svc', [ '', 'Y' ] );
118 return $error if $error;
126 Returns the FS::part_pkg object (see L<FS::part_pkg>).
132 qsearchs( 'part_pkg', { 'pkgpart' => $self->pkgpart } );
137 Returns the FS::part_svc object (see L<FS::part_svc>).
143 qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
152 L<FS::Record>, L<FS::part_pkg>, L<FS::part_svc>, schema.html from the base