invoiceninja/app/Models/AccountGatewayToken.php

63 lines
1.7 KiB
PHP
Raw Normal View History

2015-03-18 09:39:03 +10:00
<?php namespace App\Models;
2015-03-17 07:45:25 +10:00
2015-04-13 22:43:51 +03:00
use Eloquent;
2015-03-31 12:38:24 +03:00
use Illuminate\Database\Eloquent\SoftDeletes;
2015-03-17 07:45:25 +10:00
class AccountGatewayToken extends Eloquent
{
2015-03-31 12:38:24 +03:00
use SoftDeletes;
protected $dates = ['deleted_at'];
2015-03-17 07:45:25 +10:00
public $timestamps = true;
2016-05-10 18:46:32 -04:00
2016-06-20 17:14:43 +03:00
protected $casts = [];
2016-05-10 18:46:32 -04:00
public function payment_methods()
{
return $this->hasMany('App\Models\PaymentMethod');
}
2016-06-20 17:14:43 +03:00
public function account_gateway()
{
return $this->belongsTo('App\Models\AccountGateway');
}
2016-05-10 18:46:32 -04:00
public function default_payment_method()
{
return $this->hasOne('App\Models\PaymentMethod', 'id', 'default_payment_method_id');
}
2016-06-20 17:14:43 +03:00
public function autoBillLater()
{
return $this->default_payment_method->requiresDelayedAutoBill();
}
public function scopeClientAndGateway($query, $clientId, $accountGatewayId)
{
$query->where('client_id', '=', $clientId)
->where('account_gateway_id', '=', $accountGatewayId);
return $query;
}
public function gatewayName()
{
return $this->account_gateway->gateway->name;
}
public function gatewayLink()
{
$accountGateway = $this->account_gateway;
if ($accountGateway->gateway_id == GATEWAY_STRIPE) {
return "https://dashboard.stripe.com/customers/{$this->token}";
} elseif ($accountGateway->gateway_id == GATEWAY_BRAINTREE) {
$merchantId = $accountGateway->getConfig()->merchantId;
$testMode = $accountGateway->getConfig()->testMode;
return $testMode ? "https://sandbox.braintreegateway.com/merchants/{$merchantId}/customers/{$this->token}" : "https://www.braintreegateway.com/merchants/{$merchantId}/customers/{$this->token}";
} else {
return false;
}
}
}