summaryrefslogtreecommitdiff
path: root/FS/FS/reason_type.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/reason_type.pm')
-rw-r--r--FS/FS/reason_type.pm211
1 files changed, 0 insertions, 211 deletions
diff --git a/FS/FS/reason_type.pm b/FS/FS/reason_type.pm
deleted file mode 100644
index 482ea34e8..000000000
--- a/FS/FS/reason_type.pm
+++ /dev/null
@@ -1,211 +0,0 @@
-package FS::reason_type;
-
-use strict;
-use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs );
-
-@ISA = qw(FS::Record);
-
-our %class_name = (
- 'C' => 'cancel',
- 'R' => 'credit',
- 'S' => 'suspend',
-);
-
-our %class_purpose = (
- 'C' => 'explain why a customer package was cancelled',
- 'R' => 'explain why a customer was credited',
- 'S' => 'explain why a customer package was suspended',
-);
-
-=head1 NAME
-
-FS::reason_type - Object methods for reason_type records
-
-=head1 SYNOPSIS
-
- use FS::reason_type;
-
- $record = new FS::reason_type \%hash;
- $record = new FS::reason_type { 'column' => 'value' };
-
- $error = $record->insert;
-
- $error = $new_record->replace($old_record);
-
- $error = $record->delete;
-
- $error = $record->check;
-
-=head1 DESCRIPTION
-
-An FS::reason_type object represents a grouping of reasons. FS::reason_type
-inherits from FS::Record. The following fields are currently supported:
-
-=over 4
-
-=item typenum - primary key
-
-=item class - currently 'C', 'R', or 'S' for cancel, credit, or suspend
-
-=item type - name of the type of reason
-
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new HASHREF
-
-Creates a new reason_type. To add the example to the database, see L<"insert">.
-
-Note that this stores the hash reference, not a distinct copy of the hash it
-points to. You can ask the object for a copy with the I<hash> method.
-
-=cut
-
-sub table { 'reason_type'; }
-
-=item insert
-
-Adds this record to the database. If there is an error, returns the error,
-otherwise returns false.
-
-=cut
-
-=item delete
-
-Delete this record from the database.
-
-=cut
-
-=item replace OLD_RECORD
-
-Replaces the OLD_RECORD with this one in the database. If there is an error,
-returns the error, otherwise returns false.
-
-=cut
-
-=item check
-
-Checks all fields to make sure this is a valid reason_type. If there is
-an error, returns the error, otherwise returns false. Called by the insert
-and replace methods.
-
-=cut
-
-sub check {
- my $self = shift;
-
- my $error =
- $self->ut_numbern('typenum')
- || $self->ut_enum('class', [ keys %class_name ] )
- || $self->ut_text('type')
- ;
- return $error if $error;
-
- $self->SUPER::check;
-}
-
-=item reasons
-
-Returns a list of all reasons associated with this type.
-
-=cut
-
-sub reasons {
- qsearch( 'reason', { 'reason_type' => shift->typenum } );
-}
-
-=item enabled_reasons
-
-Returns a list of enabled reasons associated with this type.
-
-=cut
-
-sub enabled_reasons {
- qsearch( 'reason', { 'reason_type' => shift->typenum,
- 'enabled' => '',
- } );
-}
-
-# _populate_initial_data
-#
-# Used by FS::Setup to initialize a new database.
-#
-#
-
-sub _populate_initial_data { # class method
- my ($self, %opts) = @_;
-
- my $conf = new FS::Conf;
-
- foreach ( keys %class_name ) {
- my $object = $self->new( {'class' => $_,
- 'type' => ucfirst($class_name{$_}). ' Reason',
- } );
- my $error = $object->insert();
- die "error inserting $self into database: $error\n"
- if $error;
- }
-
- my $object = qsearchs('reason_type', { 'class' => 'R' });
- die "can't find credit reason type just inserted!\n"
- unless $object;
-
- foreach ( keys %FS::cust_credit::reasontype_map ) {
-# my $object = $self->new( {'class' => 'R',
-# 'type' => $FS::cust_credit::reasontype_map{$_},
-# } );
-# my $error = $object->insert();
-# die "error inserting $self into database: $error\n"
-# if $error;
-# # or clause for 1.7.x
- $conf->set($_, $object->typenum)
- or die "failed setting config";
- }
-
- '';
-
-}
-
-# _upgrade_data
-#
-# Used by FS::Upgrade to migrate to a new database.
-#
-#
-
-sub _upgrade_data { # class method
- my ($self, %opts) = @_;
-
- foreach ( keys %class_name ) {
- unless (scalar(qsearch('reason_type', { 'class' => $_ }))) {
- my $object = $self->new( {'class' => $_,
- 'type' => ucfirst($class_name{$_}),
- } );
- my $error = $object->insert();
- die "error inserting $self into database: $error\n"
- if $error;
- }
- }
-
- '';
-
-}
-
-=back
-
-=head1 BUGS
-
-Here be termintes. Don't use on wooden computers.
-
-=head1 SEE ALSO
-
-L<FS::Record>, schema.html from the base documentation.
-
-=cut
-
-1;
-