diff --git a/include/vendor.php b/include/vendor.php index 4e8d759..f9dfcf5 100644 --- a/include/vendor.php +++ b/include/vendor.php @@ -247,18 +247,30 @@ class Vendor { return 'vendorName'; } - function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = 'vendorName', $bAscending = TRUE) + function objectGetFilterInfo() + { + $oFilter = new FilterInterface(); + + $oFilter->AddFilterInfo('vendorName', 'Name', array(FILTER_CONTAINS, FILTER_STARTS_WITH, FILTER_ENDS_WITH), FILTER_VALUES_NORMAL); + return $oFilter; + } + + function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = 'vendorName', $bAscending = TRUE, $oFilter = null) { /* Not implemented */ if($sState == 'rejected') return FALSE; + $sWhereFilter = $oFilter ? $oFilter->getWhereClause() : ''; $sOrder = $bAscending ? 'ASC' : 'DESC'; - if(!$iRows) - $iRows = Vendor::objectGetEntriesCount($sState); + if($sWhereFilter) + $sWhereFilter = " AND $sWhereFilter"; - $hResult = query_parameters("SELECT * FROM vendor WHERE state = '?' + if(!$iRows) + $iRows = Vendor::objectGetEntriesCount($sState, $oFilter); + + $hResult = query_parameters("SELECT * FROM vendor WHERE state = '?' $sWhereFilter ORDER BY $sOrderBy $sOrder LIMIT ?,?", $sState, $iStart, $iRows); @@ -399,13 +411,17 @@ class Vendor { return "objectMakeUrl()."\">$this->sName"; } - function objectGetEntriesCount($sState) + function objectGetEntriesCount($sState, $oFilter = null) { /* Not implemented */ if($sState == 'rejected') return FALSE; - $hResult = query_parameters("SELECT COUNT(vendorId) as count FROM vendor WHERE state = '?'", + $sWhereClause = $oFilter ? $oFilter->getWhereClause() : ''; + if($sWhereClause) + $sWhereClause = " AND $sWhereClause"; + + $hResult = query_parameters("SELECT COUNT(vendorId) as count FROM vendor WHERE state = '?' $sWhereClause", $sState); if(!$hResult)