Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\TimeManagement;
|
||||
|
||||
use ApplicationCore;
|
||||
use Mitarbeiterzeiterfassung;
|
||||
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||||
use Xentral\Modules\TimeManagement\Service\GroupGateway;
|
||||
use Xentral\Modules\TimeManagement\Service\HolidayGateway;
|
||||
use Xentral\Modules\TimeManagement\Service\TimeManagementHistoryService;
|
||||
use Xentral\Modules\TimeManagement\Service\TimeManagementSettingGateway;
|
||||
use Xentral\Modules\TimeManagement\Service\TimeManagementTargetHourGateway;
|
||||
use Xentral\Modules\TimeManagement\Service\TimeManagementTargetHourService;
|
||||
use Xentral\Modules\TimeManagement\Wrapper\TimeManagementMailerWrapper;
|
||||
use Xentral\Modules\TimeManagement\Wrapper\TimeManagementTargetHourWrapper;
|
||||
|
||||
|
||||
final class Bootstrap
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function registerServices(): array
|
||||
{
|
||||
return [
|
||||
'TimeManagementModule' => 'onInitTimeManagementModule',
|
||||
'TimeManagementMailer' => 'onInitTimeManagementMailer',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementModule
|
||||
*/
|
||||
public static function onInitTimeManagementModule(ContainerInterface $container): TimeManagementModule
|
||||
{
|
||||
return new TimeManagementModule(
|
||||
self::onInitTimeManagementTargetHourGateway($container),
|
||||
self::onInitTimeManagementTargetHourService($container),
|
||||
self::onInitTimeManagementSettingGateway($container),
|
||||
self::onInitHolidayGateway($container),
|
||||
self::onInitGroupGateway($container),
|
||||
self::onInitTimeManagementTargetHourWrapper($container),
|
||||
self::onInitTimeManagementHistoryService($container)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementTargetHourService
|
||||
*/
|
||||
private static function onInitTimeManagementTargetHourService(ContainerInterface $container
|
||||
): TimeManagementTargetHourService {
|
||||
return new TimeManagementTargetHourService(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementTargetHourGateway
|
||||
*/
|
||||
private static function onInitTimeManagementTargetHourGateway(ContainerInterface $container
|
||||
): TimeManagementTargetHourGateway {
|
||||
return new TimeManagementTargetHourGateway(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementSettingGateway
|
||||
*/
|
||||
private static function onInitTimeManagementSettingGateway(ContainerInterface $container
|
||||
): TimeManagementSettingGateway {
|
||||
return new TimeManagementSettingGateway(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return HolidayGateway
|
||||
*/
|
||||
private static function onInitHolidayGateway(ContainerInterface $container): HolidayGateway
|
||||
{
|
||||
return new HolidayGateway(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return GroupGateway
|
||||
*/
|
||||
private static function onInitGroupGateway(ContainerInterface $container): GroupGateway
|
||||
{
|
||||
return new GroupGateway(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementTargetHourWrapper
|
||||
*/
|
||||
private static function onInitTimeManagementTargetHourWrapper(ContainerInterface $container
|
||||
): TimeManagementTargetHourWrapper {
|
||||
/** @var ApplicationCore $app */
|
||||
$app = $container->get('LegacyApplication');
|
||||
|
||||
/** @var Mitarbeiterzeiterfassung $timeRecordingModule */
|
||||
$timeRecordingModule = $app->erp->LoadModul('mitarbeiterzeiterfassung');
|
||||
|
||||
return new TimeManagementTargetHourWrapper($timeRecordingModule);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementHistoryService
|
||||
*/
|
||||
private static function onInitTimeManagementHistoryService(ContainerInterface $container
|
||||
): TimeManagementHistoryService {
|
||||
return new TimeManagementHistoryService(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return TimeManagementMailerWrapper
|
||||
*/
|
||||
public function onInitTimeManagementMailer(ContainerInterface $container): TimeManagementMailerWrapper
|
||||
{
|
||||
/** @var ApplicationCore $app */
|
||||
$app = $container->get('LegacyApplication');
|
||||
|
||||
return new TimeManagementMailerWrapper(
|
||||
$app->erp
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user