X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FBatch%2FForm%2FEntry.php;h=9baf89a4fd65cfbf1fbbb738fb050d2782c01507;hb=61767a1d73296c1b3d986070bee26982169fca66;hp=ec48e66409a10a2228663069eb7c70eba07078c5;hpb=e32e663dddae93274cc28fd0539e48a98edbe8df;p=civicrm-core.git diff --git a/CRM/Batch/Form/Entry.php b/CRM/Batch/Form/Entry.php index ec48e66409..9baf89a4fd 100755 --- a/CRM/Batch/Form/Entry.php +++ b/CRM/Batch/Form/Entry.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.6 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2014 | + | Copyright CiviCRM LLC (c) 2004-2015 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -28,7 +28,7 @@ /** * * @package CRM - * @copyright CiviCRM LLC (c) 2004-2014 + * @copyright CiviCRM LLC (c) 2004-2015 * $Id$ * */ @@ -64,7 +64,6 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { public $_params; - public $_membershipId = NULL; /** * When not to reset sort_name. */ @@ -280,8 +279,25 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { public static function formRule($params, $files, $self) { $errors = array(); $batchTypes = CRM_Core_Pseudoconstant::get('CRM_Batch_DAO_Batch', 'type_id', array('flip' => 1), 'validate'); + $fields = array( + 'total_amount' => 'Amount', + 'financial_type' => 'Financial Type', + 'payment_instrument' => 'Paid By', + ); + + //CRM-16480 if contact is selected, validate financial type and amount field. + foreach ($params['field'] as $key => $value) { + foreach ($fields as $field => $label) { + if (!empty($params['primary_contact_id'][$key]) && empty($value[$field])) { + $errors["field[$key][$field]"] = ts('%1 is a required field.', array(1 => $label)); + } + } + } if (!empty($params['_qf_Entry_upload_force'])) { + if (!empty($errors)) { + return $errors; + } return TRUE; } @@ -306,15 +322,17 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { } if ($self->_batchInfo['type_id'] == $batchTypes['Pledge Payment']) { foreach (array_unique($params["open_pledges"]) as $value) { - $duplicateRows = array_keys($params["open_pledges"], $value); - if (count($duplicateRows) > 1) { + if (!empty($value)) { + $duplicateRows = array_keys($params["open_pledges"], $value); + } + if (!empty($duplicateRows) && count($duplicateRows) > 1) { foreach ($duplicateRows as $key) { $errors["open_pledges[$key]"] = ts('You can not record two payments for the same pledge in a single batch.'); } } } } - if ($batchTotal != $self->_batchInfo['total']) { + if ((string) $batchTotal != $self->_batchInfo['total']) { $self->assign('batchAmountMismatch', TRUE); $errors['_qf_defaults'] = ts('Total for amounts entered below does not match the expected batch total.'); } @@ -463,7 +481,6 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { } $value['custom'] = CRM_Core_BAO_CustomField::postProcess($value, - CRM_Core_DAO::$_nullObject, NULL, 'Contribution' ); @@ -674,7 +691,6 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { //check for custom data $value['custom'] = CRM_Core_BAO_CustomField::postProcess($params['field'][$key], - $customFields, $key, 'Membership', $membershipTypeId @@ -770,13 +786,23 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form { $value['is_renew'] = FALSE; if (!empty($params['member_option']) && CRM_Utils_Array::value($key, $params['member_option']) == 2) { + + // The following parameter setting may be obsolete. $this->_params = $params; $value['is_renew'] = TRUE; - $membership = CRM_Member_BAO_Membership::renewMembershipFormWrapper( - $value['contact_id'], - $value['membership_type_id'], - FALSE, $this, NULL, NULL, - $value['custom'] + $isPayLater = CRM_Utils_Array::value('is_pay_later', $params); + $campaignId = NULL; + if (isset($this->_values) && is_array($this->_values) && !empty($this->_values)) { + $campaignId = CRM_Utils_Array::value('campaign_id', $this->_params); + if (!array_key_exists('campaign_id', $this->_params)) { + $campaignId = CRM_Utils_Array::value('campaign_id', $this->_values); + } + } + + list($membership) = CRM_Member_BAO_Membership::renewMembership( + $value['contact_id'], $value['membership_type_id'], FALSE, + NULL, NULL, $value['custom'], NULL, NULL, FALSE, + NULL, NULL, $isPayLater, $campaignId ); // make contribution entry