class CRM_Price_BAO_PriceSet extends CRM_Price_DAO_PriceSet

Business object for managing price sets.

Constants

NOT_NULL

IS_NULL

DB_DAO_NOTNULL

VALUE_SEPARATOR

BULK_INSERT_COUNT

BULK_INSERT_HIGH_COUNT

QUERY_FORMAT_WILDCARD

QUERY_FORMAT_NO_QUOTES

SERIALIZE_SEPARATOR_BOOKEND

SERIALIZE_SEPARATOR_TRIMMED

SERIALIZE_JSON

SERIALIZE_PHP

SERIALIZE_COMMA

Properties

protected int $resultCopies How many times has this instance been cloned. from CRM_Core_DAO
static null $_nullObject from CRM_Core_DAO
static array $_nullArray from CRM_Core_DAO
static $_dbColumnValueCache from CRM_Core_DAO
static array $_testEntitiesToSkip Define entities that shouldn't be created or deleted when creating/ deleting test objects - this prevents world regions, countries etc from being added / deleted from CRM_Core_DAO
static object $_factory The factory class for this application. from CRM_Core_DAO
static $_checkedSqlFunctionsExist from CRM_Core_DAO
protected array $_options https://issues.civicrm.org/jira/browse/CRM-17748 internal variable for DAO to hold per-query settings from CRM_Core_DAO
static string $_tableName Static instance to hold the table name. from CRM_Price_DAO_PriceSet
static bool $_log Should CiviCRM log any modifications to this table in the civicrm_log table. from CRM_Price_DAO_PriceSet
int $id Price Set from CRM_Price_DAO_PriceSet
int $domain_id Which Domain is this price-set for from CRM_Price_DAO_PriceSet
string $name Variable name/programmatic handle for this set of price fields. from CRM_Price_DAO_PriceSet
string $title Displayed title for the Price Set. from CRM_Price_DAO_PriceSet
bool $is_active Is this price set active from CRM_Price_DAO_PriceSet
text $help_pre Description and/or help text to display before fields in form. from CRM_Price_DAO_PriceSet
text $help_post Description and/or help text to display after fields in form. from CRM_Price_DAO_PriceSet
string $javascript Optional Javascript script function(s) included on the form with this price_set. Can be used for conditional from CRM_Price_DAO_PriceSet
string $extends What components are using this price set? from CRM_Price_DAO_PriceSet
int $financial_type_id FK to Financial Type(for membership price sets only). from CRM_Price_DAO_PriceSet
bool $is_quick_config Is set if edited on Contribution or Event Page rather than through Manage Price Sets from CRM_Price_DAO_PriceSet
bool $is_reserved Is this a predefined system price set (i.e. it can not be deleted, edited)? from CRM_Price_DAO_PriceSet
int $min_amount Minimum Amount required for this set. from CRM_Price_DAO_PriceSet
static array $_defaultPriceSet Static field for default price set details.

Methods

__construct()

Class constructor.

__clone()

No description

__destruct()

Class destructor.

static 
getTableName()

Returns the names of this table

static 
init(string $dsn)

Initialize the DAO object.

static DB_common
getConnection()

No description

static 
disableFullGroupByMode()

Disables usage of the ONLY_FULL_GROUP_BY Mode if necessary

static 
reenableFullGroupByMode()

Re-enables ONLY_FULL_GROUP_BY sql_mode as necessary.

assignTestFK(string $fieldName, $fieldDef, array $params)

No description

assignTestValue(string $fieldName, array $fieldDef, int $counter)

Generate and assign an arbitrary value to a field of a test object.

reset()

Reset the DAO object.

static string
getLocaleTableName(string $tableName)

No description

object
query(string $query, bool $i18nRewrite = TRUE)

Execute a query by the current DAO, localizing it along the way (if needed).

static 
setFactory(object $factory)

Static function to set the factory instance for this class.

DataObject|PEAR_Error
factory(string $table = '')

Factory method to instantiate a new object from a table name.

initialize()

Initialization for all DAO objects. Since we access DB_DO programatically we need to set the links manually.

array
keys()

Defines the default key as 'id'.

array
sequenceKey()

Tells DB_DataObject which keys use autoincrement.

static array
getReferenceColumns()

Returns foreign keys and entity references.

static array
fields()

Returns all the column names of this table

array
table()

Get/set an associative array of table columns

save(bool $hook = TRUE)

Save DAO object.

delete(bool $useWhere = FALSE)

Deletes items from table which match current objects variables.

log(bool $created = FALSE)

No description

bool
copyValues(array $params, bool $serializeArrays = FALSE)

Given an associative array of name/value pairs, extract all the values that belong to this object and initialize the object with said values

static 
storeValues(object $object, array $values)

Store all the values from this object in an associative array this is a destructive store, calling function is responsible for keeping sanity of id's.

static array|null
makeAttribute(array $field)

Create an attribute for this specific field. We only do this for strings and text

static array
getAttribute(string $class, string $fieldName = NULL)

Get the size and maxLength attributes for this text field.

static bool
objectExists(string $value, string $daoName, string $daoID, string $fieldName = 'name', string $domainID = NULL)

Check if there is a record with the same name in the db.

static bool
checkFieldExists(string $tableName, string $columnName, bool $i18nRewrite = TRUE) deprecated

Check if there is a given column in a specific table.

static array
getTableNames()

Scans all the tables using a slow query and table name.

static bool
isDBMyISAM(int $maxTablesToCheck = 10)

No description

static string
getDatabaseName()

Get the name of the CiviCRM database.

static bool
checkConstraintExists(string $tableName, string $constraint)

Checks if a constraint exists for a specified table.

static bool
schemaRequiresRebuilding(array $tables = ["civicrm_contact"])

Checks if CONSTRAINT keyword exists for a specified table.

static bool
checkFKConstraintInFormat(string $tableName, string $columnName)

Checks if the FK constraint name is in the format 'FK_tableName_columnName' for a specified column of a table.

static bool
checkFieldHasAlwaysValue(string $tableName, string $columnName, string $columnValue)

Check whether a specific column in a specific table has always the same value.

static bool
checkFieldIsAlwaysNull(string $tableName, string $columnName)

Check whether a specific column in a specific table is always NULL.

static bool
checkTableExists(string $tableName)

Check if there is a given table in the database.

static bool
checkTableHasData(string $tableName)

Check if a given table has data.

bool
checkVersion($version)

No description

static CRM_Core_DAO
findById(int $id)

Find a DAO object for the given ID and return it.

array
fetchAll()

Returns all results as array-encoded records.

fetchGenerator(string $type = 'dao')

Return the results as PHP generator.

mixed|NULL
fetchValue()

Returns a singular value.

array
fetchMap(string $keyColumn, string $valueColumn)

Get all the result records as mapping between columns.

static string|null
getFieldValue(string $daoName, int $searchValue, string $returnColumn = 'name', string $searchColumn = 'id', bool $force = FALSE)

Given a DAO name, a column name and a column value, find the record and GET the value of another column in that record

static bool
setFieldValue(string $daoName, int $searchValue, string $setColumn, string $setValue, string $searchColumn = 'id')

Given a DAO name, a column name and a column value, find the record and SET the value of another column in that record

static string
getSortString(array|object $sort, string $default = NULL)

Get sort string.

static object
commonRetrieve(string $daoName, array $params, array $defaults, array $returnProperities = NULL)

Fetch object based on array of properties.

