public function loadGroupMembership($enumGroupType, $lGID) { //----------------------------------------------------------------------- // //----------------------------------------------------------------------- $this->groupMembers = array(); $this->lCntMembersInGroup = 0; $this->groupMemLabels = new stdClass(); if (is_array($lGID)) { $strGroupWhere = ' gc_lGroupID IN (' . implode(',', $lGID) . ') '; } else { $strGroupWhere = " gc_lGroupID={$lGID} "; } switch ($enumGroupType) { case CENUM_CONTEXT_BIZ: $this->groupMemLabels->strName = 'Business/Organization'; $this->groupMemLabels->strAddress = 'Address'; $this->groupMemLabels->strKey = 'Business ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n pe_strLName AS strName,\n CONCAT(pe_strAddr1, '\\n',\n pe_strAddr2, '\\n',\n pe_strCity, '\\n',\n pe_strState,' ', pe_strZip, ' ', pe_strCountry) AS strAddress\n FROM groups_child\n INNER JOIN people_names ON pe_lKeyID=gc_lForeignID\n WHERE {$strGroupWhere}\n AND NOT pe_bRetired\n ORDER BY pe_strLName, gc_lForeignID;"; break; case CENUM_CONTEXT_PEOPLE: $this->groupMemLabels->strName = 'Name'; $this->groupMemLabels->strAddress = 'Address'; $this->groupMemLabels->strKey = 'People ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n CONCAT(pe_strLName, ', ', pe_strFName) AS strName,\n CONCAT(pe_strAddr1, '\\n',\n pe_strAddr2, '\\n',\n pe_strCity, '\\n',\n pe_strState,' ', pe_strZip, ' ', pe_strCountry) AS strAddress\n FROM groups_child\n INNER JOIN people_names ON pe_lKeyID=gc_lForeignID\n WHERE {$strGroupWhere}\n AND NOT pe_bRetired\n ORDER BY pe_strLName, pe_strFName, gc_lForeignID;"; break; case CENUM_CONTEXT_CLIENT: $this->groupMemLabels->strName = 'Client'; $this->groupMemLabels->strAddress = 'Location'; $this->groupMemLabels->strKey = 'client ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n CONCAT(cr_strLName, ', ', cr_strFName) AS strName,\n cl_strLocation AS strAddress\n FROM groups_child\n INNER JOIN client_records ON cr_lKeyID = gc_lForeignID\n INNER JOIN client_location ON cr_lLocationID = cl_lKeyID\n WHERE {$strGroupWhere}\n AND NOT cr_bRetired\n ORDER BY cr_strLName, cr_strFName, gc_lForeignID;"; break; case CENUM_CONTEXT_SPONSORSHIP: $this->groupMemLabels->strName = 'Sponsor'; $this->groupMemLabels->strAddress = 'Address'; $this->groupMemLabels->strKey = 'sponsor ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n CONCAT(pe_strLName, ', ', pe_strFName) AS strName,\n CONCAT(pe_strAddr1, '\\n',\n pe_strAddr2, '\\n',\n pe_strCity, '\\n',\n pe_strState,' ', pe_strZip, ' ', pe_strCountry) AS strAddress\n FROM groups_child\n INNER JOIN sponsor ON sp_lKeyID = gc_lForeignID\n INNER JOIN people_names ON sp_lForeignID = pe_lKeyID\n WHERE {$strGroupWhere}\n AND NOT pe_bRetired\n AND NOT sp_bRetired\n ORDER BY pe_strLName, pe_strFName, gc_lForeignID;"; break; case CENUM_CONTEXT_STAFF_TS_LOCATIONS: case CENUM_CONTEXT_STAFF_TS_PROJECTS: $this->groupMemLabels->strName = 'Time Sheet Templates'; $this->groupMemLabels->strAddress = 'N/A'; $this->groupMemLabels->strKey = 'template ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n ts_strTSName AS strName,\n 'n/a' AS strAddress\n FROM groups_child\n INNER JOIN staff_timesheets ON ts_lKeyID = gc_lForeignID\n WHERE {$strGroupWhere}\n AND NOT ts_bRetired\n ORDER BY ts_strTSName, gc_lForeignID;"; break; case CENUM_CONTEXT_STAFF: case CENUM_CONTEXT_USER: $this->groupMemLabels->strName = 'User'; $this->groupMemLabels->strAddress = 'Address'; $this->groupMemLabels->strKey = 'user ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n CONCAT(us_strLastName, ', ', us_strFirstName) AS strName,\n CONCAT(us_strAddr1, '\\n',\n us_strAddr2, '\\n',\n us_strCity, '\\n',\n us_strState,' ', us_strZip, ' ', us_strCountry) AS strAddress\n FROM groups_child\n INNER JOIN admin_users ON us_lKeyID = gc_lForeignID\n -- INNER JOIN people_names ON sp_lForeignID = pe_lKeyID\n WHERE {$strGroupWhere}\n AND NOT us_bInactive\n ORDER BY us_strLastName, us_strFirstName, gc_lForeignID;"; break; case CENUM_CONTEXT_VOLUNTEER: $this->groupMemLabels->strName = 'Name'; $this->groupMemLabels->strAddress = 'Address'; $this->groupMemLabels->strKey = 'vol ID'; $sqlStr = "SELECT\n gc_lForeignID AS lKeyID, gc_dteAdded,\n CONCAT(pe_strLName, ', ', pe_strFName) AS strName,\n CONCAT(pe_strAddr1, '\\n',\n pe_strAddr2, '\\n',\n pe_strCity, '\\n',\n pe_strState,' ', pe_strZip, ' ', pe_strCountry) AS strAddress\n FROM groups_child\n INNER JOIN volunteers ON vol_lKeyID=gc_lForeignID\n INNER JOIN people_names ON pe_lKeyID=vol_lPeopleID\n WHERE {$strGroupWhere}\n AND NOT pe_bRetired\n ORDER BY pe_strLName, pe_strFName, gc_lForeignID;"; break; default: screamForHelp($enumGroupType . ': group type not yet available<br>error on <b>line:</b> ' . __LINE__ . '<br><b>file: </b>' . __FILE__ . '<br><b>function: </b>' . __FUNCTION__); break; } $query = $this->db->query($sqlStr); $this->lCntMembersInGroup = $numRows = $query->num_rows(); if ($numRows > 0) { $idx = 0; foreach ($query->result() as $row) { $this->groupMembers[$idx] = new stdClass(); $this->groupMembers[$idx]->lKeyID = $lKeyID = (int) $row->lKeyID; $this->groupMembers[$idx]->dteAdded = dteMySQLDate2Unix($row->gc_dteAdded); $this->groupMembers[$idx]->strAddress = str_replace("\n\n", "\n", $row->strAddress); $this->groupMembers[$idx]->strName = $strName = trim($row->strName); $lNameLenM1 = strlen($strName) - 1; if (substr($strName, $lNameLenM1, 1) == ',') { // business sponsorships; remove comma from name $this->groupMembers[$idx]->strName = substr($strName, 0, $lNameLenM1); } switch ($enumGroupType) { case CENUM_CONTEXT_BIZ: $this->groupMembers[$idx]->strLinkView = strLinkView_BizRecord($lKeyID, 'View business record', true, ''); break; case CENUM_CONTEXT_CLIENT: $this->groupMembers[$idx]->strLinkView = strLinkView_ClientRecord($lKeyID, 'View client record', true, ''); break; case CENUM_CONTEXT_PEOPLE: $this->groupMembers[$idx]->strLinkView = strLinkView_PeopleRecord($lKeyID, 'View people record', true, ''); break; case CENUM_CONTEXT_SPONSORSHIP: $this->groupMembers[$idx]->strLinkView = strLinkView_Sponsorship($lKeyID, 'View sponsorship record', true, ''); break; case CENUM_CONTEXT_STAFF_TS_LOCATIONS: case CENUM_CONTEXT_STAFF_TS_PROJECTS: $this->groupMembers[$idx]->strLinkView = strLinkView_TimeSheetTemplateRecord($lKeyID, 'View timesheet template', true); break; case CENUM_CONTEXT_VOLUNTEER: $this->groupMembers[$idx]->strLinkView = strLinkView_Volunteer($lKeyID, 'View volunteer record', true, ''); break; case CENUM_CONTEXT_STAFF: case CENUM_CONTEXT_USER: $this->groupMembers[$idx]->strLinkView = strLinkView_User($lKeyID, 'View user record', true, ''); break; default: screamForHelp($enumGroupType . ': group type not yet available<br>error on <b>line:</b> ' . __LINE__ . '<br><b>file: </b>' . __FILE__ . '<br><b>function: </b>' . __FUNCTION__); break; } ++$idx; } } }
function writeTSTTable($tst) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $lTSTID = $tst->lKeyID; if ($tst->strNotes != '') { $tst->strNotes = '<br>' . nl2br(htmlspecialchars($tst->strNotes)); } if ($tst->bHidden) { $strHideStyle = 'color: #aaa;'; } else { $strHideStyle = ''; } $strProperties = '<table cellpadding="0" style="width: 100%;"> <tr> <td style="width: 80pt;"> Reporting Period: </td> <td style="">' . $tst->enumRptPeriod . ' </td> </tr> <td style="width: 80pt;"> First day of Week: </td> <td style="">' . ts_util\strXlateDayofWeek($tst->lFirstDayOfWeek) . ' </td> </tr> <tr> <td > Time Granularity: </td> <td>' . $tst->enumGranularity . ' minutes </td> </tr> <tr> <td > Time Format: </td> <td>' . ($tst->b24HrTime ? '24' : '12') . ' Hr. </td> </tr> <tr> <td > Visibility: </td> <td>' . ($tst->bHidden ? 'Hidden' : 'Normal') . ' </td> </tr> </table>'; echoT(' <tr class="makeStripe"> <td class="enpRpt" style="width: 50pt; text-align: center; ' . $strHideStyle . '">' . strLinkView_TimeSheetTemplateRecord($lTSTID, 'View time sheet template record', true) . ' ' . str_pad($lTSTID, 5, '0', STR_PAD_LEFT) . ' </td> <td class="enpRpt" style="width: 20pt; ' . $strHideStyle . '"> </td> <td class="enpRpt" style="width: 20pt; ' . $strHideStyle . '"> </td> <td class="enpRpt" style="width: 200pt; ' . $strHideStyle . '"><b>' . htmlspecialchars($tst->strTSName) . '</b>' . $tst->strNotes . ' </td> <td class="enpRpt" style="width: 150pt; ' . $strHideStyle . '">' . $strProperties . ' </td> </tr>'); }