CRM_Utils_System::setTitle($title);
return;
}
- $entityType = 'contribution';
if ($this->_component == 'event') {
- $entityType = 'participant';
$this->_contributionId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $this->_id, 'contribution_id', 'participant_id');
- $eventId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_id, 'event_id', 'id');
}
else {
$this->_contributionId = $this->_id;
}
$paymentDetails = CRM_Contribute_BAO_Contribution::getPaymentInfo($this->_id, $this->_component, FALSE, TRUE);
- $paymentAmt = CRM_Contribute_BAO_Contribution::getContributionBalance($this->_id);
+ $paymentAmt = CRM_Contribute_BAO_Contribution::getContributionBalance($this->_contributionId);
$this->_amtPaid = $paymentDetails['paid'];
$this->_amtTotal = $paymentDetails['total'];
$js = NULL;
// render backoffice payment fields only on offline mode
if (!$this->_mode) {
- $js = ['onclick' => "return verify( );"];
+ $js = ['onclick' => 'return verify( );'];
$this->add('select', 'payment_instrument_id',
ts('Payment Method'),
$attributes['fee_amount']
);
$this->addRule('fee_amount', ts('Please enter a valid monetary value for Fee Amount.'), 'money');
-
- $this->add('text', 'net_amount', ts('Net Amount'),
- $attributes['net_amount']
- );
- $this->addRule('net_amount', ts('Please enter a valid monetary value for Net Amount.'), 'money');
}
$buttonName = $this->_refund ? ts('Record Refund') : ts('Record Payment');
*/
public static function formRule($fields, $files, $self) {
$errors = [];
- if ($self->_paymentType == 'owed' && $fields['total_amount'] > $self->_owed) {
+ if ($self->_paymentType == 'owed' && (int) $fields['total_amount'] > (int) $self->_owed) {
$errors['total_amount'] = ts('Payment amount cannot be greater than owed amount');
}
if ($self->_paymentType == 'refund' && $fields['total_amount'] != abs($self->_refund)) {
$errors['total_amount'] = ts('Refund amount must equal refund due amount.');
}
- $netAmt = (float) $fields['total_amount'] - (float) CRM_Utils_Array::value('fee_amount', $fields, 0);
- if (!empty($fields['net_amount']) && $netAmt != $fields['net_amount']) {
- $errors['net_amount'] = ts('Net amount should be equal to the difference between payment amount and fee amount.');
- }
+
if ($self->_paymentProcessor['id'] === 0 && empty($fields['payment_instrument_id'])) {
$errors['payment_instrument_id'] = ts('Payment method is a required field');
}