static 
deleteEntityContact(string $daoName, int $contactId)

Delete the object records that are associated with this contact.

static CRM_Core_DAO
executeUnbufferedQuery(string $query, array $params = [], bool $abort = TRUE, null $daoName = NULL, bool $freeDAO = FALSE, bool $i18nRewrite = TRUE, bool $trapException = FALSE)

Execute an unbuffered query.

static CRM_Core_DAO|object
executeQuery(string $query, array $params = [], bool $abort = TRUE, null $daoName = NULL, bool $freeDAO = FALSE, bool $i18nRewrite = TRUE, bool $trapException = FALSE, array $options = [])

Execute a query.

bool
isValidOption(array $options)

Wrapper to validate internal DAO options before passing to DB_mysql/DB_Common level

static string|null
singleValueQuery(string $query, array $params = [], bool $abort = TRUE, bool $i18nRewrite = TRUE)

Execute a query and get the single result.

static string
composeQuery(string $query, array $params = [], bool $abort = TRUE)

Compose the query by merging the parameters into it.

static 
freeResult(null $ids = NULL)

No description

static CRM_Core_DAO|bool
copyGeneric(string $daoName, array $criteria, array $newData = NULL, string $fieldsFix = NULL, string $blockCopyOfDependencies = NULL, bool $blockCopyofCustomValues = FALSE)

Make a shallow copy of an object and all the fields in the object.

copyCustomFields(int $entityID, int $newEntityID)

Method that copies custom fields values from an old entity to a new one.

static CRM_Core_DAO|null
cascadeUpdate(string $daoName, $fromId, $toId, array $newData = [])

Cascade update through related entities.

static array
getContactIDsFromComponent($componentIDs, string $tableName, string $idField = 'id')

Given the component id, compute the contact id since its used for things like send email

static object
commonRetrieveAll(string $daoName, string $fieldIdName = 'id', int $fieldId, $details, array $returnProperities = NULL)

Fetch object based on array of properties.

static 
dropAllTables()

Drop all CiviCRM tables.

static string
escapeString($string)

No description

static string
escapeStrings(array $strings, string $default = NULL)

Escape a list of strings for use with "WHERE X IN (.

static string
escapeWildCardString($string)

No description

static object|array|NULL
createTestObject(string $daoName, array $params = [], int $numObjects = 1, bool $createOnly = FALSE)

Creates a test object, including any required objects it needs via recursion createOnly: only create in database, do not store or return the objects (useful for perf testing) ONLY USE FOR TESTING

static 
deleteTestObjects(string $daoName, array $params = [])

Deletes the this object plus any dependent objects that are associated with it.

static 
setCreateDefaults(array $params, $defaults)

Set defaults when creating new entity.

static string
createTempTableName(string $prefix = 'civicrm', bool $addRandomString = TRUE, null $string = NULL) deprecated

No description

static bool
checkTriggerViewPermission(bool $view = TRUE, bool $trigger = TRUE)

No description

static 
debugPrint(null $message = NULL, bool $printDAO = TRUE)

No description

static 
triggerRebuild(string $tableName = NULL, bool $force = FALSE) deprecated

Build a list of triggers via hook and add them to (err, reconcile them with) the database.

static 
checkSqlFunctionsExist()

Because sql functions are sometimes lost, esp during db migration, we check here to avoid numerous support requests

static 
dropTriggers(string $tableName = NULL) deprecated

Wrapper function to drop triggers.

static 
createTriggers(array $info, string $onlyTableName = NULL) deprecated

No description

static array
createReferenceColumns(string $className)

Given a list of fields, create a list of references.

array
findReferences()

Find all records which refer to this entity.

array
getReferenceCounts()

No description

static array
getReferencesToTable(string $tableName)

List all tables which have hard foreign keys to this table.

static 
getReferencesToContactTable()

Get all references to contact table.

static 
appendCustomTablesExtendingContacts(array $cidRefs)

Add custom tables that extend contacts to the list of contact references.

static 
appendCustomContactReferenceFields(array $cidRefs)

Add custom ContactReference fields to the list of contact references

static mixed
getGlobalSetting(string $name, mixed $default = NULL)

Lookup the value of a MySQL global configuration variable.

static 
appendPseudoConstantsToFields(array $fields)

Update the fields array to also hold keys for pseudoconstant fields that relate to contained fields.

static array|bool
buildOptions(string $fieldName, string $context = NULL, array $props = [])

Get options for the called BAO object's field.

getOptionLabels()

Populate option labels for this object's fields.

static array
buildOptionsContext(string $context = NULL)

Provides documentation and validation for the buildOptions $context param

bool|array
getFieldSpec(string $fieldName)

No description

static NULL|string|array
createSQLFilter(string $fieldName, array $filter, string $type = NULL, string $alias = NULL, bool $returnSanitisedArray = FALSE)

Get SQL where clause for SQL filter syntax input parameters.

static array
acceptedSQLOperators()

No description

static string
shortenSQLName(string $string, int $length = 60, bool $makeRandom = FALSE)

SQL has a limit of 64 characters on various names: table name, trigger name, column name .

setOptions(array $options)

https://issues.civicrm.org/jira/browse/CRM-17748 Sets the internal options to be used on a query

_setDBOptions(array $options)

https://issues.civicrm.org/jira/browse/CRM-17748 wrapper to pass internal DAO options down to DB_mysql/DB_Common level

setApiFilter(array $params) deprecated

No description

array
addSelectWhereClause()

Generates acl clauses suitable for adding to WHERE or ON when doing an api.get for this entity

static array
getSelectWhereClause(string $tableAlias = NULL)

This returns the final permissioned query string for this entity

static bool
requireSafeDBName($database)

ensure database name is 'safe', i.e. only contains word characters (includes underscores) and dashes, and contains at least one [a-z] case insenstive.

static string|null
serializeField(array|null $value, int $serializationType)

Transform an array to a serialized string for database storage.

static array|null
unSerializeField(string|null $value, $serializationType)

Transform a serialized string from the database into an array.

static array
getEntityRefFilters()

No description

static array
getExportableFieldsWithPseudoConstants(string $baoClass)

Get exportable fields with pseudoconstants rendered as an extra field.

static array
fieldKeys()

Return a mapping from field-name to the corresponding key (as used in fields()).

bool
getLog()

Returns if this table needs to be logged

static array
import(bool $prefix = FALSE)

Returns the list of fields that can be imported

static array
export(bool $prefix = FALSE)

Returns the list of fields that can be exported

static array
indices(bool $localize = TRUE)

Returns the list of indices

create(array $params)

Takes an associative array and creates a price set object.

retrieve(array $params, array $defaults)

Fetch object based on array of properties.

static bool
setIsActive(int $id, $isActive)

Update the is_active flag in the db.

static array
getDefaultPriceSet(string $entity = 'contribution')

Calculate the default price set id assigned to the contribution/membership etc

static string
getTitle(int $id)

Get the price set title.

static array
getUsedBy(int $id, bool|string $simpleReturn = FALSE)

Return a list of all forms which use this price set.

static bool
deleteSet(int $id)

Delete the price set, including the fields.

static bool
addTo(string $entityTable, int $entityId, int $priceSetId)

Link the price set with the specified table and id.

static mixed
removeFrom(string $entityTable, int $entityId)

Delete price set for the given entity and id.

static int|false
getFor(string $entityTable, int $entityId, int $usedFor = NULL, null $isQuickConfig = NULL, null $setName = NULL)

