Skip to content

Commit

Permalink
concretize job status for Beamter and Bundeswehr
Browse files Browse the repository at this point in the history
  • Loading branch information
SUnger22 committed Sep 4, 2024
1 parent 4d31597 commit 49c0936
Show file tree
Hide file tree
Showing 12 changed files with 433 additions and 4 deletions.
15 changes: 14 additions & 1 deletion src/Werte/Bedarf/Thema/Bedarfsthemen.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use Demv\Werte\AbstractProvider;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufLebenszeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufWiderruf;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufZeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAusschliesslichAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Selbststaendiger;
use Demv\Werte\Sparte\Sparten;
use ReflectionClass;
Expand Down Expand Up @@ -134,7 +137,17 @@ public function forTaetigkeit(?int $taetigkeitsId): array
$spartenIds = $this->getSpartenIds($sparten);

// remove Beamten Sparten, if not verbeamtet
if (!in_array($taetigkeitsId, [BeamterAufProbe::ID, BeamterAufLebenszeit::ID], true)) {
if (!in_array(
$taetigkeitsId,
[
BeamterAufProbe::ID,
BeamterAufLebenszeit::ID,
BeamterAusschliesslichAufProbe::ID,
BeamterAufWiderruf::ID,
BeamterAufZeit::ID,
],
true
)) {
$spartenIds = array_filter($spartenIds, static function ($id) {
return !in_array($id, [
Sparten\Privathaftpflicht::DIENSTHAFTPFLICHT,
Expand Down
52 changes: 52 additions & 0 deletions src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderruf.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Demv\Werte\Person\Taetigkeitsstatus\Status;

use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
use Demv\Werte\Value;

/**
* Class BeamterAufWiderruf
* @package Demv\Werte\Person\Taetigkeitsstatus\Status
*/
final class BeamterAufWiderruf extends Value implements TaetigkeitsstatusInterface
{
const ID = 29;

public function __construct()
{
parent::__construct(self::ID, 'Beamter auf Widerruf');
}

/**
* @inheritdoc
*/
public function isErwerbstaetig(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function isArbeitnehmer(): bool
{
return false;
}

/**
* @inheritdoc
*/
public function hasEntgeltfortzahlung(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasAnspruchGrv(): bool
{
return false;
}
}
52 changes: 52 additions & 0 deletions src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufZeit.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Demv\Werte\Person\Taetigkeitsstatus\Status;

use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
use Demv\Werte\Value;

/**
* Class BeamterAufZeit
* @package Demv\Werte\Person\Taetigkeitsstatus\Status
*/
final class BeamterAufZeit extends Value implements TaetigkeitsstatusInterface
{
const ID = 31;

public function __construct()
{
parent::__construct(self::ID, 'Beamter auf Zeit');
}

/**
* @inheritdoc
*/
public function isErwerbstaetig(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function isArbeitnehmer(): bool
{
return false;
}

/**
* @inheritdoc
*/
public function hasEntgeltfortzahlung(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasAnspruchGrv(): bool
{
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Demv\Werte\Person\Taetigkeitsstatus\Status;

use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
use Demv\Werte\Value;

/**
* Class BeamterAusschliesslichAufProbe
* @package Demv\Werte\Person\Taetigkeitsstatus\Status
*/
final class BeamterAusschliesslichAufProbe extends Value implements TaetigkeitsstatusInterface
{
const ID = 30;

public function __construct()
{
parent::__construct(self::ID, 'Beamter auf Probe');
}

/**
* @inheritdoc
*/
public function isErwerbstaetig(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function isArbeitnehmer(): bool
{
return false;
}

/**
* @inheritdoc
*/
public function hasEntgeltfortzahlung(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasAnspruchGrv(): bool
{
return false;
}
}
52 changes: 52 additions & 0 deletions src/Werte/Person/Taetigkeitsstatus/Status/Berufssoldat.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Demv\Werte\Person\Taetigkeitsstatus\Status;

use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
use Demv\Werte\Value;

/**
* Class Berufssoldat
* @package Demv\Werte\Person\Taetigkeitsstatus\Status
*/
final class Berufssoldat extends Value implements TaetigkeitsstatusInterface
{
const ID = 28;

public function __construct()
{
parent::__construct(self::ID, 'Berufssoldat');
}

/**
* @inheritdoc
*/
public function isErwerbstaetig(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function isArbeitnehmer(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasEntgeltfortzahlung(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasAnspruchGrv(): bool
{
return true;
}
}
52 changes: 52 additions & 0 deletions src/Werte/Person/Taetigkeitsstatus/Status/Zeitsoldat.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace Demv\Werte\Person\Taetigkeitsstatus\Status;

use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
use Demv\Werte\Value;

/**
* Class Zeitsoldat
* @package Demv\Werte\Person\Taetigkeitsstatus\Status
*/
final class Zeitsoldat extends Value implements TaetigkeitsstatusInterface
{
const ID = 27;

public function __construct()
{
parent::__construct(self::ID, 'Zeitsoldat');
}

/**
* @inheritdoc
*/
public function isErwerbstaetig(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function isArbeitnehmer(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasEntgeltfortzahlung(): bool
{
return true;
}

/**
* @inheritdoc
*/
public function hasAnspruchGrv(): bool
{
return true;
}
}
10 changes: 10 additions & 0 deletions src/Werte/Person/Taetigkeitsstatus/Taetigkeitsstatus.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
use Demv\Werte\Person\Taetigkeitsstatus\Status\Arbeitssuchend;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufLebenszeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufWiderruf;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufZeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAusschliesslichAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Berufsausbildung;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Berufssoldat;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Bundeswehr;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Elternzeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Erwerbsunfaehig;
Expand All @@ -23,6 +27,7 @@
use Demv\Werte\Person\Taetigkeitsstatus\Status\Sonstige;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Studium;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Vorstand;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Zeitsoldat;

/**
* Class Taetigkeitsstatus
Expand All @@ -36,6 +41,9 @@ public function __construct()
$this->appendMember(new Selbststaendiger());
$this->appendMember(new BeamterAufLebenszeit());
$this->appendMember(new BeamterAufProbe());
$this->appendMember(new BeamterAufZeit());
$this->appendMember(new BeamterAusschliesslichAufProbe());
$this->appendMember(new BeamterAufWiderruf());
$this->appendMember(new AngestellterOeffentlDienst());
$this->appendMember(new Vorstand());
$this->appendMember(new Schulausbildung());
Expand All @@ -51,6 +59,8 @@ public function __construct()
$this->appendMember(new GGFVersicherungsFrei());
$this->appendMember(new GGFVersicherungsPflichtig());
$this->appendMember(new Bundeswehr());
$this->appendMember(new Berufssoldat());
$this->appendMember(new Zeitsoldat());
}

/**
Expand Down
23 changes: 21 additions & 2 deletions tests/Werte/Bedarf/Thema/BedarfsthemenTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
use Demv\Werte\Bedarf\Thema\Themen;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufLebenszeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufWiderruf;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufZeit;
use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAusschliesslichAufProbe;
use Demv\Werte\Person\Taetigkeitsstatus\Status\Selbststaendiger;
use Demv\Werte\Person\Taetigkeitsstatus\Taetigkeitsstatus;
use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface;
Expand Down Expand Up @@ -285,7 +288,14 @@ public function testGetBedarfsthemenForVerbeamtet(): void
new Themen\Diensthaftpflicht(),
];

foreach ([BeamterAufLebenszeit::ID, BeamterAufProbe::ID] as $taetigkeit) {
foreach (
[
BeamterAufLebenszeit::ID,
BeamterAufProbe::ID,
BeamterAufWiderruf::ID,
BeamterAusschliesslichAufProbe::ID,
BeamterAufZeit::ID
] as $taetigkeit) {
$is = $this->getBedarfsthemen()->forTaetigkeit($taetigkeit);
$this->assertCount(count($should), $is);
foreach ($is as $thema) {
Expand Down Expand Up @@ -330,7 +340,16 @@ public function testGetBedarfsthemenForPerson(): void
];

$taetigkeiten = array_filter((new Taetigkeitsstatus())->getAll(), static function ($taetigkeit) {
return !in_array($taetigkeit::ID, [BeamterAufLebenszeit::ID, BeamterAufProbe::ID, Selbststaendiger::ID], true);
return !in_array(
$taetigkeit::ID,
[
BeamterAufLebenszeit::ID,
BeamterAufProbe::ID,
BeamterAufWiderruf::ID,
BeamterAusschliesslichAufProbe::ID,
BeamterAufZeit::ID,
Selbststaendiger::ID
], true);
});

foreach (array_merge([null], $taetigkeiten) as $taetigkeit) {
Expand Down
Loading

0 comments on commit 49c0936

Please sign in to comment.