summaryrefslogtreecommitdiff
path: root/FS/FS/part_referral.pm
diff options
context:
space:
mode:
authorivan <ivan>2006-08-11 08:02:26 +0000
committerivan <ivan>2006-08-11 08:02:26 +0000
commite47e9758f480c664bfc3917d798cd69c7d354999 (patch)
treee776a5753a1214a797731f4da39518979f1400eb /FS/FS/part_referral.pm
parentdbc120189697e8306f62349c310f5410f8382491 (diff)
virtualize referrals on customer addition
Diffstat (limited to 'FS/FS/part_referral.pm')
-rw-r--r--FS/FS/part_referral.pm21
1 files changed, 14 insertions, 7 deletions
diff --git a/FS/FS/part_referral.pm b/FS/FS/part_referral.pm
index e168865..87bc87c 100644
--- a/FS/FS/part_referral.pm
+++ b/FS/FS/part_referral.pm
@@ -124,30 +124,37 @@ sub agent {
=over 4
-=item acl_agentnum_sql
+=item acl_agentnum_sql [ INCLUDE_GLOBAL_BOOL ]
Returns an SQL fragment for searching for part_referral records allowed by the
current users's agent ACLs (and "Edit global advertising sources" right).
+Pass a true value to include global advertising sources (for example, when
+simply using rather than editing advertising sources).
+
=cut
sub acl_agentnum_sql {
- #my $class = shift;
+ my $self = shift;
my $curuser = $FS::CurrentUser::CurrentUser;
my $sql = $curuser->agentnums_sql;
$sql = " ( $sql OR agentnum IS NULL ) "
- if $curuser->access_right('Edit global advertising sources');
+ if $curuser->access_right('Edit global advertising sources')
+ or defined($_[0]) && $_[0];
$sql;
}
-=item all_part_referral
+=item all_part_referral [ INCLUDE_GLOBAL_BOOL ]
Returns all part_referral records allowed by the current users's agent ACLs
(and "Edit global advertising sources" right).
+Pass a true value to include global advertising sources (for example, when
+simply using rather than editing advertising sources).
+
=cut
sub all_part_referral {
@@ -155,12 +162,12 @@ sub all_part_referral {
qsearch({
'table' => 'part_referral',
- 'extra_sql' => ' WHERE '. $self->acl_agentnum_sql. ' ORDER BY refnum ',
+ 'extra_sql' => ' WHERE '. $self->acl_agentnum_sql(@_). ' ORDER BY refnum ',
});
}
-=item num_part_referral
+=item num_part_referral [ INCLUDE_GLOBAL_BOOL ]
Returns the number of part_referral records allowed by the current users's
agent ACLs (and "Edit global advertising sources" right).
@@ -171,7 +178,7 @@ sub num_part_referral {
my $self = shift;
my $sth = dbh->prepare(
- 'SELECT COUNT(*) FROM part_referral WHERE '. $self->acl_agentnum_sql
+ 'SELECT COUNT(*) FROM part_referral WHERE '. $self->acl_agentnum_sql(@_)
) or die dbh->errstr;
$sth->execute() or die $sth->errstr;
$sth->fetchrow_arrayref->[0];