mirror of
https://github.com/Karaka-Management/oms-HumanResourceTimeRecording.git
synced 2026-02-16 04:38:41 +00:00
Test fixes
This commit is contained in:
parent
1e0a52edad
commit
4822b1f20c
|
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
# Structure
|
|
||||||
|
|
||||||
## ER
|
|
||||||
|
|
||||||

|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
},
|
},
|
||||||
"creator": {
|
"creator": {
|
||||||
"name": "Jingga",
|
"name": "Jingga",
|
||||||
"website": "jingga.app"
|
"website": "https://jingga.app"
|
||||||
},
|
},
|
||||||
"directory": "HumanResourceTimeRecording",
|
"directory": "HumanResourceTimeRecording",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user