projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
agent-virtualize advertising sources
[freeside.git]
/
FS
/
FS
/
part_referral.pm
diff --git
a/FS/FS/part_referral.pm
b/FS/FS/part_referral.pm
index
3f0af4b
..
b12cd62
100644
(file)
--- a/
FS/FS/part_referral.pm
+++ b/
FS/FS/part_referral.pm
@@
-2,7
+2,8
@@
package FS::part_referral;
use strict;
use vars qw( @ISA );
use strict;
use vars qw( @ISA );
-use FS::Record;
+use FS::Record qw(qsearchs);
+use FS::agent;
@ISA = qw( FS::Record );
@ISA = qw( FS::Record );
@@
-27,26
+28,36
@@
FS::part_referral - Object methods for part_referral objects
=head1 DESCRIPTION
=head1 DESCRIPTION
-An FS::part_referral represents a
referral - where a customer heard of your
-services. This can be used to track the effectiveness of a particular piece of
-advertising, for example. FS::part_referral inherits from FS::Record. The
-following fields are currently supported:
+An FS::part_referral represents a
advertising source - where a customer heard
+of your services. This can be used to track the effectiveness of a particular
+piece of advertising, for example. FS::part_referral inherits from FS::Record.
+
The
following fields are currently supported:
=over 4
=item refnum - primary key (assigned automatically for new referrals)
=over 4
=item refnum - primary key (assigned automatically for new referrals)
-=item referral - Text name of this referral
+=item referral - Text name of this advertising source
+
+=item disabled - Disabled flag, empty or 'Y'
+
+=item agentnum - Optional agentnum (see L<FS::agent>)
=back
=back
+=head1 NOTE
+
+These were called B<referrals> before version 1.4.0 - the name was changed
+so as not to be confused with the new customer-to-customer referrals.
+
=head1 METHODS
=over 4
=item new HASHREF
=head1 METHODS
=over 4
=item new HASHREF
-Creates a new referral. To add the referral to the database, see L<"insert">.
+Creates a new advertising source. To add the referral to the database, see
+L<"insert">.
=cut
=cut
@@
-54,8
+65,8
@@
sub table { 'part_referral'; }
=item insert
=item insert
-Adds this
referral to the database. If there is an error, returns the error,
-otherwise returns false.
+Adds this
advertising source to the database. If there is an error, returns
+
the error,
otherwise returns false.
=item delete
=item delete
@@
-76,30
+87,47
@@
returns the error, otherwise returns false.
=item check
=item check
-Checks all fields to make sure this is a valid
referral. If there is an error,
-returns the error, otherwise returns false. Called by the insert and replace
-methods.
+Checks all fields to make sure this is a valid
advertising source. If there is
+an error, returns the error, otherwise returns false. Called by the insert and
+
replace
methods.
=cut
sub check {
my $self = shift;
=cut
sub check {
my $self = shift;
- $self->ut_numbern('refnum')
+
my $error =
$self->ut_numbern('refnum')
|| $self->ut_text('referral')
|| $self->ut_text('referral')
+ || $self->ut_enum('disabled', [ '', 'Y' ] )
+ #|| $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum')
+ || $self->ut_agentnum_acl('agentnum', 'Edit global advertising sources')
;
;
+ return $error if $error;
+
+ $self->SUPER::check;
}
}
-=
back
+=
item agent
-=head1 VERSION
+Returns the associated agent for this referral, if any, as an FS::agent object.
-$Id: part_referral.pm,v 1.1 1999-08-04 09:03:53 ivan Exp $
+=cut
+
+sub agent {
+ my $self = shift;
+ qsearchs('agent', { 'agentnum' => $self->agentnum } );
+}
+
+=back
=head1 BUGS
The delete method is unimplemented.
=head1 BUGS
The delete method is unimplemented.
+`Advertising source'. Yes, it's a sucky name. The only other ones I could
+come up with were "Marketing channel" and "Heard Abouts" and those are
+definately both worse.
+
=head1 SEE ALSO
L<FS::Record>, L<FS::cust_main>, schema.html from the base documentation.
=head1 SEE ALSO
L<FS::Record>, L<FS::cust_main>, schema.html from the base documentation.