Find a price_set_id associated with the given table, id and usedFor Used For value for events:1, contribution:2, membership:3

static int|null
getSetId(array $params)

Find a price_set_id associated with the given option value or field ID.

static array
getAssoc(bool $withInactive = FALSE, bool|string $extendComponentName = FALSE, string $column = 'title')

Return an associative array of all price sets.

static array
getSetDetail(int $setID, bool $required = TRUE, bool $validOnly = FALSE)

Get price set details.

static int
getOnlyPriceFieldID(array $priceSet)

Get the Price Field ID.

static int
getOnlyPriceFieldValueID(array $priceSet)

Get the Price Field Value ID. We call this function when more than one being present would represent an error current(CRM_Price_BAO_PriceSet::getSetDetail($priceSetId))

static bool|false|int|null
initSet(CRM_Core_Form $form, int $id, string $entityTable = 'civicrm_event', bool $validOnly = FALSE, int $priceSetId = NULL)

Initiate price set such that various non-BAO things are set on the form.

static 
processAmount($fields, array $params, $lineItem, string $component = '', int $priceSetID = NULL)

Get line item purchase information.

static string
getAmountLevelText(array $params)

Get the text to record for amount level.

static array
filterPriceFieldsFromParams(int $priceSetID, array $params)

Get the fields relevant to the price field from the parameters.

static array
getCachedPriceSetDetail(int $priceSetID)

Wrapper for getSetDetail with caching.

static void
buildPriceSet(CRM_Core_Form $form)

Build the price set form.

static void
applyACLFinancialTypeStatusToFeeBlock(array $feeBlock)

Apply ACLs on Financial Type to the price options in a fee block.

static bool
checkCurrentMembership(array $options, int $userid)

Check the current Membership having end date null.

static array
setDefaultPriceSet(CRM_Core_Form $form, $defaults)

Set daefult the price set fields.

static void
setDefaultPriceSetField(string $priceFieldName, string $priceFieldValue, string $priceFieldType, array $defaults)

Get the value of price field if passed via url

static mixed
getPriceFieldValueFromURL(CRM_Core_Form $form, string $priceFieldName)

Get the value of price field if passed via url

static 
setPriceSets(array $params, CRM_Core_DAO $entity, string $entityName)

Supports event create function by setting up required price sets, not tested but expect it will work for contribution page

static array
getFieldIds(int $id)

Get field ids of a price set.

copy(int $id)

Copy a price set, including all the fields

static bool
checkPermission(int $sid)

check price set permission.

static int|null|string
getPricesetCount(int $sid, bool $onlyActive = TRUE)

Get the sum of participant count for all fields of given price set.

static array
getMembershipCount($ids)

No description

static int
checkAutoRenewForPriceSet(int $priceSetId)

Check if auto renew option should be shown.

static array
getRecurDetails(int $priceSetId)

Retrieve auto renew frequency and interval.

static object
eventPriceSetDomainID()

No description

static bool
setIsQuickConfig(int $id, bool $isQuickConfig)

Update the is_quick_config flag in the db.

static bool
isMembershipPriceSetContainsMixOfRenewNonRenew(int $id)

Check if price set id provides option for user to select both auto-renew and non-auto-renew memberships

