Fixed endOfWeek bug

This commit is contained in:
Constantin Graf
2024-05-30 19:51:49 +02:00
committed by Constantin Graf
parent 474c0de3ac
commit 802d9558a3
3 changed files with 25 additions and 22 deletions

View File

@@ -11,6 +11,7 @@ use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
class TagResource extends Resource
@@ -58,7 +59,9 @@ class TagResource extends Resource
])
->defaultSort('created_at', 'desc')
->filters([
//
SelectFilter::make('organization')
->relationship('organization', 'name')
->searchable(),
])
->actions([
Tables\Actions\EditAction::make(),

View File

@@ -122,7 +122,7 @@ class DashboardService
{
return $builder->whereBetween('start', [
Carbon::now($timeZone)->startOfWeek($startOfWeek->carbonWeekDay())->utc(),
Carbon::now($timeZone)->endOfWeek($startOfWeek->carbonWeekDay())->utc(),
Carbon::now($timeZone)->endOfWeek($startOfWeek->toEndOfWeek()->carbonWeekDay())->utc(),
]);
}

View File

@@ -273,38 +273,38 @@ class DashboardServiceTest extends TestCase
$project2 = Project::factory()->forOrganization($organization)->create();
$timeEntry1Project1 = TimeEntry::factory()->forMember($member)->forOrganization($organization)->forProject($project1)->create([
// Note: At the start of the week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry2Project1 = TimeEntry::factory()->forMember($member)->forOrganization($organization)->forProject($project1)->create([
// Note: At the end of the week
'start' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->utc(),
'end' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry1Project2 = TimeEntry::factory()->forMember($member)->forOrganization($organization)->forProject($project2)->create([
// Note: At the start of the week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry2Project2 = TimeEntry::factory()->forMember($member)->forOrganization($organization)->forProject($project2)->create([
// Note: At the end of the week
'start' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->utc(),
'end' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry1WithoutProject = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: At the start of the week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry2WithoutProject = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: At the end of the week
'start' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->utc(),
'end' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry1WithoutProjectOutsideOfWeek = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: Outside of week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->subSecond()->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(39)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->subSecond()->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(39)->utc(),
]);
// Act
@@ -347,18 +347,18 @@ class DashboardServiceTest extends TestCase
$member = Member::factory()->forUser($user)->forOrganization($organization)->create();
$timeEntry1WithoutProject = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: At the start of the week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry2WithoutProject = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: At the end of the week
'start' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->utc(),
'end' => $now->endOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(40)->utc(),
'start' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->utc(),
'end' => $now->endOfWeek($user->week_start->toEndOfWeek()->carbonWeekDay())->addSeconds(40)->utc(),
]);
$timeEntry1WithoutProjectOutsideOfWeek = TimeEntry::factory()->forMember($member)->forOrganization($organization)->create([
// Note: Outside of week
'start' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->subSecond()->utc(),
'end' => $now->startOfWeek(Weekday::Sunday->carbonWeekDay())->addSeconds(39)->utc(),
'start' => $now->startOfWeek($user->week_start->carbonWeekDay())->subSecond()->utc(),
'end' => $now->startOfWeek($user->week_start->carbonWeekDay())->addSeconds(39)->utc(),
]);
// Act