*
* @param array $params (reference), array $ids
*
+ * @param $ids
+ *
* @return object CRM_Price_DAO_PriceFieldValue object
* @access public
* @static
*/
- static function &add(&$params, $ids) {
+ static function add(&$params, $ids = array()) {
$fieldValueBAO = new CRM_Price_BAO_PriceFieldValue();
$fieldValueBAO->copyValues($params);
*
* @param array $params (reference), array $ids
*
+ * @param $ids
+ *
* @return object CRM_Price_DAO_PriceFieldValue object
* @access public
* @static
*/
- static function create(&$params, $ids) {
-
+ static function create(&$params, $ids = array()) {
+ $id = CRM_Utils_Array::value('id', $params, CRM_Utils_Array::value('id', $ids));
if (!is_array($params) || empty($params)) {
return;
}
+ if(!$id && empty($params['name'])) {
+ $params['name'] = strtolower(CRM_Utils_String::munge($params['label'], '_', 242));
+ }
- if ($id = CRM_Utils_Array::value('id', $ids)) {
+ if ($id && !empty($params['weight'])) {
if (isset($params['name']))unset($params['name']);
$oldWeight = NULL;
$params['weight'] = CRM_Utils_Weight::updateOtherWeights('CRM_Price_DAO_PriceFieldValue', $oldWeight, $params['weight'], $fieldValues);
}
else {
- if (empty($params['name'])) {
- $params['name'] = CRM_Utils_String::munge(CRM_Utils_Array::value('label', $params), '_', 64);
- }
- if (empty($params['weight'])) {
- $params['weight'] = 1;
+ if (!$id) {
+ CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
+ if (empty($params['name'])) {
+ $params['name'] = CRM_Utils_String::munge(CRM_Utils_Array::value('label', $params), '_', 64);
+ }
}
}
- $params['is_active'] = CRM_Utils_Array::value('is_active', $params, 0);
-
return self::add($params, $ids);
}
+ /**
+ * Get defaults for new entity
+ * @return array
+ */
+ static function getDefaults() {
+ return array(
+ 'is_active' => 1,
+ 'weight' => 1,
+ );
+
+ }
+
/**
* Takes a bunch of params that are needed to match certain criteria and
* retrieves the relevant objects.
* @param int $fieldId price_field_id
* @param array $values (reference ) to hold the values
* @param string $orderBy for order by, default weight
- * @param int $isActive is_active, default false
+ * @param bool|int $isActive is_active, default false
*
* @return array $values
*
*
* @param int $fieldId Price field id
*
- * @return boolean
*
* @access public
* @static
*/
static function deleteValues($fieldId) {
if (!$fieldId) {
- return FALSE;
+ return;
}
$fieldValueDAO = new CRM_Price_DAO_PriceFieldValue();
$fieldValueDAO->id = $id;
return $fieldValueDAO->delete();
}
-
+
/**
- * Update civicrm_price_field_value.financial_type_id
+ * Update civicrm_price_field_value.financial_type_id
* when financial_type_id of contribution_page or event is changed
*
- * @param int $entityId Id
- * @param String $entityTable entity table
+ * @param int $entityId Id
+ * @param String $entityTable entity table
* @param String $financialTypeID financial type id
*
* @access public
*/
static function updateFinancialType($entityId, $entityTable, $financialTypeID) {
if (!$entityId || !$entityTable || !$financialTypeID) {
- return FALSE;
+ return;
}
$params = array(
1 => array($entityId, 'Integer'),
$join = " LEFT JOIN civicrm_discount cd ON cd.price_set_id = cps.id AND cd.entity_id = %1 AND cd.entity_table = %2 ";
$where = ' OR cd.id IS NOT NULL ';
}
- $sql = "UPDATE civicrm_price_set cps
-LEFT JOIN civicrm_price_set_entity cpse ON cpse.price_set_id = cps.id AND cpse.entity_id = %1 AND cpse.entity_table = %2
+ $sql = "UPDATE civicrm_price_set cps
+LEFT JOIN civicrm_price_set_entity cpse ON cpse.price_set_id = cps.id AND cpse.entity_id = %1 AND cpse.entity_table = %2
LEFT JOIN civicrm_price_field cpf ON cpf.price_set_id = cps.id
LEFT JOIN civicrm_price_field_value cpfv ON cpf.id = cpfv.price_field_id
{$join}
END,
cps.financial_type_id = %3
WHERE cpse.id IS NOT NULL {$where}";
-
+
CRM_Core_DAO::executeQuery($sql, $params);
}
}