* @created 2022-07-27 14:24:05 * @modified 2022-07-27 14:24:05 */ namespace Beike\Shop\Services\TotalServices; use Beike\Shop\Services\CheckoutService; use Beike\Admin\Repositories\TaxRateRepo; class TaxService { /** * @param CheckoutService $checkout * @return array|null */ public static function getTotal(CheckoutService $checkout): ?array { $totalService = $checkout->totalService; $taxEnabled = system_setting('base.tax', false); if (!$taxEnabled) { return null; } $taxes = $totalService->taxes; $totalItems = []; foreach ($taxes as $taxRateId => $value) { if ($value <= 0) { continue; } $totalItems[] = array( 'code' => 'tax', 'title' => TaxRateRepo::getNameByRateId($taxRateId), 'amount' => $value, 'amount_format' => currency_format($value) ); $totalService->amount += $value; } $totalService->totals = array_merge($totalService->totals, $totalItems); return $totalItems; } }