Add ability to update billable rate of existing time entries

This commit is contained in:
Constantin Graf
2024-06-14 16:46:39 +02:00
committed by Gregor Vostrak
parent 7c26cee1ea
commit 2184b3c835
22 changed files with 1001 additions and 25 deletions

View File

@@ -23,16 +23,19 @@ class MemberUpdateRequest extends FormRequest
public function rules(): array
{
return [
'role' => [
'string',
// TODO: placeholder role should not be allowed
Rule::enum(Role::class),
],
'billable_rate' => [
'nullable',
'integer',
'min:0',
],
'role' => [
'required',
'billable_rate_update_time_entries' => [
'string',
// TODO: placeholder role should not be allowed
Rule::enum(Role::class),
'in:true,false',
],
];
}
@@ -43,4 +46,10 @@ class MemberUpdateRequest extends FormRequest
return $input !== null && $input !== 0 ? (int) $this->input('billable_rate') : null;
}
public function getBillableRateUpdateTimeEntries(): bool
{
return $this->has('billable_rate_update_time_entries') &&
$this->input('billable_rate_update_time_entries') === 'true';
}
}

View File

@@ -31,6 +31,10 @@ class OrganizationUpdateRequest extends FormRequest
'integer',
'min:0',
],
'billable_rate_update_time_entries' => [
'string',
'in:true,false',
],
];
}
@@ -40,4 +44,10 @@ class OrganizationUpdateRequest extends FormRequest
return $input !== null && $input !== 0 ? (int) $this->input('billable_rate') : null;
}
public function getBillableRateUpdateTimeEntries(): bool
{
return $this->has('billable_rate_update_time_entries') &&
$this->input('billable_rate_update_time_entries') === 'true';
}
}

View File

@@ -41,11 +41,6 @@ class ProjectUpdateRequest extends FormRequest
'required',
'boolean',
],
'billable_rate' => [
'nullable',
'integer',
'min:0',
],
'client_id' => [
'nullable',
new ExistsEloquent(Client::class, null, function (Builder $builder): Builder {
@@ -53,6 +48,15 @@ class ProjectUpdateRequest extends FormRequest
return $builder->whereBelongsTo($this->organization, 'organization');
}),
],
'billable_rate' => [
'nullable',
'integer',
'min:0',
],
'billable_rate_update_time_entries' => [
'string',
'in:true,false',
],
];
}
@@ -62,4 +66,10 @@ class ProjectUpdateRequest extends FormRequest
return $input !== null && $input !== 0 ? (int) $this->input('billable_rate') : null;
}
public function getBillableRateUpdateTimeEntries(): bool
{
return $this->has('billable_rate_update_time_entries') &&
$this->input('billable_rate_update_time_entries') === 'true';
}
}

View File

@@ -26,6 +26,10 @@ class ProjectMemberUpdateRequest extends FormRequest
'integer',
'min:0',
],
'billable_rate_update_time_entries' => [
'string',
'in:true,false',
],
];
}
@@ -35,4 +39,10 @@ class ProjectMemberUpdateRequest extends FormRequest
return $input !== null && $input !== 0 ? (int) $this->input('billable_rate') : null;
}
public function getBillableRateUpdateTimeEntries(): bool
{
return $this->has('billable_rate_update_time_entries') &&
$this->input('billable_rate_update_time_entries') === 'true';
}
}