X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FPrice%2FBAO%2FPriceField.php;h=d9bf0668b3926f9b3d443c9f629564b74213cef0;hb=47c46b70913de41e5a16cbd31c85b0ce7b21a1f8;hp=595f84ca518d8f7bbce359e55f449679ba8acdc7;hpb=ed5a0ff7196e306e1319bd3f5913fdb068974daa;p=civicrm-core.git diff --git a/CRM/Price/BAO/PriceField.php b/CRM/Price/BAO/PriceField.php index 595f84ca51..d9bf0668b3 100644 --- a/CRM/Price/BAO/PriceField.php +++ b/CRM/Price/BAO/PriceField.php @@ -23,7 +23,7 @@ | GNU Affero General Public License or the licensing of CiviCRM, | | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ -*/ + */ /** * @@ -42,7 +42,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { protected $_options; /** - * Takes an associative array and creates a price field object + * Takes an associative array and creates a price field object. * * the function extract all the params it needs to initialize the create a * price field object. the params array could contain additional unused name/value @@ -51,8 +51,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { * @param array $params * (reference) an assoc array of name/value pairs. * - * @return CRM_Price_BAO_PriceField object - * @static + * @return CRM_Price_BAO_PriceField */ public static function add(&$params) { $priceFieldBAO = new CRM_Price_BAO_PriceField(); @@ -68,15 +67,14 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } /** - * Takes an associative array and creates a price field object + * Takes an associative array and creates a price field object. * * This function is invoked from within the web form layer and also from the api layer * * @param array $params * (reference) an assoc array of name/value pairs. * - * @return CRM_Price_DAO_PriceField object - * @static + * @return CRM_Price_DAO_PriceField */ public static function create(&$params) { if (empty($params['id']) && empty($params['name'])) { @@ -147,7 +145,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } if (CRM_Utils_Array::value($index, CRM_Utils_Array::value('option_financial_type_id', $params))) { - $options['financial_type_id'] = $params['option_financial_type_id'][$index]; + $options['financial_type_id'] = $params['option_financial_type_id'][$index]; } elseif (!empty($params['financial_type_id'])) { $options['financial_type_id'] = $params['financial_type_id']; @@ -170,22 +168,21 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } /** - * Fetch object based on array of properties + * Fetch object based on array of properties. * * @param array $params * (reference ) an assoc array of name/value pairs. * @param array $defaults * (reference ) an assoc array to hold the flattened values. * - * @return CRM_Price_DAO_PriceField object - * @static + * @return CRM_Price_DAO_PriceField */ public static function retrieve(&$params, &$defaults) { return CRM_Core_DAO::commonRetrieve('CRM_Price_DAO_PriceField', $params, $defaults); } /** - * Update the is_active flag in the db + * Update the is_active flag in the db. * * @param int $id * Id of the database record. @@ -193,19 +190,25 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { * Value we want to set the is_active field. * * @return Object - * DAO object on sucess, null otherwise - * - * @static + * DAO object on success, null otherwise. */ public static function setIsActive($id, $is_active) { return CRM_Core_DAO::setFieldValue('CRM_Price_DAO_PriceField', $id, 'is_active', $is_active); } + /** + * Freeze form if the event is full. + * + * @param $element + * @param $fieldOptions + * + * @return null + */ public static function freezeIfEnabled(&$element, $fieldOptions) { if (!empty($fieldOptions['is_full'])) { $element->freeze(); } - return; + return NULL; } /** @@ -217,14 +220,13 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { * @return string * name * - * @static */ public static function getTitle($id) { return CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $id, 'label'); } /** - * This function for building custom fields + * This function for building custom fields. * * @param CRM_Core_Form $qf * Form object (reference). @@ -242,7 +244,6 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { * * @return null * @internal param bool $search true if used for search else false - * @static */ public static function addQuickFormElement( &$qf, @@ -272,7 +273,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $otherAmount = $qf->get('values'); $config = CRM_Core_Config::singleton(); - $currencySymbol = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_Currency',$config->defaultCurrency,'symbol','name'); + $currencySymbol = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_Currency', $config->defaultCurrency, 'symbol', 'name'); $qf->assign('currencySymbol', $currencySymbol); // get currency name for price field and option attributes $currencyName = $config->defaultCurrency; @@ -312,7 +313,11 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $qf->assign('taxTerm', $taxTerm); $qf->assign('invoicing', $invoicing); } - $priceVal = implode($seperator, array($customOption[$optionKey][$valueFieldName] + $taxAmount, $count, $max_value)); + $priceVal = implode($seperator, array( + $customOption[$optionKey][$valueFieldName] + $taxAmount, + $count, + $max_value, + )); $extra = array(); if (!empty($qf->_quickConfig) && !empty($qf->_contributionAmount)) { @@ -328,25 +333,27 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { if (!empty($qf->_membershipBlock) && !empty($qf->_quickConfig) && $field->name == 'other_amount' && empty($qf->_contributionAmount)) { $useRequired = 0; } - elseif (!empty($fieldOptions[$optionKey]['label'])) { //check for label. + elseif (!empty($fieldOptions[$optionKey]['label'])) { + //check for label. $label = $fieldOptions[$optionKey]['label']; } $element = &$qf->add('text', $elementName, $label, - array_merge($extra, - array('price' => json_encode(array($optionKey, $priceVal)), - 'size' => '4', - ) - ), - $useRequired && $field->is_required + array_merge($extra, + array( + 'price' => json_encode(array($optionKey, $priceVal)), + 'size' => '4', + ) + ), + $useRequired && $field->is_required ); if ($is_pay_later) { - $qf->add('text', 'txt-'.$elementName, $label, array('size' => '4')); + $qf->add('text', 'txt-' . $elementName, $label, array('size' => '4')); } // CRM-6902 - Add "max" option for a price set field if (in_array($optionKey, $freezeOptions)) { - self::freezeIfEnabled($element, $freezeOptions); + self::freezeIfEnabled($element, $fieldOptions[$optionKey]); // CRM-14696 - Improve display for sold out price set options $element->setLabel($label . ' ' . ts('Sold out') . ''); } @@ -377,14 +384,14 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $opt['label'] = !empty($opt['label']) ? $opt['label'] . ' - ' : ''; if (isset($taxAmount) && $invoicing) { if ($displayOpt == 'Do_not_show') { - $opt['label'] = '' . $opt['label'] . '' . '' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . ''; + $opt['label'] = '' . $opt['label'] . '' . '' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . ''; } elseif ($displayOpt == 'Inclusive') { $opt['label'] = '' . $opt['label'] . '' . '' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . ''; $opt['label'] .= ' (includes ' . $taxTerm . ' of ' . CRM_Utils_Money::format($opt['tax_amount']) . ')'; } else { - $opt['label'] = '' . $opt['label'] . '' . '' . CRM_Utils_Money::format($opt[$valueFieldName]) . ''; + $opt['label'] = '' . $opt['label'] . '' . '' . CRM_Utils_Money::format($opt[$valueFieldName]) . ''; $opt['label'] .= ' + ' . CRM_Utils_Money::format($opt['tax_amount']) . ' ' . $taxTerm . ''; } } @@ -395,9 +402,10 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $count = CRM_Utils_Array::value('count', $opt, ''); $max_value = CRM_Utils_Array::value('max_value', $opt, ''); $priceVal = implode($seperator, array($opt[$valueFieldName] + $taxAmount, $count, $max_value)); - $extra = array('price' => json_encode(array($elementName, $priceVal)), - 'data-amount' => $opt[$valueFieldName], - 'data-currency' => $currencyName, + $extra = array( + 'price' => json_encode(array($elementName, $priceVal)), + 'data-amount' => $opt[$valueFieldName], + 'data-currency' => $currencyName, ); if (!empty($qf->_quickConfig) && $field->name == 'contribution_amount') { $extra += array('onclick' => 'clearAmountOther();'); @@ -407,13 +415,13 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { 'onclick' => "return showHideAutoRenew({$opt['membership_type_id']});", 'membership-type' => $opt['membership_type_id'], ); - $qf->assign('membershipFieldID',$field->id); + $qf->assign('membershipFieldID', $field->id); } $choice[$opId] = $qf->createElement('radio', NULL, '', $opt['label'], $opt['id'], $extra); if ($is_pay_later) { - $qf->add('text', 'txt-'.$elementName, $label, array('size' => '4')); + $qf->add('text', 'txt-' . $elementName, $label, array('size' => '4')); } // CRM-6902 - Add "max" option for a price set field @@ -452,7 +460,8 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { // make contribution field required for quick config when membership block is enabled if (($field->name == 'membership_amount' || $field->name == 'contribution_amount') - && !empty($qf->_membershipBlock) && !$field->is_required) { + && !empty($qf->_membershipBlock) && !$field->is_required + ) { $useRequired = $field->is_required = TRUE; } @@ -471,7 +480,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { if ($field->is_display_amounts) { $opt['label'] .= ' - '; - if (isset($taxAmount) && $invoicing) { + if (isset($taxAmount) && $invoicing) { $opt['label'] = $opt['label'] . self::getTaxLabel($opt, $valueFieldName, $displayOpt, $taxTerm); } else { @@ -479,7 +488,6 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } } - $selectOption[$opt['id']] = $opt['label']; $priceVal[$opt['id']] = implode($seperator, array($opt[$valueFieldName] + $taxAmount, $count, $max_value)); if (!in_array($opt['id'], $freezeOptions)) { @@ -487,22 +495,24 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } // CRM-14696 - Improve display for sold out price set options else { + $opt['id'] = 'crm_disabled_opt-' . $opt['id']; $opt['label'] = $opt['label'] . ' (' . ts('Sold out') . ')'; } $selectOption[$opt['id']] = $opt['label']; if ($is_pay_later) { - $qf->add('text', 'txt-'.$elementName, $label, array('size' => '4')); + $qf->add('text', 'txt-' . $elementName, $label, array('size' => '4')); } } $element = &$qf->add('select', $elementName, $label, array( - '' => ts('- select -')) + $selectOption, - $useRequired && $field->is_required, - array('price' => json_encode($priceVal)) - ); + '' => ts('- select -'), + ) + $selectOption, + $useRequired && $field->is_required, + array('price' => json_encode($priceVal), 'class' => 'crm-select2') + ); // CRM-6902 - Add "max" option for a price set field $button = substr($qf->controller->getButtonName(), -4); @@ -530,9 +540,10 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } $priceVal = implode($seperator, array($opt[$valueFieldName] + $taxAmount, $count, $max_value)); $check[$opId] = &$qf->createElement('checkbox', $opt['id'], NULL, $opt['label'], - array('price' => json_encode(array($opt['id'], $priceVal)), - 'data-amount' => $opt[$valueFieldName], - 'data-currency' => $currencyName, + array( + 'price' => json_encode(array($opt['id'], $priceVal)), + 'data-amount' => $opt[$valueFieldName], + 'data-currency' => $currencyName, ) ); if ($is_pay_later) { @@ -558,7 +569,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { } /** - * Retrieve a list of options for the specified field + * Retrieve a list of options for the specified field. * * @param int $fieldId * Price field ID. @@ -585,7 +596,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { if (isset($priceFieldValues['financial_type_id']) && array_key_exists($priceFieldValues['financial_type_id'], $taxRates)) { $options[$fieldId][$priceFieldId]['tax_rate'] = $taxRates[$priceFieldValues['financial_type_id']]; $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($priceFieldValues['amount'], $options[$fieldId][$priceFieldId]['tax_rate']); - $options[$fieldId][$priceFieldId]['tax_amount'] = round($taxAmount['tax_amount'],2); + $options[$fieldId][$priceFieldId]['tax_amount'] = round($taxAmount['tax_amount'], 2); } } } @@ -617,7 +628,10 @@ WHERE AND option_group.id = option_value.option_group_id AND option_value.label = %2"; - $dao = CRM_Core_DAO::executeQuery($query, array(1 => array($optionGroupName, 'String'), 2 => array($optionLabel, 'String'))); + $dao = CRM_Core_DAO::executeQuery($query, array( + 1 => array($optionGroupName, 'String'), + 2 => array($optionLabel, 'String'), + )); while ($dao->fetch()) { return $dao->id; @@ -630,9 +644,8 @@ WHERE * @param int $id * Field Id. * - * @return boolean + * @return bool * - * @static */ public static function deleteField($id) { $field = new CRM_Price_DAO_PriceField(); @@ -671,7 +684,7 @@ WHERE } /** - * Validate the priceset + * Validate the priceset. * * @param int $priceSetId * , array $fields. @@ -682,9 +695,7 @@ WHERE * @param $error * @param bool $allowNoneSelection * - * @static */ - public static function priceSetValidation($priceSetId, $fields, &$error, $allowNoneSelection = FALSE) { // check for at least one positive // amount price field should be selected. @@ -783,7 +794,6 @@ WHERE id IN (" . implode(',', array_keys($priceFields)) . ')'; * @return string * tax label for custom field * - * @static */ public static function getTaxLabel($opt, $valueFieldName, $displayOpt, $taxTerm) { if ($displayOpt == 'Do_not_show') { @@ -800,4 +810,5 @@ WHERE id IN (" . implode(',', array_keys($priceFields)) . ')'; return $label; } + }