summaryrefslogtreecommitdiff
path: root/FS/FS/reason.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/reason.pm')
-rw-r--r--FS/FS/reason.pm184
1 files changed, 0 insertions, 184 deletions
diff --git a/FS/FS/reason.pm b/FS/FS/reason.pm
deleted file mode 100644
index 5311ec5..0000000
--- a/FS/FS/reason.pm
+++ /dev/null
@@ -1,184 +0,0 @@
-package FS::reason;
-
-use strict;
-use vars qw( @ISA $DEBUG $me );
-use DBIx::DBSchema;
-use DBIx::DBSchema::Table;
-use DBIx::DBSchema::Column;
-use FS::Record qw( qsearch qsearchs dbh dbdef );
-use FS::reason_type;
-
-@ISA = qw(FS::Record);
-$DEBUG = 0;
-$me = '[FS::reason]';
-
-=head1 NAME
-
-FS::reason - Object methods for reason records
-
-=head1 SYNOPSIS
-
- use FS::reason;
-
- $record = new FS::reason \%hash;
- $record = new FS::reason { 'column' => 'value' };
-
- $error = $record->insert;
-
- $error = $new_record->replace($old_record);
-
- $error = $record->delete;
-
- $error = $record->check;
-
-=head1 DESCRIPTION
-
-An FS::reason object represents a reason message. FS::reason inherits from
-FS::Record. The following fields are currently supported:
-
-=over 4
-
-=item reasonnum - primary key
-
-=item reason_type - index into FS::reason_type
-
-=item reason - text of the reason
-
-=item disabled - 'Y' or ''
-
-
-=back
-
-=head1 METHODS
-
-=over 4
-
-=item new HASHREF
-
-Creates a new reason. 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'; }
-
-=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. 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('reasonnum')
- || $self->ut_text('reason')
- ;
- return $error if $error;
-
- $self->SUPER::check;
-}
-
-=item reasontype
-
-Returns the reason_type (see <I>FS::reason_type</I>) associated with this reason.
-
-=cut
-
-sub reasontype {
- qsearchs( 'reason_type', { 'typenum' => shift->reason_type } );
-}
-
-# _upgrade_data
-#
-# Used by FS::Upgrade to migrate to a new database.
-#
-#
-
-sub _upgrade_data { # class method
- my ($self, %opts) = @_;
- my $dbh = dbh;
-
- warn "$me upgrading $self\n" if $DEBUG;
-
- my $column = dbdef->table($self->table)->column('reason');
- unless ($column->type eq 'text') { # assume history matches main table
-
- # ideally this would be supported in DBIx-DBSchema and friends
- warn "$me Shifting reason column to type 'text'\n" if $DEBUG;
- foreach my $table ( $self->table, 'h_'. $self->table ) {
- my @sql = ();
-
- $column = dbdef->table($self->table)->column('reason');
- my $columndef = $column->line($dbh);
- $columndef =~ s/varchar\(\d+\)/text/i;
-
- if ( $dbh->{Driver}->{Name} eq 'Pg' ) {
-
- my $notnull = $columndef =~ s/not null//i;
- push @sql,"ALTER TABLE $table RENAME reason TO freeside_upgrade_reason";
- push @sql,"ALTER TABLE $table ADD $columndef";
- push @sql,"UPDATE $table SET reason = freeside_upgrade_reason";
- push @sql,"ALTER TABLE $table ALTER reason SET NOT NULL"
- if $notnull;
- push @sql,"ALTER TABLE $table DROP freeside_upgrade_reason";
-
- } elsif ( $dbh->{Driver}->{Name} =~ /^mysql/i ){
-
- #crap, this isn't working
- #push @sql,"ALTER TABLE $table MODIFY reason ". $column->line($dbh);
- warn "WARNING: reason table upgrade not yet supported for mysql, sorry";
-
- } else {
- die "watchu talkin' 'bout, Willis? (unsupported database type)";
- }
-
- foreach (@sql) {
- my $sth = $dbh->prepare($_) or die $dbh->errstr;
- $sth->execute or die $sth->errstr;
- }
- }
- }
-
- '';
-
-}
-=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;
-