From 293e7cbb61d1559e0c58d35e78505bdc104989bd Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 2 Aug 2016 13:40:20 +0300 Subject: [PATCH] Support saving credit card and paypal tokens for the same client --- .../PaymentDrivers/BasePaymentDriver.php | 20 +++++++++---------- resources/lang/en/texts.php | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/Ninja/PaymentDrivers/BasePaymentDriver.php b/app/Ninja/PaymentDrivers/BasePaymentDriver.php index 1508b6f3b77d..87eae2684e11 100644 --- a/app/Ninja/PaymentDrivers/BasePaymentDriver.php +++ b/app/Ninja/PaymentDrivers/BasePaymentDriver.php @@ -507,15 +507,6 @@ class BasePaymentDriver $customer->save(); } - // archive the old payment method - $paymentMethod = PaymentMethod::clientId($this->client()->id) - ->isBankAccount($this->isGatewayType(GATEWAY_TYPE_BANK_TRANSFER)) - ->first(); - - if ($paymentMethod) { - $paymentMethod->delete(); - } - $paymentMethod = $this->createPaymentMethod($customer); if ($paymentMethod) { @@ -540,6 +531,15 @@ class BasePaymentDriver $paymentMethod->setRelation('account_gateway_token', $customer); $paymentMethod = $this->creatingPaymentMethod($paymentMethod); + // archive the old payment method + $oldPaymentMethod = PaymentMethod::clientId($this->client()->id) + ->wherePaymentTypeId($paymentMethod->payment_type_id) + ->first(); + + if ($oldPaymentMethod) { + $oldPaymentMethod->delete(); + } + if ($paymentMethod) { $paymentMethod->save(); } @@ -758,7 +758,7 @@ class BasePaymentDriver } elseif ($paymentMethod->payment_type_id == PAYMENT_TYPE_PAYPAL) { $label = 'PayPal: ' . $paymentMethod->email; } else { - $label = trans('texts.use_card_on_file'); + $label = trans('texts.payment_type_on_file', ['type' => $paymentMethod->payment_type->name]); } $links[] = [ diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 230ceb74ca52..439889307b22 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2050,6 +2050,7 @@ $LANG = array( 'no_client_selected' => 'Please select a client', 'gateway_config_error' => 'It may help to set new passwords or generate new API keys.', + 'payment_type_on_file' => ':type on file', );