<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
class CRM_Core_PseudoConstant {
/**
- * static cache for pseudoconstant arrays
+ * Static cache for pseudoconstant arrays
* @var array
* @static
*/
private static $cache;
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* activity type
* @var array
private static $activityType;
/**
- * states, provinces
+ * States, provinces
* @var array
* @static
*/
private static $stateProvince;
/**
- * counties
+ * Counties
* @var array
* @static
*/
private static $county;
/**
- * states/provinces abbreviations
+ * States/provinces abbreviations
* @var array
* @static
*/
private static $stateProvinceAbbreviation;
/**
- * country
+ * Country
* @var array
* @static
*/
private static $country;
/**
- * countryIsoCode
+ * CountryIsoCode
* @var array
* @static
*/
private static $countryIsoCode;
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* group
* @var array
private static $group;
/**
- * groupIterator
+ * GroupIterator
* @var mixed
* @static
*/
private static $groupIterator;
/**
- * relationshipType
+ * RelationshipType
* @var array
* @static
*/
private static $relationshipType;
/**
- * civicrm groups that are not smart groups
+ * Civicrm groups that are not smart groups
* @var array
* @static
*/
private static $staticGroup;
/**
- * currency codes
+ * Currency codes
* @var array
* @static
*/
private static $currencyCode;
/**
- * payment processor
+ * Payment processor
* @var array
* @static
*/
private static $paymentProcessor;
/**
- * payment processor types
+ * Payment processor types
* @var array
* @static
*/
private static $worldRegions;
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* activity status
* @var array
*/
private static $accountOptionValues;
+ /**
+ * Tax Rates
+ * @var array
+ * @static
+ */
+ private static $taxRates;
+
/**
* Low-level option getter, rarely accessed directly.
* NOTE: Rather than calling this function directly use CRM_*_BAO_*::buildOptions()
* @see http://wiki.civicrm.org/confluence/display/CRMDOC/Pseudoconstant+%28option+list%29+Reference
*
- * @param String $daoName
- * @param String $fieldName
- * @param Array $params
+ * @param string $daoName
+ * @param string $fieldName
+ * @param array $params
* - name string name of the option group
* - flip boolean results are return in id => label format if false
* if true, the results are reversed
* - orderColumn string the column to use for sorting, defaults to 'weight' column if one exists, else defaults to labelColumn
* - onlyActive boolean return only the action option values
* - fresh boolean ignore cache entries and go back to DB
- * @param String $context: Context string
+ * @param string $context: Context string
*
* @return Array|bool - array on success, FALSE on error.
*
/**
* Fetch the translated label for a field given its key
*
- * @param String $baoName
- * @param String $fieldName
- * @param String|Int $key
+ * @param string $baoName
+ * @param string $fieldName
+ * @param string|Int $key
*
* TODO: Accept multivalued input?
*
* NULL if the given key has no corresponding option
* String if label is found
*/
- static function getLabel($baoName, $fieldName, $key) {
+ public static function getLabel($baoName, $fieldName, $key) {
$values = $baoName::buildOptions($fieldName, 'get');
if ($values === FALSE) {
return FALSE;
/**
* Fetch the machine name for a field given its key
*
- * @param String $baoName
- * @param String $fieldName
- * @param String|Int $key
+ * @param string $baoName
+ * @param string $fieldName
+ * @param string|Int $key
*
* @return bool|null|string
* FALSE if the given field has no associated option list
* NULL if the given key has no corresponding option
* String if label is found
*/
- static function getName($baoName, $fieldName, $key) {
+ public static function getName($baoName, $fieldName, $key) {
$values = $baoName::buildOptions($fieldName, 'validate');
if ($values === FALSE) {
return FALSE;
/**
* Fetch the key for a field option given its name
*
- * @param String $baoName
- * @param String $fieldName
- * @param String|Int $value
+ * @param string $baoName
+ * @param string $fieldName
+ * @param string|Int $value
*
* @return bool|null|string|number
* FALSE if the given field has no associated option list
* NULL if the given key has no corresponding option
* String|Number if key is found
*/
- static function getKey($baoName, $fieldName, $value) {
+ public static function getKey($baoName, $fieldName, $value) {
$values = $baoName::buildOptions($fieldName, 'validate');
if ($values === FALSE) {
return FALSE;
* @param $fieldSpec
* @return string|null
*/
- static function getOptionEditUrl($fieldSpec) {
+ public static function getOptionEditUrl($fieldSpec) {
// If it's an option group, that's easy
if (!empty($fieldSpec['pseudoconstant']['optionGroupName'])) {
return 'civicrm/admin/options/' . $fieldSpec['pseudoconstant']['optionGroupName'];
/**
* DEPRECATED generic populate method
- * All pseudoconstant functions that use this method are also deprecated.
+ * All pseudoconstant functions that use this method are also @deprecated
*
* The static array $var is populated from the db
* using the <b>$name DAO</b>.
*
* Note: any database errors will be trapped by the DAO.
*
- * @param array $var the associative array we will fill
- * @param string $name the name of the DAO
- * @param boolean $all get all objects. default is to get only active ones.
- * @param string $retrieve the field that we are interested in (normally name, differs in some objects)
- * @param string $filter the field that we want to filter the result set with
- * @param string $condition the condition that gets passed to the final query as the WHERE clause
+ * @param array $var
+ * The associative array we will fill.
+ * @param string $name
+ * The name of the DAO.
+ * @param bool $all
+ * Get all objects. default is to get only active ones.
+ * @param string $retrieve
+ * The field that we are interested in (normally name, differs in some objects).
+ * @param string $filter
+ * The field that we want to filter the result set with.
+ * @param string $condition
+ * The condition that gets passed to the final query as the WHERE clause.
*
* @param null $orderby
* @param string $key
* @param null $force
*
* @return void
- * @access public
* @static
*/
public static function populate(
* Flush given pseudoconstant so it can be reread from db
* nex time it's requested.
*
- * @access public
* @static
*
* @param bool|string $name pseudoconstant to be flushed
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* Get all Activty types.
*
* The static array activityType is returned
*
- * @internal param bool $all - get All Activity types - default is to get only active ones.
- *
- * @access public
* @static
*
* @return array - array reference of all activity types.
*
* Note: any database errors will be trapped by the DAO.
*
- * @access public
* @static
*
- * @param bool|int $id - Optional id to return
+ * @param bool|int $id - Optional id to return
*
* @param bool $limit
*
*
* Same as above, except gets the abbreviations instead of the names.
*
- * @access public
* @static
*
- * @param bool|int $id - Optional id to return
+ * @param bool|int $id - Optional id to return
*
* @param bool $limit
*
*
* Note: any database errors will be trapped by the DAO.
*
- * @access public
* @static
*
* @param bool|int $id - Optional id to return
*
* Note: any database errors will be trapped by the DAO.
*
- * @access public
* @static
*
* @param bool $id
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* Get all groups from database
*
*
* Note: any database errors will be trapped by the DAO.
*
- * @param string $groupType type of group(Access/Mailing)
- * @param bool|\boolen $excludeHidden exclude hidden groups.
+ * @param string $groupType
+ * Type of group(Access/Mailing).
+ * @param bool $excludeHidden
+ * Exclude hidden groups.
*
- * @access public
* @static
*
* @return array - array reference of all groups.
* called for the first time
*
*
- * @access public
* @static
*
* @param bool $styledLabels
*
* Note: any database errors will be trapped by the DAO.
*
- * @param string $groupType type of group(Access/Mailing)
- * @param bool $excludeHidden exclude hidden groups.
+ * @param string $groupType
+ * Type of group(Access/Mailing).
+ * @param bool $excludeHidden
+ * Exclude hidden groups.
*
- * @access public
* @static
*
* @return array - array reference of all groups.
*
* Note: any database errors will be trapped by the DAO.
*
- * @access public
* @static
*
* @param bool $onlyPublic
*
* Note: any database errors will be trapped by the DAO.
*
- * @param string $valueColumnName db column name/label.
- * @param boolean $reset reset relationship types if true
+ * @param string $valueColumnName
+ * Db column name/label.
+ * @param bool $reset
+ * Reset relationship types if true.
*
- * @access public
* @static
*
* @return array - array reference of all relationship types.
}
/**
- * get all the ISO 4217 currency codes
+ * Get all the ISO 4217 currency codes
*
* so far, we use this for validation only, so there's no point of putting this into the database
*
- * @access public
*
* @return array - array reference of all currency codes
* @static
*
* Note: any database errors will be trapped by the DAO.
*
- * @access public
* @static
*
- * @param bool|int $id - Optional id to return
+ * @param bool|int $id - Optional id to return
*
* @return array - array reference of all Counties
*/
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
* Get all active payment processors
*
* The static array paymentProcessor is returned
*
- * @access public
* @static
*
- * @param boolean $all - get payment processors - default is to get only active ones.
- * @param boolean $test - get test payment processors
+ * @param bool $all
+ * Get payment processors - default is to get only active ones.
+ * @param bool $test
+ * Get test payment processors.
*
* @param null $additionalCond
*
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* The static array paymentProcessorType is returned
*
- * @access public
* @static
*
- * @param boolean $all - get payment processors - default is to get only active ones.
+ * @param bool $all
+ * Get payment processors - default is to get only active ones.
*
- * @param null $id
+ * @param int $id
* @param string $return
*
* @return array - array of all payment processor types
/**
* Get all the World Regions from Database
*
- * @access public
*
* @param bool $id
*
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* Get all Activity Statuses.
*
* The static array activityStatus is returned
*
- * @access public
* @static
*
* @param string $column
}
/**
- * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object.
+ * @deprecated Please use the buildOptions() method in the appropriate BAO object.
*
* Get all Visibility levels.
*
* The static array visibility is returned
*
- * @access public
* @static
*
* @param string $column
*/
public static function &visibility($column = 'label') {
if (!isset(self::$visibility)) {
- self::$visibility = array( );
+ self::$visibility = array();
}
if (!isset(self::$visibility[$column])) {
self::$visibility[$column] = CRM_Core_OptionGroup::values('visibility', FALSE, FALSE, FALSE, NULL, $column);
- }
+ }
return self::$visibility[$column];
}
/**
- * @param $countryID
+ * @param int $countryID
* @param string $field
*
* @return array
}
/**
- * @param $stateID
+ * @param int $stateID
*
* @return array
*/
* Given a state ID return the country ID, this allows
* us to populate forms and values for downstream code
*
- * @param $stateID int
+ * @param $stateID
+ * Int.
*
* @return int the country id that the state belongs to
* @static
- * @public
*/
- static function countryIDForStateID($stateID) {
+ public static function countryIDForStateID($stateID) {
if (empty($stateID)) {
return CRM_Core_DAO::$_nullObject;
}
*
* The static array of greeting is returned
*
- * @access public
* @static
*
- * @param $filter - get All Email Greetings - default is to get only active ones.
+ * @param $filter
+ * Get All Email Greetings - default is to get only active ones.
*
* @param string $columnName
*
/**
* Construct array of default greeting values for contact type
*
- * @access public
* @static
*
* @return array - array reference of default greetings.
* FIXME: This is called by civix but not by any core code. We
* should provide an API call which civix can use instead.
*
- * @access public
* @static
*
* @return array - array($fullyQualifiedName => $label) list of extensions
*
* The static array option values is returned
*
- * @access public
* @static
*
- * @param boolean $optionGroupName - get All Option Group values- default is to get only active ones.
+ * @param bool $optionGroupName
+ * Get All Option Group values- default is to get only active ones.
*
- * @param null $id
+ * @param int $id
* @param null $condition
*
* @return array - array reference of all Option Group Name
*/
- public static function accountOptionValues($optionGroupName, $id = null, $condition = null) {
+ public static function accountOptionValues($optionGroupName, $id = NULL, $condition = NULL) {
$cacheKey = $optionGroupName . '_' . $condition;
if (empty(self::$accountOptionValues[$cacheKey])) {
- self::$accountOptionValues[$cacheKey] = CRM_Core_OptionGroup::values($optionGroupName, false, false, false, $condition);
+ self::$accountOptionValues[$cacheKey] = CRM_Core_OptionGroup::values($optionGroupName, FALSE, FALSE, FALSE, $condition);
}
if ($id) {
return CRM_Utils_Array::value($id, self::$accountOptionValues[$cacheKey]);
/**
* Fetch the list of active extensions of type 'module'
*
- * @param $fresh bool whether to forcibly reload extensions list from canonical store
- * @access public
+ * @param $fresh
+ * Bool whether to forcibly reload extensions list from canonical store.
* @static
*
* @return array - array(array('prefix' => $, 'file' => $))
public static function getModuleExtensions($fresh = FALSE) {
return CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles($fresh);
}
-}
+
+ /**
+ * Get all tax rates
+ *
+ * The static array tax rates is returned
+ *
+ * @static
+ *
+ * @return array - array list of tax rates with the financial type
+ */
+ public static function getTaxRates() {
+ if (!self::$taxRates) {
+ self::$taxRates = array();
+ $sql = "
+ SELECT fa.tax_rate, efa.entity_id
+ FROM civicrm_entity_financial_account efa
+ INNER JOIN civicrm_financial_account fa ON fa.id = efa.financial_account_id
+ INNER JOIN civicrm_option_value cov ON cov.value = efa.account_relationship
+ INNER JOIN civicrm_option_group cog ON cog.id = cov.option_group_id
+ WHERE efa.entity_table = 'civicrm_financial_type'
+ AND cov.name = 'Sales Tax Account is'
+ AND cog.name = 'account_relationship'
+ AND fa.is_active = 1";
+ $dao = CRM_Core_DAO::executeQuery($sql);
+ while ($dao->fetch()) {
+ self::$taxRates[$dao->entity_id] = $dao->tax_rate;
+ }
+ }
+
+ return self::$taxRates;
+ }
+}