/**
  * update registration REG_paid field after successful payment and link registration with payment
  *
  * @param EE_Registration $registration
  * @param EE_Payment $payment
  * @param float $available_payment_amount
  * @return float
  * @throws \EE_Error
  */
 public function process_registration_payment(EE_Registration $registration, EE_Payment $payment, $available_payment_amount = 0.0)
 {
     $owing = $registration->final_price() - $registration->paid();
     if ($owing > 0) {
         // don't allow payment amount to exceed the available payment amount, OR the amount owing
         $payment_amount = min($available_payment_amount, $owing);
         // update $available_payment_amount
         $available_payment_amount -= $payment_amount;
         //calculate and set new REG_paid
         $registration->set_paid($registration->paid() + $payment_amount);
         // now save it
         $this->_apply_registration_payment($registration, $payment, $payment_amount);
     }
     return $available_payment_amount;
 }
 /**
  * column_PRC_amount
  *
  * @access public
  * @param \EE_Registration $item
  * @return string
  */
 function column_PRC_amount(EE_Registration $item)
 {
     $ticket = $item->ticket();
     $content = isset($_GET['event_id']) && $ticket instanceof EE_Ticket ? '<span class="TKT_name">' . $ticket->name() . '</span><br />' : '';
     if ($item->final_price() > 0) {
         $content .= '<span class="reg-pad-rght">' . $item->pretty_final_price() . '</span>';
     } else {
         // free event
         $content .= '<span class="reg-overview-free-event-spn reg-pad-rght">' . __('free', 'event_espresso') . '</span>';
     }
     return $content;
 }