Test fixes
Some checks failed
Image optimization / general_image_workflow (push) Has been cancelled
CI / general_module_workflow_php (push) Has been cancelled
CI / general_module_workflow_js (push) Has been cancelled

This commit is contained in:
Dennis Eichhorn 2024-05-16 02:14:54 +00:00
parent 1e0a52edad
commit 4822b1f20c
11 changed files with 42 additions and 50 deletions

View File

@ -72,11 +72,11 @@ final class ApiClockingTypeController extends Controller
*/ */
private function createClockingTypeFromRequest(RequestAbstract $request) : ClockingType private function createClockingTypeFromRequest(RequestAbstract $request) : ClockingType
{ {
$clockingType = new ClockingType($request->getDataString('name') ?? ''); $clockingType = new ClockingType($request->getDataString('name') ?? '');
$clockingType->isWork = $request->getDataBool('is_work') ?? false; $clockingType->isWork = $request->getDataBool('is_work') ?? false;
$clockingType->customFutureTimeAllowed = $request->getDataBool('custom_future_time_allowed') ?? false; $clockingType->customFutureTimeAllowed = $request->getDataBool('custom_future_time_allowed') ?? false;
$clockingType->customPastTimeAllowed = $request->getDataBool('custom_past_time_allowed') ?? false; $clockingType->customPastTimeAllowed = $request->getDataBool('custom_past_time_allowed') ?? false;
$clockingType->correctionAllowed = $request->getDataBool('correction_allowed') ?? false; $clockingType->correctionAllowed = $request->getDataBool('correction_allowed') ?? false;
$clockingType->setL11n( $clockingType->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('title') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
@ -207,7 +207,7 @@ final class ApiClockingTypeController extends Controller
* Method to update ClockingType from request. * Method to update ClockingType from request.
* *
* @param RequestAbstract $request Request * @param RequestAbstract $request Request
* @param ClockingType $new Model to modify * @param ClockingType $new Model to modify
* *
* @return ClockingType * @return ClockingType
* *

View File

@ -14,11 +14,9 @@ declare(strict_types=1);
namespace Modules\HumanResourceTimeRecording\Controller; namespace Modules\HumanResourceTimeRecording\Controller;
use Modules\Admin\Models\AccountMapper;
use Modules\Admin\Models\NullAccount; use Modules\Admin\Models\NullAccount;
use Modules\HumanResourceManagement\Models\EmployeeMapper; use Modules\HumanResourceManagement\Models\EmployeeMapper;
use Modules\HumanResourceTimeRecording\Models\ClockingStatus; use Modules\HumanResourceTimeRecording\Models\ClockingStatus;
use Modules\HumanResourceTimeRecording\Models\ClockingType;
use Modules\HumanResourceTimeRecording\Models\NullClockingType; use Modules\HumanResourceTimeRecording\Models\NullClockingType;
use Modules\HumanResourceTimeRecording\Models\PermissionCategory; use Modules\HumanResourceTimeRecording\Models\PermissionCategory;
use Modules\HumanResourceTimeRecording\Models\Session; use Modules\HumanResourceTimeRecording\Models\Session;

View File

@ -1,5 +0,0 @@
# Structure
## ER
![ER](Modules/HumanResourceTimeRecording/Docs/Dev/img/er.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -14,7 +14,6 @@ declare(strict_types=1);
namespace Modules\HumanResourceTimeRecording\Models; namespace Modules\HumanResourceTimeRecording\Models;
use Modules\Media\Models\Collection;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
use phpOMS\Localization\ISO639x1Enum; use phpOMS\Localization\ISO639x1Enum;

View File

@ -4,7 +4,7 @@
* *
* PHP Version 8.2 * PHP Version 8.2
* *
* @package Modules\HumanResourceTimerecording\Models * @package Modules\HumanResourceTimeRecording\Models
* @copyright Dennis Eichhorn * @copyright Dennis Eichhorn
* @license OMS License 2.0 * @license OMS License 2.0
* @version 1.0.0 * @version 1.0.0
@ -12,7 +12,7 @@
*/ */
declare(strict_types=1); declare(strict_types=1);
namespace Modules\HumanResourceTimerecording\Models; namespace Modules\HumanResourceTimeRecording\Models;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
/** /**
* Clocking type l11n mapper class. * Clocking type l11n mapper class.
* *
* @package Modules\HumanResourceTimerecording\Models * @package Modules\HumanResourceTimeRecording\Models
* @license OMS License 2.0 * @license OMS License 2.0
* @link https://jingga.app * @link https://jingga.app
* @since 1.0.0 * @since 1.0.0

View File

@ -36,12 +36,12 @@ final class ClockingTypeMapper extends DataMapperFactory
* @since 1.0.0 * @since 1.0.0
*/ */
public const COLUMNS = [ public const COLUMNS = [
'hr_timerecording_type_id' => ['name' => 'hr_timerecording_type_id', 'type' => 'int', 'internal' => 'id'], 'hr_timerecording_type_id' => ['name' => 'hr_timerecording_type_id', 'type' => 'int', 'internal' => 'id'],
'hr_timerecording_type_name' => ['name' => 'hr_timerecording_type_name', 'type' => 'string', 'internal' => 'name'], 'hr_timerecording_type_name' => ['name' => 'hr_timerecording_type_name', 'type' => 'string', 'internal' => 'name'],
'hr_timerecording_type_custom_future' => ['name' => 'hr_timerecording_type_custom_future', 'type' => 'bool', 'internal' => 'customFutureTimeAllowed'], 'hr_timerecording_type_custom_future' => ['name' => 'hr_timerecording_type_custom_future', 'type' => 'bool', 'internal' => 'customFutureTimeAllowed'],
'hr_timerecording_type_custom_past' => ['name' => 'hr_timerecording_type_custom_past', 'type' => 'bool', 'internal' => 'customPastTimeAllowed'], 'hr_timerecording_type_custom_past' => ['name' => 'hr_timerecording_type_custom_past', 'type' => 'bool', 'internal' => 'customPastTimeAllowed'],
'hr_timerecording_type_correction' => ['name' => 'hr_timerecording_type_correction', 'type' => 'bool', 'internal' => 'correctionAllowed'], 'hr_timerecording_type_correction' => ['name' => 'hr_timerecording_type_correction', 'type' => 'bool', 'internal' => 'correctionAllowed'],
'hr_timerecording_type_work' => ['name' => 'hr_timerecording_type_work', 'type' => 'bool', 'internal' => 'isWork'], 'hr_timerecording_type_work' => ['name' => 'hr_timerecording_type_work', 'type' => 'bool', 'internal' => 'isWork'],
]; ];
/** /**

View File

@ -66,7 +66,7 @@ class Session implements \JsonSerializable
/** /**
* Session type. * Session type.
* *
* @var int * @var ClockingType
* @since 1.0.0 * @since 1.0.0
*/ */
public ClockingType $type; public ClockingType $type;
@ -154,7 +154,7 @@ class Session implements \JsonSerializable
&& ($e->status === ClockingStatus::PAUSE || $e->status === ClockingStatus::END) && ($e->status === ClockingStatus::PAUSE || $e->status === ClockingStatus::END)
) { ) {
$busyTime += $e->datetime->getTimestamp() - $lastStart->getTimestamp(); $busyTime += $e->datetime->getTimestamp() - $lastStart->getTimestamp();
$state = 0; $state = 0;
} }
} }

