Exemplo n.º 1
0
 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);
                 }
             }
         }
     }
 }