Esempio n. 1
0
 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) . '&nbsp;' . str_pad($lTSTID, 5, '0', STR_PAD_LEFT) . '
            </td>
            <td class="enpRpt" style="width: 20pt; ' . $strHideStyle . '">
               &nbsp;
            </td>
            <td class="enpRpt" style="width: 20pt; ' . $strHideStyle . '">
               &nbsp;
            </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>');
}