function loadReports($bIncludeFields) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $glUserID, $gbAdmin; $this->reports = array(); if ($this->strOrder . '' != '') { $strOrderBy = $this->strOrder; } else { $strOrderBy = ' crd_lKeyID '; } $sqlStr = "SELECT\n crd_lKeyID, crd_strName, crd_strNotes, crd_enumRptType,\n crd_bPrivate, crd_lOriginID, crd_lLastUpdateID,\n usersC.us_strFirstName AS strCFName, usersC.us_strLastName AS strCLName,\n usersL.us_strFirstName AS strLFName, usersL.us_strLastName AS strLLName,\n UNIX_TIMESTAMP(crd_dteOrigin) AS dteOrigin,\n UNIX_TIMESTAMP(crd_dteLastUpdate) AS dteLastUpdate\n\n FROM creport_dir\n INNER JOIN admin_users AS usersC ON crd_lOriginID = usersC.us_lKeyID\n INNER JOIN admin_users AS usersL ON crd_lLastUpdateID = usersL.us_lKeyID\n\n WHERE NOT crd_bRetired {$this->strWhereExtra}\n ORDER BY {$strOrderBy};"; $query = $this->db->query($sqlStr); $this->lNumReports = $lNumReports = $query->num_rows(); $idx = 0; if ($lNumReports == 0) { $this->reports[0] = new stdClass(); $cRpt =& $this->reports[0]; $cRpt->lKeyID = $cRpt->strName = $cRpt->strSafeName = $cRpt->strNotes = $cRpt->enumRptType = $cRpt->strXlatedRptType = $cRpt->bPrivate = $cRpt->lOriginID = $cRpt->lLastUpdateID = $cRpt->bUserIsOwner = $cRpt->bUserHasReadAccess = $cRpt->bUserHasWriteAccess = $cRpt->strCFName = $cRpt->strCLName = $cRpt->strSafeRptOwner = $cRpt->strLFName = $cRpt->strLLName = $cRpt->dteOrigin = $cRpt->dteLastUpdate = $cRpt->fields = null; } else { foreach ($query->result() as $row) { $this->reports[$idx] = new stdClass(); $cRpt =& $this->reports[$idx]; $cRpt->lKeyID = (int) $row->crd_lKeyID; $cRpt->strName = $row->crd_strName; $cRpt->strSafeName = htmlspecialchars($row->crd_strName); $cRpt->strNotes = $row->crd_strNotes; $cRpt->enumRptType = $row->crd_enumRptType; $cRpt->strXlatedRptType = $this->cRptTypes[$row->crd_enumRptType]->strLabel; $cRpt->bPrivate = (bool) $row->crd_bPrivate; $cRpt->lOriginID = (int) $row->crd_lOriginID; $cRpt->lLastUpdateID = $row->crd_lLastUpdateID; $cRpt->bUserIsOwner = $cRpt->lOriginID == $glUserID; $cRpt->bUserHasReadAccess = $gbAdmin || !$cRpt->bPrivate || $cRpt->bUserIsOwner; $cRpt->bUserHasWriteAccess = $gbAdmin || $cRpt->bUserIsOwner; $cRpt->strCFName = $row->strCFName; $cRpt->strCLName = $row->strCLName; $cRpt->strSafeRptOwner = htmlspecialchars($row->strCFName . ' ' . $row->strCLName); $cRpt->strLFName = $row->strLFName; $cRpt->strLLName = $row->strLLName; $cRpt->dteOrigin = (int) $row->dteOrigin; $cRpt->dteLastUpdate = (int) $row->dteLastUpdate; if ($bIncludeFields) { $cRpt->fields = $this->cReportFields($cRpt->lKeyID, $cRpt->lNumFields, false); } ++$idx; } if ($bIncludeFields && $cRpt->lNumFields > 0) { $caco = new madmin_aco(); foreach ($cRpt->fields as $field) { if ($field->enumType == CS_FT_CURRENCY) { $caco->setACOClassViaFieldID($field->lFieldID, $field->ACO); } } } } }