mirror of
https://github.com/Karaka-Management/oms-HumanResourceTimeRecording.git
synced 2026-02-14 11:48:40 +00:00
new datamapper mostly implemented
This commit is contained in:
parent
a30b919239
commit
155311f8de
|
|
@ -31,7 +31,7 @@ use phpOMS\DataStorage\Cookie\CookieJar;
|
||||||
use phpOMS\DataStorage\Database\Connection\ConnectionAbstract;
|
use phpOMS\DataStorage\Database\Connection\ConnectionAbstract;
|
||||||
use phpOMS\DataStorage\Database\DatabasePool;
|
use phpOMS\DataStorage\Database\DatabasePool;
|
||||||
use phpOMS\DataStorage\Database\DatabaseStatus;
|
use phpOMS\DataStorage\Database\DatabaseStatus;
|
||||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
use phpOMS\DataStorage\Session\HttpSession;
|
use phpOMS\DataStorage\Session\HttpSession;
|
||||||
use phpOMS\Dispatcher\Dispatcher;
|
use phpOMS\Dispatcher\Dispatcher;
|
||||||
use phpOMS\Event\EventManager;
|
use phpOMS\Event\EventManager;
|
||||||
|
|
@ -159,13 +159,13 @@ final class Application
|
||||||
|
|
||||||
/** @var ConnectionAbstract $con */
|
/** @var ConnectionAbstract $con */
|
||||||
$con = $this->app->dbPool->get();
|
$con = $this->app->dbPool->get();
|
||||||
DataMapperAbstract::setConnection($con);
|
DataMapperFactory::db($con);
|
||||||
|
|
||||||
$this->app->cachePool = new CachePool();
|
$this->app->cachePool = new CachePool();
|
||||||
$this->app->appSettings = new CoreSettings();
|
$this->app->appSettings = new CoreSettings();
|
||||||
$this->app->eventManager = new EventManager($this->app->dispatcher);
|
$this->app->eventManager = new EventManager($this->app->dispatcher);
|
||||||
$this->app->accountManager = new AccountManager($this->app->sessionManager);
|
$this->app->accountManager = new AccountManager($this->app->sessionManager);
|
||||||
$this->app->l11nServer = LocalizationMapper::get(1);
|
$this->app->l11nServer = LocalizationMapper::get()->where('id', 1)->execute();
|
||||||
|
|
||||||
$this->app->orgId = $this->getApplicationOrganization($request, $this->config);
|
$this->app->orgId = $this->getApplicationOrganization($request, $this->config);
|
||||||
$pageView->setData('orgId', $this->app->orgId);
|
$pageView->setData('orgId', $this->app->orgId);
|
||||||
|
|
@ -435,8 +435,8 @@ final class Application
|
||||||
*/
|
*/
|
||||||
private function createDefaultPageView(HttpRequest $request, HttpResponse $response, TimerecordingView $pageView) : void
|
private function createDefaultPageView(HttpRequest $request, HttpResponse $response, TimerecordingView $pageView) : void
|
||||||
{
|
{
|
||||||
$pageView->setOrganizations(UnitMapper::getAll());
|
$pageView->setOrganizations(UnitMapper::getAll()->execute());
|
||||||
$pageView->setProfile(ProfileMapper::getFor($request->header->account, 'account'));
|
$pageView->setProfile(ProfileMapper::get()->where('account', $request->header->account)->execute());
|
||||||
$pageView->setData('nav', $this->getNavigation($request, $response));
|
$pageView->setData('nav', $this->getNavigation($request, $response));
|
||||||
|
|
||||||
$pageView->setTemplate('/Web/Timerecording/index');
|
$pageView->setTemplate('/Web/Timerecording/index');
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ final class ApiController extends Controller
|
||||||
{
|
{
|
||||||
$account = (int) ($request->getData('account') ?? $request->header->account);
|
$account = (int) ($request->getData('account') ?? $request->header->account);
|
||||||
|
|
||||||
$employee = EmployeeMapper::getFromAccount($account);
|
$employee = EmployeeMapper::getFromAccount($account)->limit(1)->execute();
|
||||||
$type = (int) ($request->getData('type') ?? ClockingType::OFFICE);
|
$type = (int) ($request->getData('type') ?? ClockingType::OFFICE);
|
||||||
$status = (int) ($request->getData('status') ?? ClockingStatus::START);
|
$status = (int) ($request->getData('status') ?? ClockingStatus::START);
|
||||||
|
|
||||||
|
|
@ -168,9 +168,9 @@ final class ApiController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($element->getStatus() === ClockingStatus::END) {
|
if ($element->getStatus() === ClockingStatus::END) {
|
||||||
$session = SessionMapper::get((int) $request->getData('session'));
|
$session = SessionMapper::get()->where('id', (int) $request->getData('session'))->execute();
|
||||||
$session->addSessionElement($element);
|
$session->addSessionElement($element);
|
||||||
SessionMapper::update($session, depth: 1);
|
SessionMapper::update()->execute($session);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->createModel($request->header->account, $element, SessionElementMapper::class, 'element', $request->getOrigin());
|
$this->createModel($request->header->account, $element, SessionElementMapper::class, 'element', $request->getOrigin());
|
||||||
|
|
@ -211,7 +211,7 @@ final class ApiController extends Controller
|
||||||
$account = (int) ($request->getData('account') ?? $request->header->account);
|
$account = (int) ($request->getData('account') ?? $request->header->account);
|
||||||
|
|
||||||
/** @var Session $session */
|
/** @var Session $session */
|
||||||
$session = SessionMapper::get((int) $request->getData('session'), RelationType::ALL, 6);
|
$session = SessionMapper::get()->where('id', (int) $request->getData('session'))->execute();
|
||||||
|
|
||||||
// cannot create session element for none existing session
|
// cannot create session element for none existing session
|
||||||
if ($session === null || $session instanceof NullSession) {
|
if ($session === null || $session instanceof NullSession) {
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-dashboard');
|
$view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-dashboard');
|
||||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response));
|
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response));
|
||||||
|
|
||||||
$employee = EmployeeMapper::getFromAccount($request->header->account)->getId();
|
$employee = EmployeeMapper::getFromAccount($request->header->account)->limit(1)->execute()->getId();
|
||||||
$lastOpenSession = SessionMapper::getMostPlausibleOpenSessionForEmployee($employee);
|
$lastOpenSession = SessionMapper::getMostPlausibleOpenSessionForEmployee($employee);
|
||||||
|
|
||||||
$start = new SmartDateTime('now');
|
$start = new SmartDateTime('now');
|
||||||
|
|
@ -103,7 +103,7 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-session');
|
$view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-session');
|
||||||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response));
|
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response));
|
||||||
|
|
||||||
$session = SessionMapper::get((int) $request->getData('id'));
|
$session = SessionMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
$employee = EmployeeMapper::getFromAccount($request->header->account)->getId();
|
$employee = EmployeeMapper::getFromAccount($request->header->account)->getId();
|
||||||
|
|
||||||
if ($session->getEmployee()->getId() !== $employee) {
|
if ($session->getEmployee()->getId() !== $employee) {
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\HumanResourceTimeRecording\Models;
|
namespace Modules\HumanResourceTimeRecording\Models;
|
||||||
|
|
||||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* Mapper class.
|
||||||
|
|
@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||||
* @link https://orange-management.org
|
* @link https://orange-management.org
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
final class SessionElementMapper extends DataMapperAbstract
|
final class SessionElementMapper extends DataMapperFactory
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Columns.
|
* Columns.
|
||||||
|
|
@ -32,7 +32,7 @@ final class SessionElementMapper extends DataMapperAbstract
|
||||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $columns = [
|
public const COLUMNS = [
|
||||||
'hr_timerecording_session_element_id' => ['name' => 'hr_timerecording_session_element_id', 'type' => 'int', 'internal' => 'id'],
|
'hr_timerecording_session_element_id' => ['name' => 'hr_timerecording_session_element_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
'hr_timerecording_session_element_status' => ['name' => 'hr_timerecording_session_element_status', 'type' => 'int', 'internal' => 'status'],
|
'hr_timerecording_session_element_status' => ['name' => 'hr_timerecording_session_element_status', 'type' => 'int', 'internal' => 'status'],
|
||||||
'hr_timerecording_session_element_dt' => ['name' => 'hr_timerecording_session_element_dt', 'type' => 'DateTime', 'internal' => 'datetime'],
|
'hr_timerecording_session_element_dt' => ['name' => 'hr_timerecording_session_element_dt', 'type' => 'DateTime', 'internal' => 'datetime'],
|
||||||
|
|
@ -45,7 +45,7 @@ final class SessionElementMapper extends DataMapperAbstract
|
||||||
* @var array<string, array{mapper:string, external:string}>
|
* @var array<string, array{mapper:string, external:string}>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $belongsTo = [
|
public const BELONGS_TO = [
|
||||||
'session' => [
|
'session' => [
|
||||||
'mapper' => SessionMapper::class,
|
'mapper' => SessionMapper::class,
|
||||||
'external' => 'hr_timerecording_session_element_session',
|
'external' => 'hr_timerecording_session_element_session',
|
||||||
|
|
@ -58,7 +58,7 @@ final class SessionElementMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static string $table = 'hr_timerecording_session_element';
|
public const TABLE = 'hr_timerecording_session_element';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary field name.
|
* Primary field name.
|
||||||
|
|
@ -66,5 +66,5 @@ final class SessionElementMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static string $primaryField = 'hr_timerecording_session_element_id';
|
public const PRIMARYFIELD ='hr_timerecording_session_element_id';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,8 @@ declare(strict_types=1);
|
||||||
namespace Modules\HumanResourceTimeRecording\Models;
|
namespace Modules\HumanResourceTimeRecording\Models;
|
||||||
|
|
||||||
use Modules\HumanResourceManagement\Models\EmployeeMapper;
|
use Modules\HumanResourceManagement\Models\EmployeeMapper;
|
||||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
use phpOMS\DataStorage\Database\Query\Builder;
|
use phpOMS\DataStorage\Database\Query\Builder;
|
||||||
use phpOMS\DataStorage\Database\RelationType;
|
|
||||||
use phpOMS\Stdlib\Base\SmartDateTime;
|
use phpOMS\Stdlib\Base\SmartDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -28,7 +27,7 @@ use phpOMS\Stdlib\Base\SmartDateTime;
|
||||||
* @link https://orange-management.org
|
* @link https://orange-management.org
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
final class SessionMapper extends DataMapperAbstract
|
final class SessionMapper extends DataMapperFactory
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Columns.
|
* Columns.
|
||||||
|
|
@ -36,7 +35,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $columns = [
|
public const COLUMNS = [
|
||||||
'hr_timerecording_session_id' => ['name' => 'hr_timerecording_session_id', 'type' => 'int', 'internal' => 'id'],
|
'hr_timerecording_session_id' => ['name' => 'hr_timerecording_session_id', 'type' => 'int', 'internal' => 'id'],
|
||||||
'hr_timerecording_session_type' => ['name' => 'hr_timerecording_session_type', 'type' => 'int', 'internal' => 'type'],
|
'hr_timerecording_session_type' => ['name' => 'hr_timerecording_session_type', 'type' => 'int', 'internal' => 'type'],
|
||||||
'hr_timerecording_session_start' => ['name' => 'hr_timerecording_session_start', 'type' => 'DateTime', 'internal' => 'start'],
|
'hr_timerecording_session_start' => ['name' => 'hr_timerecording_session_start', 'type' => 'DateTime', 'internal' => 'start'],
|
||||||
|
|
@ -51,7 +50,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
|
* @var array<string, array{mapper:string, table:string, self?:?string, external?:?string, column?:string}>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $hasMany = [
|
public const HAS_MANY = [
|
||||||
'sessionElements' => [
|
'sessionElements' => [
|
||||||
'mapper' => SessionElementMapper::class,
|
'mapper' => SessionElementMapper::class,
|
||||||
'table' => 'hr_timerecording_session_element',
|
'table' => 'hr_timerecording_session_element',
|
||||||
|
|
@ -66,7 +65,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var array<string, array{mapper:string, external:string}>
|
* @var array<string, array{mapper:string, external:string}>
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static array $belongsTo = [
|
public const BELONGS_TO = [
|
||||||
'employee' => [
|
'employee' => [
|
||||||
'mapper' => EmployeeMapper::class,
|
'mapper' => EmployeeMapper::class,
|
||||||
'external' => 'hr_timerecording_session_employee',
|
'external' => 'hr_timerecording_session_employee',
|
||||||
|
|
@ -79,7 +78,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static string $table = 'hr_timerecording_session';
|
public const TABLE = 'hr_timerecording_session';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary field name.
|
* Primary field name.
|
||||||
|
|
@ -87,7 +86,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static string $primaryField = 'hr_timerecording_session_id';
|
public const PRIMARYFIELD ='hr_timerecording_session_id';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created at column
|
* Created at column
|
||||||
|
|
@ -95,7 +94,7 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static string $createdAt = 'hr_timerecording_session_start';
|
public const CREATED_AT = 'hr_timerecording_session_start';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get last sessions from all employees
|
* Get last sessions from all employees
|
||||||
|
|
@ -111,18 +110,17 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
public static function getLastSessionsFromAllEmployees(\DateTime $dt = null) : array
|
public static function getLastSessionsFromAllEmployees(\DateTime $dt = null) : array
|
||||||
{
|
{
|
||||||
$join = new Builder(self::$db);
|
$join = new Builder(self::$db);
|
||||||
$join->select(self::$table . '.hr_timerecording_session_employee')
|
$join->select(self::TABLE . '.hr_timerecording_session_employee')
|
||||||
->selectAs('MAX(hr_timerecording_session_start)', 'maxDate')
|
->selectAs('MAX(hr_timerecording_session_start)', 'maxDate')
|
||||||
->from(self::$table)
|
->from(self::TABLE)
|
||||||
->groupBy(self::$table . '.hr_timerecording_session_employee');
|
->groupBy(self::TABLE . '.hr_timerecording_session_employee');
|
||||||
|
|
||||||
$depth = 3;
|
|
||||||
$query = self::getQuery();
|
$query = self::getQuery();
|
||||||
$query->innerJoin($join, 'tm')
|
$query->innerJoin($join, 'tm')
|
||||||
->on(self::$table . '_d' . $depth . '.hr_timerecording_session_employee', '=', 'tm.hr_timerecording_session_employee')
|
->on(self::TABLE . '_d1.hr_timerecording_session_employee', '=', 'tm.hr_timerecording_session_employee')
|
||||||
->andOn(self::$table . '_d' . $depth . '.hr_timerecording_session_start', '=', 'tm.maxDate');
|
->andOn(self::TABLE . '_d1.hr_timerecording_session_start', '=', 'tm.maxDate');
|
||||||
|
|
||||||
return self::getAllByQuery($query, RelationType::ALL, $depth);
|
return self::getAll()->execute($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -143,15 +141,14 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
$dt = new SmartDateTime('now');
|
$dt = new SmartDateTime('now');
|
||||||
$dt->smartModify(0, 0, -32);
|
$dt->smartModify(0, 0, -32);
|
||||||
|
|
||||||
$depth = 3;
|
|
||||||
$query = self::getQuery();
|
$query = self::getQuery();
|
||||||
$query->where(self::$table . '_d' . $depth . '.hr_timerecording_session_employee', '=', $employee)
|
$query->where(self::TABLE . '_d1.hr_timerecording_session_employee', '=', $employee)
|
||||||
->andWhere(self::$table . '_d' . $depth . '.hr_timerecording_session_start', '>', $dt)
|
->andWhere(self::TABLE . '_d1.hr_timerecording_session_start', '>', $dt)
|
||||||
->orderBy(self::$table . '_d' . $depth . '.hr_timerecording_session_start', 'DESC')
|
->orderBy(self::TABLE . '_d1.hr_timerecording_session_start', 'DESC')
|
||||||
->limit(1);
|
->limit(1);
|
||||||
|
|
||||||
/** @var Session[] $sessions */
|
/** @var Session[] $sessions */
|
||||||
$sessions = self::getAllByQuery($query, RelationType::ALL, $depth);
|
$sessions = self::getAll()->execute($query);
|
||||||
|
|
||||||
if (empty($sessions)) {
|
if (empty($sessions)) {
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -178,12 +175,11 @@ final class SessionMapper extends DataMapperAbstract
|
||||||
*/
|
*/
|
||||||
public static function getSessionListForEmployee(int $employee, \DateTime $start, int $offset = 0, int $limit = 50) : array
|
public static function getSessionListForEmployee(int $employee, \DateTime $start, int $offset = 0, int $limit = 50) : array
|
||||||
{
|
{
|
||||||
$depth = 3;
|
|
||||||
$query = new Builder(self::$db);
|
$query = new Builder(self::$db);
|
||||||
$query = self::getQuery($query)
|
$query = self::getQuery($query)
|
||||||
->where(self::$table . '_d' . $depth . '.hr_timerecording_session_employee', '=', $employee)
|
->where(self::TABLE . '_d1.hr_timerecording_session_employee', '=', $employee)
|
||||||
->andWhere(self::$table . '_d' . $depth . '.' . self::$createdAt, '<=', $start->format('Y-m-d H:i:s'))
|
->andWhere(self::TABLE . '_d1.' . self::CREATED_AT, '<=', $start->format('Y-m-d H:i:s'))
|
||||||
->orderBy(self::$table . '_d' . $depth . '.' . self::$createdAt, 'DESC')
|
->orderBy(self::TABLE . '_d1.' . self::CREATED_AT, 'DESC')
|
||||||
->offset($offset)
|
->offset($offset)
|
||||||
->limit($limit);
|
->limit($limit);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
|
||||||
require_once __DIR__ . '/Autoloader.php';
|
require_once __DIR__ . '/Autoloader.php';
|
||||||
|
|
||||||
use phpOMS\DataStorage\Database\DatabasePool;
|
use phpOMS\DataStorage\Database\DatabasePool;
|
||||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
use phpOMS\DataStorage\Session\HttpSession;
|
use phpOMS\DataStorage\Session\HttpSession;
|
||||||
|
|
||||||
$CONFIG = [
|
$CONFIG = [
|
||||||
|
|
@ -329,7 +329,7 @@ $GLOBALS['dbpool']->create('delete', $CONFIG['db']['core']['masters']['delete'])
|
||||||
$GLOBALS['dbpool']->create('insert', $CONFIG['db']['core']['masters']['insert']);
|
$GLOBALS['dbpool']->create('insert', $CONFIG['db']['core']['masters']['insert']);
|
||||||
$GLOBALS['dbpool']->create('schema', $CONFIG['db']['core']['masters']['schema']);
|
$GLOBALS['dbpool']->create('schema', $CONFIG['db']['core']['masters']['schema']);
|
||||||
|
|
||||||
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
|
DataMapperFactory::db($GLOBALS['dbpool']->get());
|
||||||
|
|
||||||
$GLOBALS['frameworkpath'] = '/phpOMS/';
|
$GLOBALS['frameworkpath'] = '/phpOMS/';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,11 @@ final class SessionElementMapperTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
$element = new SessionElement(new Session(new NullEmployee(1)), new \DateTime('now'));
|
$element = new SessionElement(new Session(new NullEmployee(1)), new \DateTime('now'));
|
||||||
|
|
||||||
$id = SessionElementMapper::create($element);
|
$id = SessionElementMapper::create()->execute($element);
|
||||||
self::assertGreaterThan(0, $element->getId());
|
self::assertGreaterThan(0, $element->getId());
|
||||||
self::assertEquals($id, $element->getId());
|
self::assertEquals($id, $element->getId());
|
||||||
|
|
||||||
$elementR = SessionElementMapper::get($element->getId());
|
$elementR = SessionElementMapper::get()->with('session')->with('employee')->where('id', $element->getId())->execute();
|
||||||
self::assertEquals($element->datetime->format('Y-m-d'), $elementR->datetime->format('Y-m-d'));
|
self::assertEquals($element->datetime->format('Y-m-d'), $elementR->datetime->format('Y-m-d'));
|
||||||
self::assertEquals($element->getStatus(), $elementR->getStatus());
|
self::assertEquals($element->getStatus(), $elementR->getStatus());
|
||||||
self::assertEquals($element->session->employee->getId(), $elementR->session->employee->getId());
|
self::assertEquals($element->session->employee->getId(), $elementR->session->employee->getId());
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,11 @@ final class SessionMapperTest extends \PHPUnit\Framework\TestCase
|
||||||
$element->setStatus(ClockingStatus::START);
|
$element->setStatus(ClockingStatus::START);
|
||||||
$session->addSessionElement($element);
|
$session->addSessionElement($element);
|
||||||
|
|
||||||
$id = SessionMapper::create($session);
|
$id = SessionMapper::create()->execute($session);
|
||||||
self::assertGreaterThan(0, $session->getId());
|
self::assertGreaterThan(0, $session->getId());
|
||||||
self::assertEquals($id, $session->getId());
|
self::assertEquals($id, $session->getId());
|
||||||
|
|
||||||
$sessionR = SessionMapper::get($session->getId());
|
$sessionR = SessionMapper::get()->where('id', $session->getId())->execute();
|
||||||
self::assertEquals($session->getType(), $sessionR->getType());
|
self::assertEquals($session->getType(), $sessionR->getType());
|
||||||
|
|
||||||
self::assertGreaterThan(0, \count(SessionMapper::getLastSessionsFromAllEmployees()));
|
self::assertGreaterThan(0, \count(SessionMapper::getLastSessionsFromAllEmployees()));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user