public function getNumberOfSubaffiliates($userid = null) {
$result = new Gpf_Data_RecordSet();
$selectBuilder = new Gpf_SqlBuilder_SelectBuilder();
$selectBuilder->select->add('COUNT(u.userid)', 'amount');
$selectBuilder->from->add(Pap_Db_Table_Users::getName(), "u");
$selectBuilder->from->addInnerJoin(Gpf_Db_Table_Users::getName(), "gu", "u.accountuserid = gu.accountuserid");
$selectBuilder->from->addInnerJoin(Gpf_Db_Table_AuthUsers::getName(), "au", "gu.authid = au.authid");
$selectBuilder->where->add('u.deleted', '=', Gpf::NO);
if ($userid === null) {
$selectBuilder->where->add('u.parentuserid', '=', Gpf_Session::getAuthUser()->getPapUserId());
} else {
$selectBuilder->where->add('u.parentuserid', '=', $userid);
}
$selectBuilder->where->add('gu.rstatus', '<>', 'D');
if ($this->params->isDateFromDefined()) {
$selectBuilder->where->add('u.' . Pap_Stats_Table::DATEINSERTED, '>=', $this->params->getDateFrom()->toDateTime());
}
if ($this->params->isDateToDefined()) {
$selectBuilder->where->add('u.' . Pap_Stats_Table::DATEINSERTED, '<=', $this->params->getDateTo()->toDateTime());
}
$selectBuilder->limit->set(0, 1);
$result->load($selectBuilder);
if($result->getSize() == 0) {
return 0;
}
foreach($result as $record) {
return $record->get('amount');
}
}