From a5580cc650c1d8753192139b8935715d63ffdb63 Mon Sep 17 00:00:00 2001 From: Joshua Dwire Date: Wed, 14 Sep 2016 10:26:50 -0400 Subject: [PATCH] Allow max of 0 for payment limits --- app/Http/Controllers/AccountController.php | 6 +++--- app/Ninja/Datatables/AccountGatewayDatatable.php | 16 +++++++++------- app/Ninja/PaymentDrivers/BasePaymentDriver.php | 4 ++-- .../2016_09_05_150625_create_gateway_types.php | 4 ++-- resources/views/accounts/payments.blade.php | 6 +++--- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 501df2912044..911238291156 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -1243,10 +1243,10 @@ class AccountController extends BaseController $gateway_settings->gateway_type_id = $gateway_type_id; } - $gateway_settings->min_limit = Input::get('limit_min_enable') ? intval(Input::get('limit_min')) : 0; - $gateway_settings->max_limit = Input::get('limit_max_enable') ? intval(Input::get('limit_max')) : 0; + $gateway_settings->min_limit = Input::get('limit_min_enable') ? intval(Input::get('limit_min')) : null; + $gateway_settings->max_limit = Input::get('limit_max_enable') ? intval(Input::get('limit_max')) : null; - if ($gateway_settings->max_limit && $gateway_settings->min_limit > $gateway_settings->max_limit) { + if ($gateway_settings->max_limit !== null && $gateway_settings->min_limit > $gateway_settings->max_limit) { $gateway_settings->max_limit = $gateway_settings->min_limit; } diff --git a/app/Ninja/Datatables/AccountGatewayDatatable.php b/app/Ninja/Datatables/AccountGatewayDatatable.php index 700063e6575f..2116265c1061 100644 --- a/app/Ninja/Datatables/AccountGatewayDatatable.php +++ b/app/Ninja/Datatables/AccountGatewayDatatable.php @@ -77,14 +77,16 @@ class AccountGatewayDatatable extends EntityDatatable $limit_max_adjustment = $currency->precision ? floatval('.' . str_repeat('9', $currency->precision)) : 0; - if ($accountGatewaySettings && $accountGatewaySettings->min_limit && $accountGatewaySettings->max_limit) { + if ($accountGatewaySettings && $accountGatewaySettings->min_limit !== null && $accountGatewaySettings->max_limit !== null) { $html .= Utils::formatMoney($accountGatewaySettings->min_limit) . ' - ' . Utils::formatMoney($accountGatewaySettings->max_limit + $limit_max_adjustment); - } elseif ($accountGatewaySettings && $accountGatewaySettings->min_limit) { + } elseif ($accountGatewaySettings && $accountGatewaySettings->min_limit !== null) { $html .= trans('texts.min_limit', - array('min' => Utils::formatMoney($accountGatewaySettings->min_limit))); - } elseif ($accountGatewaySettings && $accountGatewaySettings->max_limit) { + array('min' => Utils::formatMoney($accountGatewaySettings->min_limit)) + ); + } elseif ($accountGatewaySettings && $accountGatewaySettings->max_limit !== null) { $html .= trans('texts.max_limit', - array('max' => Utils::formatMoney($accountGatewaySettings->max_limit + $limit_max_adjustment))); + array('max' => Utils::formatMoney($accountGatewaySettings->max_limit + $limit_max_adjustment)) + ); } else { $html .= trans('texts.no_limit'); } @@ -153,8 +155,8 @@ class AccountGatewayDatatable extends EntityDatatable function () use ($gatewayType) { $accountGatewaySettings = AccountGatewaySettings::scope()->where('account_gateway_settings.gateway_type_id', '=', $gatewayType->id)->first(); - $min = $accountGatewaySettings ? $accountGatewaySettings->min_limit : 0; - $max = $accountGatewaySettings ? $accountGatewaySettings->max_limit : 0; + $min = $accountGatewaySettings && $accountGatewaySettings->min_limit != null ? $accountGatewaySettings->min_limit : 'null'; + $max = $accountGatewaySettings && $accountGatewaySettings->max_limit != null ? $accountGatewaySettings->max_limit : 'null'; return "javascript:showLimitsModal('{$gatewayType->name}',{$gatewayType->id},$min,$max)"; }, diff --git a/app/Ninja/PaymentDrivers/BasePaymentDriver.php b/app/Ninja/PaymentDrivers/BasePaymentDriver.php index 1b473307d5d1..022c934eb206 100644 --- a/app/Ninja/PaymentDrivers/BasePaymentDriver.php +++ b/app/Ninja/PaymentDrivers/BasePaymentDriver.php @@ -822,11 +822,11 @@ class BasePaymentDriver if ($accountGatewaySettings) { $invoice = $this->invoice(); - if ($accountGatewaySettings->min_limit && $invoice->balance < $accountGatewaySettings->min_limit) { + if ($accountGatewaySettings->min_limit !== null && $invoice->balance < $accountGatewaySettings->min_limit) { return false; } - if ($accountGatewaySettings->max_limit && $invoice->balance >= $accountGatewaySettings->max_limit + 1) { + if ($accountGatewaySettings->max_limit !== null && $invoice->balance >= $accountGatewaySettings->max_limit + 1) { // The max is limit_max + 0.99, so we add 1 to max_limit // Then, if the balance is greater than or equal to that value, it's over the max. return false; diff --git a/database/migrations/2016_09_05_150625_create_gateway_types.php b/database/migrations/2016_09_05_150625_create_gateway_types.php index 2e41e3b34451..9fd159363bd5 100644 --- a/database/migrations/2016_09_05_150625_create_gateway_types.php +++ b/database/migrations/2016_09_05_150625_create_gateway_types.php @@ -32,8 +32,8 @@ class CreateGatewayTypes extends Migration $t->timestamp('updated_at')->nullable(); - $t->unsignedInteger('min_limit'); - $t->unsignedInteger('max_limit'); + $t->unsignedInteger('min_limit')->nullable(); + $t->unsignedInteger('max_limit')->nullable(); $t->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); $t->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); diff --git a/resources/views/accounts/payments.blade.php b/resources/views/accounts/payments.blade.php index ce80d26dc849..512a01c6bfa3 100644 --- a/resources/views/accounts/payments.blade.php +++ b/resources/views/accounts/payments.blade.php @@ -138,9 +138,9 @@ var modalLabel = {!! json_encode(trans('texts.set_limits')) !!}; $('#paymentLimitsModalLabel').text(modalLabel.replace(':gateway_type', gateway_type)); - limitsSlider.noUiSlider.set([min_limit, max_limit ? max_limit : 100000]); + limitsSlider.noUiSlider.set([min_limit !== null ? min_limit : 0, max_limit !== null ? max_limit : 100000]); - if (min_limit) { + if (min_limit !== null) { $('#payment-limit-min').removeAttr('disabled'); $('#payment-limit-min-enable').prop('checked', true); } else { @@ -148,7 +148,7 @@ $('#payment-limit-min-enable').prop('checked', false); } - if (max_limit) { + if (max_limit !== null) { $('#payment-limit-max').removeAttr('disabled'); $('#payment-limit-max-enable').prop('checked', true); } else {