function __construct() { parent::__construct(); }
function cloneCProgram($lCProgSourceID, $lCProgDestID) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $cdest = new muser_fields_create(); $ccpSource = new mcprograms(); $ccpDest = new mcprograms(); $ccpSource->loadClientProgramsViaCPID($lCProgSourceID); $cpSource =& $ccpSource->cprogs[0]; $ccpDest->loadClientProgramsViaCPID($lCProgDestID); $cpDest =& $ccpDest->cprogs[0]; $lETableSrcID = $cpSource->lEnrollmentTableID; $lATableSrcID = $cpSource->lAttendanceTableID; $lETableDestID = $cpDest->lEnrollmentTableID; $lATableDestID = $cpDest->lAttendanceTableID; // clone the enrollment table $attr = new stdClass(); $attr->lSrcTableID = $lETableSrcID; $attr->lDestTableID = $lETableDestID; $this->cloneUTable($attr); // clone the attendance table; first remove the new // activity DDL field (it will be cloned appropriately) $cdest->loadSingleField($cpDest->lActivityFieldID); $cdest->strENPTableName = $cpDest->strAttendanceTable; $cdest->removeField(); $attr->lSrcTableID = $lATableSrcID; $attr->lDestTableID = $lATableDestID; $this->cloneUTable($attr); //-------------------------------------------------- // now identify the new activity ddl, and set // that field name in the parent Client Program // record //-------------------------------------------------- // this is a bit kludgy - the activity field will be // the first ddl field in the attendance table //-------------------------------------------------- $sqlStr = "SELECT pff_lKeyID\n FROM uf_fields\n WHERE pff_lTableID={$lATableDestID}\n AND pff_enumFieldType='DDL'\n ORDER BY pff_lKeyID\n LIMIT 0,1;"; $query = $this->db->query($sqlStr); if ($query->num_rows() != 1) { screamForHelp($lATableDestID . ': Attendance table clone failure: unable to detect the activity DDL in cloned table<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); } $row = $query->row(); $lActivityFieldID = (int) $row->pff_lKeyID; $sqlStr = "UPDATE cprograms\n SET cp_lActivityFieldID={$lActivityFieldID}\n WHERE cp_lKeyID={$lCProgDestID};"; $query = $this->db->query($sqlStr); }
function loadAttendance(&$lNumARecs, &$aTableRecs) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $setAFieldFun, $loadAFieldFun; $ccprog = new mcprograms(); $lNumARecs = 0; $aTableRecs = array(); // load aTable default fields $setAFieldFun($this, $this->lAttendanceTableID); $this->setSingleField($this->lAttendanceTableID, 'lActivityDDL', 'Activity', $this->afields); $this->cschema->aTableFieldInfo($this->afields, $this->atable->strFieldPrefix); $strSelect = $this->strSelectsViaFields($this->afields); if ($this->sqlOrderATable == '') { $strOrder = ' ' . $this->strATableFNPrefix . '_dteAttendance, ' . $this->strATableFNPrefix . '_lKeyID '; } else { $strOrder = $this->sqlOrderATable; } $ccprog->buildCProgDDLSql($this->afields, $strDDLInner, $strDDLSelect, $lCntDDLFields, $ddlConsolidated); if ($strDDLSelect != '') { $strDDLSelect = ', ' . $strDDLSelect; } $sqlStr = "SELECT\n {$strSelect}\n {$strDDLSelect},\n\n " . $this->strATableFNPrefix . "_lOriginID, " . $this->strATableFNPrefix . "_lLastUpdateID,\n\n UNIX_TIMESTAMP(" . $this->strATableFNPrefix . "_dteOrigin) AS dteOrigin,\n UNIX_TIMESTAMP(" . $this->strATableFNPrefix . "_dteLastUpdate) AS dteLastUpdate,\n uc.us_strFirstName AS strUCFName, uc.us_strLastName AS strUCLName,\n ul.us_strFirstName AS strULFName, ul.us_strLastName AS strULLName\n\n FROM {$this->strAttendanceTable}\n {$strDDLInner}\n INNER JOIN admin_users AS uc ON uc.us_lKeyID=" . $this->strATableFNPrefix . "_lOriginID\n INNER JOIN admin_users AS ul ON ul.us_lKeyID=" . $this->strATableFNPrefix . "_lLastUpdateID\n\n WHERE NOT " . $this->strATableFNPrefix . "_bRetired {$this->sqlWhereATable}\n ORDER BY {$strOrder}"; $query = $this->db->query($sqlStr); $lNumARecs = $query->num_rows(); if ($lNumARecs > 0) { $idx = 0; foreach ($query->result() as $row) { $aTableRecs[$idx] = new stdClass(); $arec =& $aTableRecs[$idx]; $arec->lActivityDDL = (int) $row->lActivityDDL; $arec->lKeyID = (int) $row->lKeyID; $arec->lClient = (int) $row->lForeignKey; $arec->bRetired = (bool) $row->bRetired; $arec->lEnrollID = (int) $row->lEnrollID; $arec->dteMysqlAttendance = $row->dteAttendance; $arec->dteAttendance = dteMySQLDate2Unix($arec->dteMysqlAttendance); $arec->dDuration = (double) $row->dDuration; $arec->strCaseNotes = $row->strCaseNotes; $arec->lOriginID = (int) $row->lOriginID; $arec->lLastUpdateID = (int) $row->lLastUpdateID; $arec->dteOrigin = (int) $row->dteOrigin; $arec->dteLastUpdate = (int) $row->dteLastUpdate; $arec->ucstrFName = $row->strUCFName; $arec->ucstrLName = $row->strUCLName; $arec->ulstrFName = $row->strULFName; $arec->ulstrLName = $row->strULLName; // load the ddl values if ($lCntDDLFields > 0) { foreach ($ddlConsolidated as $d) { $strFN = $d->strFieldNameUser; $arec->{$strFN} = $row->{$strFN}; } } // custom attendance fields $loadAFieldFun($arec, $row); ++$idx; } } }