/** * update registration REG_paid field after refund and link registration with payment * * @param EE_Registration $registration * @param EE_Payment $payment * @param float $available_refund_amount - IMPORTANT !!! SEND AVAILABLE REFUND AMOUNT AS A POSITIVE NUMBER * @return float * @throws \EE_Error */ public function process_registration_refund(EE_Registration $registration, EE_Payment $payment, $available_refund_amount = 0.0) { //EEH_Debug_Tools::printr( $payment->amount(), '$payment->amount()', __FILE__, __LINE__ ); if ($registration->paid() > 0) { // ensure $available_refund_amount is NOT negative $available_refund_amount = (double) abs($available_refund_amount); // don't allow refund amount to exceed the available payment amount, OR the amount paid $refund_amount = min($available_refund_amount, (double) $registration->paid()); // update $available_payment_amount $available_refund_amount -= $refund_amount; //calculate and set new REG_paid $registration->set_paid($registration->paid() - $refund_amount); // convert payment amount back to a negative value for storage in the db $refund_amount = (double) abs($refund_amount) * -1; // now save it $this->_apply_registration_payment($registration, $payment, $refund_amount); } return $available_refund_amount; }
/** * column__REG_paid * * @access public * @param \EE_Registration $item * @return string */ function column__REG_paid(EE_Registration $item) { $payment_method = $item->payment_method(); $payment_method_name = $payment_method instanceof EE_Payment_Method ? $payment_method->admin_name() : __('Unknown', 'event_espresso'); $content = '<span class="reg-pad-rght">' . $item->pretty_paid() . '</span>'; if ($item->paid() > 0) { $content .= '<br><span class="ee-status-text-small">' . sprintf(__('...via %s', 'event_espresso'), $payment_method_name) . '</span>'; } return $content; }