Updates, added rounding to fix float comparisons
This commit is contained in:
parent
a915aa5401
commit
cd2466d969
|
|
@ -111,7 +111,7 @@ class EventOrdersController extends MyBaseController
|
|||
$order = Order::scope()->findOrFail($order_id);
|
||||
$refund_order = (Input::get('refund_order') === 'on') ? true : false;
|
||||
$refund_type = Input::get('refund_type');
|
||||
$refund_amount = Input::get('refund_amount');
|
||||
$refund_amount = round(floatval(Input::get('refund_amount')), 2);
|
||||
$attendees = Input::get('attendees');
|
||||
$error_message = false;
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ class EventOrdersController extends MyBaseController
|
|||
$error_message = 'This order has already been refunded';
|
||||
} elseif ($order->organiser_amount == 0) {
|
||||
$error_message = 'Nothing to refund';
|
||||
} elseif ($refund_amount > ($order->organiser_amount - $order->amount_refunded)) {
|
||||
} elseif ($refund_type !== 'full' && $refund_amount > round(($order->organiser_amount - $order->amount_refunded), 2)) {
|
||||
$error_message = 'The maximum amount you can refund is '.(money($order->organiser_amount - $order->amount_refunded, $order->event->currency->code));
|
||||
}
|
||||
if (!$error_message) {
|
||||
|
|
@ -137,8 +137,6 @@ class EventOrdersController extends MyBaseController
|
|||
|
||||
if ($refund_type === 'full') { /* Full refund */
|
||||
$refund_amount = $order->organiser_amount - $order->amount_refunded;
|
||||
} else { /* Partial refund */
|
||||
$refund_amount = floatval($refund_amount);
|
||||
}
|
||||
|
||||
$request = $gateway->refund([
|
||||
|
|
@ -152,6 +150,7 @@ class EventOrdersController extends MyBaseController
|
|||
if ($response->isSuccessful()) {
|
||||
/* Update the event sales volume*/
|
||||
$order->event->decrement('sales_volume', $refund_amount);
|
||||
$order->amount_refunded = round(($order->amount_refunded + $refund_amount), 2);
|
||||
|
||||
if (($order->organiser_amount - $order->amount_refunded) == 0) {
|
||||
$order->is_refunded = 1;
|
||||
|
|
@ -160,14 +159,10 @@ class EventOrdersController extends MyBaseController
|
|||
$order->is_partially_refunded = 1;
|
||||
$order->order_status_id = config('attendize.order_partially_refunded');
|
||||
}
|
||||
|
||||
$order->amount_refunded = $order->organiser_amount;
|
||||
$order->order_status_id = config('attendize.order_refunded');
|
||||
} else {
|
||||
$error_message = $response->getMessage();
|
||||
}
|
||||
|
||||
$order->amount_refunded = round(($order->amount_refunded + $refund_amount), 2);
|
||||
$order->save();
|
||||
} catch (\Exeption $e) {
|
||||
Log::error($e);
|
||||
|
|
|
|||
Loading…
Reference in New Issue