mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Minor changes for GoCardless
This commit is contained in:
parent
f5e582f75b
commit
9ca10fadb3
@ -666,7 +666,7 @@ class Client extends BaseModel implements HasLocalePreference
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->country && $this->country->iso_3166_3 == 'GBR' && in_array(GatewayType::DIRECT_DEBIT, array_column($pms, 'gateway_type_id'))) {
|
if (in_array(GatewayType::DIRECT_DEBIT, array_column($pms, 'gateway_type_id'))) {
|
||||||
foreach ($pms as $pm) {
|
foreach ($pms as $pm) {
|
||||||
if ($pm['gateway_type_id'] == GatewayType::DIRECT_DEBIT) {
|
if ($pm['gateway_type_id'] == GatewayType::DIRECT_DEBIT) {
|
||||||
$cg = CompanyGateway::find($pm['company_gateway_id']);
|
$cg = CompanyGateway::find($pm['company_gateway_id']);
|
||||||
@ -691,7 +691,7 @@ class Client extends BaseModel implements HasLocalePreference
|
|||||||
return GatewayType::SEPA;
|
return GatewayType::SEPA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->currency()->code == 'GBP') {
|
if (in_array($this->currency()->code, ['EUR', 'GBP','DKK','SEK','AUD','NZD','USD'])) {
|
||||||
return GatewayType::DIRECT_DEBIT;
|
return GatewayType::DIRECT_DEBIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,17 +42,17 @@ class ClientPresenter extends EntityPresenter
|
|||||||
|
|
||||||
public function first_name()
|
public function first_name()
|
||||||
{
|
{
|
||||||
return $this->entity->primary_contact->first() !== null ? $this->entity->primary_contact->first()->first_name : $this->entity->contacts()->first()->first_name;
|
return $this->entity->primary_contact()->first()?->first_name ?: ($this->entity->contacts()->first()->first_name ?: '');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function last_name()
|
public function last_name()
|
||||||
{
|
{
|
||||||
return $this->entity->primary_contact->first() !== null ? $this->entity->primary_contact->first()->last_name : $this->entity->contacts()->first()->last_name;
|
return $this->entity->primary_contact()->first()?->last_name ?: ($this->entity->contacts()->first()->last_name ?: '');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function primary_contact_name()
|
public function primary_contact_name()
|
||||||
{
|
{
|
||||||
return $this->entity->primary_contact->first() !== null ? $this->entity->primary_contact->first()->first_name.' '.$this->entity->primary_contact->first()->last_name : 'No primary contact set';
|
return $this->entity?->primary_contact()?->first() ? $this->entity->primary_contact()->first()->first_name.' '.$this->entity->primary_contact()->first()->last_name : 'No primary contact set';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function email()
|
public function email()
|
||||||
|
@ -67,6 +67,7 @@ class DirectDebit implements MethodInterface
|
|||||||
'address_line1' => auth()->guard('contact')->user()->client->address1 ?: '',
|
'address_line1' => auth()->guard('contact')->user()->client->address1 ?: '',
|
||||||
'city' => auth()->guard('contact')->user()->client->city ?: '',
|
'city' => auth()->guard('contact')->user()->client->city ?: '',
|
||||||
'postal_code' => auth()->guard('contact')->user()->client->postal_code ?: '',
|
'postal_code' => auth()->guard('contact')->user()->client->postal_code ?: '',
|
||||||
|
'country_code' => auth()->guard('contact')->user()->client->country->iso_3166_2,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
@ -124,7 +125,7 @@ class DirectDebit implements MethodInterface
|
|||||||
$data = [
|
$data = [
|
||||||
'payment_meta' => $payment_meta,
|
'payment_meta' => $payment_meta,
|
||||||
'token' => $redirect_flow->links->mandate,
|
'token' => $redirect_flow->links->mandate,
|
||||||
'payment_method_id' => GatewayType::DIRECT_DEBIT,
|
'payment_method_id' => $this->resolveScheme($redirect_flow->scheme),
|
||||||
];
|
];
|
||||||
|
|
||||||
$payment_method = $this->go_cardless->storeGatewayToken($data, ['gateway_customer_reference' => $redirect_flow->links->customer]);
|
$payment_method = $this->go_cardless->storeGatewayToken($data, ['gateway_customer_reference' => $redirect_flow->links->customer]);
|
||||||
@ -135,6 +136,17 @@ class DirectDebit implements MethodInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function resolveScheme(string $scheme): int
|
||||||
|
{
|
||||||
|
match($scheme){
|
||||||
|
'sepa_core' => $type = GatewayType::SEPA,
|
||||||
|
default => $type = GatewayType::DIRECT_DEBIT,
|
||||||
|
};
|
||||||
|
|
||||||
|
return $type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Payment view for Direct Debit.
|
* Payment view for Direct Debit.
|
||||||
*
|
*
|
||||||
|
@ -62,12 +62,12 @@ class SEPA implements MethodInterface
|
|||||||
'session_token' => $session_token,
|
'session_token' => $session_token,
|
||||||
]),
|
]),
|
||||||
'prefilled_customer' => [
|
'prefilled_customer' => [
|
||||||
'given_name' => auth()->guard('contact')->user()->first_name,
|
'given_name' => auth()->guard('contact')->user()->client->present()->first_name(),
|
||||||
'family_name' => auth()->guard('contact')->user()->last_name,
|
'family_name' => auth()->guard('contact')->user()->client->present()->last_name(),
|
||||||
'email' => auth()->guard('contact')->user()->email,
|
'email' => auth()->guard('contact')->user()->client->present()->email(),
|
||||||
'address_line1' => auth()->guard('contact')->user()->client->address1,
|
'address_line1' => auth()->guard('contact')->user()->client->address1 ?: '',
|
||||||
'city' => auth()->guard('contact')->user()->client->city,
|
'city' => auth()->guard('contact')->user()->client->city ?: '',
|
||||||
'postal_code' => auth()->guard('contact')->user()->client->postal_code,
|
'postal_code' => auth()->guard('contact')->user()->client->postal_code ?: '',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
@ -78,12 +78,13 @@ class GoCardlessPaymentDriver extends BaseDriver
|
|||||||
if (
|
if (
|
||||||
$this->client
|
$this->client
|
||||||
&& isset($this->client->country)
|
&& isset($this->client->country)
|
||||||
&& in_array($this->client->country->iso_3166_3, ['GBR'])
|
// && in_array($this->client->country->iso_3166_3, ['GBR'])
|
||||||
|
&& in_array($this->client->currency()->code, ['EUR', 'GBP','DKK','SEK','AUD','NZD','USD'])
|
||||||
) {
|
) {
|
||||||
$types[] = GatewayType::DIRECT_DEBIT;
|
$types[] = GatewayType::DIRECT_DEBIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($this->client->currency()->code, ['EUR'])) {
|
if (in_array($this->client->currency()->code, ['EUR', 'GBP'])) {
|
||||||
$types[] = GatewayType::SEPA;
|
$types[] = GatewayType::SEPA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ class PaymentMethod
|
|||||||
'gateway_type_id' => GatewayType::CREDIT,
|
'gateway_type_id' => GatewayType::CREDIT,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user