use Time::Local;
use FS::UID qw( dbh );
use FS::Report::Table;
+use FS::CurrentUser;
@ISA = qw( FS::Report::Table );
);
}
-#these should be auto-generated
+#these should be auto-generated or $AUTOLOADed or something
sub invoiced_12mo {
my( $self, $speriod, $eperiod, $agentnum ) = @_;
$speriod = $self->_subtract_11mo($speriod);
sub in_time_period_and_agent {
my( $self, $speriod, $eperiod, $agentnum ) = splice(@_, 0, 4);
my $table = @_ ? shift().'.' : '';
+
my $sql = "${table}_date >= $speriod AND ${table}_date < $eperiod";
+
+ #agent selection
$sql .= " AND agentnum = $agentnum"
if $agentnum;
+
+ #agent virtualization
+ $sql .= ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql;
+
$sql;
}
push @search, " _date < $1 ";
}
- my $where = scalar(@search)
- ? 'WHERE '. join(' AND ', @search)
- : '';
+ #here is the agent virtualization
+ push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
+
+ my $where = 'WHERE '. join(' AND ', @search);
my $count_query = 'SELECT COUNT(*), SUM(amount) '.
'FROM cust_credit LEFT JOIN cust_main USING ( custnum ) '.
die "unknown search magic: ". $cgi->param('magic');
}
- my $search = '';
- if ( @search ) {
- $search = ' WHERE '. join(' AND ', @search);
- }
+ #here is the agent virtualization
+ push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
+
+ my $search = ' WHERE '. join(' AND ', @search);
$count_query = "SELECT COUNT(*), SUM(paid) ".
"FROM cust_pay LEFT JOIN cust_main USING ( custnum )".
$cgi->param('payby') =~ /^(\w+)$/ or die "illegal payby";
my $payby = $1;
- $count_query = "SELECT COUNT(*), SUM(paid) FROM cust_pay ".
- "WHERE payinfo = '$payinfo' AND payby = '$payby'";
+ $count_query = "SELECT COUNT(*), SUM(paid) FROM cust_pay".
+ " WHERE payinfo = '$payinfo' AND payby = '$payby'".
+ " AND ". $FS::CurrentUser::CurrentUser->agentnums_sql;
$sql_query = {
'table' => 'cust_pay',
'hashref' => { 'payinfo' => $payinfo,
'payby' => $payby },
- 'extra_sql' => "ORDER BY _date",
+ 'extra_sql' => $FS::CurrentUser::CurrentUser->agentnums_sql.
+ " ORDER BY _date",
};
}
$where .= " AND agentnum = '$agentnum' ";
}
+ #here is the agent virtualization
+ $where .= ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql;
+
my $count_sql = "select count(*) from cust_main $where";
my $sql_query = {