static array(
getMembershipTypesFromPriceSet(int $id)

Get an array of the membership types in a price set.

static 
copyPriceSet(string $baoName, int $id, int $newId)

Copy priceSet when event/contibution page is copied

static array
setLineItem(array $field, array $lineItem, int $optionValueId, float $totalTax)

Function to set tax_amount and tax_rate in LineItem.

static array
parseFirstPriceSetValueIDFromParams(array $params)

Get the first price set value IDs from a parameters array.

static array
parsePriceSetValueIDsFromParams(array $params)

Get the price set value IDs from a set of parameters

static array
parsePriceSetArrayFromParams(array $params)

Get the price set value IDs from a set of parameters

static int
getNonDeductibleAmountFromPriceSet(int $priceSetId, array $lineItem)

Get non-deductible amount from price options

static array
getFormsUsingPriceSet(int $id)

Get an array of all forms using a given price set.

static mixed
reformatUsedByFormsWithEntityData(array $forms)

No description

Details

at line 50
CRM_Core_DAO __construct()

Class constructor.

Return Value

CRM_Core_DAO

in CRM_Core_DAO at line 130
__clone()

in CRM_Core_DAO at line 139
__destruct()

Class destructor.

in CRM_Price_DAO_PriceSet at line 398
static getTableName()

Returns the names of this table

in CRM_Core_DAO at line 159
static init(string $dsn)

Initialize the DAO object.

Parameters

string $dsn The database connection string.

in CRM_Core_DAO at line 185
static DB_common getConnection()

Return Value

DB_common

in CRM_Core_DAO at line 194
static disableFullGroupByMode()

Disables usage of the ONLY_FULL_GROUP_BY Mode if necessary

in CRM_Core_DAO at line 206
static reenableFullGroupByMode()

Re-enables ONLY_FULL_GROUP_BY sql_mode as necessary.

.

in CRM_Core_DAO at line 219
protected assignTestFK(string $fieldName, $fieldDef, array $params)

Parameters

string $fieldName
$fieldDef
array $params

in CRM_Core_DAO at line 264
protected assignTestValue(string $fieldName, array $fieldDef, int $counter)

Generate and assign an arbitrary value to a field of a test object.

Parameters

string $fieldName
array $fieldDef
int $counter The globally-unique ID of the test object.

in CRM_Core_DAO at line 376
reset()

Reset the DAO object.

DAO is kinda crappy in that there is an unwritten rule of one query per DAO.

We attempt to get around this crappy restriction by resetting some of DAO's internal fields. Use this with caution

in CRM_Core_DAO at line 396
static string getLocaleTableName(string $tableName)

Parameters

string $tableName

Return Value

string

in CRM_Core_DAO at line 418
object query(string $query, bool $i18nRewrite = TRUE)

Execute a query by the current DAO, localizing it along the way (if needed).

Parameters

string $query The SQL query for execution.
bool $i18nRewrite Whether to rewrite the query.

Return Value

object the current DAO object after the query execution

in CRM_Core_DAO at line 447
static setFactory(object $factory)

Static function to set the factory instance for this class.

Parameters

object $factory The factory application object.

in CRM_Core_DAO at line 457
DataObject|PEAR_Error factory(string $table = '')

Factory method to instantiate a new object from a table name.

Parameters

string $table

Return Value

DataObject|PEAR_Error

in CRM_Core_DAO at line 469
initialize()

Initialization for all DAO objects. Since we access DB_DO programatically we need to set the links manually.

in CRM_Core_DAO at line 484
array keys()

Defines the default key as 'id'.

Return Value

array

in CRM_Core_DAO at line 499
array sequenceKey()

Tells DB_DataObject which keys use autoincrement.

'id' is autoincrementing by default.

Return Value

array

in CRM_Price_DAO_PriceSet at line 136
static array getReferenceColumns()

Returns foreign keys and entity references.

Return Value

array Array of CRM_Core_Reference_Interface

in CRM_Price_DAO_PriceSet at line 151
static array fields()

Returns all the column names of this table

Return Value

array

in CRM_Core_DAO at line 535
array table()

Get/set an associative array of table columns

Return Value

array (associative)

in CRM_Core_DAO at line 558
CRM_Core_DAO save(bool $hook = TRUE)

Save DAO object.

Parameters

bool $hook

Return Value

CRM_Core_DAO

in CRM_Core_DAO at line 610
delete(bool $useWhere = FALSE)

Deletes items from table which match current objects variables.

Returns the true on success

for example

Designed to be extended

$object = new mytable(); $object->ID=123; echo $object->delete(); // builds a conditon

$object = new mytable(); $object->whereAdd('age > 12'); $object->limit(1); $object->orderBy('age DESC'); $object->delete(true); // dont use object vars, use the conditions, limit and order.

Parameters

bool $useWhere (optional) If DB_DATAOBJECT_WHEREADD_ONLY is passed in then we will build the condition only using the whereAdd's. Default is to build the condition only using the object parameters.

* @return mixed Int (No. of rows affected) on success, false on failure, 0 on no data affected

in CRM_Core_DAO at line 628
log(bool $created = FALSE)

Parameters

bool $created

in CRM_Core_DAO at line 669
bool copyValues(array $params, bool $serializeArrays = FALSE)

Given an associative array of name/value pairs, extract all the values that belong to this object and initialize the object with said values

Parameters

array $params (reference ) associative array of name/value pairs.
bool $serializeArrays Should arrays that are passed in be serialised according to the metadata. Eventually this should be always true / gone, but in the interests of caution it is being grandfathered in. In general an array is not valid on the DAO but there may be instances where this function is called & then some handling takes place on the would-be array.

Return Value

bool Did we copy all null values into the object

in CRM_Core_DAO at line 725
static storeValues(object $object, array $values)

Store all the values from this object in an associative array this is a destructive store, calling function is responsible for keeping sanity of id's.

Parameters

object $object The object that we are extracting data from.
array $values (reference ) associative array of name/value pairs.

in CRM_Core_DAO at line 747
static array|null makeAttribute(array $field)

Create an attribute for this specific field. We only do this for strings and text

Parameters

array $field The field under task.

Return Value

array|null the attributes for the object

in CRM_Core_DAO at line 800
static array getAttribute(string $class, string $fieldName = NULL)

Get the size and maxLength attributes for this text field.

(or for all text fields) in the DAO object.

Parameters

string $class Name of DAO class.
string $fieldName Field that i'm interested in or null if. you want the attributes for all DAO text fields

Return Value

array assoc array of name => attribute pairs

in CRM_Core_DAO at line 842
static bool objectExists(string $value, string $daoName, string $daoID, string $fieldName = 'name', string $domainID = NULL)

Check if there is a record with the same name in the db.

Parameters

string $value The value of the field we are checking.
string $daoName The dao object name.
string $daoID The id of the object being updated. u can change your name. as long as there is no conflict
string $fieldName The name of the field in the DAO.
string $domainID The id of the domain. Object exists only for the given domain.

Return Value

bool true if object exists

in CRM_Core_DAO at line 871
static bool checkFieldExists(string $tableName, string $columnName, bool $i18nRewrite = TRUE) deprecated

deprecated

Check if there is a given column in a specific table.

Parameters

string $tableName
string $columnName
bool $i18nRewrite Whether to rewrite the query on multilingual setups.

Return Value

bool true if exists, else false

See also

CRM_Core_BAO_SchemaHandler::checkIfFieldExists

in CRM_Core_DAO at line 880
static array getTableNames()

Scans all the tables using a slow query and table name.

Return Value

array

in CRM_Core_DAO at line 901
static bool isDBMyISAM(int $maxTablesToCheck = 10)

Parameters

int $maxTablesToCheck

Return Value

bool

in CRM_Core_DAO at line 919
static string getDatabaseName()

Get the name of the CiviCRM database.

Return Value

string

in CRM_Core_DAO at line 933
static bool checkConstraintExists(string $tableName, string $constraint)

Checks if a constraint exists for a specified table.

Parameters

string $tableName
string $constraint

Return Value

bool true if constraint exists, false otherwise

in CRM_Core_DAO at line 960
static bool schemaRequiresRebuilding(array $tables = ["civicrm_contact"])

Checks if CONSTRAINT keyword exists for a specified table.

Parameters

array $tables

Return Value

bool true if CONSTRAINT keyword exists, false otherwise

Exceptions

Exception

in CRM_Core_DAO at line 995
static bool checkFKConstraintInFormat(string $tableName, string $columnName)

Checks if the FK constraint name is in the format 'FK_tableName_columnName' for a specified column of a table.

Parameters

string $tableName
string $columnName

Return Value

bool true if in format, false otherwise

in CRM_Core_DAO at line 1023
static bool checkFieldHasAlwaysValue(string $tableName, string $columnName, string $columnValue)

Check whether a specific column in a specific table has always the same value.

Parameters

string $tableName
string $columnName
string $columnValue

Return Value

bool true if the value is always $columnValue, false otherwise

in CRM_Core_DAO at line 1039
static bool checkFieldIsAlwaysNull(string $tableName, string $columnName)

Check whether a specific column in a specific table is always NULL.

Parameters

string $tableName
string $columnName

Return Value

bool true if if the value is always NULL, false otherwise

in CRM_Core_DAO at line 1054
static bool checkTableExists(string $tableName)

Check if there is a given table in the database.

Parameters

string $tableName

Return Value

bool true if exists, else false

in CRM_Core_DAO at line 1073
static bool checkTableHasData(string $tableName)

Check if a given table has data.

Parameters

string $tableName

Return Value

bool TRUE if $tableName has at least one record.

in CRM_Core_DAO at line 1083
bool checkVersion($version)

Parameters

$version

Return Value

bool

in CRM_Core_DAO at line 1103
static CRM_Core_DAO findById(int $id)

Find a DAO object for the given ID and return it.

Parameters

int $id Id of the DAO object being searched for.

Return Value

CRM_Core_DAO Object of the type of the class that called this function.

Exceptions

Exception

in CRM_Core_DAO at line 1117
array fetchAll()

Returns all results as array-encoded records.

Return Value

array

in CRM_Core_DAO at line 1131
fetchGenerator(string $type = 'dao')

Return the results as PHP generator.

Parameters

string $type Whether the generator yields 'dao' objects or 'array's.

in CRM_Core_DAO at line 1153
mixed|NULL fetchValue()

Returns a singular value.

Return Value

mixed|NULL

in CRM_Core_DAO at line 1174
array fetchMap(string $keyColumn, string $valueColumn)

Get all the result records as mapping between columns.

Parameters

string $keyColumn Ex: "name"
string $valueColumn Ex: "label"

Return Value

array Ex: ["foo" => "The Foo Bar", "baz" => "The Baz Qux"]

in CRM_Core_DAO at line 1199
static string|null getFieldValue(string $daoName, int $searchValue, string $returnColumn = 'name', string $searchColumn = 'id', bool $force = FALSE)

Given a DAO name, a column name and a column value, find the record and GET the value of another column in that record

Parameters

string $daoName Name of the DAO (Example: CRM_Contact_DAO_Contact to retrieve value from a contact).
int $searchValue Value of the column you want to search by.
string $returnColumn Name of the column you want to GET the value of.
string $searchColumn Name of the column you want to search by.
bool $force Skip use of the cache.

Return Value

string|null Value of $returnColumn in the retrieved record

in CRM_Core_DAO at line 1252
static bool setFieldValue(string $daoName, int $searchValue, string $setColumn, string $setValue, string $searchColumn = 'id')

Given a DAO name, a column name and a column value, find the record and SET the value of another column in that record

Parameters

string $daoName Name of the DAO (Example: CRM_Contact_DAO_Contact to retrieve value from a contact).
int $searchValue Value of the column you want to search by.
string $setColumn Name of the column you want to SET the value of.
string $setValue SET the setColumn to this value.
string $searchColumn Name of the column you want to search by.

Return Value

bool true if we found and updated the object, else false

in CRM_Core_DAO at line 1277
static string getSortString(array|object $sort, string $default = NULL)

Get sort string.

Parameters

array|object $sort either array or CRM_Utils_Sort
string $default Default sort value.

Return Value

string

in CRM_Core_DAO at line 1310
static object commonRetrieve(string $daoName, array $params, array $defaults, array $returnProperities = NULL)

Fetch object based on array of properties.

Parameters

string $daoName Name of the dao object.
array $params (reference ) an assoc array of name/value pairs.
array $defaults (reference ) an assoc array to hold the flattened values.
array $returnProperities An assoc array of fields that need to be returned, eg array( 'first_name', 'last_name').

Return Value

object an object of type referenced by daoName

in CRM_Core_DAO at line 1335
static deleteEntityContact(string $daoName, int $contactId)

Delete the object records that are associated with this contact.

Parameters

string $daoName Name of the dao object.
int $contactId Id of the contact to delete.

in CRM_Core_DAO at line 1360
static CRM_Core_DAO executeUnbufferedQuery(string $query, array $params = [], bool $abort = TRUE, null $daoName = NULL, bool $freeDAO = FALSE, bool $i18nRewrite = TRUE, bool $trapException = FALSE)

Execute an unbuffered query.

This is a wrapper around new functionality exposed with CRM-17748.

Parameters

string $query query to be executed
array $params
bool $abort
null $daoName
bool $freeDAO
bool $i18nRewrite
bool $trapException

Return Value

CRM_Core_DAO Object that points to an unbuffered result set

in CRM_Core_DAO at line 1401
static CRM_Core_DAO|object executeQuery(string $query, array $params = [], bool $abort = TRUE, null $daoName = NULL, bool $freeDAO = FALSE, bool $i18nRewrite = TRUE, bool $trapException = FALSE, array $options = [])

Execute a query.

Parameters

string $query Query to be executed.
array $params
bool $abort
null $daoName
bool $freeDAO
bool $i18nRewrite
bool $trapException
array $options

Return Value

CRM_Core_DAO|object object that holds the results of the query NB - if this is defined as just returning a DAO phpstorm keeps pointing out all the properties that are not part of the DAO

in CRM_Core_DAO at line 1456
bool isValidOption(array $options)

Wrapper to validate internal DAO options before passing to DB_mysql/DB_Common level

Parameters

array $options

Return Value

bool Provided options are valid

in CRM_Core_DAO at line 1491
static string|null singleValueQuery(string $query, array $params = [], bool $abort = TRUE, bool $i18nRewrite = TRUE)

Execute a query and get the single result.

Parameters

string $query Query to be executed.
array $params
bool $abort
bool $i18nRewrite

Return Value

string|null the result of the query if any

in CRM_Core_DAO at line 1529
static string composeQuery(string $query, array $params = [], bool $abort = TRUE)

Compose the query by merging the parameters into it.

Parameters

string $query
array $params
bool $abort

Return Value

string

Exceptions

Exception

in CRM_Core_DAO at line 1576
static freeResult(null $ids = NULL)

Parameters

null $ids

in CRM_Core_DAO at line 1623
static CRM_Core_DAO|bool copyGeneric(string $daoName, array $criteria, array $newData = NULL, string $fieldsFix = NULL, string $blockCopyOfDependencies = NULL, bool $blockCopyofCustomValues = FALSE)

Make a shallow copy of an object and all the fields in the object.

Parameters

string $daoName Name of the dao.
array $criteria Array of all the fields & values. on which basis to copy
array $newData Array of all the fields & values. to be copied besides the other fields
string $fieldsFix Array of fields that you want to prefix/suffix/replace.
string $blockCopyOfDependencies Fields that you want to block from. getting copied
bool $blockCopyofCustomValues Case when you don't want to copy the custom values set in a template as it will override/ignore the submitted custom values

Return Value

CRM_Core_DAO|bool the newly created copy of the object. False if none created.

in CRM_Core_DAO at line 1713
copyCustomFields(int $entityID, int $newEntityID)

Method that copies custom fields values from an old entity to a new one.

Fixes bug CRM-19302, where if a custom field of File type was present, left both events using the same file, breaking download URL's for the old event.

Parameters

int $entityID
int $newEntityID

in CRM_Core_DAO at line 1768
static CRM_Core_DAO|null cascadeUpdate(string $daoName, $fromId, $toId, array $newData = [])

Cascade update through related entities.

Parameters

string $daoName
$fromId
$toId
array $newData

Return Value

CRM_Core_DAO|null

in CRM_Core_DAO at line 1813
static array getContactIDsFromComponent($componentIDs, string $tableName, string $idField = 'id')

Given the component id, compute the contact id since its used for things like send email

Parameters

$componentIDs
string $tableName
string $idField

Return Value

array

in CRM_Core_DAO at line 1848
static object commonRetrieveAll(string $daoName, string $fieldIdName = 'id', int $fieldId, $details, array $returnProperities = NULL)

Fetch object based on array of properties.

Parameters

string $daoName Name of the dao object.
string $fieldIdName
int $fieldId
$details
array $returnProperities An assoc array of fields that need to be returned, eg array( 'first_name', 'last_name').

Return Value

object an object of type referenced by daoName

in CRM_Core_DAO at line 1875
static dropAllTables()

Drop all CiviCRM tables.

Exceptions

CRM_Core_Exception

in CRM_Core_DAO at line 1897
static string escapeString($string)

Parameters

$string

Return Value

string

in CRM_Core_DAO at line 1926
static string escapeStrings(array $strings, string $default = NULL)

Escape a list of strings for use with "WHERE X IN (.

..)" queries.