View File

@ -12,7 +12,7 @@
}, },
"creator": { "creator": {
"name": "Jingga", "name": "Jingga",
"website": "jingga.app" "website": "https://jingga.app"
}, },
"directory": "HumanResourceTimeRecording", "directory": "HumanResourceTimeRecording",
"dependencies": { "dependencies": {

View File

@ -31,9 +31,9 @@ final class SessionMapperTest extends \PHPUnit\Framework\TestCase
{ {
$session = new Session(new NullAccount(1)); $session = new Session(new NullAccount(1));
$dt = new \DateTime(\date('Y-m-d', \strtotime('now')) . ' 7:55:34'); $dt = new \DateTime(\date('Y-m-d', \strtotime('now')) . ' 7:55:34');
$element = new SessionElement($session, $dt); $element = new SessionElement($session, $dt);
$element->status = ClockingStatus::START; $element->status = ClockingStatus::START;
$session->sessionElements[] = $element; $session->sessionElements[] = $element;
$id = SessionMapper::create()->execute($session); $id = SessionMapper::create()->execute($session);

View File

@ -51,16 +51,16 @@ final class SessionTest extends \PHPUnit\Framework\TestCase
#[\PHPUnit\Framework\Attributes\Group('module')] #[\PHPUnit\Framework\Attributes\Group('module')]
public function testStatusInputOutput() : void public function testStatusInputOutput() : void
{ {
$element = new SessionElement(null, new \DateTime('2021-10-05')); $element = new SessionElement(null, new \DateTime('2021-10-05'));
$element->status = ClockingStatus::START; $element->status = ClockingStatus::START;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-06')); $element = new SessionElement(null, new \DateTime('2021-10-06'));
$element->status = ClockingStatus::PAUSE; $element->status = ClockingStatus::PAUSE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-07')); $element = new SessionElement(null, new \DateTime('2021-10-07'));
$element->status = ClockingStatus::CONTINUE; $element->status = ClockingStatus::CONTINUE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$this->session->recalculate(); $this->session->recalculate();
@ -71,38 +71,38 @@ final class SessionTest extends \PHPUnit\Framework\TestCase
#[\PHPUnit\Framework\Attributes\Group('module')] #[\PHPUnit\Framework\Attributes\Group('module')]
public function testBusyBreakInputOutput() : void public function testBusyBreakInputOutput() : void
{ {
$element = new SessionElement(null, new \DateTime('2021-10-05 02:00:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 02:00:00'));
$element->status = ClockingStatus::START; $element->status = ClockingStatus::START;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
// this is ignored because the session is already started // this is ignored because the session is already started
$element = new SessionElement(null, new \DateTime('2021-10-05 03:00:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 03:00:00'));
$element->status = ClockingStatus::START; $element->status = ClockingStatus::START;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-05 04:00:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 04:00:00'));
$element->status = ClockingStatus::PAUSE; $element->status = ClockingStatus::PAUSE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-05 04:30:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 04:30:00'));
$element->status = ClockingStatus::CONTINUE; $element->status = ClockingStatus::CONTINUE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-05 07:00:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 07:00:00'));
$element->status = ClockingStatus::PAUSE; $element->status = ClockingStatus::PAUSE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-05 08:30:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 08:30:00'));
$element->status = ClockingStatus::CONTINUE; $element->status = ClockingStatus::CONTINUE;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$element = new SessionElement(null, new \DateTime('2021-10-05 11:00:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 11:00:00'));
$element->status = ClockingStatus::END; $element->status = ClockingStatus::END;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
// this is ignored because the session is already stopped // this is ignored because the session is already stopped
$element = new SessionElement(null, new \DateTime('2021-10-05 11:30:00')); $element = new SessionElement(null, new \DateTime('2021-10-05 11:30:00'));
$element->status = ClockingStatus::END; $element->status = ClockingStatus::END;
$this->session->sessionElements[] = $element; $this->session->sessionElements[] = $element;
$this->session->recalculate(); $this->session->recalculate();