mirror of
https://github.com/Karaka-Management/oms-ContractManagement.git
synced 2026-02-15 01:48:42 +00:00
todo implementations
This commit is contained in:
parent
a710da7d2a
commit
747f34fd03
|
|
@ -1,6 +0,0 @@
|
||||||
[Dolphin]
|
|
||||||
Timestamp=2021,5,23,18,50,7
|
|
||||||
Version=4
|
|
||||||
|
|
||||||
[Settings]
|
|
||||||
HiddenFilesShown=true
|
|
||||||
25
Admin/Install/Admin.install.php
Normal file
25
Admin/Install/Admin.install.php
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package Modules\ContractManagement\Admin
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Modules\ContractManagement\Controller\ApiController;
|
||||||
|
use Modules\ContractManagement\Models\SettingsEnum;
|
||||||
|
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'type' => 'setting',
|
||||||
|
'name' => SettingsEnum::CONTRACT_RENEWAL_WARNING,
|
||||||
|
'content' => '7776000',
|
||||||
|
'module' => ApiController::NAME,
|
||||||
|
]
|
||||||
|
];
|
||||||
16
Admin/Install/Media.install.json
Normal file
16
Admin/Install/Media.install.json
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "type",
|
||||||
|
"name": "contract",
|
||||||
|
"l11n": [
|
||||||
|
{
|
||||||
|
"title": "Contract",
|
||||||
|
"lang": "en"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Vertrag",
|
||||||
|
"lang": "de"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
43
Admin/Install/Media.php
Normal file
43
Admin/Install/Media.php
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package Modules\ContractManagement\Admin\Install
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\ContractManagement\Admin\Install;
|
||||||
|
|
||||||
|
use phpOMS\Application\ApplicationAbstract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Media class.
|
||||||
|
*
|
||||||
|
* @package Modules\ContractManagement\Admin\Install
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
class Media
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Install media providing
|
||||||
|
*
|
||||||
|
* @param string $path Module path
|
||||||
|
* @param ApplicationAbstract $app Application
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function install(string $path, ApplicationAbstract $app) : void
|
||||||
|
{
|
||||||
|
\Modules\Media\Admin\Installer::installExternal($app, ['path' => __DIR__ . '/Media.install.json']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -86,6 +86,16 @@
|
||||||
"null": true,
|
"null": true,
|
||||||
"default": null
|
"default": null
|
||||||
},
|
},
|
||||||
|
"contractmgmt_contract_renewal": {
|
||||||
|
"name": "contractmgmt_contract_renewal",
|
||||||
|
"type": "INT",
|
||||||
|
"null": false
|
||||||
|
},
|
||||||
|
"contractmgmt_contract_autorenewal": {
|
||||||
|
"name": "contractmgmt_contract_autorenewal",
|
||||||
|
"type": "INT",
|
||||||
|
"null": false
|
||||||
|
},
|
||||||
"contractmgmt_contract_duration": {
|
"contractmgmt_contract_duration": {
|
||||||
"name": "contractmgmt_contract_duration",
|
"name": "contractmgmt_contract_duration",
|
||||||
"type": "INT",
|
"type": "INT",
|
||||||
|
|
@ -103,6 +113,14 @@
|
||||||
"foreignTable": "contractmgmt_type",
|
"foreignTable": "contractmgmt_type",
|
||||||
"foreignKey": "contractmgmt_type_id"
|
"foreignKey": "contractmgmt_type_id"
|
||||||
},
|
},
|
||||||
|
"contractmgmt_contract_unit": {
|
||||||
|
"name": "contractmgmt_contract_unit",
|
||||||
|
"type": "INT",
|
||||||
|
"null": true,
|
||||||
|
"default": null,
|
||||||
|
"foreignTable": "organization_unit",
|
||||||
|
"foreignKey": "organization_unit_id"
|
||||||
|
},
|
||||||
"contractmgmt_contract_responsible": {
|
"contractmgmt_contract_responsible": {
|
||||||
"name": "contractmgmt_contract_responsible",
|
"name": "contractmgmt_contract_responsible",
|
||||||
"type": "INT",
|
"type": "INT",
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,9 @@ final class ApiController extends Controller
|
||||||
$contract->type = new NullContractType((int) ($request->getData('type') ?? 0));
|
$contract->type = new NullContractType((int) ($request->getData('type') ?? 0));
|
||||||
$contract->start = new \DateTime($request->getData('start') ?? 'now');
|
$contract->start = new \DateTime($request->getData('start') ?? 'now');
|
||||||
$contract->account = new NullAccount((int) ($request->getData('account') ?? 0));
|
$contract->account = new NullAccount((int) ($request->getData('account') ?? 0));
|
||||||
|
$contract->renewal = (int) ($request->getData('renewal') ?? 0);
|
||||||
|
$contract->autoRenewal = (bool) ($request->getData('autorenewal') ?? false);
|
||||||
|
$contract->unit = $request->getData('unit', 'int') ?? null;
|
||||||
|
|
||||||
if (!empty($request->getData('end'))) {
|
if (!empty($request->getData('end'))) {
|
||||||
$contract->end = new \DateTime($request->getData('end'));
|
$contract->end = new \DateTime($request->getData('end'));
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ namespace Modules\ContractManagement\Models;
|
||||||
use Modules\Admin\Models\Account;
|
use Modules\Admin\Models\Account;
|
||||||
use Modules\Admin\Models\NullAccount;
|
use Modules\Admin\Models\NullAccount;
|
||||||
use Modules\Media\Models\Media;
|
use Modules\Media\Models\Media;
|
||||||
|
use Modules\Organization\Models\Unit;
|
||||||
use phpOMS\Localization\Money;
|
use phpOMS\Localization\Money;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -53,6 +54,15 @@ class Contract
|
||||||
|
|
||||||
public ?\DateTime $end = null;
|
public ?\DateTime $end = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Months until end of contract
|
||||||
|
*
|
||||||
|
* The renewal sometimes can be done up until the end of the contract and sometimes x-months prior to the contract end.
|
||||||
|
*/
|
||||||
|
public int $renewal = 0;
|
||||||
|
|
||||||
|
public bool $autoRenewal = false;
|
||||||
|
|
||||||
public int $duration = 0;
|
public int $duration = 0;
|
||||||
|
|
||||||
public int $warning = 0;
|
public int $warning = 0;
|
||||||
|
|
@ -73,6 +83,8 @@ class Contract
|
||||||
|
|
||||||
public ContractType $type;
|
public ContractType $type;
|
||||||
|
|
||||||
|
public ?Unit $unit = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Orange Management
|
* Orange Management
|
||||||
*
|
*
|
||||||
|
|
@ -10,6 +11,7 @@
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @link https://orange-management.org
|
* @link https://orange-management.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\ContractManagement\Models;
|
namespace Modules\ContractManagement\Models;
|
||||||
|
|
@ -40,11 +42,14 @@ final class ContractMapper extends DataMapperAbstract
|
||||||
'contractmgmt_contract_description' => ['name' => 'contractmgmt_contract_description', 'type' => 'string', 'internal' => 'description'],
|
'contractmgmt_contract_description' => ['name' => 'contractmgmt_contract_description', 'type' => 'string', 'internal' => 'description'],
|
||||||
'contractmgmt_contract_account' => ['name' => 'contractmgmt_contract_account', 'type' => 'int', 'internal' => 'account'],
|
'contractmgmt_contract_account' => ['name' => 'contractmgmt_contract_account', 'type' => 'int', 'internal' => 'account'],
|
||||||
'contractmgmt_contract_costs' => ['name' => 'contractmgmt_contract_costs', 'type' => 'Serializable', 'internal' => 'costs'],
|
'contractmgmt_contract_costs' => ['name' => 'contractmgmt_contract_costs', 'type' => 'Serializable', 'internal' => 'costs'],
|
||||||
|
'contractmgmt_contract_renewal' => ['name' => 'contractmgmt_contract_renewal', 'type' => 'int', 'internal' => 'renewal'],
|
||||||
|
'contractmgmt_contract_autorenewal' => ['name' => 'contractmgmt_contract_autorenewal', 'type' => 'int', 'internal' => 'autoRenewal'],
|
||||||
'contractmgmt_contract_duration' => ['name' => 'contractmgmt_contract_duration', 'type' => 'int', 'internal' => 'duration'],
|
'contractmgmt_contract_duration' => ['name' => 'contractmgmt_contract_duration', 'type' => 'int', 'internal' => 'duration'],
|
||||||
'contractmgmt_contract_warning' => ['name' => 'contractmgmt_contract_warning', 'type' => 'int', 'internal' => 'warning'],
|
'contractmgmt_contract_warning' => ['name' => 'contractmgmt_contract_warning', 'type' => 'int', 'internal' => 'warning'],
|
||||||
'contractmgmt_contract_start' => ['name' => 'contractmgmt_contract_start', 'type' => 'DateTime', 'internal' => 'start'],
|
'contractmgmt_contract_start' => ['name' => 'contractmgmt_contract_start', 'type' => 'DateTime', 'internal' => 'start'],
|
||||||
'contractmgmt_contract_end' => ['name' => 'contractmgmt_contract_end', 'type' => 'DateTime', 'internal' => 'end'],
|
'contractmgmt_contract_end' => ['name' => 'contractmgmt_contract_end', 'type' => 'DateTime', 'internal' => 'end'],
|
||||||
'contractmgmt_contract_responsible' => ['name' => 'contractmgmt_contract_responsible', 'type' => 'int', 'internal' => 'responsible'],
|
'contractmgmt_contract_responsible' => ['name' => 'contractmgmt_contract_responsible', 'type' => 'int', 'internal' => 'responsible'],
|
||||||
|
'contractmgmt_contract_unit' => ['name' => 'contractmgmt_contract_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||||
'contractmgmt_contract_type' => ['name' => 'contractmgmt_contract_type', 'type' => 'int', 'internal' => 'type'],
|
'contractmgmt_contract_type' => ['name' => 'contractmgmt_contract_type', 'type' => 'int', 'internal' => 'type'],
|
||||||
'contractmgmt_contract_created_at' => ['name' => 'contractmgmt_contract_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt'],
|
'contractmgmt_contract_created_at' => ['name' => 'contractmgmt_contract_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt'],
|
||||||
];
|
];
|
||||||
|
|
@ -88,6 +93,10 @@ final class ContractMapper extends DataMapperAbstract
|
||||||
'mapper' => AccountMapper::class,
|
'mapper' => AccountMapper::class,
|
||||||
'external' => 'contractmgmt_contract_account',
|
'external' => 'contractmgmt_contract_account',
|
||||||
],
|
],
|
||||||
|
'unit' => [
|
||||||
|
'mapper' => UnitMapper::class,
|
||||||
|
'external' => 'contractmgmt_contract_unit',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
30
Models/SettingsEnum.php
Normal file
30
Models/SettingsEnum.php
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package Modules\ContractManagement\Models
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\ContractManagement\Models;
|
||||||
|
|
||||||
|
use phpOMS\Stdlib\Base\Enum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module settings enum.
|
||||||
|
*
|
||||||
|
* @package Modules\ContractManagement\Models
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
abstract class SettingsEnum extends Enum
|
||||||
|
{
|
||||||
|
public const CONTRACT_RENEWAL_WARNING = '1007900001';
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user