#120 - wip
This commit is contained in:
parent
cc981b02b4
commit
4158e88634
@ -18,6 +18,7 @@ enum VacationType: string
|
||||
case TimeInLieu = "time_in_lieu";
|
||||
case Sick = "sick_vacation";
|
||||
case Absence = "absence";
|
||||
case HomeOffice = "home_office";
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
|
@ -15,6 +15,7 @@ class VacationTypeConfigRetriever
|
||||
public const KEY_BILLABLE = "billable";
|
||||
public const KEY_HAS_LIMIT = "has_limit";
|
||||
public const KEY_AVAILABLE_FOR = "available_for";
|
||||
public const KEY_IS_VACATION = "is_vacation";
|
||||
|
||||
public function __construct(
|
||||
protected Repository $config,
|
||||
@ -40,6 +41,11 @@ class VacationTypeConfigRetriever
|
||||
return $this->getConfigFor($type)[static::KEY_HAS_LIMIT];
|
||||
}
|
||||
|
||||
public function isVacation(VacationType $type): bool
|
||||
{
|
||||
return $this->getConfigFor($type)[static::KEY_IS_VACATION];
|
||||
}
|
||||
|
||||
public function isAvailableFor(VacationType $type, EmploymentForm $employmentForm): bool
|
||||
{
|
||||
return in_array($employmentForm, $this->getConfigFor($type)[static::KEY_AVAILABLE_FOR], true);
|
||||
|
@ -35,7 +35,8 @@ class TimesheetController extends Controller
|
||||
|
||||
$types = VacationType::all()
|
||||
->filter(
|
||||
fn(VacationType $type) => $configRetriever->isAvailableFor($type, EmploymentForm::EmploymentContract),
|
||||
fn(VacationType $type) => $configRetriever->isAvailableFor($type, EmploymentForm::EmploymentContract)
|
||||
&& $configRetriever->isVacation($type),
|
||||
);
|
||||
|
||||
$filename = "{$carbonMonth->translatedFormat("F Y")}.xlsx";
|
||||
|
@ -11,7 +11,7 @@ use Toby\Eloquent\Helpers\YearPeriodRetriever;
|
||||
use Toby\Eloquent\Models\VacationLimit;
|
||||
use Toby\Eloquent\Models\YearPeriod;
|
||||
use Toby\Infrastructure\Http\Requests\VacationLimitRequest;
|
||||
use Toby\Infrastructure\Http\Resources\SimpleUserResource;
|
||||
use Toby\Infrastructure\Http\Resources\UserResource;
|
||||
|
||||
class VacationLimitController extends Controller
|
||||
{
|
||||
@ -32,7 +32,7 @@ class VacationLimitController extends Controller
|
||||
|
||||
$limitsResource = $limits->map(fn(VacationLimit $limit) => [
|
||||
"id" => $limit->id,
|
||||
"user" => new SimpleUserResource($limit->user),
|
||||
"user" => new UserResource($limit->user),
|
||||
"hasVacation" => $limit->hasVacation(),
|
||||
"days" => $limit->days,
|
||||
"remainingLastYear" => $previousYearPeriod
|
||||
|
@ -15,6 +15,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::OnRequest->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -42,6 +43,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Unpaid->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -51,6 +53,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Special->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -60,6 +63,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Childcare->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -69,6 +73,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Training->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -79,6 +84,7 @@ return [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
VacationType::Volunteering->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
VacationTypeConfigRetriever::KEY_ADMINISTRATIVE_APPROVAL => true,
|
||||
@ -87,6 +93,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Volunteering->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -96,6 +103,7 @@ return [
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::Absence->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => true,
|
||||
@ -107,5 +115,19 @@ return [
|
||||
EmploymentForm::B2bContract,
|
||||
EmploymentForm::BoardMemberContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => true,
|
||||
],
|
||||
VacationType::HomeOffice->value => [
|
||||
VacationTypeConfigRetriever::KEY_TECHNICAL_APPROVAL => false,
|
||||
VacationTypeConfigRetriever::KEY_ADMINISTRATIVE_APPROVAL => false,
|
||||
VacationTypeConfigRetriever::KEY_BILLABLE => true,
|
||||
VacationTypeConfigRetriever::KEY_HAS_LIMIT => false,
|
||||
VacationTypeConfigRetriever::KEY_AVAILABLE_FOR => [
|
||||
EmploymentForm::EmploymentContract,
|
||||
EmploymentForm::CommissionContract,
|
||||
EmploymentForm::B2bContract,
|
||||
EmploymentForm::BoardMemberContract,
|
||||
],
|
||||
VacationTypeConfigRetriever::KEY_IS_VACATION => false,
|
||||
],
|
||||
];
|
||||
|
@ -16,7 +16,7 @@
|
||||
</div>
|
||||
<div class="py-2 space-y-1">
|
||||
<dt class="text-sm font-medium text-gray-500">
|
||||
Rodzaj urlopu
|
||||
Rodzaj wniosku
|
||||
</dt>
|
||||
<dd class="mt-1 text-sm text-gray-900">
|
||||
<VacationType :type="vacation.type" />
|
||||
|
@ -15,6 +15,7 @@
|
||||
"time_in_lieu": "Odbiór za święto",
|
||||
"sick_vacation": "Zwolnienie lekarskie",
|
||||
"absence": "Nieobecność",
|
||||
"home_office": "Biuro w domu",
|
||||
"employee": "Pracownik",
|
||||
"administrator": "Administrator",
|
||||
"technical_approver": "Techniczny akceptujący",
|
||||
|
Loading…
x
Reference in New Issue
Block a user