mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-27 23:04:43 +00:00
- refactored PricingResource
- get_tax_rates added into StripeService.php
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Resources;
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use App\Services\StripeService;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
use Laravel\Cashier\Cashier;
|
use Laravel\Cashier\Cashier;
|
||||||
|
|
||||||
@@ -26,43 +27,9 @@ class PricingResource extends JsonResource
|
|||||||
'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']),
|
'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']),
|
||||||
'capacity' => (int)$this['product']['metadata']['capacity'],
|
'capacity' => (int)$this['product']['metadata']['capacity'],
|
||||||
'currency' => config('cashier.currency'),
|
'currency' => config('cashier.currency'),
|
||||||
'tax_rates' => $this->get_tax_rates(),
|
'tax_rates' => resolve(StripeService::class)->get_tax_rates($this['plan']['amount'])
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get plan tax rates
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function get_tax_rates(): array
|
|
||||||
{
|
|
||||||
$stripe = resolve('App\Services\StripeService');
|
|
||||||
|
|
||||||
$rates_public = [];
|
|
||||||
|
|
||||||
// Get tax rates
|
|
||||||
$rates = $stripe->getTaxRates();
|
|
||||||
|
|
||||||
foreach ($rates as $rate) {
|
|
||||||
|
|
||||||
// Continue when is not active
|
|
||||||
if (!$rate['active']) continue;
|
|
||||||
|
|
||||||
// Calculate tax
|
|
||||||
$tax = $this['plan']['amount'] * ($rate['percentage'] / 100);
|
|
||||||
|
|
||||||
array_push($rates_public, [
|
|
||||||
'id' => $rate['id'],
|
|
||||||
'active' => $rate['active'],
|
|
||||||
'jurisdiction' => $rate['jurisdiction'],
|
|
||||||
'percentage' => $rate['percentage'],
|
|
||||||
'plan_price_formatted' => Cashier::formatAmount(round($this['plan']['amount'] + $tax)),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $rates_public;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@ use App\Models\User;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Laravel\Cashier\Cashier;
|
||||||
use Laravel\Cashier\Exceptions\IncompletePayment;
|
use Laravel\Cashier\Exceptions\IncompletePayment;
|
||||||
use Laravel\Cashier\Exceptions\PaymentActionRequired;
|
use Laravel\Cashier\Exceptions\PaymentActionRequired;
|
||||||
use Stripe;
|
use Stripe;
|
||||||
@@ -48,6 +49,36 @@ class StripeService
|
|||||||
->all()['data'];
|
->all()['data'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get plan tax rates
|
||||||
|
*
|
||||||
|
* @param $amount
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_tax_rates($amount): array
|
||||||
|
{
|
||||||
|
$rates_public = [];
|
||||||
|
|
||||||
|
foreach ($this->getTaxRates() as $rate) {
|
||||||
|
|
||||||
|
// Continue when is not active
|
||||||
|
if (!$rate['active']) continue;
|
||||||
|
|
||||||
|
// Calculate tax
|
||||||
|
$tax = $amount * ($rate['percentage'] / 100);
|
||||||
|
|
||||||
|
array_push($rates_public, [
|
||||||
|
'id' => $rate['id'],
|
||||||
|
'active' => $rate['active'],
|
||||||
|
'jurisdiction' => $rate['jurisdiction'],
|
||||||
|
'percentage' => $rate['percentage'],
|
||||||
|
'plan_price_formatted' => Cashier::formatAmount(round($amount + $tax)),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rates_public;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get default payment option or set new default payment
|
* Get default payment option or set new default payment
|
||||||
*
|
*
|
||||||
|
|||||||
+1
-1
@@ -73,7 +73,7 @@
|
|||||||
animation: spinner 5s linear infinite;
|
animation: spinner 5s linear infinite;
|
||||||
|
|
||||||
circle, path {
|
circle, path {
|
||||||
stroke: $theme;
|
color: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user