From 827e0fe377a268d7d696e1c6f3a55e7a477789e4 Mon Sep 17 00:00:00 2001 From: Constantin Graf Date: Sun, 13 Apr 2025 23:37:57 +0200 Subject: [PATCH] Fixes for invoice feature --- app/Http/Controllers/Api/V1/MemberController.php | 2 ++ app/Providers/JetstreamServiceProvider.php | 6 ++++++ app/Service/LocalizationService.php | 11 +++++++++++ 3 files changed, 19 insertions(+) diff --git a/app/Http/Controllers/Api/V1/MemberController.php b/app/Http/Controllers/Api/V1/MemberController.php index 3460ddcc..9a8e8876 100644 --- a/app/Http/Controllers/Api/V1/MemberController.php +++ b/app/Http/Controllers/Api/V1/MemberController.php @@ -136,6 +136,8 @@ class MemberController extends Controller } /** + * Merge one member into another + * * @throws AuthorizationException * @throws OnlyPlaceholdersCanBeMergedIntoAnotherMember * @throws \Throwable diff --git a/app/Providers/JetstreamServiceProvider.php b/app/Providers/JetstreamServiceProvider.php index 08d47da4..4cc09c4a 100644 --- a/app/Providers/JetstreamServiceProvider.php +++ b/app/Providers/JetstreamServiceProvider.php @@ -138,6 +138,8 @@ class JetstreamServiceProvider extends ServiceProvider 'invoices:update', 'invoices:download', 'invoices:delete', + 'invoice-settings:view', + 'invoice-settings:update', ])->description('Owner users can perform any action. There is only one owner per organization.'); Jetstream::role(Role::Admin->value, 'Administrator', [ @@ -195,6 +197,8 @@ class JetstreamServiceProvider extends ServiceProvider 'invoices:update', 'invoices:download', 'invoices:delete', + 'invoice-settings:view', + 'invoice-settings:update', ])->description('Administrator users can perform any action, except accessing the billing dashboard.'); Jetstream::role(Role::Manager->value, 'Manager', [ @@ -242,6 +246,8 @@ class JetstreamServiceProvider extends ServiceProvider 'invoices:update', 'invoices:download', 'invoices:delete', + 'invoice-settings:view', + 'invoice-settings:update', ])->description('Managers have full access to all projects, time entries, ect. but cannot manage the organization (add/remove member, edit the organization, ect.).'); Jetstream::role(Role::Employee->value, 'Employee', [ diff --git a/app/Service/LocalizationService.php b/app/Service/LocalizationService.php index e8964513..c39efc60 100644 --- a/app/Service/LocalizationService.php +++ b/app/Service/LocalizationService.php @@ -64,6 +64,17 @@ class LocalizationService } } + public function formatNumberWithoutTrailingZeros(BigDecimal|float $number): string + { + $number = $this->formatNumber($number); + + $number = rtrim($number, '0'); + $number = rtrim($number, '.'); + $number = rtrim($number, ','); + + return $number; + } + public function formatInterval(CarbonInterval $interval): string { if ($this->intervalFormat === IntervalFormat::Decimal) {