function strSponMonthIncomeReport(&$sRpt, &$displayData, $lStartRec, $lRecsPerPage) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $genumDateFormat; $strOut = ''; $strLimit = " LIMIT {$lStartRec}, {$lRecsPerPage} "; $this->sponIncomeViaMonthVars($sRpt, $lYear, $lMonth, $lACOID); $cACO = new madmin_aco(); $cACO->loadCountries(false, true, true, $lACOID); $cCountry = $cACO->countries[0]; $strOut = '<table class="enpView"> <tr> <td class="enpViewLabel" colspan="2" style="text-align: left; font-size: 13pt;"> Sponsorship Income </td> </tr> <tr> <td class="enpViewLabel"> Accounting Country: </td> <td class="enpView">' . $cCountry->strName . ' ' . $cCountry->strCurrencySymbol . ' ' . $cCountry->strFlagImg . ' </td> </tr> <tr> <td class="enpViewLabel"> Month: </td> <td class="enpView">' . strXlateMonth($lMonth) . ' ' . $lYear . ' </td> </tr> </table>'; $sqlStr = "SELECT\n gi_lKeyID, gi_lSponsorID,\n gi_dteDonation,\n gi_curAmnt, gi_lForeignID, sp_lForeignID,\n payer.pe_bBiz AS bPayerBiz, payer.pe_strLName AS strPayerLName, payer.pe_strFName AS strPayerFName,\n payer.pe_strAddr1, payer.pe_strAddr2, payer.pe_strCity, payer.pe_strState, payer.pe_strZip, payer.pe_strCountry,\n spon.pe_bBiz AS bSponBiz, spon.pe_strLName AS strSponLName, spon.pe_strFName AS strSponFName\n FROM gifts\n INNER JOIN people_names AS payer ON gi_lForeignID=payer.pe_lKeyID\n INNER JOIN sponsor ON gi_lSponsorID=sp_lKeyID\n INNER JOIN people_names AS spon ON sp_lForeignID=spon.pe_lKeyID\n\n WHERE NOT gi_bRetired\n AND gi_lACOID={$lACOID}\n AND MONTH(gi_dteDonation)={$lMonth}\n AND YEAR (gi_dteDonation)={$lYear}\n AND gi_lSponsorID IS NOT NULL\n ORDER BY gi_dteDonation, gi_lKeyID\n {$strLimit};"; $query = $this->db->query($sqlStr); $lNumRows = $query->num_rows(); if ($lNumRows > 0) { $strOut .= ' <table class="enpRptC"> <tr> <td class="enpRptLabel"> Payment ID </td> <td class="enpRptLabel"> Sponsor ID </td> <td class="enpRptLabel"> Amount </td> <td class="enpRptLabel"> Date </td> <td class="enpRptLabel"> Payer </td> <td class="enpRptLabel"> Sponsor </td> </tr>'; foreach ($query->result() as $row) { $lPayID = $row->gi_lKeyID; $lSponsorID = $row->gi_lSponsorID; $lSponsorFID = $row->sp_lForeignID; $lPayerID = $row->gi_lForeignID; // gift ID $strOut .= ' <tr> <td class="enpRpt" style="text-align: center;">' . strLinkView_SponsorPayment($lPayID, 'View payment record', true) . ' ' . str_pad($lPayID, 5, '0', STR_PAD_LEFT) . ' </td>'; // sponsor ID $strOut .= ' <td class="enpRpt" style="text-align: center;">' . strLinkView_Sponsorship($lSponsorID, 'View sponsorship record', true) . ' ' . str_pad($lSponsorID, 5, '0', STR_PAD_LEFT) . ' </td>'; // Amount $strOut .= ' <td class="enpRpt" style="text-align: right; padding-left: 14px;">' . number_format($row->gi_curAmnt, 2) . ' </td>'; // Date $strOut .= ' <td class="enpRpt" style="text-align: right;">' . date($genumDateFormat, dteMySQLDate2Unix($row->gi_dteDonation)) . ' </td>'; // Payer if ($row->bPayerBiz) { $strName = strLinkView_BizRecord($lPayerID, 'View business record', true) . ' ' . str_pad($lPayerID, 5, '0', STR_PAD_LEFT) . ' ' . htmlspecialchars($row->strPayerLName) . ' (business)'; } else { $strName = strLinkView_PeopleRecord($lPayerID, 'View people record', true) . ' ' . str_pad($lPayerID, 5, '0', STR_PAD_LEFT) . ' ' . htmlspecialchars($row->strPayerLName . ', ' . $row->strPayerFName); } $strOut .= ' <td class="enpRpt" >' . $strName . ' </td>'; // Sponsor if ($lPayerID == $lSponsorFID) { $strName = '<span style="color: #999; font-style: italic;">(same as payer)'; } else { if ($row->bSponBiz) { $strName = strLinkView_BizRecord($lSponsorFID, 'View business record', true) . ' ' . str_pad($lSponsorFID, 5, '0', STR_PAD_LEFT) . ' ' . htmlspecialchars($row->strSponLName) . ' (business)'; } else { $strName = strLinkView_PeopleRecord($lSponsorFID, 'View people record', true) . ' ' . str_pad($lSponsorFID, 5, '0', STR_PAD_LEFT) . ' ' . htmlspecialchars($row->strSponLName . ', ' . $row->strSponFName); } } $strOut .= ' <td class="enpRpt" >' . $strName . ' </td>'; $strOut . ' </tr>'; } $strOut .= '</table>'; } else { $strOut .= '<br><br><i>There are no records that match your search criteria</i><br>'; } return $strOut; }
public function chargeHistoryTotals($lSponID) { //----------------------------------------------------------------------- // //----------------------------------------------------------------------- $clsACO = new madmin_aco(); $clsACO->loadCountries(true, false, false, null); if ($this->bUseDateRange) { $strWhereDate = ' AND spc_dteCharge BETWEEN (' . strPrepDate($this->dteStart) . ' AND ' . strPrepDate($this->dteEnd) . ') '; } else { $strWhereDate = ''; } $this->lNumChargesTotal = 0; $this->chargesTotal = array(); $sqlStr = "SELECT spc_lACOID, SUM(spc_curChargeAmnt) AS curTotCharge, COUNT(*) AS lNumRecs,\n aco_strFlag, aco_strCurrencySymbol, aco_strName\n FROM sponsor_charges\n INNER JOIN admin_aco ON aco_lKeyID = spc_lACOID\n WHERE\n NOT spc_bRetired\n AND spc_lSponsorshipID={$lSponID}\n {$strWhereDate}\n GROUP BY spc_lACOID\n ORDER BY aco_bDefault, aco_strName, aco_lKeyID;"; $query = $this->db->query($sqlStr); $numRows = $query->num_rows(); $this->lNumChargesTotal = 0; if ($numRows > 0) { $idx = 0; foreach ($query->result() as $row) { if ((int) $row->curTotCharge > 0.0) { $this->chargesTotal[$this->lNumChargesTotal] = new stdClass(); $this->chargesTotal[$this->lNumChargesTotal]->lNumCharges = $numRows; $this->chargesTotal[$this->lNumChargesTotal]->curTotal = $row->curTotCharge; $this->chargesTotal[$this->lNumChargesTotal]->lACOID = $row->spc_lACOID; $this->chargesTotal[$this->lNumChargesTotal]->strACOFlagImg = '<img src="' . DL_IMAGEPATH . '/flags/' . $row->aco_strFlag . '" alt="flag icon" title="' . $row->aco_strName . '">'; $this->chargesTotal[$this->lNumChargesTotal]->strACOCurSym = $row->aco_strCurrencySymbol; $this->chargesTotal[$this->lNumChargesTotal]->strACOName = $row->aco_strName; ++$this->lNumChargesTotal; } ++$idx; } } }
function addReportFields(&$fields, &$lFieldIDX, $enumType, $publicName, $internalName, $lCurrencyACO = null, $lFieldID = null) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $fields[$lFieldIDX] = new stdClass(); $fields[$lFieldIDX]->lFieldID = $lFieldID; $fields[$lFieldIDX]->publicName = $publicName; $fields[$lFieldIDX]->internalName = $internalName; $fields[$lFieldIDX]->enumType = $enumType; $fields[$lFieldIDX]->lCurrencyACO = $lCurrencyACO; if ($enumType == CS_FT_CURRENCY) { $cACO = new madmin_aco(); $cACO->loadCountries(false, true, true, $lCurrencyACO); $fields[$lFieldIDX]->ACO = clone $cACO->countries[0]; } $fields[$lFieldIDX]->fTypeLabel = $this->crptUFields->strFieldTypeLabel($enumType); ++$lFieldIDX; }
function strDisplayUserTableSingle(&$clsUserTable) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $genumDateFormat, $gbDateFormatUS; $clsACO = new madmin_aco(); $strOut = ''; $lTableID = $clsUserTable->lKeyID; $bCollapsibleHeadings = $clsUserTable->bCollapsibleHeadings; $bCollapseDefaultHide = $clsUserTable->bCollapseDefaultHide; $strSafeTableName = htmlspecialchars($clsUserTable->strUserTableName); $strOut .= $this->strBeginCollapsibleHeading($lTableID, $strSafeTableName, true); $this->loadSingleDataRecord($lTableID, $this->lForeignID, $recInfo); $lRecID = $recInfo->lRecID; $enumTType = $clsUserTable->enumTType; $strOut .= '<fieldset class="enpFS" style="width: ' . $this->lFieldSetWidth . 'pt; align: left;"> <legend class="enpLegend"> <b><i>' . $strSafeTableName . '</b></i> ' . strLinkView_UFMFRecordViaRecID($lTableID, $this->lForeignID, $lRecID, 'View record', true, ' id="viewSingle_' . $lTableID . '" ') . ' ' . "\n" . strLinkEdit_UFMultiRecEntry($enumTType, $lTableID, $this->lForeignID, $lRecID, true, 'Edit table entries', ' id="editSingle_' . $lTableID . '" ') . ' ' . ($recInfo->bRecordEntered ? '' : '(not written) ') . ' </legend>'; $strOut .= '<table class="enpRpt">'; for ($idx = 0; $idx < $this->lNumFields; ++$idx) { $uf =& $this->fields[$idx]; $enumType = $uf->enumFieldType; $userValue = $uf->userValue; $lFieldID = $uf->pff_lKeyID; if ($enumType == CS_FT_HEADING) { $strOut .= ' <tr> <td colspan="2" class="enpRptLabel">' . htmlspecialchars($this->fields[$idx]->pff_strFieldNameUser) . ' </td> </tr>'; } else { $strOut .= ' <tr> <td width="' . $this->lLabelWidth . '" class="enpRptLabel">' . htmlspecialchars($this->fields[$idx]->pff_strFieldNameUser) . ' </td> <td class="enpRpt" width="' . $this->lFieldValWidth . '" valign="center">' . "\n"; if (is_null($userValue) && !($enumType == CS_FT_LOG || $enumType == CS_FT_DDLMULTI)) { $strOut .= ' '; } else { switch ($enumType) { case CS_FT_CHECKBOX: $strOut .= (bool) $userValue ? 'Yes' : 'No'; break; case CS_FT_DATE: $strOut .= strNumericDateViaMysqlDate($userValue, $gbDateFormatUS); break; // case CS_FT_DATETIME: // echoT(strNumericDateViaMysqlDate($userValue, $gbDateFormatUS) date($genumDateFormat.' H:i:s', $userValue)); // break; // case CS_FT_DATETIME: // echoT(strNumericDateViaMysqlDate($userValue, $gbDateFormatUS) date($genumDateFormat.' H:i:s', $userValue)); // break; case CS_FT_TEXTLONG: $strOut .= nl2br(htmlspecialchars($userValue)) . ' '; break; case CS_FT_TEXT255: case CS_FT_TEXT80: case CS_FT_TEXT20: $strOut .= htmlspecialchars($userValue) . ' '; break; case CS_FT_CLIENTID: case CS_FT_INTEGER: $strOut .= number_format($userValue); break; case CS_FT_CURRENCY: $clsACO->loadCountries(false, false, true, $this->fields[$idx]->pff_lCurrencyACO); $strOut .= $clsACO->countries[0]->strCurrencySymbol . ' ' . number_format($userValue, 2) . ' ' . $clsACO->countries[0]->strFlagImg; break; case CS_FT_DDL: $strOut .= htmlspecialchars($this->strDDLValue($userValue)); break; case CS_FT_DDL: $strOut .= htmlspecialchars($this->strDDLValue($userValue)); break; case CS_FT_LOG: $strOut .= $this->logDisplay($enumTType, $lFieldID, $lTableID, $this->lForeignID, 5); break; case CS_FT_DDLMULTI: $strDDLMultiFN = $uf->strFieldNameInternal . '_ddlMulti'; $this->loadMultiDDLSelects($lTableID, $lFieldID, $lRecID, $uf->{$strDDLMultiFN}); $strOut .= $this->strMultiDDLUL($uf->{$strDDLMultiFN}); break; default: screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } } } } $strOut .= ' </table>' . "\n"; $strOut .= ' </fieldset><br>' . "\n"; // if ($bCollapsibleHeadings) $strOut .= $this->strEndCollapsibleHeading(); return $strOut; }
private function giftNotesSearch(&$results) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $genumDateFormat; $results->strLabel = 'Gift notes'; $results->lNumResults = 0; $cACO = new madmin_aco(); $sqlStr = 'SELECT gi_lKeyID, gi_lForeignID, gi_curAmnt, gi_lACOID, gi_dteDonation, gi_strNotes, pe_strLName, pe_strFName, pe_bBiz, gi_lSponsorID FROM gifts INNER JOIN people_names ON pe_lKeyID=gi_lForeignID WHERE NOT gi_bRetired AND NOT pe_bRetired AND ' . $this->textSearchWhere('gi_strNotes') . ' ORDER BY pe_strLName, pe_strFName, gi_lKeyID;'; $query = $this->db->query($sqlStr); $results->lNumResults = $lNumRows = $query->num_rows(); if ($lNumRows > 0) { $idx = 0; $results->matches = array(); foreach ($query->result() as $row) { $results->matches[$idx] = new stdClass(); $match =& $results->matches[$idx]; $lGiftID = $row->gi_lKeyID; $lFID = $row->gi_lForeignID; $strFID = str_pad($lFID, 5, '0', STR_PAD_LEFT); $bBiz = $row->pe_bBiz; $lACOID = $row->gi_lACOID; $bSponPay = !is_null($row->gi_lSponsorID); $cACO->loadCountries(false, false, true, $lACOID); $giftACO =& $cACO->countries[0]; if ($bSponPay) { $match->links = 'Sponsor Payment ID ' . str_pad($lGiftID, 5, '0', STR_PAD_LEFT) . strLinkView_SponsorPayment($lGiftID, 'View payment record', true) . ' '; } else { $match->links = 'Gift ID ' . str_pad($lGiftID, 5, '0', STR_PAD_LEFT) . strLinkView_GiftsRecord($lGiftID, 'View gift record', true) . ' '; } $match->searchInfo = 'Donation record of ' . $giftACO->strCurrencySymbol . ' ' . number_format($row->gi_curAmnt, 2) . ' ' . $giftACO->strFlagImg . ' of ' . date($genumDateFormat, dteMySQLDate2Unix($row->gi_dteDonation)) . ' by '; if ($bBiz) { $match->links .= 'Business ID: ' . $strFID . strLinkView_BizRecord($lFID, 'View business record', true); $match->searchInfo .= htmlspecialchars($row->pe_strLName); } else { $match->links .= 'People ID: ' . $strFID . strLinkView_PeopleRecord($lFID, 'View people record', true); $match->searchInfo .= htmlspecialchars($row->pe_strFName . ' ' . $row->pe_strLName); } $match->text = $row->gi_strNotes; $match->textHighlighted = $this->highlightMatchedText($row->gi_strNotes); ++$idx; } } }
function loadSearchTerms() { //--------------------------------------------------------------------- // data loaded in $this->lNumTerms and $this->terms //--------------------------------------------------------------------- $this->lNumTerms = 0; $this->terms = array(); $cACO = new madmin_aco(); $sqlStr = "SELECT\n crs_lKeyID, crs_lReportID, crs_lFieldID, crs_strFieldID,\n crs_lTableID, crs_lNumLParen, crs_lNumRParen, crs_lSortIDX,\n crs_lCompareOpt,\n crs_bCompareBool, crs_lCompVal, crs_strCompVal, crs_curCompVal, crs_dteCompVal,\n crs_bNextTermBoolAND,\n crs_lOriginID, crs_lLastUpdateID,\n\n pff_lCurrencyACO,\n pff_strFieldNameUser, pff_enumFieldType, pft_strUserTableName, pft_enumAttachType\n FROM creport_search\n LEFT JOIN uf_fields ON pff_lKeyID = crs_lFieldID\n LEFT JOIN uf_tables ON pff_lTableID = pft_lKeyID\n WHERE 1 {$this->strWhereExtra}\n ORDER BY crs_lSortIDX, crs_lKeyID;"; $query = $this->db->query($sqlStr); $this->lNumTerms = $lNumTerms = $query->num_rows(); if ($lNumTerms == 0) { $this->terms[0] = new stdClass(); $term =& $this->terms[0]; $term->lKeyID = $term->lReportID = $term->lTableID = $term->lFieldID = $term->strFieldID = $term->enumFieldType = $term->enumAttachType = $term->strFieldNameUser = $term->strUserTableName = $term->lNumLParen = $term->lNumRParen = $term->lSortIDX = $term->lCompareOpt = $term->bCompareBool = $term->lCompVal = $term->curCompVal = $term->lCurrencyACO = $term->strCompVal = $term->mdteCompVal = $term->bNextTermBoolAND = $term->lOriginID = $term->lLastUpdateID = null; } else { $idx = 0; foreach ($query->result() as $row) { $this->terms[$idx] = new stdClass(); $term =& $this->terms[$idx]; $term->lKeyID = (int) $row->crs_lKeyID; $term->lReportID = (int) $row->crs_lReportID; $term->lTableID = (int) $row->crs_lTableID; $term->lFieldID = (int) $row->crs_lFieldID; $term->strFieldID = $row->crs_strFieldID; if ($term->lTableID <= 0) { crptFieldPropsParentTable($term->lTableID, $term->strFieldID, $term->strUserTableName, $term->enumFieldType, $term->strFieldNameUser, $term->enumAttachType); } else { $term->enumFieldType = $row->pff_enumFieldType; $term->strUserTableName = $row->pft_strUserTableName; $term->strFieldNameUser = $row->pff_strFieldNameUser; $term->enumAttachType = $row->pft_enumAttachType; } $term->lNumLParen = (int) $row->crs_lNumLParen; $term->lNumRParen = (int) $row->crs_lNumRParen; $term->lSortIDX = (int) $row->crs_lSortIDX; $term->lCompareOpt = (int) $row->crs_lCompareOpt; $term->bCompareBool = (bool) $row->crs_bCompareBool; $term->lCompVal = (int) $row->crs_lCompVal; $term->lCurrencyACO = (int) $row->pff_lCurrencyACO; if ($term->lCurrencyACO > 0) { $cACO->loadCountries(false, true, true, $term->lCurrencyACO); $term->ACO = clone $cACO->countries[0]; } $term->curCompVal = $row->crs_curCompVal; $term->strCompVal = $row->crs_strCompVal; $term->mdteCompVal = $row->crs_dteCompVal; $term->bNextTermBoolAND = $row->crs_bNextTermBoolAND; $term->lOriginID = $row->crs_lOriginID; $term->lLastUpdateID = $row->crs_lLastUpdateID; ++$idx; } } }
private function strReportTitle(&$sRpt) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $genumDateFormat; $strOut = ''; $strLIStyle = 'margin-left: 20pt; line-height:12pt;'; switch ($sRpt->rptName) { case CENUM_REPORTNAME_GIFTTIMEFRAME: $strOut .= '<b>Donation Timeframe Report</b> <ul style="list-style-type: square; display:inline; margin-left: 0; padding: 0pt;">'; break; case CENUM_REPORTNAME_GIFTYEAREND: $strOut .= '<b>Donation Year-end Report</b> <ul style="list-style-type: square; display:inline; margin-left: 0; padding: 0pt;">'; break; case CENUM_REPORTNAME_GIFTACCOUNT: $cAcct = new maccts_camps(); $cAcct->loadAccounts(true, true, $sRpt->acctIDs); $strOut .= '<b>Donation Account Report</b> <ul style="list-style-type: square; display:inline; margin-left: 0; padding: 0pt;"> <li style="' . $strLIStyle . '"><b>Selected Accounts:</b> <ul style="display:inline; margin-left: 0; padding: 0pt;">'; foreach ($cAcct->accounts as $acct) { $strOut .= '<li style="' . $strLIStyle . '">' . $acct->strSafeName . '</li>' . "\n"; } $strOut .= '</ul></li>'; break; case CENUM_REPORTNAME_GIFTCAMP: $cCamp = new maccts_camps(); $cCamp->loadCampaigns(false, false, null, true, $sRpt->campIDs); $strOut = '<b>Donation Campaign Report</b> <ul style="list-style-type: square; display:inline; margin-left: 0; padding: 0pt;"> <li style="' . $strLIStyle . '"><b>Selected Campaigns:</b> <ul style="display:inline; margin-left: 0; padding: 0pt;">'; foreach ($cCamp->campaigns as $camp) { $strOut .= '<li style="' . $strLIStyle . '">' . $camp->strAcctSafeName . ': ' . $camp->strSafeName . '</li>' . "\n"; } $strOut .= '</ul></li>'; break; case CENUM_REPORTNAME_GIFTAGG: $strOut .= '<b>Donation Aggregate Report</b> <ul style="list-style-type: square; display:inline; margin-left: 0; padding: 0pt;">'; break; default: screamForHelp($sRpt->rptName . ': invalid report type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } if (isset($sRpt->strDateRange)) { $strOut .= '<li style="' . $strLIStyle . '"><b>Date range:</b> ' . $sRpt->strDateRange . '</li>'; /* $strOut .= '<li style="'.$strLIStyle.'"><b>Date range:</b> ' .date($genumDateFormat, $sRpt->dteStart).' - ' .date($genumDateFormat, $sRpt->dteEnd).' </li>'; */ } if (isset($sRpt->curMin)) { $strOut .= '<li style="' . $strLIStyle . ' "><b>Gift range:</b> ' . number_format($sRpt->curMin, 2) . ' - ' . number_format($sRpt->curMax, 2) . ' </li>' . "\n"; } if (isset($sRpt->lACO)) { $strOut .= '<li style="' . $strLIStyle . ' "><b>Accounting Country:</b> '; if ($sRpt->lACO <= 0) { $strOut .= 'All countries</li>'; } else { $cACO = new madmin_aco(); $cACO->loadCountries(false, false, true, $sRpt->lACO); $strOut .= $cACO->countries[0]->strName . ' ' . $cACO->countries[0]->strFlagImg . '</li>'; } } if (isset($sRpt->enumInc)) { $strOut .= '<li style="' . $strLIStyle . ' "><b>Included Donations: </b>'; switch ($sRpt->enumInc) { case 'all': $strOut .= 'All donations</li>' . "\n"; break; case 'gift': $strOut .= 'Gifts only (no sponsorship payments)</li>' . "\n"; break; case 'spon': $strOut .= 'Only sponsorship payments</li>' . "\n"; break; default: screamForHelp($sRpt->enumInc . ': invalid include type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } } if (isset($sRpt->lYear)) { $strOut .= '<li style="' . $strLIStyle . ' "><b>Year: </b>' . $sRpt->lYear . '</li>' . "\n"; } if (isset($sRpt->bAggregateDonor)) { $strOut .= '<li style="' . $strLIStyle . ' "><b>Grouping: </b>' . ($sRpt->bAggregateDonor ? 'By Donor' : 'Individual Donations') . '</li>' . "\n"; } $strOut .= '</ul><br>' . "\n"; return $strOut; }