From bff5b627fd60605552d651fd8478e673e64d12fb Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 3 Sep 2024 12:57:41 +1000 Subject: [PATCH] Set most recent payment method as default --- .../ClientPortal/PaymentMethodController.php | 12 +++++++++++- app/PaymentDrivers/BaseDriver.php | 2 +- app/Repositories/BaseRepository.php | 2 +- .../EDocument/Gateway/Storecove/Storecove.php | 9 +++++---- app/Services/EDocument/Standards/Peppol.php | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/ClientPortal/PaymentMethodController.php b/app/Http/Controllers/ClientPortal/PaymentMethodController.php index f85d9dbc9483..c8fe14d10d08 100644 --- a/app/Http/Controllers/ClientPortal/PaymentMethodController.php +++ b/app/Http/Controllers/ClientPortal/PaymentMethodController.php @@ -132,7 +132,7 @@ class PaymentMethodController extends Controller public function destroy(ClientGatewayToken $payment_method) { /** @var \App\Models\ClientContact auth()->user() **/ - $client_contact = auth()->user(); + $client_contact = auth()->guard('contact')->user(); if ($payment_method->gateway()->exists()) { $payment_method->gateway @@ -145,9 +145,19 @@ class PaymentMethodController extends Controller event(new MethodDeleted($payment_method, auth()->guard('contact')->user()->company, Ninja::eventVars(auth()->guard('contact')->user()->id))); $payment_method->is_deleted = true; + $payment_method->is_default = false; $payment_method->delete(); $payment_method->save(); + + $def_cgt = auth()->guard('contact')->user()->client->gateway_tokens()->orderBy('id','desc')->first(); + + if($def_cgt) + { + $def_cgt->is_default = true; + $def_cgt->save(); + } + } catch (Exception $e) { nlog($e->getMessage()); diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index 9849f842fdde..680d6ddfda12 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -515,7 +515,7 @@ class BaseDriver extends AbstractPaymentDriver $cgt->save(); - if ($this->client->gateway_tokens->count() == 1) { + if ($this->client->gateway_tokens->count() > 1) { $this->client->gateway_tokens()->update(['is_default' => 0]); } diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 54b43d130ee5..f75f151e5b71 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -326,7 +326,7 @@ class BaseRepository try{ $model->service()->getEInvoice(); } - catch(\Exception $e){ + catch(\Throwable $e){ nlog("EXCEPTION:: BASEREPOSITORY:: Error generating e_invoice for model {$model->id}"); nlog($e->getMessage()); } diff --git a/app/Services/EDocument/Gateway/Storecove/Storecove.php b/app/Services/EDocument/Gateway/Storecove/Storecove.php index d362eea22f26..a42a82c8f1fa 100644 --- a/app/Services/EDocument/Gateway/Storecove/Storecove.php +++ b/app/Services/EDocument/Gateway/Storecove/Storecove.php @@ -348,10 +348,11 @@ class Storecove private function httpClient(string $uri, string $verb, array $data, ?array $headers = []) { - try { - $r = Http::withToken(config('ninja.storecove_api_key')) - ->withHeaders($this->getHeaders($headers)) - ->{$verb}("{$this->base_url}{$uri}", $data)->throw(); + $r = Http::withToken(config('ninja.storecove_api_key')); + + try { + $r->withHeaders($this->getHeaders($headers)) + ->{$verb}("{$this->base_url}{$uri}", $data)->throw(); } catch (ClientException $e) { // 4xx errors diff --git a/app/Services/EDocument/Standards/Peppol.php b/app/Services/EDocument/Standards/Peppol.php index b6a10dfc17fa..9dc097707ea8 100644 --- a/app/Services/EDocument/Standards/Peppol.php +++ b/app/Services/EDocument/Standards/Peppol.php @@ -1278,7 +1278,7 @@ class Peppol extends AbstractService private function checkRequired(bool $required, string $section): self { - return $required ? throw new \Exception("e-invoice generation halted:: {$section} required") : $this; + return $required ? throw new \Exception("e-invoice generation halted:: {$section} required", 400) : $this; }