本文整理汇总了PHP中CRM_Core_PseudoConstant::stateProvinceAbbreviation方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_PseudoConstant::stateProvinceAbbreviation方法的具体用法?PHP CRM_Core_PseudoConstant::stateProvinceAbbreviation怎么用?PHP CRM_Core_PseudoConstant::stateProvinceAbbreviation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_PseudoConstant
的用法示例。
在下文中一共展示了CRM_Core_PseudoConstant::stateProvinceAbbreviation方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: typecheck
/**
* Validate a value against a CustomField type.
*
* @param string $type
* The type of the data.
* @param string $value
* The data to be validated.
*
* @return bool
* True if the value is of the specified type
*/
public static function typecheck($type, $value)
{
switch ($type) {
case 'Memo':
return TRUE;
case 'String':
return CRM_Utils_Rule::string($value);
case 'Int':
return CRM_Utils_Rule::integer($value);
case 'Float':
case 'Money':
return CRM_Utils_Rule::numeric($value);
case 'Date':
if (is_numeric($value)) {
return CRM_Utils_Rule::dateTime($value);
} else {
return CRM_Utils_Rule::date($value);
}
case 'Boolean':
return CRM_Utils_Rule::boolean($value);
case 'ContactReference':
return CRM_Utils_Rule::validContact($value);
case 'StateProvince':
//fix for multi select state, CRM-3437
$valid = FALSE;
$mulValues = explode(',', $value);
foreach ($mulValues as $key => $state) {
$valid = array_key_exists(strtolower(trim($state)), array_change_key_case(array_flip(CRM_Core_PseudoConstant::stateProvinceAbbreviation()), CASE_LOWER)) || array_key_exists(strtolower(trim($state)), array_change_key_case(array_flip(CRM_Core_PseudoConstant::stateProvince()), CASE_LOWER));
if (!$valid) {
break;
}
}
return $valid;
case 'Country':
//fix multi select country, CRM-3437
$valid = FALSE;
$mulValues = explode(',', $value);
foreach ($mulValues as $key => $country) {
$valid = array_key_exists(strtolower(trim($country)), array_change_key_case(array_flip(CRM_Core_PseudoConstant::countryIsoCode()), CASE_LOWER)) || array_key_exists(strtolower(trim($country)), array_change_key_case(array_flip(CRM_Core_PseudoConstant::country()), CASE_LOWER));
if (!$valid) {
break;
}
}
return $valid;
case 'Link':
return CRM_Utils_Rule::url($value);
}
return FALSE;
}
示例2: preProcess
/**
* Set variables up before form is built.
*
* @return void
*/
public function preProcess()
{
parent::preProcess();
// lineItem isn't set until Register postProcess
$this->_lineItem = $this->get('lineItem');
$this->_params = $this->get('params');
$this->_params[0]['tax_amount'] = $this->get('tax_amount');
$this->_params[0]['is_pay_later'] = $this->get('is_pay_later');
$this->assign('is_pay_later', $this->_params[0]['is_pay_later']);
if ($this->_params[0]['is_pay_later']) {
$this->assign('pay_later_receipt', $this->_values['event']['pay_later_receipt']);
}
CRM_Utils_Hook::eventDiscount($this, $this->_params);
if (!empty($this->_params[0]['discount']) && !empty($this->_params[0]['discount']['applied'])) {
$this->set('hookDiscount', $this->_params[0]['discount']);
$this->assign('hookDiscount', $this->_params[0]['discount']);
}
if ($this->_contributeMode == 'express') {
$params = array();
// rfp == redirect from paypal
$rfp = CRM_Utils_Request::retrieve('rfp', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, NULL, 'GET');
//we lost rfp in case of additional participant. So set it explicitly.
if ($rfp || CRM_Utils_Array::value('additional_participants', $this->_params[0], FALSE)) {
$payment = $this->_paymentProcessor['object'];
$paymentObjError = ts('The system did not record payment details for this payment and so could not process the transaction. Please report this error to the site administrator.');
if (is_object($payment)) {
$expressParams = $payment->getExpressCheckoutDetails($this->get('token'));
} else {
CRM_Core_Error::fatal($paymentObjError);
}
$params['payer'] = CRM_Utils_Array::value('payer', $expressParams);
$params['payer_id'] = $expressParams['payer_id'];
$params['payer_status'] = $expressParams['payer_status'];
CRM_Core_Payment_Form::mapParams($this->_bltID, $expressParams, $params, FALSE);
// fix state and country id if present
if (isset($params["billing_state_province_id-{$this->_bltID}"])) {
$params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($params["billing_state_province_id-{$this->_bltID}"]);
}
if (isset($params['billing_country_id'])) {
$params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($params["billing_country_id-{$this->_bltID}"]);
}
// set a few other parameters for PayPal
$params['token'] = $this->get('token');
$params['amount'] = $this->_params[0]['amount'];
if (!empty($this->_params[0]['discount'])) {
$params['discount'] = $this->_params[0]['discount'];
$params['discountAmount'] = $this->_params[0]['discountAmount'];
$params['discountMessage'] = $this->_params[0]['discountMessage'];
}
if (!empty($this->_params[0]['amount_priceset_level_radio'])) {
$params['amount_priceset_level_radio'] = $this->_params[0]['amount_priceset_level_radio'];
}
$params['amount_level'] = $this->_params[0]['amount_level'];
$params['currencyID'] = $this->_params[0]['currencyID'];
// also merge all the other values from the profile fields
$values = $this->controller->exportValues('Register');
$skipFields = array('amount', "street_address-{$this->_bltID}", "city-{$this->_bltID}", "state_province_id-{$this->_bltID}", "postal_code-{$this->_bltID}", "country_id-{$this->_bltID}");
foreach ($values as $name => $value) {
// skip amount field
if (!in_array($name, $skipFields)) {
$params[$name] = $value;
}
if (substr($name, 0, 6) == 'price_') {
$params[$name] = $this->_params[0][$name];
}
}
$this->set('getExpressCheckoutDetails', $params);
} else {
$params = $this->get('getExpressCheckoutDetails');
}
$this->_params[0] = $params;
$this->_params[0]['is_primary'] = 1;
} else {
//process only primary participant params.
$registerParams = $this->_params[0];
if (isset($registerParams["billing_state_province_id-{$this->_bltID}"]) && $registerParams["billing_state_province_id-{$this->_bltID}"]) {
$registerParams["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($registerParams["billing_state_province_id-{$this->_bltID}"]);
}
if (isset($registerParams["billing_country_id-{$this->_bltID}"]) && $registerParams["billing_country_id-{$this->_bltID}"]) {
$registerParams["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($registerParams["billing_country_id-{$this->_bltID}"]);
}
if (isset($registerParams['credit_card_exp_date'])) {
$registerParams['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($registerParams);
$registerParams['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($registerParams);
}
if ($this->_values['event']['is_monetary']) {
$registerParams['ip_address'] = CRM_Utils_System::ipAddress();
$registerParams['currencyID'] = $this->_params[0]['currencyID'];
}
//assign back primary participant params.
$this->_params[0] = $registerParams;
}
if ($this->_values['event']['is_monetary']) {
$this->_params[0]['invoiceID'] = $this->get('invoiceID');
}
//.........这里部分代码省略.........
示例3: postProcess
//.........这里部分代码省略.........
$params['payment_processor_id'] = $this->_params['payment_processor_id'] = $formValues['payment_processor_id'] = $this->_paymentProcessor['id'];
$now = date('YmdHis');
$fields = array();
// set email for primary location.
$fields['email-Primary'] = 1;
$formValues['email-5'] = $formValues['email-Primary'] = $this->_memberEmail;
$params['register_date'] = $now;
// now set the values for the billing location.
foreach ($this->_fields as $name => $dontCare) {
$fields[$name] = 1;
}
// also add location name to the array
$formValues["address_name-{$this->_bltID}"] = CRM_Utils_Array::value('billing_first_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_middle_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_last_name', $formValues);
$formValues["address_name-{$this->_bltID}"] = trim($formValues["address_name-{$this->_bltID}"]);
$fields["address_name-{$this->_bltID}"] = 1;
//ensure we don't over-write the payer's email with the member's email
if ($this->_contributorContactID == $this->_contactID) {
$fields["email-{$this->_bltID}"] = 1;
}
$ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactID, 'contact_type');
$nameFields = array('first_name', 'middle_name', 'last_name');
foreach ($nameFields as $name) {
$fields[$name] = 1;
if (array_key_exists("billing_{$name}", $formValues)) {
$formValues[$name] = $formValues["billing_{$name}"];
$formValues['preserveDBName'] = TRUE;
}
}
if ($this->_contributorContactID == $this->_contactID) {
//see CRM-12869 for discussion of why we don't do this for separate payee payments
CRM_Contact_BAO_Contact::createProfileContact($formValues, $fields, $this->_contributorContactID, NULL, NULL, $ctype);
}
// add all the additional payment params we need
$this->_params["state_province-{$this->_bltID}"] = $this->_params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($this->_params["billing_state_province_id-{$this->_bltID}"]);
$this->_params["country-{$this->_bltID}"] = $this->_params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($this->_params["billing_country_id-{$this->_bltID}"]);
$this->_params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($this->_params);
$this->_params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($this->_params);
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();
$this->_params['amount'] = $params['total_amount'];
$this->_params['currencyID'] = $config->defaultCurrency;
$this->_params['description'] = ts('Office Credit Card Membership Signup Contribution');
$this->_params['payment_action'] = 'Sale';
$this->_params['invoiceID'] = md5(uniqid(rand(), TRUE));
$this->_params['financial_type_id'] = $params['financial_type_id'];
// at this point we've created a contact and stored its address etc
// all the payment processors expect the name and address to be in the
// so we copy stuff over to first_name etc.
$paymentParams = $this->_params;
$paymentParams['contactID'] = $this->_contributorContactID;
//CRM-10377 if payment is by an alternate contact then we need to set that person
// as the contact in the payment params
if ($this->_contributorContactID != $this->_contactID) {
if (!empty($this->_params['soft_credit_type_id'])) {
$softParams['contact_id'] = $params['contact_id'];
$softParams['soft_credit_type_id'] = $this->_params['soft_credit_type_id'];
}
}
if (!empty($this->_params['send_receipt'])) {
$paymentParams['email'] = $this->_contributorEmail;
}
CRM_Core_Payment_Form::mapParams($this->_bltID, $this->_params, $paymentParams, TRUE);
// CRM-7137 -for recurring membership,
// we do need contribution and recuring records.
$result = NULL;
if (!empty($paymentParams['is_recur'])) {
$contributionType = new CRM_Financial_DAO_FinancialType();
示例4: postProcess
//.........这里部分代码省略.........
$params["address_name-{$this->_bltID}"] = CRM_Utils_Array::value('billing_first_name', $params) . ' ' . CRM_Utils_Array::value('billing_middle_name', $params) . ' ' . CRM_Utils_Array::value('billing_last_name', $params);
$params["address_name-{$this->_bltID}"] = trim($params["address_name-{$this->_bltID}"]);
$fields["address_name-{$this->_bltID}"] = 1;
$fields["email-{$this->_bltID}"] = 1;
$ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactId, 'contact_type');
$nameFields = array('first_name', 'middle_name', 'last_name');
foreach ($nameFields as $name) {
$fields[$name] = 1;
if (array_key_exists("billing_{$name}", $params)) {
$params[$name] = $params["billing_{$name}"];
$params['preserveDBName'] = TRUE;
}
}
$contactID = CRM_Contact_BAO_Contact::createProfileContact($params, $fields, $this->_contactId, NULL, NULL, $ctype);
}
if (!empty($this->_params['participant_role_id'])) {
$customFieldsRole = array();
foreach ($this->_params['participant_role_id'] as $roleKey) {
$customFieldsRole = CRM_Utils_Array::crmArrayMerge(CRM_Core_BAO_CustomField::getFields('Participant', FALSE, FALSE, $roleKey, $this->_roleCustomDataTypeID), $customFieldsRole);
}
$customFieldsEvent = CRM_Core_BAO_CustomField::getFields('Participant', FALSE, FALSE, CRM_Utils_Array::value('event_id', $params), $this->_eventNameCustomDataTypeID);
$customFieldsEventType = CRM_Core_BAO_CustomField::getFields('Participant', FALSE, FALSE, $this->_eventTypeId, $this->_eventTypeCustomDataTypeID);
$customFields = CRM_Utils_Array::crmArrayMerge($customFieldsRole, CRM_Core_BAO_CustomField::getFields('Participant', FALSE, FALSE, NULL, NULL, TRUE));
$customFields = CRM_Utils_Array::crmArrayMerge($customFieldsEvent, $customFields);
$customFields = CRM_Utils_Array::crmArrayMerge($customFieldsEventType, $customFields);
$params['custom'] = CRM_Core_BAO_CustomField::postProcess($params, $this->_id, 'Participant');
}
//do cleanup line items if participant edit the Event Fee.
if (($this->_lineItem || !isset($params['proceSetId'])) && !$this->_paymentId && $this->_id) {
CRM_Price_BAO_LineItem::deleteLineItems($this->_id, 'civicrm_participant');
}
if ($this->_mode) {
// add all the additional payment params we need
$this->_params["state_province-{$this->_bltID}"] = $this->_params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($this->_params["billing_state_province_id-{$this->_bltID}"]);
$this->_params["country-{$this->_bltID}"] = $this->_params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($this->_params["billing_country_id-{$this->_bltID}"]);
$this->_params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($this->_params);
$this->_params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($this->_params);
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();
$this->_params['amount'] = $params['fee_amount'];
$this->_params['amount_level'] = $params['amount_level'];
$this->_params['currencyID'] = $config->defaultCurrency;
$this->_params['invoiceID'] = md5(uniqid(rand(), TRUE));
// at this point we've created a contact and stored its address etc
// all the payment processors expect the name and address to be in the
// so we copy stuff over to first_name etc.
$paymentParams = $this->_params;
if (!empty($this->_params['send_receipt'])) {
$paymentParams['email'] = $this->_contributorEmail;
}
// The only reason for merging in the 'contact_id' rather than ensuring it is set
// is that this patch is being done around the time of the stable release
// so more conservative approach is called for.
// In fact the use of $params and $this->_params & $this->_contactId vs $contactID
// needs rationalising.
$mapParams = array_merge(array('contact_id' => $contactID), $this->_params);
CRM_Core_Payment_Form::mapParams($this->_bltID, $mapParams, $paymentParams, TRUE);
$payment = $this->_paymentProcessor['object'];
// CRM-15622: fix for incorrect contribution.fee_amount
$paymentParams['fee_amount'] = NULL;
$result = $payment->doPayment($paymentParams);
if (is_a($result, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($result);
CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contact/view/participant', "reset=1&action=add&cid={$this->_contactId}&context=participant&mode={$this->_mode}"));
}
if ($result) {
$this->_params = array_merge($this->_params, $result);
示例5: formatParamsForPaymentProcessor
/**
* Format the fields for the payment processor.
*
* In order to pass fields to the payment processor in a consistent way we add some renamed
* parameters.
*
* @param array $fields
*
* @return array
*/
protected function formatParamsForPaymentProcessor($fields)
{
// also add location name to the array
$this->_params["address_name-{$this->_bltID}"] = CRM_Utils_Array::value('billing_first_name', $this->_params) . ' ' . CRM_Utils_Array::value('billing_middle_name', $this->_params) . ' ' . CRM_Utils_Array::value('billing_last_name', $this->_params);
$this->_params["address_name-{$this->_bltID}"] = trim($this->_params["address_name-{$this->_bltID}"]);
// Add additional parameters that the payment processors are used to receiving.
if (!empty($this->_params["billing_state_province_id-{$this->_bltID}"])) {
$this->_params['state_province'] = $this->_params["state_province-{$this->_bltID}"] = $this->_params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($this->_params["billing_state_province_id-{$this->_bltID}"]);
}
if (!empty($this->_params["billing_country_id-{$this->_bltID}"])) {
$this->_params['country'] = $this->_params["country-{$this->_bltID}"] = $this->_params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($this->_params["billing_country_id-{$this->_bltID}"]);
}
list($hasAddressField, $addressParams) = CRM_Contribute_BAO_Contribution::getPaymentProcessorReadyAddressParams($this->_params, $this->_bltID);
if ($hasAddressField) {
$this->_params = array_merge($this->_params, $addressParams);
}
$nameFields = array('first_name', 'middle_name', 'last_name');
foreach ($nameFields as $name) {
$fields[$name] = 1;
if (array_key_exists("billing_{$name}", $this->_params)) {
$this->_params[$name] = $this->_params["billing_{$name}"];
$this->_params['preserveDBName'] = TRUE;
}
}
return $fields;
}
示例6: array
/**
* Given the list of params in the params array, fetch the object
* and store the values in the values array
*
* @param array $entityBlock
* Associated array of fields.
* @param bool $microformat
* If microformat output is required.
* @param int|string $fieldName conditional field name
*
* @return array
* array with address fields
*/
public static function &getValues($entityBlock, $microformat = FALSE, $fieldName = 'contact_id')
{
if (empty($entityBlock)) {
return NULL;
}
$addresses = array();
$address = new CRM_Core_BAO_Address();
if (empty($entityBlock['entity_table'])) {
$address->{$fieldName} = CRM_Utils_Array::value($fieldName, $entityBlock);
} else {
$addressIds = array();
$addressIds = self::allEntityAddress($entityBlock);
if (!empty($addressIds[1])) {
$address->id = $addressIds[1];
} else {
return $addresses;
}
}
//get primary address as a first block.
$address->orderBy('is_primary desc, id');
$address->find();
$locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
$count = 1;
while ($address->fetch()) {
// deprecate reference.
if ($count > 1) {
foreach (array('state', 'state_name', 'country', 'world_region') as $fld) {
if (isset($address->{$fld})) {
unset($address->{$fld});
}
}
}
$stree = $address->street_address;
$values = array();
CRM_Core_DAO::storeValues($address, $values);
// add state and country information: CRM-369
if (!empty($address->location_type_id)) {
$values['location_type'] = CRM_Utils_Array::value($address->location_type_id, $locationTypes);
}
if (!empty($address->state_province_id)) {
$address->state = CRM_Core_PseudoConstant::stateProvinceAbbreviation($address->state_province_id, FALSE);
$address->state_name = CRM_Core_PseudoConstant::stateProvince($address->state_province_id, FALSE);
}
if (!empty($address->country_id)) {
$address->country = CRM_Core_PseudoConstant::country($address->country_id);
//get world region
$regionId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Country', $address->country_id, 'region_id');
$address->world_region = CRM_Core_PseudoConstant::worldregion($regionId);
}
$address->addDisplay($microformat);
$values['display'] = $address->display;
$values['display_text'] = $address->display_text;
if (is_numeric($address->master_id)) {
$values['use_shared_address'] = 1;
}
$addresses[$count] = $values;
//unset is_primary after first block. Due to some bug in earlier version
//there might be more than one primary blocks, hence unset is_primary other than first
if ($count > 1) {
unset($addresses[$count]['is_primary']);
}
$count++;
}
return $addresses;
}
示例7: alterDisplay
function alterDisplay(&$rows)
{
// custom code to alter rows
$type = substr($this->_params['relationship_type_id_value'], -3);
$entryFound = FALSE;
$flagHousehold = $flagContact = 0;
foreach ($rows as $rowNum => $row) {
//replace retionship id by relationship name
if (array_key_exists('civicrm_relationship_relationship_type_id', $row)) {
if ($value = $row['civicrm_relationship_relationship_type_id']) {
$rows[$rowNum]['civicrm_relationship_relationship_type_id'] = $this->relationTypes[$value . '_' . $type];
$entryFound = TRUE;
}
}
//remove duplicate Organization names
if (array_key_exists('civicrm_contact_household_household_name', $row) && $this->_outputMode != 'csv') {
if ($value = $row['civicrm_contact_household_household_name']) {
if ($rowNum == 0) {
$priviousHousehold = $value;
} else {
if ($priviousHousehold == $value) {
$flagHousehold = 1;
$priviousHousehold = $value;
} else {
$flagHousehold = 0;
$priviousHousehold = $value;
}
}
if ($flagHousehold == 1) {
$rows[$rowNum]['civicrm_contact_household_household_name'] = "";
} else {
$url = CRM_Utils_System::url('civicrm/contact/view', 'reset=1&cid=' . $rows[$rowNum]['civicrm_contact_household_id'], $this->_absoluteUrl);
$rows[$rowNum]['civicrm_contact_household_household_name'] = "<a href='{$url}' title='" . ts('View contact summary for this househould') . "'>" . $value . '</a>';
}
$entryFound = TRUE;
}
}
//remove duplicate Contact names and relationship type
if (array_key_exists('civicrm_contact_id', $row) && $this->_outputMode != 'csv') {
if ($value = $row['civicrm_contact_id']) {
if ($rowNum == 0) {
$priviousContact = $value;
} else {
if ($priviousContact == $value) {
$flagContact = 1;
$priviousContact = $value;
} else {
$flagContact = 0;
$priviousContact = $value;
}
}
if ($flagContact == 1 && $flagHousehold == 1) {
$rows[$rowNum]['civicrm_contact_sort_name'] = "";
$rows[$rowNum]['civicrm_relationship_relationship_type_id'] = "";
}
$entryFound = TRUE;
}
}
if (array_key_exists('civicrm_contribution_contribution_status_id', $row)) {
if ($value = $row['civicrm_contribution_contribution_status_id']) {
$rows[$rowNum]['civicrm_contribution_contribution_status_id'] = CRM_Contribute_PseudoConstant::contributionStatus($value);
}
}
// handle state province
if (array_key_exists('civicrm_address_state_province_id', $row)) {
if ($value = $row['civicrm_address_state_province_id']) {
$rows[$rowNum]['civicrm_address_state_province_id'] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($value, FALSE);
}
$entryFound = TRUE;
}
// handle country
if (array_key_exists('civicrm_address_country_id', $row)) {
if ($value = $row['civicrm_address_country_id']) {
$rows[$rowNum]['civicrm_address_country_id'] = CRM_Core_PseudoConstant::country($value, FALSE);
}
$entryFound = TRUE;
}
// convert display name to links
if (array_key_exists('civicrm_contact_sort_name', $row) && $rows[$rowNum]['civicrm_contact_sort_name'] && array_key_exists('civicrm_contact_id', $row)) {
$url = CRM_Report_Utils_Report::getNextUrl('contribute/detail', 'reset=1&force=1&id_op=eq&id_value=' . $row['civicrm_contact_id'], $this->_absoluteUrl, $this->_id);
$rows[$rowNum]['civicrm_contact_sort_name_link'] = $url;
$rows[$rowNum]['civicrm_contact_sort_name_hover'] = ts('View contribution details for this individual');
$entryFound = TRUE;
}
// Contribution amount links to view contribution
if (($value = CRM_Utils_Array::value('civicrm_contribution_total_amount', $row)) && CRM_Core_Permission::check('access CiviContribute')) {
$url = CRM_Utils_System::url("civicrm/contact/view/contribution", "reset=1&id=" . $row['civicrm_contribution_id'] . "&cid=" . $row['civicrm_contact_id'] . "&action=view&context=contribution&selectedChild=contribute", $this->_absoluteUrl);
$rows[$rowNum]['civicrm_contribution_total_amount_link'] = $url;
$rows[$rowNum]['civicrm_contribution_total_amount_hover'] = ts("View this contribution.");
$entryFound = TRUE;
}
// convert campaign_id to campaign title
if (array_key_exists('civicrm_contribution_campaign_id', $row)) {
if ($value = $row['civicrm_contribution_campaign_id']) {
$rows[$rowNum]['civicrm_contribution_campaign_id'] = $this->activeCampaigns[$value];
$entryFound = TRUE;
}
}
// skip looking further in rows, if first row itself doesn't
if (!$entryFound) {
//.........这里部分代码省略.........
示例8: convertToPseudoNames
/**
* Convert the pseudo constants id's to their names
*
* @param CRM_Core_DAO $dao
* @param bool $return
* @param bool $usedForAPI
*
* @return array|NULL
*/
public function convertToPseudoNames(&$dao, $return = FALSE, $usedForAPI = FALSE)
{
if (empty($this->_pseudoConstantsSelect)) {
return NULL;
}
$values = array();
foreach ($this->_pseudoConstantsSelect as $key => $value) {
if (!empty($this->_pseudoConstantsSelect[$key]['sorting'])) {
continue;
}
if (is_object($dao) && property_exists($dao, $value['idCol'])) {
$val = $dao->{$value}['idCol'];
if (CRM_Utils_System::isNull($val)) {
$dao->{$key} = NULL;
} elseif ($baoName = CRM_Utils_Array::value('bao', $value, NULL)) {
//preserve id value
$idColumn = "{$key}_id";
$dao->{$idColumn} = $val;
if ($key == 'state_province_name') {
$dao->{$value}['pseudoField'] = $dao->{$key} = CRM_Core_PseudoConstant::stateProvinceAbbreviation($val);
} else {
$dao->{$value}['pseudoField'] = $dao->{$key} = CRM_Core_PseudoConstant::getLabel($baoName, $value['pseudoField'], $val);
}
} elseif ($value['pseudoField'] == 'state_province_abbreviation') {
$dao->{$key} = CRM_Core_PseudoConstant::stateProvinceAbbreviation($val);
} elseif (in_array($value['pseudoField'], array('participant_role_id', 'participant_role'))) {
$viewValues = explode(CRM_Core_DAO::VALUE_SEPARATOR, $val);
if ($value['pseudoField'] == 'participant_role') {
$pseudoOptions = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'role_id');
foreach ($viewValues as $k => $v) {
$viewValues[$k] = $pseudoOptions[$v];
}
}
$dao->{$key} = $usedForAPI && count($viewValues) > 1 ? $viewValues : implode(', ', $viewValues);
} else {
$labels = CRM_Core_OptionGroup::values($value['pseudoField']);
$dao->{$key} = $labels[$val];
}
// return converted values in array format
if ($return) {
if (strpos($key, '-') !== FALSE) {
$keyVal = explode('-', $key);
$current =& $values;
$lastElement = array_pop($keyVal);
foreach ($keyVal as $v) {
if (!array_key_exists($v, $current)) {
$current[$v] = array();
}
$current =& $current[$v];
}
$current[$lastElement] = $dao->{$key};
} else {
$values[$key] = $dao->{$key};
}
}
}
}
return $values;
}
示例9: submit
//.........这里部分代码省略.........
//get the payment processor id as per mode.
$params['payment_processor_id'] = $formValues['payment_processor_id'] = $this->_paymentProcessor['id'];
$now = date('YmdHis');
$fields = array();
// set email for primary location.
$fields['email-Primary'] = 1;
$formValues['email-5'] = $formValues['email-Primary'] = $this->_memberEmail;
$params['register_date'] = $now;
// now set the values for the billing location.
foreach ($this->_fields as $name => $dontCare) {
$fields[$name] = 1;
}
// also add location name to the array
$formValues["address_name-{$this->_bltID}"] = CRM_Utils_Array::value('billing_first_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_middle_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_last_name', $formValues);
$formValues["address_name-{$this->_bltID}"] = trim($formValues["address_name-{$this->_bltID}"]);
$fields["address_name-{$this->_bltID}"] = 1;
//ensure we don't over-write the payer's email with the member's email
if ($this->_contributorContactID == $this->_contactID) {
$fields["email-{$this->_bltID}"] = 1;
}
$nameFields = array('first_name', 'middle_name', 'last_name');
foreach ($nameFields as $name) {
$fields[$name] = 1;
if (array_key_exists("billing_{$name}", $formValues)) {
$formValues[$name] = $formValues["billing_{$name}"];
$formValues['preserveDBName'] = TRUE;
}
}
if ($this->_contributorContactID == $this->_contactID) {
//see CRM-12869 for discussion of why we don't do this for separate payee payments
CRM_Contact_BAO_Contact::createProfileContact($formValues, $fields, $this->_contributorContactID, NULL, NULL, CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactID, 'contact_type'));
}
// add all the additional payment params we need
$formValues["state_province-{$this->_bltID}"] = $formValues["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($formValues["billing_state_province_id-{$this->_bltID}"]);
$formValues["country-{$this->_bltID}"] = $formValues["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($formValues["billing_country_id-{$this->_bltID}"]);
$formValues['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($formValues);
$formValues['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($formValues);
$formValues['ip_address'] = CRM_Utils_System::ipAddress();
$formValues['amount'] = $params['total_amount'];
$formValues['currencyID'] = $config->defaultCurrency;
$formValues['description'] = ts("Contribution submitted by a staff person using member's credit card for signup");
$formValues['invoiceID'] = md5(uniqid(rand(), TRUE));
$formValues['financial_type_id'] = $params['financial_type_id'];
// at this point we've created a contact and stored its address etc
// all the payment processors expect the name and address to be in the
// so we copy stuff over to first_name etc.
$paymentParams = $formValues;
$paymentParams['contactID'] = $this->_contributorContactID;
//CRM-10377 if payment is by an alternate contact then we need to set that person
// as the contact in the payment params
if ($this->_contributorContactID != $this->_contactID) {
if (!empty($formValues['soft_credit_type_id'])) {
$softParams['contact_id'] = $params['contact_id'];
$softParams['soft_credit_type_id'] = $formValues['soft_credit_type_id'];
}
}
if (!empty($formValues['send_receipt'])) {
$paymentParams['email'] = $this->_contributorEmail;
}
CRM_Core_Payment_Form::mapParams($this->_bltID, $formValues, $paymentParams, TRUE);
// CRM-7137 -for recurring membership,
// we do need contribution and recurring records.
$result = NULL;
if (!empty($paymentParams['is_recur'])) {
$financialType = new CRM_Financial_DAO_FinancialType();
$financialType->id = $params['financial_type_id'];
示例10: alterDisplay
function alterDisplay(&$rows)
{
// custom code to alter rows
$entryFound = false;
$checkList = array();
$display_flag = $prev_cid = $cid = 0;
foreach ($rows as $rowNum => $row) {
if (!empty($this->_noRepeats) && $this->_outputMode != 'csv') {
// don't repeat contact details if its same as the previous row
if (array_key_exists('civicrm_pledge_contact_id', $row)) {
if ($cid = $row['civicrm_pledge_contact_id']) {
if ($rowNum == 0) {
$prev_cid = $cid;
} else {
if ($prev_cid == $cid) {
$display_flag = 1;
$prev_cid = $cid;
} else {
$display_flag = 0;
$prev_cid = $cid;
}
}
if ($display_flag) {
foreach ($row as $colName => $colVal) {
if (in_array($colName, $this->_noRepeats)) {
unset($rows[$rowNum][$colName]);
}
}
}
$entryFound = true;
}
}
}
// convert display name to links
if (array_key_exists('civicrm_contact_display_name', $row) && array_key_exists('civicrm_pledge_contact_id', $row)) {
$url = CRM_Utils_System::url("civicrm/contact/view", 'reset=1&cid=' . $row['civicrm_pledge_contact_id'], $this->_absoluteUrl);
$rows[$rowNum]['civicrm_contact_display_name_link'] = $url;
$rows[$rowNum]['civicrm_contact_display_name_hover'] = ts("View Contact Summary for this Contact.");
$entryFound = true;
}
//handle status id
if (array_key_exists('civicrm_pledge_status_id', $row)) {
if ($value = $row['civicrm_pledge_status_id']) {
$rows[$rowNum]['civicrm_pledge_status_id'] = CRM_Core_OptionGroup::getLabel('contribution_status', $value);
}
$entryFound = true;
}
// handle state province
if (array_key_exists('civicrm_address_state_province_id', $row)) {
if ($value = $row['civicrm_address_state_province_id']) {
$rows[$rowNum]['civicrm_address_state_province_id'] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($value, false);
}
$entryFound = true;
}
// handle country
if (array_key_exists('civicrm_address_country_id', $row)) {
if ($value = $row['civicrm_address_country_id']) {
$rows[$rowNum]['civicrm_address_country_id'] = CRM_Core_PseudoConstant::country($value, false);
}
$entryFound = true;
}
// skip looking further in rows, if first row itself doesn't
// have the column we need
if (!$entryFound) {
break;
}
}
}
示例11: preProcess
/**
* Set variables up before form is built.
*/
public function preProcess()
{
parent::preProcess();
// lineItem isn't set until Register postProcess
$this->_lineItem = $this->get('lineItem');
$this->_params = $this->get('params');
$this->_params[0]['tax_amount'] = $this->get('tax_amount');
$this->_params[0]['is_pay_later'] = $this->get('is_pay_later');
$this->assign('is_pay_later', $this->_params[0]['is_pay_later']);
if ($this->_params[0]['is_pay_later']) {
$this->assign('pay_later_receipt', $this->_values['event']['pay_later_receipt']);
}
CRM_Utils_Hook::eventDiscount($this, $this->_params);
if (!empty($this->_params[0]['discount']) && !empty($this->_params[0]['discount']['applied'])) {
$this->set('hookDiscount', $this->_params[0]['discount']);
$this->assign('hookDiscount', $this->_params[0]['discount']);
}
// The concept of contributeMode is deprecated.
if ($this->_contributeMode == 'express') {
$params = array();
// rfp == redirect from paypal
// rfp is probably not required - the getPreApprovalDetails should deal with any payment-processor specific 'stuff'
$rfp = CRM_Utils_Request::retrieve('rfp', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, NULL, 'GET');
//we lost rfp in case of additional participant. So set it explicitly.
if ($rfp || CRM_Utils_Array::value('additional_participants', $this->_params[0], FALSE)) {
if (!empty($this->_paymentProcessor) && $this->_paymentProcessor['object']->supports('preApproval')) {
$preApprovalParams = $this->_paymentProcessor['object']->getPreApprovalDetails($this->get('pre_approval_parameters'));
$params = array_merge($this->_params, $preApprovalParams);
}
CRM_Core_Payment_Form::mapParams($this->_bltID, $params, $params, FALSE);
// set a few other parameters that are not really specific to this method because we don't know what
// will break if we change this.
$params['amount'] = $this->_params[0]['amount'];
if (!empty($this->_params[0]['discount'])) {
$params['discount'] = $this->_params[0]['discount'];
$params['discountAmount'] = $this->_params[0]['discountAmount'];
$params['discountMessage'] = $this->_params[0]['discountMessage'];
}
$params['amount_level'] = $this->_params[0]['amount_level'];
$params['currencyID'] = $this->_params[0]['currencyID'];
// also merge all the other values from the profile fields
$values = $this->controller->exportValues('Register');
$skipFields = array('amount', "street_address-{$this->_bltID}", "city-{$this->_bltID}", "state_province_id-{$this->_bltID}", "postal_code-{$this->_bltID}", "country_id-{$this->_bltID}");
foreach ($values as $name => $value) {
// skip amount field
if (!in_array($name, $skipFields)) {
$params[$name] = $value;
}
if (substr($name, 0, 6) == 'price_') {
$params[$name] = $this->_params[0][$name];
}
}
$this->set('getExpressCheckoutDetails', $params);
}
$this->_params[0] = array_merge($this->_params[0], $params);
$this->_params[0]['is_primary'] = 1;
} else {
//process only primary participant params.
$registerParams = $this->_params[0];
if (isset($registerParams["billing_state_province_id-{$this->_bltID}"]) && $registerParams["billing_state_province_id-{$this->_bltID}"]) {
$registerParams["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($registerParams["billing_state_province_id-{$this->_bltID}"]);
}
if (isset($registerParams["billing_country_id-{$this->_bltID}"]) && $registerParams["billing_country_id-{$this->_bltID}"]) {
$registerParams["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($registerParams["billing_country_id-{$this->_bltID}"]);
}
if (isset($registerParams['credit_card_exp_date'])) {
$registerParams['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($registerParams);
$registerParams['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($registerParams);
}
if ($this->_values['event']['is_monetary']) {
$registerParams['ip_address'] = CRM_Utils_System::ipAddress();
$registerParams['currencyID'] = $this->_params[0]['currencyID'];
}
//assign back primary participant params.
$this->_params[0] = $registerParams;
}
if ($this->_values['event']['is_monetary']) {
$this->_params[0]['invoiceID'] = $this->get('invoiceID');
}
$this->assign('defaultRole', FALSE);
if (CRM_Utils_Array::value('defaultRole', $this->_params[0]) == 1) {
$this->assign('defaultRole', TRUE);
}
if (empty($this->_params[0]['participant_role_id']) && $this->_values['event']['default_role_id']) {
$this->_params[0]['participant_role_id'] = $this->_values['event']['default_role_id'];
}
if (isset($this->_values['event']['confirm_title'])) {
CRM_Utils_System::setTitle($this->_values['event']['confirm_title']);
}
if ($this->_pcpId) {
$params = CRM_Contribute_Form_Contribution_Confirm::processPcp($this, $this->_params[0]);
$this->_params[0] = $params;
}
$this->set('params', $this->_params);
}
示例12: postProcess
//.........这里部分代码省略.........
}
$config = CRM_Core_Config::singleton();
$params['currencyID'] = $config->defaultCurrency;
if ($this->_values['event']['is_monetary']) {
// we first reset the confirm page so it accepts new values
$this->controller->resetPage('Confirm');
//added for discount
$discountId = CRM_Core_BAO_Discount::findSet($this->_eventId, 'civicrm_event');
if (!empty($this->_values['discount'][$discountId])) {
$params['discount_id'] = $discountId;
$params['amount_level'] = $this->_values['discount'][$discountId][$params['amount']]['label'];
$params['amount'] = $this->_values['discount'][$discountId][$params['amount']]['value'];
} elseif (empty($params['priceSetId'])) {
if (!empty($params['amount'])) {
$params['amount_level'] = $this->_values['fee'][$params['amount']]['label'];
$params['amount'] = $this->_values['fee'][$params['amount']]['value'];
} else {
$params['amount_level'] = $params['amount'] = '';
}
} else {
$lineItem = array();
CRM_Price_BAO_PriceSet::processAmount($this->_values['fee'], $params, $lineItem);
$this->set('lineItem', array($lineItem));
$this->set('lineItemParticipantsCount', array($primaryParticipantCount));
}
$this->set('amount', $params['amount']);
$this->set('amount_level', $params['amount_level']);
// generate and set an invoiceID for this transaction
$invoiceID = md5(uniqid(rand(), TRUE));
$this->set('invoiceID', $invoiceID);
if (is_array($this->_paymentProcessor)) {
$payment = CRM_Core_Payment::singleton($this->_mode, $this->_paymentProcessor, $this);
}
// default mode is direct
$this->set('contributeMode', 'direct');
if (isset($params["state_province_id-{$this->_bltID}"]) && $params["state_province_id-{$this->_bltID}"]) {
$params["state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($params["state_province_id-{$this->_bltID}"]);
}
if (isset($params["country_id-{$this->_bltID}"]) && $params["country_id-{$this->_bltID}"]) {
$params["country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($params["country_id-{$this->_bltID}"]);
}
if (isset($params['credit_card_exp_date'])) {
$params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($params);
$params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($params);
}
if ($this->_values['event']['is_monetary']) {
$params['ip_address'] = CRM_Utils_System::ipAddress();
$params['currencyID'] = $config->defaultCurrency;
$params['payment_action'] = 'Sale';
$params['invoiceID'] = $invoiceID;
}
$this->_params = array();
$this->_params[] = $params;
$this->set('params', $this->_params);
if ($this->_paymentProcessor && $this->_paymentProcessor['billing_mode'] & CRM_Core_Payment::BILLING_MODE_BUTTON) {
//get the button name
$buttonName = $this->controller->getButtonName();
if (in_array($buttonName, array($this->_expressButtonName, $this->_expressButtonName . '_x', $this->_expressButtonName . '_y')) && !CRM_Utils_Array::value('is_pay_later', $params) && !$this->_allowWaitlist && !$this->_requireApproval) {
$this->set('contributeMode', 'express');
// Send Event Name & Id in Params
$params['eventName'] = $this->_values['event']['title'];
$params['eventId'] = $this->_values['event']['id'];
$params['cancelURL'] = CRM_Utils_System::url('civicrm/event/register', "_qf_Register_display=1&qfKey={$this->controller->_key}", TRUE, NULL, FALSE);
if (CRM_Utils_Array::value('additional_participants', $params, FALSE)) {
$urlArgs = "_qf_Participant_1_display=1&rfp=1&qfKey={$this->controller->_key}";
} else {
$urlArgs = "_qf_Confirm_display=1&rfp=1&qfKey={$this->controller->_key}";
}
$params['returnURL'] = CRM_Utils_System::url('civicrm/event/register', $urlArgs, TRUE, NULL, FALSE);
$params['invoiceID'] = $invoiceID;
//default action is Sale
$params['payment_action'] = 'Sale';
$token = $payment->setExpressCheckout($params);
if (is_a($token, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($token);
CRM_Utils_System::redirect($params['cancelURL']);
}
$this->set('token', $token);
$paymentURL = $this->_paymentProcessor['url_site'] . "/cgi-bin/webscr?cmd=_express-checkout&token={$token}";
CRM_Utils_System::redirect($paymentURL);
}
} elseif ($this->_paymentProcessor && $this->_paymentProcessor['billing_mode'] & CRM_Core_Payment::BILLING_MODE_NOTIFY) {
$this->set('contributeMode', 'notify');
}
} else {
$session = CRM_Core_Session::singleton();
$params['description'] = ts('Online Event Registration') . ' ' . $this->_values['event']['title'];
$this->_params = array();
$this->_params[] = $params;
$this->set('params', $this->_params);
if (!CRM_Utils_Array::value('additional_participants', $params)) {
self::processRegistration($this->_params);
}
}
// If registering > 1 participant, give status message
if (CRM_Utils_Array::value('additional_participants', $params, FALSE)) {
$statusMsg = ts('Registration information for participant 1 has been saved.');
CRM_Core_Session::setStatus($statusMsg, ts('Saved'), 'success');
}
}
示例13: postProcess
/**
* Process the renewal form.
*
*
* @return void
*/
public function postProcess()
{
$ids = array();
$config = CRM_Core_Config::singleton();
// get the submitted form values.
$this->_params = $formValues = $this->controller->exportValues($this->_name);
$this->storeContactFields($formValues);
// use values from screen
if ($formValues['membership_type_id'][1] != 0) {
$defaults['receipt_text_renewal'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $formValues['membership_type_id'][1], 'receipt_text_renewal');
}
$now = CRM_Utils_Date::getToday(NULL, 'YmdHis');
$this->convertDateFieldsToMySQL($formValues);
$this->assign('receive_date', $formValues['receive_date']);
if (!empty($this->_params['send_receipt'])) {
$formValues['receipt_date'] = $now;
$this->assign('receipt_date', CRM_Utils_Date::mysqlToIso($formValues['receipt_date']));
} else {
$formValues['receipt_date'] = NULL;
}
if ($this->_mode) {
$formValues['total_amount'] = CRM_Utils_Array::value('total_amount', $this->_params, CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $this->_memType, 'minimum_fee'));
if (empty($formValues['financial_type_id'])) {
$formValues['financial_type_id'] = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $this->_memType, 'financial_type_id');
}
$this->_paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($formValues['payment_processor_id'], $this->_mode);
$fields = array();
// set email for primary location.
$fields['email-Primary'] = 1;
$formValues['email-5'] = $formValues['email-Primary'] = $this->_contributorEmail;
$formValues['register_date'] = $now;
// now set the values for the billing location.
foreach ($this->_fields as $name => $dontCare) {
$fields[$name] = 1;
}
// also add location name to the array
$formValues["address_name-{$this->_bltID}"] = CRM_Utils_Array::value('billing_first_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_middle_name', $formValues) . ' ' . CRM_Utils_Array::value('billing_last_name', $formValues);
$formValues["address_name-{$this->_bltID}"] = trim($formValues["address_name-{$this->_bltID}"]);
$fields["address_name-{$this->_bltID}"] = 1;
$fields["email-{$this->_bltID}"] = 1;
$ctype = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactID, 'contact_type');
$nameFields = array('first_name', 'middle_name', 'last_name');
foreach ($nameFields as $name) {
$fields[$name] = 1;
if (array_key_exists("billing_{$name}", $formValues)) {
$formValues[$name] = $formValues["billing_{$name}"];
$formValues['preserveDBName'] = TRUE;
}
}
//here we are setting up the billing contact - if different from the member they are already created
// but they will get billing details assigned
CRM_Contact_BAO_Contact::createProfileContact($formValues, $fields, $this->_contributorContactID, NULL, NULL, $ctype);
// add all the additional payment params we need
$this->_params["state_province-{$this->_bltID}"] = $this->_params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($this->_params["billing_state_province_id-{$this->_bltID}"]);
$this->_params["country-{$this->_bltID}"] = $this->_params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($this->_params["billing_country_id-{$this->_bltID}"]);
$this->_params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($this->_params);
$this->_params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($this->_params);
$this->_params['description'] = ts('Office Credit Card Membership Renewal Contribution');
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();
$this->_params['amount'] = $formValues['total_amount'];
$this->_params['currencyID'] = $config->defaultCurrency;
$this->_params['payment_action'] = 'Sale';
$paymentParams['invoiceID'] = $this->_params['invoiceID'] = md5(uniqid(rand(), TRUE));
// at this point we've created a contact and stored its address etc
// all the payment processors expect the name and address to be in the passed params
// so we copy stuff over to first_name etc.
$paymentParams = $this->_params;
if (!empty($this->_params['send_receipt'])) {
$paymentParams['email'] = $this->_contributorEmail;
}
$paymentParams['contactID'] = $this->_contributorContactID;
CRM_Core_Payment_Form::mapParams($this->_bltID, $this->_params, $paymentParams, TRUE);
$payment = CRM_Core_Payment::singleton($this->_mode, $this->_paymentProcessor, $this);
if (!empty($paymentParams['auto_renew'])) {
$contributionRecurParams = $this->processRecurringContribution($paymentParams);
$this->_params['contributionRecurID'] = $contributionRecurParams['contributionRecurID'];
$paymentParams = array_merge($paymentParams, $contributionRecurParams);
}
$result = $payment->doDirectPayment($paymentParams);
if (is_a($result, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($result);
CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contact/view/membership', "reset=1&action=renew&cid={$this->_contactID}&id={$this->_id}&context=membership&mode={$this->_mode}"));
}
if ($result) {
$this->_params = array_merge($this->_params, $result);
}
$formValues['contribution_status_id'] = 1;
$formValues['invoice_id'] = $this->_params['invoiceID'];
$formValues['trxn_id'] = $result['trxn_id'];
$formValues['payment_instrument_id'] = 1;
$formValues['is_test'] = $this->_mode == 'live' ? 0 : 1;
$this->set('params', $this->_params);
$this->assign('trxn_id', $result['trxn_id']);
}
//.........这里部分代码省略.........
示例14: isErrorInCoreData
/**
* Check if an error in Core( non-custom fields ) field
*
* @param array $params
* @param string $errorMessage
* A string containing all the error-fields.
*/
public function isErrorInCoreData($params, &$errorMessage)
{
foreach ($params as $key => $value) {
if ($value) {
$session = CRM_Core_Session::singleton();
$dateType = $session->get("dateTypes");
switch ($key) {
case 'birth_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
self::addToErrorMsg(ts('Birth Date'), $errorMessage);
}
} else {
self::addToErrorMsg(ts('Birth-Date'), $errorMessage);
}
break;
case 'deceased_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
self::addToErrorMsg(ts('Deceased Date'), $errorMessage);
}
} else {
self::addToErrorMsg(ts('Deceased Date'), $errorMessage);
}
break;
case 'is_deceased':
if (CRM_Utils_String::strtoboolstr($value) === FALSE) {
self::addToErrorMsg(ts('Is Deceased'), $errorMessage);
}
break;
case 'gender':
case 'gender_id':
if (!self::checkGender($value)) {
self::addToErrorMsg(ts('Gender'), $errorMessage);
}
break;
case 'preferred_communication_method':
$preffComm = array();
$preffComm = explode(',', $value);
foreach ($preffComm as $v) {
if (!self::in_value(trim($v), CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'preferred_communication_method'))) {
self::addToErrorMsg(ts('Preferred Communication Method'), $errorMessage);
}
}
break;
case 'preferred_mail_format':
if (!array_key_exists(strtolower($value), array_change_key_case(CRM_Core_SelectValues::pmf(), CASE_LOWER))) {
self::addToErrorMsg(ts('Preferred Mail Format'), $errorMessage);
}
break;
case 'individual_prefix':
case 'prefix_id':
if (!self::in_value($value, CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'prefix_id'))) {
self::addToErrorMsg(ts('Individual Prefix'), $errorMessage);
}
break;
case 'individual_suffix':
case 'suffix_id':
if (!self::in_value($value, CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'suffix_id'))) {
self::addToErrorMsg(ts('Individual Suffix'), $errorMessage);
}
break;
case 'state_province':
if (!empty($value)) {
foreach ($value as $stateValue) {
if ($stateValue['state_province']) {
if (self::in_value($stateValue['state_province'], CRM_Core_PseudoConstant::stateProvinceAbbreviation()) || self::in_value($stateValue['state_province'], CRM_Core_PseudoConstant::stateProvince())) {
continue;
} else {
self::addToErrorMsg(ts('State/Province'), $errorMessage);
}
}
}
}
break;
case 'country':
if (!empty($value)) {
foreach ($value as $stateValue) {
if ($stateValue['country']) {
CRM_Core_PseudoConstant::populate($countryNames, 'CRM_Core_DAO_Country', TRUE, 'name', 'is_active');
CRM_Core_PseudoConstant::populate($countryIsoCodes, 'CRM_Core_DAO_Country', TRUE, 'iso_code');
$config = CRM_Core_Config::singleton();
$limitCodes = $config->countryLimit();
//If no country is selected in
//localization then take all countries
if (empty($limitCodes)) {
$limitCodes = $countryIsoCodes;
}
if (self::in_value($stateValue['country'], $limitCodes) || self::in_value($stateValue['country'], CRM_Core_PseudoConstant::country())) {
continue;
} else {
if (self::in_value($stateValue['country'], $countryIsoCodes) || self::in_value($stateValue['country'], $countryNames)) {
self::addToErrorMsg(ts('Country input value is in table but not "available": "This Country is valid but is NOT in the list of Available Countries currently configured for your site. This can be viewed and modifed from Administer > Localization > Languages Currency Locations." '), $errorMessage);
//.........这里部分代码省略.........
示例15: make_payment
/**
* @param array $params
*
* @return array|void
* @throws Exception
*/
public function make_payment(&$params)
{
$config = CRM_Core_Config::singleton();
if (isset($params["billing_state_province_id-{$this->_bltID}"]) && $params["billing_state_province_id-{$this->_bltID}"]) {
$params["billing_state_province-{$this->_bltID}"] = CRM_Core_PseudoConstant::stateProvinceAbbreviation($params["billing_state_province_id-{$this->_bltID}"]);
}
if (isset($params["billing_country_id-{$this->_bltID}"]) && $params["billing_country_id-{$this->_bltID}"]) {
$params["billing_country-{$this->_bltID}"] = CRM_Core_PseudoConstant::countryIsoCode($params["billing_country_id-{$this->_bltID}"]);
}
$params['ip_address'] = CRM_Utils_System::ipAddress();
$params['currencyID'] = $config->defaultCurrency;
$params['payment_action'] = 'Sale';
$payment =& CRM_Core_Payment::singleton($this->_mode, $this->_paymentProcessor, $this);
CRM_Core_Payment_Form::mapParams($this->_bltID, $params, $params, TRUE);
$params['month'] = $params['credit_card_exp_date']['M'];
$params['year'] = $params['credit_card_exp_date']['Y'];
$result =& $payment->doDirectPayment($params);
if (is_a($result, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($result);
CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/event/cart_checkout', "_qf_Payment_display=1&qfKey={$this->controller->_key}", TRUE, NULL, FALSE));
return NULL;
} elseif (!$result['trxn_id']) {
CRM_Core_Error::fatal(ts("Financial institution didn't return a transaction id."));
}
$trxnDetails = array('trxn_id' => $result['trxn_id'], 'trxn_date' => $result['now'], 'currency' => CRM_Utils_Array::value('currencyID', $result));
return $trxnDetails;
}