Parameters

array $strings
string $default the value to use if $strings has no elements.

Return Value

string eg "abc","def","ghi"

in CRM_Core_DAO at line 1945
static string escapeWildCardString($string)

Parameters

$string

Return Value

string

in CRM_Core_DAO at line 1973
static object|array|NULL createTestObject(string $daoName, array $params = [], int $numObjects = 1, bool $createOnly = FALSE)

Creates a test object, including any required objects it needs via recursion createOnly: only create in database, do not store or return the objects (useful for perf testing) ONLY USE FOR TESTING

Parameters

string $daoName
array $params
int $numObjects
bool $createOnly

Return Value

object|array|NULL NULL if $createOnly. A single object if $numObjects==1. Otherwise, an array of multiple objects.

in CRM_Core_DAO at line 2062
static deleteTestObjects(string $daoName, array $params = [])

Deletes the this object plus any dependent objects that are associated with it.

ONLY USE FOR TESTING

Parameters

string $daoName
array $params

in CRM_Core_DAO at line 2110
static setCreateDefaults(array $params, $defaults)

Set defaults when creating new entity.

(don't call this set defaults as already in use with different signature in some places)

Parameters

array $params
$defaults

in CRM_Core_DAO at line 2130
static string createTempTableName(string $prefix = 'civicrm', bool $addRandomString = TRUE, null $string = NULL) deprecated

deprecated

Parameters

string $prefix
bool $addRandomString
null $string

Return Value

string

See also

CRM_Utils_SQL_TempTable

in CRM_Core_DAO at line 2150
static bool checkTriggerViewPermission(bool $view = TRUE, bool $trigger = TRUE)

Parameters

bool $view
bool $trigger

Return Value

bool

in CRM_Core_DAO at line 2198
static debugPrint(null $message = NULL, bool $printDAO = TRUE)

Parameters

null $message
bool $printDAO

in CRM_Core_DAO at line 2222
static triggerRebuild(string $tableName = NULL, bool $force = FALSE) deprecated

deprecated

Build a list of triggers via hook and add them to (err, reconcile them with) the database.

Parameters

string $tableName the specific table requiring a rebuild; or NULL to rebuild all tables.
bool $force

See also

CRM-9716

in CRM_Core_DAO at line 2233
static checkSqlFunctionsExist()

Because sql functions are sometimes lost, esp during db migration, we check here to avoid numerous support requests

See also

http://issues.civicrm.org/jira/browse/CRM-13822 TODO: Alternative solutions might be * Stop using functions and find another way to strip numeric characters from phones * Give better error messages (currently a missing fn fatals with "unknown error")

in CRM_Core_DAO at line 2250
static dropTriggers(string $tableName = NULL) deprecated

deprecated

Wrapper function to drop triggers.

Parameters

string $tableName the specific table requiring a rebuild; or NULL to rebuild all tables.

in CRM_Core_DAO at line 2261
static createTriggers(array $info, string $onlyTableName = NULL) deprecated

deprecated

Parameters

array $info per hook_civicrm_triggerInfo.
string $onlyTableName the specific table requiring a rebuild; or NULL to rebuild all tables.

in CRM_Core_DAO at line 2272
static array createReferenceColumns(string $className)

Given a list of fields, create a list of references.

Parameters

string $className BAO/DAO class name.

Return Value

array

in CRM_Core_DAO at line 2295
array findReferences()

Find all records which refer to this entity.

Return Value

array Array of objects referencing this

in CRM_Core_DAO at line 2324
array getReferenceCounts()

Return Value

array each item has keys: - name: string - type: string - count: int - table: string|null SQL table name - key: string|null SQL column name

in CRM_Core_DAO at line 2361
static array getReferencesToTable(string $tableName)

List all tables which have hard foreign keys to this table.

For now, this returns a description of every entity_id/entity_table reference. TODO: filter dynamic entity references on the $tableName, based on schema metadata in dynamicForeignKey which enumerates a restricted set of possible entity_table's.

Parameters

string $tableName Table referred to.

Return Value

array structure of table and column, listing every table with a foreign key reference to $tableName, and the column where the key appears.

in CRM_Core_DAO at line 2386
static getReferencesToContactTable()

Get all references to contact table.

This includes core tables, custom group tables, tables added by the merge hook and the entity_tag table.

Refer to CRM-17454 for information on the danger of querying the information schema to derive this.

in CRM_Core_DAO at line 2418
static appendCustomTablesExtendingContacts(array $cidRefs)

Add custom tables that extend contacts to the list of contact references.

CRM_Core_BAO_CustomGroup::getAllCustomGroupsByBaseEntity seems like a safe-ish function to be sure all are retrieved & we don't miss subtypes or inactive or multiples - the down side is it is not cached.

Further changes should be include tests in the CRM_Core_MergerTest class to ensure that disabled, subtype, multiple etc groups are still captured.

Parameters

array $cidRefs

in CRM_Core_DAO at line 2435
static appendCustomContactReferenceFields(array $cidRefs)

Add custom ContactReference fields to the list of contact references

This includes active and inactive fields/groups

Parameters

array $cidRefs

Exceptions

CiviCRM_API3_Exception

in CRM_Core_DAO at line 2453
static mixed getGlobalSetting(string $name, mixed $default = NULL)

Lookup the value of a MySQL global configuration variable.

Parameters

string $name E.g. "thread_stack".
mixed $default

Return Value

mixed

in CRM_Core_DAO at line 2477
static appendPseudoConstantsToFields(array $fields)

Update the fields array to also hold keys for pseudoconstant fields that relate to contained fields.

This is relevant where we want to offer both the ID field and the label field as an option, e.g. search builder.

It is currently limited for optionGroupName & id+ name+ FK combos for purposes keeping the scope of the change small, but is appropriate for other sorts of pseudoconstants.

Parameters

array $fields

in CRM_Core_DAO at line 2531
static array|bool buildOptions(string $fieldName, string $context = NULL, array $props = [])

Get options for the called BAO object's field.

This function can be overridden by each BAO to add more logic related to context. The overriding function will generally call the lower-level CRM_Core_PseudoConstant::get

Parameters

string $fieldName
string $context
array $props whatever is known about this bao object.

Return Value

array|bool

See also

CRM_Core_DAO::buildOptionsContext

in CRM_Core_DAO at line 2542
getOptionLabels()

Populate option labels for this object's fields.

Exceptions

exception if called directly on the base class

in CRM_Core_DAO at line 2568
static array buildOptionsContext(string $context = NULL)

Provides documentation and validation for the buildOptions $context param

Parameters

string $context

Return Value

array

Exceptions

Exception

in CRM_Core_DAO at line 2588
bool|array getFieldSpec(string $fieldName)

Parameters

string $fieldName

Return Value

bool|array

in CRM_Core_DAO at line 2631
static NULL|string|array createSQLFilter(string $fieldName, array $filter, string $type = NULL, string $alias = NULL, bool $returnSanitisedArray = FALSE)

Get SQL where clause for SQL filter syntax input parameters.

SQL version of api function to assign filters to the DAO based on the syntax $field => array('IN' => array(4,6,9)) OR $field => array('LIKE' => array('%me%)) etc

Parameters

string $fieldName Name of fields.
array $filter filter to be applied indexed by operator.
string $type type of field (not actually used - nor in api @todo ).
string $alias alternative field name ('as') @todo- not actually used.
bool $returnSanitisedArray Return a sanitised array instead of a clause. this is primarily so we can add filters @ the api level to the Query object based fields

Return Value

NULL|string|array a string is returned if $returnSanitisedArray is not set, otherwise and Array or NULL depending on whether it is supported as yet

Exceptions

Exception

in CRM_Core_DAO at line 2696
static array acceptedSQLOperators()

Return Value

array

See also

http://issues.civicrm.org/jira/browse/CRM-9150 support for other syntaxes is discussed in ticket but being put off for now

in CRM_Core_DAO at line 2733
static string shortenSQLName(string $string, int $length = 60, bool $makeRandom = FALSE)

SQL has a limit of 64 characters on various names: table name, trigger name, column name .

..

For custom groups and fields we generated names from user entered input which can be longer than this length, this function helps with creating strings that meet various criteria.

Parameters

string $string The string to be shortened.
int $length The max length of the string.
bool $makeRandom

Return Value

string

in CRM_Core_DAO at line 2759
setOptions(array $options)

https://issues.civicrm.org/jira/browse/CRM-17748 Sets the internal options to be used on a query

Parameters

array $options

in CRM_Core_DAO at line 2772
protected _setDBOptions(array $options)

https://issues.civicrm.org/jira/browse/CRM-17748 wrapper to pass internal DAO options down to DB_mysql/DB_Common level

Parameters

array $options

in CRM_Core_DAO at line 2787
setApiFilter(array $params) deprecated

deprecated

Parameters

array $params

in CRM_Core_DAO at line 2804
array addSelectWhereClause()

Generates acl clauses suitable for adding to WHERE or ON when doing an api.get for this entity

Return format is in the form of fieldname => clauses starting with an operator. e.g.:

Return Value

array

in CRM_Core_DAO at line 2845
static array getSelectWhereClause(string $tableAlias = NULL)

This returns the final permissioned query string for this entity

With acls from related entities + additional clauses from hook_civicrm_selectWhereClause

Parameters

string $tableAlias

Return Value

array

in CRM_Core_DAO at line 2868
static bool requireSafeDBName($database)

ensure database name is 'safe', i.e. only contains word characters (includes underscores) and dashes, and contains at least one [a-z] case insenstive.

Parameters

$database

Return Value

bool

in CRM_Core_DAO at line 2890
static string|null serializeField(array|null $value, int $serializationType)

Transform an array to a serialized string for database storage.

Parameters

array|null $value
int $serializationType

Return Value

string|null

Exceptions

Exception

in CRM_Core_DAO at line 2924
static array|null unSerializeField(string|null $value, $serializationType)

Transform a serialized string from the database into an array.

Parameters

string|null $value
$serializationType

Return Value

array|null

Exceptions

CRM_Core_Exception

in CRM_Core_DAO at line 2955
static array getEntityRefFilters()

Return Value

array

in CRM_Core_DAO at line 2966
static array getExportableFieldsWithPseudoConstants(string $baoClass)

Get exportable fields with pseudoconstants rendered as an extra field.

Parameters

string $baoClass

Return Value

array

in CRM_Price_DAO_PriceSet at line 386
static array fieldKeys()

Return a mapping from field-name to the corresponding key (as used in fields()).

Return Value

array Array(string $name => string $uniqueName).

in CRM_Price_DAO_PriceSet at line 407
bool getLog()

Returns if this table needs to be logged

Return Value

bool

in CRM_Price_DAO_PriceSet at line 418
static array import(bool $prefix = FALSE)

Returns the list of fields that can be imported

Parameters

bool $prefix

Return Value

array

in CRM_Price_DAO_PriceSet at line 430
static array export(bool $prefix = FALSE)

Returns the list of fields that can be exported

Parameters

bool $prefix

Return Value

array

in CRM_Price_DAO_PriceSet at line 442
static array indices(bool $localize = TRUE)

Returns the list of indices

Parameters

bool $localize

Return Value

array

at line 62
static CRM_Price_DAO_PriceSet create(array $params)

Takes an associative array and creates a price set object.

Parameters

array $params (reference) an assoc array of name/value pairs.

Return Value

CRM_Price_DAO_PriceSet

at line 103
static CRM_Price_DAO_PriceSet retrieve(array $params, array $defaults)

Fetch object based on array of properties.

Parameters

array $params (reference ) an assoc array of name/value pairs.
array $defaults (reference ) an assoc array to hold the flattened values.

Return Value

CRM_Price_DAO_PriceSet

at line 117
static bool setIsActive(int $id, $isActive)

Update the is_active flag in the db.

Parameters

int $id Id of the database record.
$isActive

Return Value

bool true if we found and updated the object, else false

at line 131
static array getDefaultPriceSet(string $entity = 'contribution')

Calculate the default price set id assigned to the contribution/membership etc

Parameters

string $entity

Return Value

array default price set

at line 176
static string getTitle(int $id)

Get the price set title.

Parameters

int $id Id of price set.

Return Value

string title

at line 189
static array getUsedBy(int $id, bool|string $simpleReturn = FALSE)

Return a list of all forms which use this price set.

Parameters

int $id Id of price set.
bool|string $simpleReturn
  • get raw data. Possible values: 'entity', 'table'

Return Value

array

at line 236
static bool deleteSet(int $id)

Delete the price set, including the fields.

Parameters

int $id Price Set id.

Return Value

bool false if fields exist for this set, true if the set could be deleted

at line 260
static bool addTo(string $entityTable, int $entityId, int $priceSetId)

Link the price set with the specified table and id.

Parameters

string $entityTable
int $entityId
int $priceSetId

Return Value

bool

at line 288
static mixed removeFrom(string $entityTable, int $entityId)

Delete price set for the given entity and id.

Parameters

string $entityTable
int $entityId

Return Value

mixed

at line 310
static int|false getFor(string $entityTable, int $entityId, int $usedFor = NULL, null $isQuickConfig = NULL, null $setName = NULL)

Find a price_set_id associated with the given table, id and usedFor Used For value for events:1, contribution:2, membership:3

Parameters

string $entityTable
int $entityId
int $usedFor ( price set that extends/used for particular component ).
null $isQuickConfig
null $setName

Return Value

int|false price_set_id, or false if none found

at line 348
static int|null getSetId(array $params)

Find a price_set_id associated with the given option value or field ID.

Parameters

array $params (reference) an assoc array of name/value pairs. array may contain either option id or price field id

Return Value

int|null price set id on success, null otherwise

at line 380
static array getAssoc(bool $withInactive = FALSE, bool|string $extendComponentName = FALSE, string $column = 'title')

Return an associative array of all price sets.

Parameters

bool $withInactive Whether or not to include inactive entries.
bool|string $extendComponentName name of the component like 'CiviEvent','CiviContribute'
string $column name of the column.

Return Value

array associative array of id => name

at line 441
static array getSetDetail(int $setID, bool $required = TRUE, bool $validOnly = FALSE)

Get price set details.

An array containing price set details (including price fields) is returned

Parameters

int $setID Price Set ID.
bool $required Appears to have no effect based on reading the code.
bool $validOnly Should only fields where today's date falls within the valid range be returned?

Return Value

array Array consisting of field details

at line 545
static int getOnlyPriceFieldID(array $priceSet)

Get the Price Field ID.

We call this function when more than one being present would represent an error starting format derived from current(CRM_Price_BAO_PriceSet::getSetDetail($priceSetId))

Parameters

array $priceSet

Return Value

int

Exceptions

CRM_Core_Exception

at line 560
static int getOnlyPriceFieldValueID(array $priceSet)

Get the Price Field Value ID. We call this function when more than one being present would represent an error current(CRM_Price_BAO_PriceSet::getSetDetail($priceSetId))

Parameters

array $priceSet

Return Value

int

Exceptions

CRM_Core_Exception

at line 583
static bool|false|int|null initSet(CRM_Core_Form $form, int $id, string $entityTable = 'civicrm_event', bool $validOnly = FALSE, int $priceSetId = NULL)

Initiate price set such that various non-BAO things are set on the form.

This function is not really a BAO function so the location is misleading.

Parameters

CRM_Core_Form $form
int $id Form entity id.
string $entityTable
bool $validOnly
int $priceSetId Price Set ID

Return Value

bool|false|int|null

at line 693
static processAmount($fields, array $params, $lineItem, string $component = '', int $priceSetID = NULL)

Get line item purchase information.

This function takes the input parameters and interprets out of it what has been purchased.

Parameters

$fields This is the output of the function CRM_Price_BAO_PriceSet::getSetDetail($priceSetID, FALSE, FALSE); And, it would make sense to introduce caching into that function and call it from here rather than require the $fields array which is passed from pillar to post around the form in order to pass it in here.
array $params Params reflecting form input e.g with fields 'price_5' => 7, 'price_8' => array(7, 8)
$lineItem Line item array to be altered.
string $component This parameter appears to only be relevant to determining whether memberships should be auto-renewed. (and is effectively a boolean for 'is_membership' which could be calculated from the line items.)
int $priceSetID

at line 871
static string getAmountLevelText(array $params)

Get the text to record for amount level.

Parameters

array $params Submitted parameters - priceSetId is required to be set in the calling function (we don't e-notice check it to enforce that - all payments DO have a price set - even if it is the default one & this function asks that be set if it is the case).

Return Value

string Text for civicrm_contribution.amount_level field.

at line 906
static array filterPriceFieldsFromParams(int $priceSetID, array $params)

Get the fields relevant to the price field from the parameters.

E.g we are looking for price_5 => 7 out of a big array of input parameters.

Parameters

int $priceSetID
array $params

Return Value

array Price fields found in the params array

at line 932
static array getCachedPriceSetDetail(int $priceSetID)

Wrapper for getSetDetail with caching.

We seem to be passing this array around in a painful way - presumably to avoid the hit of loading it - so lets make it callable with caching.

Why not just add caching to the other function? We could do - it just seemed a bit unclear the best caching pattern & the function was already pretty fugly. Also, I feel like we need to migrate the interaction with price-sets into a more granular interaction - ie. retrieve specific data using specific functions on this class & have the form think less about the price sets.

Parameters

int $priceSetID

Return Value

array

at line 951
static void buildPriceSet(CRM_Core_Form $form)

Build the price set form.

Parameters

CRM_Core_Form $form

Return Value

void

at line 1081
static void applyACLFinancialTypeStatusToFeeBlock(array $feeBlock)

Apply ACLs on Financial Type to the price options in a fee block.

Parameters

array $feeBlock Fee block: array of price fields.

Return Value

void

at line 1105
static bool checkCurrentMembership(array $options, int $userid)

Check the current Membership having end date null.

Parameters

array $options
int $userid Probably actually contact ID.

Return Value

bool

at line 1139
static array setDefaultPriceSet(CRM_Core_Form $form, $defaults)

Set daefult the price set fields.

Parameters

CRM_Core_Form $form
$defaults

Return Value

array

at line 1174
static void setDefaultPriceSetField(string $priceFieldName, string $priceFieldValue, string $priceFieldType, array $defaults)

Get the value of price field if passed via url

Parameters

string $priceFieldName
string $priceFieldValue
string $priceFieldType
array $defaults

Return Value

void

at line 1191
static mixed getPriceFieldValueFromURL(CRM_Core_Form $form, string $priceFieldName)

Get the value of price field if passed via url

Parameters

CRM_Core_Form $form
string $priceFieldName

Return Value

mixed $priceFieldValue

at line 1208
static setPriceSets(array $params, CRM_Core_DAO $entity, string $entityName)

Supports event create function by setting up required price sets, not tested but expect it will work for contribution page

Parameters

array $params As passed to api/bao create fn.
CRM_Core_DAO $entity Object for given entity.
string $entityName Name of entity - e.g event.

at line 1253
static array getFieldIds(int $id)

Get field ids of a price set.

Parameters

int $id Price Set id.

Return Value

array Array of the field ids

at line 1271
static CRM_Price_DAO_PriceSet copy(int $id)

Copy a price set, including all the fields

Parameters

int $id The price set id to copy.

Return Value

CRM_Price_DAO_PriceSet

at line 1320
static bool checkPermission(int $sid)

check price set permission.

Parameters

int $sid The price set id.

Return Value

bool

at line 1341
static int|null|string getPricesetCount(int $sid, bool $onlyActive = TRUE)

Get the sum of participant count for all fields of given price set.

Parameters

int $sid The price set id.
bool $onlyActive

Return Value

int|null|string

at line 1374
static array getMembershipCount($ids)

Parameters

$ids

Return Value

array

at line 1406
static int checkAutoRenewForPriceSet(int $priceSetId)

Check if auto renew option should be shown.

The auto-renew option should be visible if membership types associated with all the fields has been set for auto-renew option.

Auto renew checkbox should be frozen if for all the membership type auto renew is required

Parameters

int $priceSetId Price set id.

Return Value

int $autoRenewOption ( 0:hide, 1:optional 2:required )

at line 1464
static array getRecurDetails(int $priceSetId)

Retrieve auto renew frequency and interval.

Parameters

int $priceSetId Price set id.

Return Value

array associate array of frequency interval and unit

at line 1480
static object eventPriceSetDomainID()

Return Value

object

at line 1495
static bool setIsQuickConfig(int $id, bool $isQuickConfig)

Update the is_quick_config flag in the db.

Parameters

int $id Id of the database record.
bool $isQuickConfig we want to set the is_quick_config field. Value we want to set the is_quick_config field.

Return Value

bool true if we found and updated the object, else false

at line 1506
static bool isMembershipPriceSetContainsMixOfRenewNonRenew(int $id)

Check if price set id provides option for user to select both auto-renew and non-auto-renew memberships

Parameters

int $id

Return Value

bool

at line 1522
static array( getMembershipTypesFromPriceSet(int $id)

Get an array of the membership types in a price set.

Parameters

int $id

Return Value

array( Membership types in the price set

at line 1572
static copyPriceSet(string $baoName, int $id, int $newId)

Copy priceSet when event/contibution page is copied

Parameters

string $baoName BAO name.
int $id Old event/contribution page id.
int $newId Newly created event/contribution page id.

at line 1621
static array setLineItem(array $field, array $lineItem, int $optionValueId, float $totalTax)

Function to set tax_amount and tax_rate in LineItem.

Parameters

array $field
array $lineItem
int $optionValueId
float $totalTax

Return Value

array

at line 1646
static array parseFirstPriceSetValueIDFromParams(array $params)

Get the first price set value IDs from a parameters array.

In practice this is really used when we only expect one to exist.

Parameters

array $params

Return Value

array Array of the ids of the price set values.

at line 1659
static array parsePriceSetValueIDsFromParams(array $params)

Get the price set value IDs from a set of parameters

Parameters

array $params

Return Value

array Array of the ids of the price set values.

at line 1678
static array parsePriceSetArrayFromParams(array $params)

Get the price set value IDs from a set of parameters

Parameters

array $params

Return Value

array Array of price fields filtered from the params.

at line 1698
static int getNonDeductibleAmountFromPriceSet(int $priceSetId, array $lineItem)

Get non-deductible amount from price options

Parameters

int $priceSetId
array $lineItem

Return Value

int calculated non-deductible amount.

at line 1722
static array getFormsUsingPriceSet(int $id)

Get an array of all forms using a given price set.

Parameters

int $id

Return Value

array Pages using the price set, keyed by type. e.g array(' 'civicrm_contribution_page' => array(2,5,6), 'civicrm_event' => array(5,6), 'civicrm_event_template' => array(7), )

at line 1753
static protected mixed reformatUsedByFormsWithEntityData(array $forms)

Parameters

array $forms Array of forms that use a price set keyed by entity. e.g array(' 'civicrm_contribution_page' => array(2,5,6), 'civicrm_event' => array(5,6), 'civicrm_event_template' => array(7), )

Return Value

mixed Array of entities suppliemented with per entity information. e.g array('civicrm_event' => array(7 => array('title' => 'x'...))

Exceptions

Exception