function strVolHoursTFSumReport($sRpt, $lStartRec, $lRecsPerPage) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $strOut = '<b>Time Frame: ' . $sRpt->strDateRange . '</b><br><br>'; $strLimit = " LIMIT {$lStartRec}, {$lRecsPerPage} "; $sqlStr = "SELECT pe_strLName, pe_strFName, tmp_lVolID,\n tmp_dHoursScheduled, tmp_dHoursUnscheduled\n FROM {$sRpt->tmpTable}\n INNER JOIN volunteers ON tmp_lVolID = vol_lKeyID\n INNER JOIN people_names ON vol_lPeopleID = pe_lKeyID\n ORDER BY pe_strLName, pe_strFName, pe_strMName, pe_lKeyID\n {$strLimit};"; $query = $this->db->query($sqlStr); $lNumRows = $query->num_rows(); if ($lNumRows == 0) { $strOut .= '<i>There are no records that meet your search criteria.</i>'; } else { $strOut .= '<table class="enpRptC" style="width: 450pt;"> <tr> <td class="enpRptTitle" colspan="5"> Volunteer Hours </td> </tr> <tr> <td class="enpRptLabel"> vol ID </td> <td class="enpRptLabel"> Volunteer </td> <td class="enpRptLabel"> Scheduled<br>Hours </td> <td class="enpRptLabel"> Unscheduled<br>Hours </td> <td class="enpRptLabel"> Total </td> </tr>'; $sngTotS = $sngTotU = 0.0; foreach ($query->result() as $row) { $lVolID = (int) $row->tmp_lVolID; $strOut .= ' <tr class="makeStripe"> <td class="enpRpt" style="text-align: center; width: 40pt;">' . str_pad($lVolID, 5, '0', STR_PAD_LEFT) . ' ' . strLinkView_Volunteer($lVolID, 'View volunteer record', true, ' id="vrec' . $lVolID . '" ') . ' </td> <td class="enpRpt">' . htmlspecialchars($row->pe_strLName . ', ' . $row->pe_strFName) . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursScheduled, 2) . ' ' . strLinkView_VolHrsViaVolID($lVolID, true, 'View details', true) . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursUnscheduled, 2) . ' ' . strLinkView_VolHrsViaVolID($lVolID, false, 'View details', true) . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursScheduled + $row->tmp_dHoursUnscheduled, 2) . ' </td> </tr>'; $sngTotS += $row->tmp_dHoursScheduled; $sngTotU += $row->tmp_dHoursUnscheduled; } $strOut .= ' <tr > <td class="enpRptLabel" colspan="2"> Total </td> <td class="enpRpt" style="text-align: right; padding-right: 15pt;"><b>' . number_format($sngTotS, 2) . '</b> </td> <td class="enpRpt" style="text-align: right; padding-right: 15pt;"><b>' . number_format($sngTotU, 2) . '</b> </td> <td class="enpRpt" style="text-align: right;"><b>' . number_format($sngTotS + $sngTotU, 2) . '</b> </td> </tr>'; $strOut .= '</table>'; } return $strOut; }
function strShiftJobCodesSummaryViaMonth($strMoYr, $sRpt, $bAllJobCodes) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- // global $genumDateFormat; $strTmpTable = 'tmpJCSumMo'; $this->buildTmpTabJobCodeSumMo($sRpt, $strTmpTable); $sqlStr = "SELECT pe_strLName, pe_strFName, tmp_lVolID,\n tmp_dHoursScheduled, tmp_dHoursUnscheduled,\n jc.lgen_strListItem AS strJobCode\n FROM {$strTmpTable}\n INNER JOIN volunteers ON tmp_lVolID = vol_lKeyID\n INNER JOIN people_names ON vol_lPeopleID = pe_lKeyID\n LEFT JOIN lists_generic AS jc ON tmp_lJobCode = jc.lgen_lKeyID\n ORDER BY pe_strLName, pe_strFName, pe_strMName, pe_lKeyID, strJobCode;"; $query = $this->db->query($sqlStr); $numRows = $query->num_rows(); if ($numRows == 0) { return '<br><i>There are no records that meet your search criteria.</i>'; } $strOut = ' <table class="enpRptC" style="width: 600pt;"> <tr> <td colspan="6" class="enpRptTitle"> Job Code Summary: ' . $strMoYr . ' </td> </tr> <tr> <td class="enpRptLabel"> vol ID </td> <td class="enpRptLabel"> Volunteer </td> <td class="enpRptLabel"> Job Code </td> <td class="enpRptLabel"> Scheduled<br>Hours </td> <td class="enpRptLabel"> Unscheduled<br>Hours </td> <td class="enpRptLabel"> Total </td> </tr>'; $sngTotS = $sngTotU = 0.0; $lVIDHold = -999; foreach ($query->result() as $row) { $lVolID = (int) $row->tmp_lVolID; if ($lVIDHold != $lVolID) { $lVIDHold = $lVolID; $strName = htmlspecialchars($row->pe_strLName . ', ' . $row->pe_strFName); } else { $strName = ' " "'; } if (is_null($row->strJobCode)) { $strJobCode = '<i>No job code</i>'; } else { $strJobCode = htmlspecialchars($row->strJobCode); } $strOut .= ' <tr class="makeStripe"> <td class="enpRpt" style="text-align: center; width: 40pt;">' . str_pad($lVolID, 5, '0', STR_PAD_LEFT) . ' ' . strLinkView_Volunteer($lVolID, 'View volunteer record', true, ' id="vrec' . $lVolID . '" ') . ' </td> <td class="enpRpt">' . $strName . ' </td> <td class="enpRpt">' . $strJobCode . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursScheduled, 2) . ' ' . strLinkView_VolHrsViaVolID($lVolID, true, 'View details', true) . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursUnscheduled, 2) . ' ' . strLinkView_VolHrsViaVolID($lVolID, false, 'View details', true) . ' </td> <td class="enpRpt" style="text-align: right; width: 40pt;">' . number_format($row->tmp_dHoursScheduled + $row->tmp_dHoursUnscheduled, 2) . ' </td> </tr>'; $sngTotS += $row->tmp_dHoursScheduled; $sngTotU += $row->tmp_dHoursUnscheduled; } $strOut .= ' <tr > <td class="enpRptLabel" colspan="3"> Total </td> <td class="enpRpt" style="text-align: right; padding-right: 15pt;"><b>' . number_format($sngTotS, 2) . '</b> </td> <td class="enpRpt" style="text-align: right; padding-right: 15pt;"><b>' . number_format($sngTotU, 2) . '</b> </td> <td class="enpRpt" style="text-align: right;"><b>' . number_format($sngTotS + $sngTotU, 2) . '</b> </td> </tr>'; $strOut .= '</table><br><br>' . "\n"; return $strOut; }
function showVolHours($clsRpt, $volRec, $dTotHours, $dTotUnHours, $lVolID) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $attributes = new stdClass(); $attributes->lTableWidth = 900; $attributes->divID = 'volHrs'; $attributes->divImageID = 'volHrsDivImg'; openBlock('Volunteer Hours <span style="font-size: 9pt;">(' . number_format($dTotHours + $dTotUnHours, 2) . ' hrs.)</span>', '', $attributes); $clsRpt->openReport(); echoT(' <table> <tr> <td style="padding-right: 20pt;"> <b>Scheduled:</b> </td> <td style="text-align: right; ">' . number_format($dTotHours, 2) . ' hours </td> <td>' . strLinkView_VolHrsViaVolID($lVolID, true, 'View details', true) . ' </td> </tr>'); echoT(' <tr> <td style="vertical-align: bottom;"> <b>Unscheduled:</b> </td> <td style="vertical-align: bottom; text-align: right;">' . number_format($dTotUnHours, 2) . ' hours </td> <td>' . strLinkView_VolHrsViaVolID($lVolID, false, 'View details', true) . ' ' . strLinkAdd_VolUnschedHrs($lVolID, 'Log hours for an unscheduled activity', true) . ' ' . strLinkAdd_VolUnschedHrs($lVolID, 'Log volunteer activity', false) . ' </td> </tr> <tr> <td style="vertical-align: bottom;"> <b>Total:</b> </td> <td style="vertical-align: bottom; text-align: right;">' . number_format($dTotHours + $dTotUnHours, 2) . ' hours ' . ' </td> <td>' . strLinkView_VolDetailHrsViaYrMon(null, null, $lVolID, 'View All', true) . ' </td> </tr> </table>'); $clsRpt->closeReport(); $attributes = new stdClass(); $attributes->bCloseDiv = true; closeBlock($attributes); }