started with template fixes

This commit is contained in:
Dennis Eichhorn 2024-03-29 15:26:00 +00:00
parent 9ec776524a
commit b1c42b828c
64 changed files with 1935 additions and 3472 deletions

View File

@ -5,7 +5,7 @@
"type": 2,
"subtype": 1,
"name": "RiskManagement",
"uri": "{/base}/riskmanagement/cockpit?{?}",
"uri": "{/base}/controlling/riskmanagement/cockpit?{?}",
"target": "self",
"icon": null,
"order": 1,
@ -15,11 +15,11 @@
"children": [
{
"id": 1003002001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Cockpit",
"uri": "{/base}/riskmanagement/cockpit?{?}",
"uri": "{/base}/controlling/riskmanagement/cockpit?{?}",
"target": "self",
"icon": null,
"order": 1,
@ -28,28 +28,13 @@
"parent": 1003001001,
"children": []
},
{
"id": 1003007001,
"pid": "/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Units",
"uri": "{/base}/riskmanagement/unit/list?{?}",
"target": "self",
"icon": null,
"order": 5,
"from": "RiskManagement",
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1003001001,
"children": []
},
{
"id": 1003008001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Departments",
"uri": "{/base}/riskmanagement/department/list?{?}",
"uri": "{/base}/controlling/riskmanagement/department/list?{?}",
"target": "self",
"icon": null,
"order": 10,
@ -60,11 +45,11 @@
},
{
"id": 1003009001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Categories",
"uri": "{/base}/riskmanagement/category/list?{?}",
"uri": "{/base}/controlling/riskmanagement/category/list?{?}",
"target": "self",
"icon": null,
"order": 15,
@ -75,11 +60,11 @@
},
{
"id": 1003010001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Projects",
"uri": "{/base}/riskmanagement/project/list?{?}",
"uri": "{/base}/controlling/riskmanagement/project/list?{?}",
"target": "self",
"icon": null,
"order": 20,
@ -90,11 +75,11 @@
},
{
"id": 1003011001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Processes",
"uri": "{/base}/riskmanagement/process/list?{?}",
"uri": "{/base}/controlling/riskmanagement/process/list?{?}",
"target": "self",
"icon": null,
"order": 25,
@ -105,11 +90,11 @@
},
{
"id": 1003003001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Risks",
"uri": "{/base}/riskmanagement/risk/list?{?}",
"uri": "{/base}/controlling/riskmanagement/risk/list?{?}",
"target": "self",
"icon": null,
"order": 30,
@ -119,11 +104,11 @@
"children": [
{
"id": 1003003101,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 5,
"subtype": 1,
"name": "Create",
"uri": "{/base}/riskmanagement/risk/create?{?}",
"uri": "{/base}/controlling/riskmanagement/risk/create?{?}",
"target": "self",
"icon": null,
"order": 1,
@ -134,11 +119,11 @@
},
{
"id": 1003003201,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 5,
"subtype": 1,
"name": "Delete",
"uri": "{/base}/riskmanagement/risk/delete?{?}",
"uri": "{/base}/controlling/riskmanagement/risk/delete?{?}",
"target": "self",
"icon": null,
"order": 1,
@ -149,11 +134,11 @@
},
{
"id": 1003003301,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 0,
"subtype": 1,
"name": "Risk",
"uri": "{/base}/riskmanagement/risk/view/dashboard?{?}",
"uri": "{/base}/controlling/riskmanagement/risk/view/dashboard?{?}",
"target": "self",
"icon": null,
"order": 1,
@ -166,11 +151,11 @@
},
{
"id": 1003004001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Causes",
"uri": "{/base}/riskmanagement/cause/list?{?}",
"uri": "{/base}/controlling/riskmanagement/cause/list?{?}",
"target": "self",
"icon": null,
"order": 35,
@ -181,11 +166,11 @@
},
{
"id": 1003005001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Solutions",
"uri": "{/base}/riskmanagement/solution/list?{?}",
"uri": "{/base}/controlling/riskmanagement/solution/list?{?}",
"target": "self",
"icon": null,
"order": 40,
@ -196,11 +181,11 @@
},
{
"id": 1003006001,
"pid": "/riskmanagement",
"pid": "/controlling/riskmanagement",
"type": 3,
"subtype": 1,
"name": "Settings",
"uri": "{/base}/riskmanagement/settings/dashboard?{?}",
"uri": "{/base}/controlling/riskmanagement/settings/dashboard?{?}",
"target": "self",
"icon": null,
"order": 45,

View File

@ -50,6 +50,38 @@
}
}
},
"riskmngmt_category_l11n": {
"name": "riskmngmt_category_l11n",
"fields": {
"riskmngmt_category_l11n_id": {
"name": "riskmngmt_category_l11n_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"riskmngmt_category_l11n_title": {
"name": "riskmngmt_category_l11n_title",
"type": "VARCHAR(255)",
"null": false
},
"riskmngmt_category_l11n_category": {
"name": "riskmngmt_category_l11n_category",
"type": "INT",
"null": false,
"foreignTable": "riskmngmt_category",
"foreignKey": "riskmngmt_category_id"
},
"riskmngmt_category_l11n_language": {
"name": "riskmngmt_category_l11n_language",
"type": "VARCHAR(2)",
"default": null,
"null": true,
"foreignTable": "language",
"foreignKey": "language_639_1"
}
}
},
"riskmngmt_process": {
"name": "riskmngmt_process",
"fields": {
@ -110,111 +142,6 @@
}
}
},
"riskmngmt_project": {
"name": "riskmngmt_project",
"fields": {
"riskmngmt_project_id": {
"name": "riskmngmt_project_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"riskmngmt_project_project": {
"name": "riskmngmt_project_project",
"type": "INT",
"null": false,
"foreignTable": "projectmanagement_project",
"foreignKey": "projectmanagement_project_id"
},
"riskmngmt_project_responsible": {
"name": "riskmngmt_project_responsible",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
},
"riskmngmt_project_deputy": {
"name": "riskmngmt_project_deputy",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
}
}
},
"riskmngmt_department": {
"name": "riskmngmt_department",
"fields": {
"riskmngmt_department_id": {
"name": "riskmngmt_department_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"riskmngmt_department_department": {
"name": "riskmngmt_department_department",
"type": "INT",
"null": true,
"foreignTable": "organization_department",
"foreignKey": "organization_department_id"
},
"riskmngmt_department_responsible": {
"name": "riskmngmt_department_responsible",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
},
"riskmngmt_department_deputy": {
"name": "riskmngmt_department_deputy",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
}
}
},
"riskmngmt_unit": {
"name": "riskmngmt_unit",
"fields": {
"riskmngmt_unit_id": {
"name": "riskmngmt_unit_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"riskmngmt_unit_unit": {
"name": "riskmngmt_unit_unit",
"type": "INT",
"null": false,
"foreignTable": "unit",
"foreignKey": "unit_id"
},
"riskmngmt_unit_responsible": {
"name": "riskmngmt_unit_responsible",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
},
"riskmngmt_unit_deputy": {
"name": "riskmngmt_unit_deputy",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "account",
"foreignKey": "account_id"
}
}
},
"riskmngmt_risk": {
"name": "riskmngmt_risk",
"fields": {
@ -225,6 +152,11 @@
"primary": true,
"autoincrement": true
},
"riskmngmt_risk_status": {
"name": "riskmngmt_risk_status",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_name": {
"name": "riskmngmt_risk_name",
"type": "VARCHAR(255)",
@ -240,6 +172,56 @@
"type": "TEXT",
"null": false
},
"riskmngmt_risk_grosslikelihoodr": {
"name": "riskmngmt_risk_grosslikelihoodr",
"type": "DECIMAL(7,4)",
"null": false
},
"riskmngmt_risk_grosslikelihoodlevel": {
"name": "riskmngmt_risk_grosslikelihoodlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_grosscostlevel": {
"name": "riskmngmt_risk_grosscostlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_grosscost": {
"name": "riskmngmt_risk_grosscost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_grossexpectedcost": {
"name": "riskmngmt_risk_grossexpectedcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_netlikelihoodr": {
"name": "riskmngmt_risk_netlikelihoodr",
"type": "DECIMAL(7,4)",
"null": false
},
"riskmngmt_risk_netlikelihoodlevel": {
"name": "riskmngmt_risk_netlikelihoodlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_netcostlevel": {
"name": "riskmngmt_risk_netcostlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_netcost": {
"name": "riskmngmt_risk_netcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_netexpectedcost": {
"name": "riskmngmt_risk_netexpectedcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_unit": {
"name": "riskmngmt_risk_unit",
"type": "INT",
@ -268,8 +250,8 @@
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_project",
"foreignKey": "riskmngmt_project_id"
"foreignTable": "projectmanagement_project",
"foreignKey": "projectmanagement_project_id"
},
"riskmngmt_risk_process": {
"name": "riskmngmt_risk_process",
@ -336,55 +318,115 @@
}
}
},
"riskmngmt_risk_eval": {
"name": "riskmngmt_risk_eval",
"riskmngmt_history": {
"name": "riskmngmt_history",
"fields": {
"riskmngmt_risk_eval_id": {
"name": "riskmngmt_risk_eval_id",
"riskmngmt_history_id": {
"name": "riskmngmt_history_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"riskmngmt_risk_eval_gross_probability": {
"name": "riskmngmt_risk_eval_gross_probability",
"type": "INT",
"riskmngmt_history_grosslikelihoodr": {
"name": "riskmngmt_history_grosslikelihoodr",
"type": "DECIMAL(7,4)",
"null": false
},
"riskmngmt_risk_eval_gross_risk": {
"name": "riskmngmt_risk_eval_gross_risk",
"type": "INT",
"riskmngmt_history_grosslikelihoodlevel": {
"name": "riskmngmt_history_grosslikelihoodlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_eval_gross_score": {
"name": "riskmngmt_risk_eval_gross_score",
"type": "INT",
"riskmngmt_history_grosscostlevel": {
"name": "riskmngmt_history_grosscostlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_risk_eval_net_probability": {
"name": "riskmngmt_risk_eval_net_probability",
"type": "INT",
"riskmngmt_history_grosscost": {
"name": "riskmngmt_history_grosscost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_eval_net_risk": {
"name": "riskmngmt_risk_eval_net_risk",
"type": "INT",
"riskmngmt_history_grossexpectedcost": {
"name": "riskmngmt_history_grossexpectedcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_risk_eval_net_score": {
"name": "riskmngmt_risk_eval_net_score",
"type": "INT",
"riskmngmt_history_netlikelihoodr": {
"name": "riskmngmt_history_netlikelihoodr",
"type": "DECIMAL(7,4)",
"null": false
},
"riskmngmt_risk_eval_risk": {
"name": "riskmngmt_risk_eval_risk",
"riskmngmt_history_netlikelihoodlevel": {
"name": "riskmngmt_history_netlikelihoodlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_history_netcostlevel": {
"name": "riskmngmt_history_netcostlevel",
"type": "TINYINT",
"null": false
},
"riskmngmt_history_netcost": {
"name": "riskmngmt_history_netcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_history_netexpectedcost": {
"name": "riskmngmt_history_netexpectedcost",
"type": "BIGINT",
"null": false
},
"riskmngmt_history_unit": {
"name": "riskmngmt_history_unit",
"type": "INT",
"null": false,
"foreignTable": "unit",
"foreignKey": "unit_id"
},
"riskmngmt_history_department": {
"name": "riskmngmt_history_department",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "organization_department",
"foreignKey": "organization_department_id"
},
"riskmngmt_history_category": {
"name": "riskmngmt_history_category",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_category",
"foreignKey": "riskmngmt_category_id"
},
"riskmngmt_history_project": {
"name": "riskmngmt_history_project",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "projectmanagement_project",
"foreignKey": "projectmanagement_project_id"
},
"riskmngmt_history_process": {
"name": "riskmngmt_history_process",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_process",
"foreignKey": "riskmngmt_process_id"
},
"riskmngmt_history_risk": {
"name": "riskmngmt_history_risk",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_risk",
"foreignKey": "riskmngmt_risk_id"
},
"riskmngmt_risk_eval_date": {
"name": "riskmngmt_risk_eval_date",
"riskmngmt_history_created_at": {
"name": "riskmngmt_history_created_at",
"type": "DATETIME",
"null": false
}
@ -451,8 +493,8 @@
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_department",
"foreignKey": "riskmngmt_department_id"
"foreignTable": "organization_department",
"foreignKey": "organization_department_id"
},
"riskmngmt_cause_category": {
"name": "riskmngmt_cause_category",
@ -467,8 +509,8 @@
"type": "INT",
"default": null,
"null": true,
"foreignTable": "riskmngmt_project",
"foreignKey": "riskmngmt_project_id"
"foreignTable": "projectmanagement_project",
"foreignKey": "projectmanagement_project_id"
},
"riskmngmt_cause_process": {
"name": "riskmngmt_cause_process",

View File

@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb;
return [
'^.*/riskmanagement/cockpit(\?.*$|$)' => [
'^.*/controlling/riskmanagement/cockpit(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCockpit',
'verb' => RouteVerb::GET,
@ -29,7 +29,7 @@ return [
],
],
],
'^.*/riskmanagement/risk/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/risk/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskList',
'verb' => RouteVerb::GET,
@ -40,7 +40,7 @@ return [
],
],
],
'^.*/riskmanagement/risk/create(\?.*$|$)' => [
'^.*/controlling/riskmanagement/risk/create(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCreate',
'verb' => RouteVerb::GET,
@ -51,7 +51,7 @@ return [
],
],
],
'^.*/riskmanagement/risk/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/risk/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskView',
'verb' => RouteVerb::GET,
@ -62,7 +62,7 @@ return [
],
],
],
'^.*/riskmanagement/cause/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/cause/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCauseList',
'verb' => RouteVerb::GET,
@ -73,7 +73,7 @@ return [
],
],
],
'^.*/riskmanagement/cause/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/cause/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCauseView',
'verb' => RouteVerb::GET,
@ -84,7 +84,7 @@ return [
],
],
],
'^.*/riskmanagement/solution/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/solution/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskSolutionList',
'verb' => RouteVerb::GET,
@ -95,7 +95,7 @@ return [
],
],
],
'^.*/riskmanagement/solution/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/solution/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskSolutionView',
'verb' => RouteVerb::GET,
@ -106,29 +106,7 @@ return [
],
],
],
'^.*/riskmanagement/unit/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskUnitList',
'verb' => RouteVerb::GET,
'permission' => [
'module' => BackendController::NAME,
'type' => PermissionType::READ,
'state' => PermissionCategory::UNIT,
],
],
],
'^.*/riskmanagement/unit/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskUnitView',
'verb' => RouteVerb::GET,
'permission' => [
'module' => BackendController::NAME,
'type' => PermissionType::READ,
'state' => PermissionCategory::UNIT,
],
],
],
'^.*/riskmanagement/department/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/department/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskDepartmentList',
'verb' => RouteVerb::GET,
@ -139,7 +117,7 @@ return [
],
],
],
'^.*/riskmanagement/department/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/department/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskDepartmentView',
'verb' => RouteVerb::GET,
@ -150,7 +128,7 @@ return [
],
],
],
'^.*/riskmanagement/category/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/category/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCategoryList',
'verb' => RouteVerb::GET,
@ -161,7 +139,7 @@ return [
],
],
],
'^.*/riskmanagement/category/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/category/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskCategoryView',
'verb' => RouteVerb::GET,
@ -172,7 +150,7 @@ return [
],
],
],
'^.*/riskmanagement/project/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/project/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskProjectList',
'verb' => RouteVerb::GET,
@ -183,7 +161,7 @@ return [
],
],
],
'^.*/riskmanagement/project/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/project/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskProjectView',
'verb' => RouteVerb::GET,
@ -194,7 +172,7 @@ return [
],
],
],
'^.*/riskmanagement/process/list(\?.*$|$)' => [
'^.*/controlling/riskmanagement/process/list(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskProcessList',
'verb' => RouteVerb::GET,
@ -205,7 +183,7 @@ return [
],
],
],
'^.*/riskmanagement/process/view(\?.*$|$)' => [
'^.*/controlling/riskmanagement/process/view(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskProcessView',
'verb' => RouteVerb::GET,
@ -216,7 +194,7 @@ return [
],
],
],
'^.*/riskmanagement/settings/dashboard(\?.*$|$)' => [
'^.*/controlling/riskmanagement/settings/dashboard(\?.*$|$)' => [
[
'dest' => '\Modules\RiskManagement\Controller\BackendController:viewRiskSettings',
'verb' => RouteVerb::GET,

View File

@ -14,6 +14,28 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Controller;
use Modules\Admin\Models\NullAccount;
use Modules\Organization\Models\NullDepartment;
use Modules\ProjectManagement\Models\NullProject;
use Modules\RiskManagement\Models\Category;
use Modules\RiskManagement\Models\CategoryL11nMapper;
use Modules\RiskManagement\Models\CategoryMapper;
use Modules\RiskManagement\Models\NullCategory;
use Modules\RiskManagement\Models\NullProcess;
use Modules\RiskManagement\Models\Process;
use Modules\RiskManagement\Models\ProcessMapper;
use Modules\RiskManagement\Models\Risk;
use Modules\RiskManagement\Models\RiskHistory;
use Modules\RiskManagement\Models\RiskHistoryMapper;
use Modules\RiskManagement\Models\RiskMapper;
use Modules\RiskManagement\Models\RiskStatus;
use phpOMS\Localization\BaseStringL11n;
use phpOMS\Localization\ISO639x1Enum;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Stdlib\Base\FloatInt;
/**
* RiskManagement api controller class.
*
@ -24,4 +46,387 @@ namespace Modules\RiskManagement\Controller;
*/
final class ApiController extends Controller
{
/**
* Api method to remind a task
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRiskCategoryCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateRiskCategoryCreate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
$category = $this->createRiskCategoryFromRequest($request);
$this->createModel($request->header->account, $category, CategoryMapper::class, 'category', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $category);
}
/**
* Validate category create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateRiskCategoryCreate(RequestAbstract $request) : array
{
$val = [];
if ($val['title'] = !$request->hasData('title')) {
return $val;
}
return [];
}
/**
* Method to create category from request.
*
* @param RequestAbstract $request Request
*
* @return Category Returns the created category from the request
*
* @since 1.0.0
*/
public function createRiskCategoryFromRequest(RequestAbstract $request) : Category
{
$category = new Category();
$category->title = new BaseStringL11n($request->getDataString('name') ?? '');
$category->setL11n(
$request->getDataString('title') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
);
return $category;
}
/**
* Api method to create item material l11n
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiCategoryL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateCategoryL11nCreate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
$categoryL11n = $this->createCategoryL11nFromRequest($request);
$this->createModel($request->header->account, $categoryL11n, CategoryL11nMapper::class, 'material_type_l11n', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $categoryL11n);
}
/**
* Validate material l11n create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateCategoryL11nCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['title'] = !$request->hasData('title'))
) {
return $val;
}
return [];
}
/**
* Method to create material l11n from request.
*
* @param RequestAbstract $request Request
*
* @return BaseStringL11n
*
* @since 1.0.0
*/
private function createCategoryL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{
$categoryL11n = new BaseStringL11n();
$categoryL11n->ref = $request->getDataInt('category') ?? 0;
$categoryL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$categoryL11n->content = $request->getDataString('title') ?? '';
return $categoryL11n;
}
/**
* Api method to remind a task
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRiskProcessCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateRiskProcessCreate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
$process = $this->createRiskProcessFromRequest($request);
$this->createModel($request->header->account, $process, ProcessMapper::class, 'process', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $process);
}
/**
* Validate process create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateRiskProcessCreate(RequestAbstract $request) : array
{
$val = [];
if ($val['name'] = !$request->hasData('name')
|| $val['unit'] = !$request->hasData('unit')
) {
return $val;
}
return [];
}
/**
* Method to create process from request.
*
* @param RequestAbstract $request Request
*
* @return Process Returns the created process from the request
*
* @since 1.0.0
*/
public function createRiskProcessFromRequest(RequestAbstract $request) : Process
{
$process = new Process();
$process->title = $request->getDataString('name') ?? '';
$process->unit = $request->getDataInt('unit') ?? 1;
$process->department = $request->hasData('department') ? new NullDepartment((int) $request->getData('department')) : null;
return $process;
}
/**
* Api method to remind a task
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRiskCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateRiskCreate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
$risk = $this->createRiskFromRequest($request);
$this->createModel($request->header->account, $risk, RiskMapper::class, 'risk', $request->getOrigin());
$this->createStandardCreateResponse($request, $response, $risk);
}
/**
* Validate risk create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateRiskCreate(RequestAbstract $request) : array
{
$val = [];
if ($val['name'] = !$request->hasData('name')
|| $val['unit'] = !$request->hasData('unit')
) {
return $val;
}
return [];
}
/**
* Method to create risk from request.
*
* @param RequestAbstract $request Request
*
* @return Risk Returns the created risk from the request
*
* @since 1.0.0
*/
public function createRiskFromRequest(RequestAbstract $request) : Risk
{
$risk = new Risk();
$risk->name = $request->getDataString('name') ?? '';
$risk->descriptionRaw = $request->getDataString('description') ?? '';
$risk->responsible = $request->hasData('responsible') ? new NullAccount((int) $request->getData('responsible')) : null;
$risk->deputy = $request->hasData('deputy') ? new NullAccount((int) $request->getData('deputy')) : null;
$risk->unit = $request->getDataInt('unit') ?? 1;
$risk->category = $request->hasData('category') ? new NullCategory((int) $request->getData('category')) : null;
$risk->department = $request->hasData('department') ? new NullDepartment((int) $request->getData('department')) : null;
$risk->process = $request->hasData('process') ? new NullProcess((int) $request->getData('process')) : null;
$risk->project = $request->hasData('project') ? new NullProject((int) $request->getData('project')) : null;
$risk->grossLikelihoodR = $request->getDataFloat('grosslikelihoodratio') ?? 0.0;
$risk->grossLikelihoodLevel = $request->getDataInt('grosslikelihoodlevel') ?? 0;
$risk->grossCostLevel = $request->getDataInt('grosscostlevel') ?? 0;
$risk->grossCost = new FloatInt($request->getDataString('grosscost') ?? 0);
$risk->grossExpectedCost = new FloatInt((int) ($risk->grossLikelihoodR / 100 * $risk->grossCost->value));
$risk->netLikelihoodR = $request->getDataFloat('netlikelihoodratio') ?? 0.0;
$risk->netLikelihoodLevel = $request->getDataInt('netlikelihoodlevel') ?? 0;
$risk->netCostLevel = $request->getDataInt('netcostlevel') ?? 0;
$risk->netCost = new FloatInt($request->getDataString('netcost') ?? 0);
$risk->netExpectedCost = new FloatInt((int) ($risk->netLikelihoodR / 100 * $risk->netCost->value));
return $risk;
}
/**
* Api method to remind a task
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRiskHistoryCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
if (!empty($val = $this->validateRiskHistoryCreate($request))) {
$response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
foreach ($this->createRiskHistoryFromRequest($request) as $history) {
$this->createModel($request->header->account, $history, RiskHistoryMapper::class, 'risk_history', $request->getOrigin());
}
$this->createStandardCreateResponse($request, $response, []);
}
/**
* Validate risk create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool> Returns the validation array of the request
*
* @since 1.0.0
*/
private function validateRiskHistoryCreate(RequestAbstract $request) : array
{
$val = [];
if ($val['unit'] = !$request->hasData('unit')
) {
return $val;
}
return [];
}
/**
* Method to create risk from request.
*
* @param RequestAbstract $request Request
*
* @return \Generator<RiskHistory> Returns the created risk from the request
*
* @since 1.0.0
*/
public function createRiskHistoryFromRequest(RequestAbstract $request) : \Generator
{
$now = new \DateTimeImmutable('now');
foreach (RiskMapper::yield()
->where('unit', (int) $request->getData('unit'))
->where('status', RiskStatus::ACTIVE)
->executeYield() as $risk
) {
$history = new RiskHistory();
$history->risk = $risk;
$history->unit = $risk->unit;
$history->createdAt = $now;
$history->category = $risk->category;
$history->department = $risk->department;
$history->process = $risk->process;
$history->project = $risk->project;
$history->grossLikelihoodR = $risk->grossLikelihoodR;
$history->grossLikelihoodLevel = $risk->grossLikelihoodLevel;
$history->grossCostLevel = $risk->grossCostLevel;
$history->grossCost = $risk->grossCost;
$history->grossExpectedCost = $risk->grossExpectedCost;
$history->netLikelihoodR = $risk->netLikelihoodR;
$history->netLikelihoodLevel = $risk->netLikelihoodLevel;
$history->netCostLevel = $risk->netCostLevel;
$history->netCost = $risk->netCost;
$history->netExpectedCost = $risk->netExpectedCost;
yield $history;
}
}
}

View File

@ -0,0 +1,87 @@
import { jsOMS } from '../../../jsOMS/Utils/oLib.js';
import { Autoloader } from '../../../jsOMS/Autoloader.js';
Autoloader.defineNamespace('omsApp.Modules');
omsApp.Modules.RiskManagement = class {
/**
* @constructor
*
* @since 1.0.0
*/
constructor (app)
{
this.app = app;
};
bind (id)
{
const charts = typeof id === 'undefined' ? document.getElementsByTagName('canvas') : [document.getElementById(id)];
let length = charts.length;
for (let i = 0; i < length; ++i) {
if (charts[i].getAttribute('data-chart') === null
&& charts[i].getAttribute('data-chart') !== 'undefined'
) {
continue;
}
this.bindChart(charts[i]);
}
const maps = typeof id === 'undefined' ? document.getElementsByClassName('map') : [document.getElementById(id)];
length = maps.length;
for (let i = 0; i < length; ++i) {
this.bindMap(maps[i]);
}
};
bindChart (chart)
{
if (typeof chart === 'undefined' || !chart) {
jsOMS.Log.Logger.instance.error('Invalid chart: ' + chart, 'RiskManagement');
return;
}
const self = this;
const data = JSON.parse(chart.getAttribute('data-chart'));
if (data.type === 'scatter') {
const gradientPlugin = {
id: 'gradientPlugin',
beforeDraw: function(chart, args, options) {
const {ctx} = chart;
const canvas = chart.canvas;
const chartArea = chart.chartArea;
// Chart background
const gradientBack = canvas.getContext("2d").createLinearGradient(0,
canvas.height,
canvas.width, 0
);
gradientBack.addColorStop(0.2, "rgba(0, 255, 0, 0.5)");
gradientBack.addColorStop(0.55, "rgba(255, 255, 0, 0.5)");
gradientBack.addColorStop(0.8, "rgba(255, 0, 0, 0.5)");
ctx.fillStyle = gradientBack;
ctx.fillRect(
chartArea.left,
chartArea.bottom,
chartArea.right - chartArea.left,
chartArea.top - chartArea.bottom
);
}
};
data.plugins = [gradientPlugin];
}
/** global: Chart */
const myChart = new Chart(chart.getContext('2d'), data);
};
};
window.omsApp.moduleManager.get('RiskManagement').bind();

View File

@ -14,15 +14,18 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Controller;
use Modules\Organization\Models\UnitMapper;
use Modules\Organization\Models\DepartmentMapper;
use Modules\ProjectManagement\Models\ProjectMapper;
use Modules\RiskManagement\Models\CategoryMapper;
use Modules\RiskManagement\Models\CauseMapper;
use Modules\RiskManagement\Models\DepartmentMapper;
use Modules\RiskManagement\Models\ProcessMapper;
use Modules\RiskManagement\Models\ProjectMapper;
use Modules\RiskManagement\Models\RiskHistoryMapper;
use Modules\RiskManagement\Models\RiskMapper;
use Modules\RiskManagement\Models\RiskStatus;
use Modules\RiskManagement\Models\SolutionMapper;
use phpOMS\Asset\AssetType;
use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Views\View;
@ -52,10 +55,71 @@ final class BackendController extends Controller
*/
public function viewRiskCockpit(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
{
$head = $response->data['Content']->head;
$nonce = $this->app->appSettings->getOption('script-nonce');
$head->addAsset(AssetType::CSS, 'Resources/chartjs/chart.css?v=' . $this->app->version);
$head->addAsset(AssetType::JSLATE, 'Resources/chartjs/chart.js?v=' . $this->app->version, ['nonce' => $nonce]);
$head->addAsset(AssetType::JSLATE, 'Modules/RiskManagement/Controller/BackendController.js?v=' . self::VERSION, ['nonce' => $nonce, 'type' => 'module']);
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/cockpit');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$view->data['toprisks'] = RiskMapper::getAll()
->with('department')
->with('category')
->with('process')
->with('project')
->where('unit', $this->app->unitId)
->where('status', RiskStatus::ACTIVE)
->sort('netExpectedCost', OrderType::DESC)
->limit(10)
->executeGetArray();
$view->data['risks'] = RiskMapper::getAll()
->with('department')
->with('category')
->where('unit', $this->app->unitId)
->where('status', RiskStatus::ACTIVE)
->executeGetArray();
$tmp = CategoryMapper::getAll()
->with('title')
->where('title/language', $request->header->l11n->language)
->executeGetArray();
$view->data['categories'] = [];
foreach ($tmp as $category) {
$view->data['categories'][$category->id] = $category;
}
$view->data['unit'] = $this->app->unitId;
$statsDepartments = [];
$statsCategories = [];
foreach ($view->data['risks'] as $risk) {
if ($risk->department->id !== 0) {
if (!isset($statsDepartments[$risk->department->name])) {
$statsDepartments[$risk->department->name] = [];
}
$statsDepartments[$risk->department->name][] = $risk;
}
if ($risk->category->id !== 0) {
if (!isset($statsCategories[$view->data['categories'][$risk->category->id]->title])) {
$statsCategories[$view->data['categories'][$risk->category->id]->title] = [];
}
$statsCategories[$view->data['categories'][$risk->category->id]->title][] = $risk;
}
}
$view->data['stats-departments'] = $statsDepartments;
$view->data['stats-categories'] = $statsCategories;
$view->data['history'] = RiskHistoryMapper::getHistory($this->app->unitId, new \DateTime(), new \DateTime());
return $view;
}
@ -146,7 +210,7 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/cause-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$causes = CauseMapper::getAll()->execute();
$causes = CauseMapper::getAll()->with('risk')->execute();
$view->data['causes'] = $causes;
return $view;
@ -194,7 +258,7 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/solution-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$solutions = SolutionMapper::getAll()->execute();
$solutions = SolutionMapper::getAll()->with('risk')->with('cause')->execute();
$view->data['solutions'] = $solutions;
return $view;
@ -218,56 +282,7 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/solution-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$solution = SolutionMapper::get()->where('id', (int) $request->getData('id'))->execute();
$view->data['solution'] = $solution;
return $view;
}
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewRiskUnitList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/unit-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$units = UnitMapper::getAll()->execute();
$view->data['units'] = $units;
return $view;
}
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewRiskUnitView(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/unit-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$unit = UnitMapper::get()->where('id', (int) $request->getData('id'))->execute();
$view->data['unit'] = $unit;
$view->data['solution'] = SolutionMapper::get()->where('id', (int) $request->getData('id'))->execute();
return $view;
}
@ -290,8 +305,9 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/department-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$departments = DepartmentMapper::getAll()->execute();
$view->data['departments'] = $departments;
$view->data['departments'] = DepartmentMapper::getAll()
->where('unit', $this->app->unitId)
->executeGetArray();
return $view;
}
@ -314,8 +330,18 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/department-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$department = DepartmentMapper::get()->where('id', (int) $request->getData('id'))->execute();
$view->data['department'] = $department;
$view->data['department'] = DepartmentMapper::get()
->where('id', (int) $request->getData('id'))
->execute();
$view->data['risks'] = RiskMapper::getAll()
->with('category')
->with('category/title')
->with('project')
->with('process')
->where('department', (int) $request->getData('id'))
->where('category/title/language', $request->header->l11n->language)
->executeGetArray();
return $view;
}
@ -338,8 +364,10 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/category-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$categories = CategoryMapper::getAll()->execute();
$view->data['categories'] = $categories;
$view->data['categories'] = CategoryMapper::getAll()
->with('title')
->where('title/language', $response->header->l11n->language)
->execute();
return $view;
}
@ -386,7 +414,7 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/RiskManagement/Theme/Backend/project-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003001001, $request, $response);
$projects = ProjectMapper::getAll()->execute();
$projects = ProjectMapper::getAll()->executeGetArray();
$view->data['projects'] = $projects;
return $view;

View File

@ -14,6 +14,9 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use phpOMS\Localization\BaseStringL11n;
use phpOMS\Localization\ISO639x1Enum;
/**
* Risk Management class.
*
@ -35,26 +38,10 @@ class Category
/**
* Title.
*
* @var string
* @var string|BaseStringL11n
* @since 1.0.0
*/
public string $title = '';
/**
* Description.
*
* @var string
* @since 1.0.0
*/
public string $description = '';
/**
* Description.
*
* @var string
* @since 1.0.0
*/
public string $descriptionRaw = '';
public string | BaseStringL11n $title = '';
/**
* Parent category.
@ -79,4 +66,37 @@ class Category
* @since 1.0.0
*/
public ?int $deputy = null;
/**
* @return string
*
* @since 1.0.0
*/
public function getL11n() : string
{
return $this->title instanceof BaseStringL11n ? $this->title->content : $this->title;
}
/**
* Set title
*
* @param string|BaseStringL11n $title Tag article title
* @param string $lang Language
*
* @return void
*
* @since 1.0.0
*/
public function setL11n(string | BaseStringL11n $title, string $lang = ISO639x1Enum::_EN) : void
{
if ($title instanceof BaseStringL11n) {
$this->title = $title;
} elseif (isset($this->title) && $this->title instanceof BaseStringL11n) {
$this->title->content = $title;
} else {
$this->title = new BaseStringL11n();
$this->title->content = $title;
$this->title->language = $lang;
}
}
}

View File

@ -0,0 +1,69 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n;
/**
* Category mapper class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*
* @template T of BaseStringL11n
* @extends DataMapperFactory<T>
*/
final class CategoryL11nMapper extends DataMapperFactory
{
/**
* Columns.
*
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
public const COLUMNS = [
'riskmngmt_category_l11n_id' => ['name' => 'riskmngmt_category_l11n_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_category_l11n_title' => ['name' => 'riskmngmt_category_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
'riskmngmt_category_l11n_category' => ['name' => 'riskmngmt_category_l11n_category', 'type' => 'int', 'internal' => 'ref'],
'riskmngmt_category_l11n_language' => ['name' => 'riskmngmt_category_l11n_language', 'type' => 'string', 'internal' => 'language'],
];
/**
* Primary table.
*
* @var string
* @since 1.0.0
*/
public const TABLE = 'riskmngmt_category_l11n';
/**
* Primary field name.
*
* @var string
* @since 1.0.0
*/
public const PRIMARYFIELD = 'riskmngmt_category_l11n_id';
/**
* Model to use by the mapper.
*
* @var class-string<T>
* @since 1.0.0
*/
public const MODEL = BaseStringL11n::class;
}

View File

@ -37,14 +37,27 @@ final class CategoryMapper extends DataMapperFactory
*/
public const COLUMNS = [
'riskmngmt_category_id' => ['name' => 'riskmngmt_category_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_category_name' => ['name' => 'riskmngmt_category_name', 'type' => 'string', 'internal' => 'title'],
'riskmngmt_category_description' => ['name' => 'riskmngmt_category_description', 'type' => 'string', 'internal' => 'description'],
'riskmngmt_category_descriptionraw' => ['name' => 'riskmngmt_category_descriptionraw', 'type' => 'string', 'internal' => 'descriptionRaw'],
'riskmngmt_category_parent' => ['name' => 'riskmngmt_category_parent', 'type' => 'int', 'internal' => 'parent'],
'riskmngmt_category_responsible' => ['name' => 'riskmngmt_category_responsible', 'type' => 'int', 'internal' => 'responsible'],
'riskmngmt_category_deputy' => ['name' => 'riskmngmt_category_deputy', 'type' => 'int', 'internal' => 'deputy'],
];
/**
* Has many relation.
*
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
* @since 1.0.0
*/
public const HAS_MANY = [
'title' => [
'mapper' => CategoryL11nMapper::class,
'table' => 'riskmngmt_category_l11n',
'self' => 'riskmngmt_category_l11n_category',
'column' => 'content',
'external' => null,
],
];
/**
* Primary table.
*

View File

@ -14,6 +14,8 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\Department;
/**
* Risk Management class.
*

View File

@ -14,6 +14,7 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\DepartmentMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**

View File

@ -1,42 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\Department as OrgDepartment;
/**
* Risk Management class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*/
class Department
{
/**
* ID.
*
* @var int
* @since 1.0.0
*/
public int $id = 0;
public ?OrgDepartment $department = null;
public ?int $responsible = null;
public ?int $deputy = null;
}

View File

@ -1,73 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Risk department mapper class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*
* @template T of Department
* @extends DataMapperFactory<T>
*/
final class DepartmentMapper extends DataMapperFactory
{
/**
* Columns.
*
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
public const COLUMNS = [
'riskmngmt_department_id' => ['name' => 'riskmngmt_department_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_department_department' => ['name' => 'riskmngmt_department_department', 'type' => 'int', 'internal' => 'department'],
'riskmngmt_department_responsible' => ['name' => 'riskmngmt_department_responsible', 'type' => 'int', 'internal' => 'responsible'],
'riskmngmt_department_deputy' => ['name' => 'riskmngmt_department_deputy', 'type' => 'int', 'internal' => 'deputy'],
];
/**
* Primary table.
*
* @var string
* @since 1.0.0
*/
public const TABLE = 'riskmngmt_department';
/**
* Primary field name.
*
* @var string
* @since 1.0.0
*/
public const PRIMARYFIELD = 'riskmngmt_department_id';
/**
* Belongs to.
*
* @var array<string, array{mapper:class-string, external:string, column?:string, by?:string}>
* @since 1.0.0
*/
public const BELONGS_TO = [
'department' => [
'mapper' => \Modules\Organization\Models\DepartmentMapper::class,
'external' => 'riskmngmt_department_department',
],
];
}

View File

@ -1,46 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
/**
* Risk Management class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*/
final class NullProject extends Project
{
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
/**
* {@inheritdoc}
*/
public function jsonSerialize() : mixed
{
return ['id' => $this->id];
}
}

View File

@ -34,6 +34,7 @@ final class NullRisk extends Risk
public function __construct(int $id = 0)
{
$this->id = $id;
parent::__construct();
}
/**

View File

@ -22,7 +22,7 @@ namespace Modules\RiskManagement\Models;
* @link https://jingga.app
* @since 1.0.0
*/
final class NullDepartment extends Department
final class NullRiskHistory extends RiskHistory
{
/**
* Constructor
@ -34,6 +34,7 @@ final class NullDepartment extends Department
public function __construct(int $id = 0)
{
$this->id = $id;
parent::__construct();
}
/**

View File

@ -14,6 +14,7 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\Department;
use Modules\Organization\Models\Unit;
/**
@ -36,27 +37,11 @@ class Process
public string $title = '';
/**
* Description.
*
* @var string
* @since 1.0.0
*/
public string $description = '';
/**
* Description.
*
* @var string
* @since 1.0.0
*/
public string $descriptionRaw = '';
public ?Department $department = null;
public ?int $responsible = null;
public ?int $deputy = null;
public ?Unit $unit = null;
public int $unit = 0;
}

View File

@ -14,6 +14,7 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\DepartmentMapper;
use Modules\Organization\Models\UnitMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
@ -39,8 +40,6 @@ final class ProcessMapper extends DataMapperFactory
public const COLUMNS = [
'riskmngmt_process_id' => ['name' => 'riskmngmt_process_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_process_name' => ['name' => 'riskmngmt_process_name', 'type' => 'string', 'internal' => 'title'],
'riskmngmt_process_description' => ['name' => 'riskmngmt_process_description', 'type' => 'string', 'internal' => 'description'],
'riskmngmt_process_descriptionraw' => ['name' => 'riskmngmt_process_descriptionraw', 'type' => 'string', 'internal' => 'descriptionRaw'],
'riskmngmt_process_department' => ['name' => 'riskmngmt_process_department', 'type' => 'int', 'internal' => 'department'],
'riskmngmt_process_unit' => ['name' => 'riskmngmt_process_unit', 'type' => 'int', 'internal' => 'unit'],
'riskmngmt_process_responsible' => ['name' => 'riskmngmt_process_responsible', 'type' => 'int', 'internal' => 'responsible'],
@ -54,10 +53,6 @@ final class ProcessMapper extends DataMapperFactory
* @since 1.0.0
*/
public const BELONGS_TO = [
'unit' => [
'mapper' => UnitMapper::class,
'external' => 'riskmngmt_process_unit',
],
'department' => [
'mapper' => DepartmentMapper::class,
'external' => 'riskmngmt_process_department',

View File

@ -1,42 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\ProjectManagement\Models\Project as PMProject;
/**
* Risk Management class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*/
class Project
{
/**
* ID.
*
* @var int
* @since 1.0.0
*/
public int $id = 0;
public ?PMProject $project = null;
public ?int $responsible = null;
public ?int $deputy = null;
}

View File

@ -1,73 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
* Risk project mapper class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*
* @template T of Project
* @extends DataMapperFactory<T>
*/
final class ProjectMapper extends DataMapperFactory
{
/**
* Columns.
*
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
public const COLUMNS = [
'riskmngmt_project_id' => ['name' => 'riskmngmt_project_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_project_project' => ['name' => 'riskmngmt_project_project', 'type' => 'int', 'internal' => 'project'],
'riskmngmt_project_responsible' => ['name' => 'riskmngmt_project_responsible', 'type' => 'int', 'internal' => 'responsible'],
'riskmngmt_project_deputy' => ['name' => 'riskmngmt_project_deputy', 'type' => 'int', 'internal' => 'deputy'],
];
/**
* Primary table.
*
* @var string
* @since 1.0.0
*/
public const TABLE = 'riskmngmt_project';
/**
* Primary field name.
*
* @var string
* @since 1.0.0
*/
public const PRIMARYFIELD = 'riskmngmt_project_id';
/**
* Belongs to.
*
* @var array<string, array{mapper:class-string, external:string, column?:string, by?:string}>
* @since 1.0.0
*/
public const BELONGS_TO = [
'project' => [
'mapper' => \Modules\ProjectManagement\Models\ProjectMapper::class,
'external' => 'riskmngmt_project_project',
],
];
}

View File

@ -14,8 +14,10 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Admin\Models\Account;
use Modules\Organization\Models\Department;
use Modules\Organization\Models\Unit;
use Modules\ProjectManagement\Models\Project;
use phpOMS\Stdlib\Base\FloatInt;
/**
* Risk Management class.
@ -35,6 +37,8 @@ class Risk
*/
public int $id = 0;
public int $status = RiskStatus::ACTIVE;
/**
* Name.
*
@ -59,7 +63,7 @@ class Risk
*/
public string $descriptionRaw = '';
public ?Unit $unit = null;
public int $unit = 0;
public ?Department $department = null;
@ -69,9 +73,9 @@ class Risk
public ?Process $process = null;
public ?int $responsible = null;
public ?Account $responsible = null;
public ?int $deputy = null;
public ?Account $deputy = null;
public array $histScore = [];
@ -83,6 +87,18 @@ class Risk
public \DateTimeImmutable $createdAt;
public float $grossLikelihoodR = 0.0;
public int $grossLikelihoodLevel = 0;
public int $grossCostLevel = 0;
public FloatInt $grossCost;
public FloatInt $grossExpectedCost;
public float $netLikelihoodR = 0.0;
public int $netLikelihoodLevel = 0;
public int $netCostLevel = 0;
public FloatInt $netCost;
public FloatInt $netExpectedCost;
/**
* Constructor.
*
@ -91,110 +107,10 @@ class Risk
public function __construct()
{
$this->createdAt = new \DateTimeImmutable('now');
}
/**
* Add cause.
*
* @param mixed $cause Cause
*
* @return void
*
* @since 1.0.0
*/
public function addCause($cause) : void
{
$this->causes[] = $cause;
}
/**
* Get causes
*
* @return array
*
* @since 1.0.0
*/
public function getCauses() : array
{
return $this->causes;
}
/**
* Add solution.
*
* @param mixed $solution Solution
*
* @return void
*
* @since 1.0.0
*/
public function addSolution($solution) : void
{
$this->solutions[] = $solution;
}
/**
* Get solutions
*
* @return array
*
* @since 1.0.0
*/
public function getSolutions() : array
{
return $this->solutions;
}
/**
* Add risk object.
*
* @param mixed $object Risk object
*
* @return void
*
* @since 1.0.0
*/
public function addRiskObject($object) : void
{
$this->riskObjects[] = $object;
}
/**
* Get risk objects
*
* @return array
*
* @since 1.0.0
*/
public function getRiskObjects() : array
{
return $this->riskObjects;
}
/**
* Add history.
*
* @param mixed $history History
*
* @return void
*
* @since 1.0.0
*/
public function addHistory($history) : void
{
$this->histScore[] = $history;
}
/**
* Get history
*
* @return array
*
* @since 1.0.0
*/
public function getHistory() : array
{
return $this->histScore;
$this->grossCost = new FloatInt();
$this->grossExpectedCost = new FloatInt();
$this->netCost = new FloatInt();
$this->netExpectedCost = new FloatInt();
}
use \Modules\Media\Models\MediaListTrait;

82
Models/RiskHistory.php Normal file
View File

@ -0,0 +1,82 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\Department;
use Modules\ProjectManagement\Models\Project;
use phpOMS\Stdlib\Base\FloatInt;
/**
* Risk Management class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*/
class RiskHistory
{
/**
* ID.
*
* @var int
* @since 1.0.0
*/
public int $id = 0;
public int $unit = 0;
public ?Department $department = null;
public ?Category $category = null;
public ?Project $project = null;
public ?Process $process = null;
public Risk $risk;
public \DateTimeImmutable $createdAt;
public float $grossLikelihoodR = 0.0;
public int $grossLikelihoodLevel = 0;
public int $grossCostLevel = 0;
public FloatInt $grossCost;
public FloatInt $grossExpectedCost;
public float $netLikelihoodR = 0.0;
public int $netLikelihoodLevel = 0;
public int $netCostLevel = 0;
public FloatInt $netCost;
public FloatInt $netExpectedCost;
/**
* Constructor.
*
* @since 1.0.0
*/
public function __construct()
{
$this->risk = new NullRisk();
$this->createdAt = new \DateTimeImmutable('now');
$this->grossCost = new FloatInt();
$this->grossExpectedCost = new FloatInt();
$this->netCost = new FloatInt();
$this->netExpectedCost = new FloatInt();
}
use \Modules\Media\Models\MediaListTrait;
}

View File

@ -0,0 +1,125 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Organization\Models\DepartmentMapper;
use Modules\ProjectManagement\Models\ProjectMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\DataStorage\Database\Query\Builder;
/**
* Risk mapper class.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*
* @template T of Risk
* @extends DataMapperFactory<T>
*/
final class RiskHistoryMapper extends DataMapperFactory
{
/**
* Columns.
*
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
* @since 1.0.0
*/
public const COLUMNS = [
'riskmngmt_history_id' => ['name' => 'riskmngmt_history_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_history_grosslikelihoodr' => ['name' => 'riskmngmt_history_grosslikelihoodr', 'type' => 'float', 'internal' => 'grossLikelihoodR'],
'riskmngmt_history_grosslikelihoodlevel' => ['name' => 'riskmngmt_history_grosslikelihoodlevel', 'type' => 'int', 'internal' => 'grossLikelihoodLevel'],
'riskmngmt_history_grosscostlevel' => ['name' => 'riskmngmt_history_grosscostlevel', 'type' => 'int', 'internal' => 'grossCostLevel'],
'riskmngmt_history_grosscost' => ['name' => 'riskmngmt_history_grosscost', 'type' => 'Serializable', 'internal' => 'grossCost'],
'riskmngmt_history_grossexpectedcost' => ['name' => 'riskmngmt_history_grossexpectedcost', 'type' => 'Serializable', 'internal' => 'grossExpectedCost'],
'riskmngmt_history_netlikelihoodr' => ['name' => 'riskmngmt_history_netlikelihoodr', 'type' => 'float', 'internal' => 'netLikelihoodR'],
'riskmngmt_history_netlikelihoodlevel' => ['name' => 'riskmngmt_history_netlikelihoodlevel', 'type' => 'int', 'internal' => 'netLikelihoodLevel'],
'riskmngmt_history_netcostlevel' => ['name' => 'riskmngmt_history_netcostlevel', 'type' => 'int', 'internal' => 'netCostLevel'],
'riskmngmt_history_netcost' => ['name' => 'riskmngmt_history_netcost', 'type' => 'Serializable', 'internal' => 'netCost'],
'riskmngmt_history_netexpectedcost' => ['name' => 'riskmngmt_history_netexpectedcost', 'type' => 'Serializable', 'internal' => 'netExpectedCost'],
'riskmngmt_history_unit' => ['name' => 'riskmngmt_history_unit', 'type' => 'int', 'internal' => 'unit'],
'riskmngmt_history_department' => ['name' => 'riskmngmt_history_department', 'type' => 'int', 'internal' => 'department'],
'riskmngmt_history_category' => ['name' => 'riskmngmt_history_category', 'type' => 'int', 'internal' => 'category'],
'riskmngmt_history_project' => ['name' => 'riskmngmt_history_project', 'type' => 'int', 'internal' => 'project'],
'riskmngmt_history_process' => ['name' => 'riskmngmt_history_process', 'type' => 'int', 'internal' => 'process'],
'riskmngmt_history_created_at' => ['name' => 'riskmngmt_history_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
];
/**
* Belongs to.
*
* @var array<string, array{mapper:class-string, external:string, column?:string, by?:string}>
* @since 1.0.0
*/
public const BELONGS_TO = [
'project' => [
'mapper' => ProjectMapper::class,
'external' => 'riskmngmt_history_project',
],
'process' => [
'mapper' => ProcessMapper::class,
'external' => 'riskmngmt_history_process',
],
'category' => [
'mapper' => CategoryMapper::class,
'external' => 'riskmngmt_history_category',
],
'department' => [
'mapper' => DepartmentMapper::class,
'external' => 'riskmngmt_history_department',
],
'risk' => [
'mapper' => RiskMapper::class,
'external' => 'riskmngmt_history_risk',
]
];
/**
* Primary table.
*
* @var string
* @since 1.0.0
*/
public const TABLE = 'riskmngmt_history';
/**
* Primary field name.
*
* @var string
* @since 1.0.0
*/
public const PRIMARYFIELD = 'riskmngmt_history_id';
/**
* Placeholder
*/
public static function getHistory(int $unit, \DateTime $start, \DateTime $end) : array
{
$query = new Builder(self::$db);
$result = $query->selectAs('SUM(riskmngmt_history_netexpectedcost)', 'net_costs')
->selectAs('YEAR(riskmngmt_history_created_at)', 'year')
->selectAs('MONTH(riskmngmt_history_created_at)', 'month')
->selectAs('DAY(riskmngmt_history_created_at)', 'day')
->from(self::TABLE)
->where(self::TABLE . '.riskmngmt_history_unit', '=', $unit)
->groupBy('year', 'month', 'day')
->orderBy(['year', 'month', 'day'], ['ASC', 'ASC', 'ASC'])
->execute()
?->fetchAll();
return $result ?? [];
}
}

View File

@ -14,9 +14,10 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use Modules\Admin\Models\AccountMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Organization\Models\DepartmentMapper;
use Modules\Organization\Models\UnitMapper;
use Modules\ProjectManagement\Models\ProjectMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/**
@ -40,9 +41,20 @@ final class RiskMapper extends DataMapperFactory
*/
public const COLUMNS = [
'riskmngmt_risk_id' => ['name' => 'riskmngmt_risk_id', 'type' => 'int', 'internal' => 'id'],
'riskmngmt_risk_status' => ['name' => 'riskmngmt_risk_status', 'type' => 'int', 'internal' => 'status'],
'riskmngmt_risk_name' => ['name' => 'riskmngmt_risk_name', 'type' => 'string', 'internal' => 'name'],
'riskmngmt_risk_description' => ['name' => 'riskmngmt_risk_description', 'type' => 'string', 'internal' => 'description'],
'riskmngmt_risk_descriptionraw' => ['name' => 'riskmngmt_risk_descriptionraw', 'type' => 'string', 'internal' => 'descriptionRaw'],
'riskmngmt_risk_grosslikelihoodr' => ['name' => 'riskmngmt_risk_grosslikelihoodr', 'type' => 'float', 'internal' => 'grossLikelihoodR'],
'riskmngmt_risk_grosslikelihoodlevel' => ['name' => 'riskmngmt_risk_grosslikelihoodlevel', 'type' => 'int', 'internal' => 'grossLikelihoodLevel'],
'riskmngmt_risk_grosscostlevel' => ['name' => 'riskmngmt_risk_grosscostlevel', 'type' => 'int', 'internal' => 'grossCostLevel'],
'riskmngmt_risk_grosscost' => ['name' => 'riskmngmt_risk_grosscost', 'type' => 'Serializable', 'internal' => 'grossCost'],
'riskmngmt_risk_grossexpectedcost' => ['name' => 'riskmngmt_risk_grossexpectedcost', 'type' => 'Serializable', 'internal' => 'grossExpectedCost'],
'riskmngmt_risk_netlikelihoodr' => ['name' => 'riskmngmt_risk_netlikelihoodr', 'type' => 'float', 'internal' => 'netLikelihoodR'],
'riskmngmt_risk_netlikelihoodlevel' => ['name' => 'riskmngmt_risk_netlikelihoodlevel', 'type' => 'int', 'internal' => 'netLikelihoodLevel'],
'riskmngmt_risk_netcostlevel' => ['name' => 'riskmngmt_risk_netcostlevel', 'type' => 'int', 'internal' => 'netCostLevel'],
'riskmngmt_risk_netcost' => ['name' => 'riskmngmt_risk_netcost', 'type' => 'Serializable', 'internal' => 'netCost'],
'riskmngmt_risk_netexpectedcost' => ['name' => 'riskmngmt_risk_netexpectedcost', 'type' => 'Serializable', 'internal' => 'netExpectedCost'],
'riskmngmt_risk_unit' => ['name' => 'riskmngmt_risk_unit', 'type' => 'int', 'internal' => 'unit'],
'riskmngmt_risk_department' => ['name' => 'riskmngmt_risk_department', 'type' => 'int', 'internal' => 'department'],
'riskmngmt_risk_category' => ['name' => 'riskmngmt_risk_category', 'type' => 'int', 'internal' => 'category'],
@ -93,6 +105,14 @@ final class RiskMapper extends DataMapperFactory
* @since 1.0.0
*/
public const BELONGS_TO = [
'responsible' => [
'mapper' => AccountMapper::class,
'external' => 'riskmngmt_risk_responsible',
],
'deputy' => [
'mapper' => AccountMapper::class,
'external' => 'riskmngmt_risk_deputy',
],
'project' => [
'mapper' => ProjectMapper::class,
'external' => 'riskmngmt_risk_project',
@ -108,11 +128,7 @@ final class RiskMapper extends DataMapperFactory
'department' => [
'mapper' => DepartmentMapper::class,
'external' => 'riskmngmt_risk_department',
],
'unit' => [
'mapper' => UnitMapper::class,
'external' => 'riskmngmt_risk_unit',
],
]
];
/**

9
Models/RiskScore.php → Models/RiskStatus.php Executable file → Normal file
View File

@ -14,14 +14,19 @@ declare(strict_types=1);
namespace Modules\RiskManagement\Models;
use phpOMS\Stdlib\Base\Enum;
/**
* Risk Management class.
* Risk status enum.
*
* @package Modules\RiskManagement\Models
* @license OMS License 2.0
* @link https://jingga.app
* @since 1.0.0
*/
class RiskScore
abstract class RiskStatus extends Enum
{
public const ACTIVE = 1;
public const INACTIVE = 2;
}

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'نشيط',
'All' => 'الجميع',
'Assessment' => 'تقدير',
'AvgRiskAmount' => 'avg. مبلغ المخاطر',
'Basic' => 'أساسي',
'Categories' => 'التصنيفات',
'Category' => 'فئة',
'Cause' => 'سبب',
'Causes' => 'أسباب',
'Cost' => 'كلفة',
'Critical' => 'حرج',
'Damage' => 'تلف',
'Department' => ' قسم، أقسام',
'Departments' => 'الإدارات',
'Description' => 'وصف',
'Due' => 'بسبب',
'Evaluation' => 'تقييم',
'Export' => 'يصدر',
'Frequency' => 'تكرار',
'Front' => 'أمام',
'History' => 'تاريخ',
'Interval' => 'فترة',
'Language' => 'لغة',
'LastReevaluation' => 'إعادة تقييم الماضي',
'Level' => 'مستوى',
'Limit' => 'حد',
'MainCategory' => 'الفئة الرئيسية',
'MainCause' => 'السبب الرئيسي',
'MainDepartment' => 'القسم الرئيسي',
'Manager' => 'مدير',
'Media' => 'وسائط',
'Name' => 'اسم',
'Navigation' => 'التنقل',
'New' => 'جديد',
'NewRisk' => 'خطر جديد',
'NextReevaluation' => 'إعادة التقييم التالي',
'Outdated' => 'عفا عليها الزمن',
'OverallRisk' => 'المخاطرة الشاملة',
'Parent' => 'الأبوين',
'Probability' => 'احتمالا',
'Process' => 'معالجة',
'Processes' => 'العمليات',
'Project' => 'المشروع',
'Projects' => 'مشاريع',
'Protection' => 'حماية',
'Ratio' => 'نسبة',
'Reduction' => 'اختزال',
'RemainingRisk' => 'المخاطرة المتبقية',
'Responsibility' => 'مسؤولية',
'Responsible' => 'مسؤول',
'Review' => 'إعادة النظر',
'Risk' => 'مخاطرة',
'RiskAcceptance' => 'قبول المخاطر',
'RiskConsequence' => 'نتيجة للمخاطر',
'RiskIndex' => 'مؤشر المخاطر',
'RiskLevels' => 'مستويات المخاطر',
'RiskLikelihood' => 'الاحتمالية المخاطرة',
'RiskObject' => 'موضوع خطر',
'RiskObjectStatus' => 'حالة خطر الحالة',
'RiskObjects' => 'أشياء خطر',
'RiskProbabilities' => 'احتمالات المخاطر',
'RiskProtection' => 'حماية المخاطر',
'RiskStatus' => 'حالة المخاطرة',
'Risks' => 'المخاطر',
'Select' => 'يختار',
'Severity' => 'خطورة',
'Solution' => 'المحلول',
'Solutions' => 'حلول',
'Statistics' => 'إحصائيات',
'Status' => 'حالة',
'Theme' => 'سمة',
'Title' => 'عنوان',
'TopRisks' => 'مخاطر أفضل',
'Total' => 'مجموع',
'Type' => 'نوع',
'Unit' => 'وحدة',
'Units' => 'وحدات',
'Upload' => 'تحميل',
'UserGroup' => 'المستخدم / المجموعة',
'Value' => 'قيمة',
'Watchlist' => 'مشاهدة القائمة',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktivní',
'All' => 'Všechno',
'Assessment' => 'Posouzení',
'AvgRiskAmount' => 'AVG. Částka rizika',
'Basic' => 'Základní',
'Categories' => 'Kategorie',
'Category' => 'Kategorie',
'Cause' => 'Způsobit',
'Causes' => 'Příčiny',
'Cost' => 'Náklady',
'Critical' => 'Kritický',
'Damage' => 'Poškození',
'Department' => 'oddělení',
'Departments' => 'Oddělení',
'Description' => 'Popis',
'Due' => 'Způsoben',
'Evaluation' => 'Hodnocení',
'Export' => 'Vývozní',
'Frequency' => 'Frekvence',
'Front' => 'Přední',
'History' => 'Dějiny',
'Interval' => 'Interval',
'Language' => 'Jazyk',
'LastReevaluation' => 'Poslední přehodnocení',
'Level' => 'Úroveň',
'Limit' => 'Omezit',
'MainCategory' => 'Hlavní kategorie',
'MainCause' => 'Hlavní důvod',
'MainDepartment' => 'Hlavní oddělení',
'Manager' => 'Manažer',
'Media' => 'Mediální',
'Name' => 'název',
'Navigation' => 'Navigace',
'New' => 'Nový',
'NewRisk' => 'Nové riziko',
'NextReevaluation' => 'Další přehodnocení',
'Outdated' => 'Zastaralý',
'OverallRisk' => 'Celkový riziko',
'Parent' => 'Rodič',
'Probability' => 'Pravděpodobnost',
'Process' => 'Proces',
'Processes' => 'Procesy',
'Project' => 'Projekt',
'Projects' => 'Projekty',
'Protection' => 'Ochrana',
'Ratio' => 'Poměr',
'Reduction' => 'Snížení',
'RemainingRisk' => 'Zbývající riziko',
'Responsibility' => 'Odpovědnost',
'Responsible' => 'Odpovědný',
'Review' => 'Posouzení',
'Risk' => 'Riziko',
'RiskAcceptance' => 'Přijetí rizika',
'RiskConsequence' => 'Rizikové důsledky',
'RiskIndex' => 'Index rizik',
'RiskLevels' => 'Úroveň rizika',
'RiskLikelihood' => 'Riziková pravděpodobnost',
'RiskObject' => 'Objekt rizika',
'RiskObjectStatus' => 'Stav objektů rizika',
'RiskObjects' => 'Rizikové objekty',
'RiskProbabilities' => 'Pravděpodobnost rizika',
'RiskProtection' => 'Ochrana rizika',
'RiskStatus' => 'Stav rizika',
'Risks' => 'Rizika',
'Select' => 'Vybrat',
'Severity' => 'Vážnost',
'Solution' => 'Řešení',
'Solutions' => 'Řešení',
'Statistics' => 'Statistika',
'Status' => 'Postavení',
'Theme' => 'Téma',
'Title' => 'Titul',
'TopRisks' => 'Horní rizika',
'Total' => 'Celkový',
'Type' => 'Typ',
'Unit' => 'Jednotka',
'Units' => 'Jednotky',
'Upload' => 'nahrát',
'UserGroup' => 'Uživatelská skupina',
'Value' => 'Hodnota',
'Watchlist' => 'Seznam toho, co chci vidět',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktiv',
'All' => 'Alle',
'Assessment' => 'Vurdering',
'AvgRiskAmount' => 'Avg. Risikobeløb',
'Basic' => 'Grundlæggende',
'Categories' => 'Kategorier',
'Category' => 'Kategori',
'Cause' => 'årsag',
'Causes' => 'Årsager',
'Cost' => 'Koste',
'Critical' => 'Kritisk',
'Damage' => 'Skade',
'Department' => 'Afdeling',
'Departments' => 'Afdelinger.',
'Description' => 'Beskrivelse',
'Due' => 'På grund',
'Evaluation' => 'Evaluering.',
'Export' => 'Eksport',
'Frequency' => 'Frekvens',
'Front' => 'Foran',
'History' => 'Historie',
'Interval' => 'Interval',
'Language' => 'Sprog',
'LastReevaluation' => 'Sidste reevaluation.',
'Level' => 'Niveau',
'Limit' => 'Begrænse',
'MainCategory' => 'Hovedkategorien.',
'MainCause' => 'Hovedårsag',
'MainDepartment' => 'Hovedafdeling.',
'Manager' => 'Manager',
'Media' => 'Medier',
'Name' => 'Navn',
'Navigation' => 'Navigation',
'New' => 'Ny',
'NewRisk' => 'Ny risiko.',
'NextReevaluation' => 'Næste reevaluation.',
'Outdated' => 'Forældet',
'OverallRisk' => 'Samlet risiko.',
'Parent' => 'Forælder',
'Probability' => 'Sandsynlighed',
'Process' => 'Behandle',
'Processes' => 'Processer.',
'Project' => 'Projekt',
'Projects' => 'Projekter',
'Protection' => 'Beskyttelse',
'Ratio' => 'Forhold',
'Reduction' => 'Reduktion',
'RemainingRisk' => 'Resterende risiko.',
'Responsibility' => 'Ansvar',
'Responsible' => 'Ansvarlig',
'Review' => 'Anmeldelse',
'Risk' => 'Risiko',
'RiskAcceptance' => 'Risiko accept.',
'RiskConsequence' => 'Risikostyring',
'RiskIndex' => 'Risikofindeks.',
'RiskLevels' => 'Risiko niveauer.',
'RiskLikelihood' => 'Risiko sandsynlighed.',
'RiskObject' => 'Risikoobjekt',
'RiskObjectStatus' => 'Risikoobjektstatus',
'RiskObjects' => 'Risikoobjekter.',
'RiskProbabilities' => 'Risiko sandsynligheder.',
'RiskProtection' => 'Risikobeskyttelse',
'RiskStatus' => 'Risikostatus.',
'Risks' => 'Risici.',
'Select' => 'Vælg',
'Severity' => 'Alvorlighed',
'Solution' => 'Opløsning',
'Solutions' => 'Løsninger',
'Statistics' => 'Statistikker',
'Status' => 'Status.',
'Theme' => 'Tema',
'Title' => 'Titel',
'TopRisks' => 'Toprisici',
'Total' => 'i alt',
'Type' => 'Type',
'Unit' => 'Enhed',
'Units' => 'Enheder.',
'Upload' => 'Upload',
'UserGroup' => 'Bruger / gruppe.',
'Value' => 'Værdi',
'Watchlist' => 'Watchlist',
]];

View File

@ -94,4 +94,7 @@ return ['RiskManagement' => [
'UserGroup' => 'Benutzergruppe',
'Value' => 'Wert',
'Watchlist' => 'Beobachtungsliste',
'Net' => 'Netto',
'Gross' => 'Brutto',
'Likelihood' => 'Wahrscheinlichkeit',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Ενεργός',
'All' => 'Ολα',
'Assessment' => 'Εκτίμηση',
'AvgRiskAmount' => 'Avg. Ποσό κινδύνου',
'Basic' => 'Βασικός',
'Categories' => 'Κατηγορία',
'Category' => 'Κατηγορία',
'Cause' => 'Αιτία',
'Causes' => 'Αιτίες',
'Cost' => 'Κόστος',
'Critical' => 'Κρίσιμος',
'Damage' => 'Βλάβη',
'Department' => 'Τμήμα',
'Departments' => 'Τμήματα',
'Description' => 'Περιγραφή',
'Due' => 'Λόγω',
'Evaluation' => 'Εκτίμηση',
'Export' => 'Εξαγωγή',
'Frequency' => 'Συχνότητα',
'Front' => 'Εμπρός',
'History' => 'Ιστορία',
'Interval' => 'Διάστημα',
'Language' => 'Γλώσσα',
'LastReevaluation' => 'Τελευταία επανεμφάνιση',
'Level' => 'Επίπεδο',
'Limit' => 'Οριο',
'MainCategory' => 'Κύρια κατηγορία',
'MainCause' => 'Κύρια αιτία',
'MainDepartment' => 'Κύριο Τμήμα',
'Manager' => 'Διευθυντής',
'Media' => 'Μεσο ΜΑΖΙΚΗΣ ΕΝΗΜΕΡΩΣΗΣ',
'Name' => 'Ονομα',
'Navigation' => 'Πλοήγηση',
'New' => 'Νέος',
'NewRisk' => 'Νέος κίνδυνος',
'NextReevaluation' => 'Επόμενη επανεκτίμηση',
'Outdated' => 'Απαρχαιωμένος',
'OverallRisk' => 'Γενικός κίνδυνος',
'Parent' => 'Μητρική εταιρεία',
'Probability' => 'Πιθανότητα',
'Process' => 'Επεξεργάζομαι, διαδικασία',
'Processes' => 'Διεργασίες',
'Project' => 'Εργο',
'Projects' => 'Εργα',
'Protection' => 'ΠΡΟΣΤΑΣΙΑ',
'Ratio' => 'Αναλογία',
'Reduction' => 'Μείωση',
'RemainingRisk' => 'Παραμένοντας κίνδυνο',
'Responsibility' => 'Ευθύνη',
'Responsible' => 'Υπεύθυνος',
'Review' => 'Ανασκόπηση',
'Risk' => 'Κίνδυνος',
'RiskAcceptance' => 'Αποδοχή κινδύνου',
'RiskConsequence' => 'Συνέπεια κινδύνου',
'RiskIndex' => 'Δείκτης κινδύνου',
'RiskLevels' => 'Επίπεδα κινδύνου',
'RiskLikelihood' => 'Πιθανότητα κινδύνου',
'RiskObject' => 'Αντικείμενο κινδύνου',
'RiskObjectStatus' => 'Κατάσταση αντικειμένου κινδύνου',
'RiskObjects' => 'Αντικείμενα κινδύνου',
'RiskProbabilities' => 'Πιθανότητες κινδύνου',
'RiskProtection' => 'Προστασία κινδύνου',
'RiskStatus' => 'Κατάσταση κινδύνου',
'Risks' => 'Κίνδυνοι',
'Select' => 'Επιλέγω',
'Severity' => 'Αυστηρότητα',
'Solution' => 'Λύση',
'Solutions' => 'Λύσεις',
'Statistics' => 'Στατιστική',
'Status' => 'Κατάσταση',
'Theme' => 'Θέμα',
'Title' => 'Τίτλος',
'TopRisks' => 'Κορυφαίοι κίνδυνοι',
'Total' => 'Σύνολο',
'Type' => 'Τύπος',
'Unit' => 'Μονάδα',
'Units' => 'Μονάδες',
'Upload' => 'Μεταφόρτω',
'UserGroup' => 'Χρήστης / Ομάδα',
'Value' => 'αξία',
'Watchlist' => 'Παρακολούθηση',
]];

View File

@ -94,4 +94,7 @@ return ['RiskManagement' => [
'UserGroup' => 'User/Group',
'Value' => 'Value',
'Watchlist' => 'Watchlist',
'Net' => 'Net',
'Gross' => 'Gross',
'Likelihood' => 'Likelihood',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Activo',
'All' => 'Todo',
'Assessment' => 'Evaluación',
'AvgRiskAmount' => 'AVG. Cantidad de riesgo',
'Basic' => 'Básico',
'Categories' => 'Categorías',
'Category' => 'Categoría',
'Cause' => 'Porque',
'Causes' => 'Causa',
'Cost' => 'Costo',
'Critical' => 'Crítico',
'Damage' => 'Daño',
'Department' => 'Departamento',
'Departments' => 'Departamentos',
'Description' => 'Descripción',
'Due' => 'Vencer',
'Evaluation' => 'Evaluación',
'Export' => 'Exportar',
'Frequency' => 'Frecuencia',
'Front' => 'Parte delantera',
'History' => 'Historia',
'Interval' => 'Intervalo',
'Language' => 'Idioma',
'LastReevaluation' => 'Última reevaluación',
'Level' => 'Nivel',
'Limit' => 'Límite',
'MainCategory' => 'categoria principal',
'MainCause' => 'Causa principal',
'MainDepartment' => 'Departamento principal',
'Manager' => 'Gerente',
'Media' => 'Medios de comunicación',
'Name' => 'Nombre',
'Navigation' => 'Navegación',
'New' => 'Nuevo',
'NewRisk' => 'Nuevo riesgo',
'NextReevaluation' => 'Siguiente reevaluación',
'Outdated' => 'Anticuado',
'OverallRisk' => 'Riesgo general',
'Parent' => 'Padre',
'Probability' => 'Probabilidad',
'Process' => 'Proceso',
'Processes' => 'Procesos',
'Project' => 'Proyecto',
'Projects' => 'Proyectos',
'Protection' => 'Proteccion',
'Ratio' => 'Proporción',
'Reduction' => 'Reducción',
'RemainingRisk' => 'Riesgo restante',
'Responsibility' => 'Responsabilidad',
'Responsible' => 'Responsable',
'Review' => 'Revisar',
'Risk' => 'Riesgo',
'RiskAcceptance' => 'Aceptación de riesgos',
'RiskConsequence' => 'Consecuencia de riesgo',
'RiskIndex' => 'Índice de riesgo',
'RiskLevels' => 'Niveles de riesgo',
'RiskLikelihood' => 'Probabilidad de riesgo',
'RiskObject' => 'Objeto de riesgo',
'RiskObjectStatus' => 'Estado del objeto de riesgo',
'RiskObjects' => 'Objetos de riesgo',
'RiskProbabilities' => 'Probabilidades de riesgo',
'RiskProtection' => 'Protección contra riesgos',
'RiskStatus' => 'Estado de riesgo',
'Risks' => 'Riesgos',
'Select' => 'Seleccione',
'Severity' => 'Gravedad',
'Solution' => 'Solución',
'Solutions' => 'Soluciones',
'Statistics' => 'Estadísticas',
'Status' => 'Estado',
'Theme' => 'Tema',
'Title' => 'Título',
'TopRisks' => 'Riesgos principales',
'Total' => 'Total',
'Type' => 'Escribe',
'Unit' => 'Unidad',
'Units' => 'Unidades',
'Upload' => 'Subir',
'UserGroup' => 'Grupo de usuario',
'Value' => 'Valor',
'Watchlist' => 'Lista de observación',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktiivinen',
'All' => 'Kaikki',
'Assessment' => 'Arviointi',
'AvgRiskAmount' => 'Avg. Riskien määrä',
'Basic' => 'Perus-',
'Categories' => 'Luokat',
'Category' => 'Kategoria',
'Cause' => 'Syy',
'Causes' => 'Syyt',
'Cost' => 'Kustannus',
'Critical' => 'Kriittinen',
'Damage' => 'Vahingoittaa',
'Department' => 'Osasto',
'Departments' => 'Osasto',
'Description' => 'Kuvaus',
'Due' => 'Takia',
'Evaluation' => 'Arviointi',
'Export' => 'Viedä',
'Frequency' => 'Taajuus',
'Front' => 'Edestä',
'History' => 'Historia',
'Interval' => 'Aikaväli',
'Language' => 'Kieli',
'LastReevaluation' => 'Viimeinen uudelleenarviointi',
'Level' => 'Taso',
'Limit' => 'Raja',
'MainCategory' => 'Pääasiallinen luokka',
'MainCause' => 'Pääsyy',
'MainDepartment' => 'Pääosasto',
'Manager' => 'Johtaja',
'Media' => 'Media',
'Name' => 'Nimi',
'Navigation' => 'Navigointi',
'New' => 'Uusi',
'NewRisk' => 'Uusi riski',
'NextReevaluation' => 'Seuraava uudelleenarviointi',
'Outdated' => 'Vanhentunut',
'OverallRisk' => 'Yleinen riski',
'Parent' => 'Vanhempi',
'Probability' => 'Todennäköisyys',
'Process' => 'Prosessi',
'Processes' => 'Prosessit',
'Project' => 'Hanke',
'Projects' => 'Hankkeet',
'Protection' => 'Suojaus',
'Ratio' => 'Suhde',
'Reduction' => 'Vähennys',
'RemainingRisk' => 'Jäljellä oleva riski',
'Responsibility' => 'Vastuullisuus',
'Responsible' => 'Vastuullinen',
'Review' => 'Arvostelu',
'Risk' => 'Riski',
'RiskAcceptance' => 'Riskien hyväksyminen',
'RiskConsequence' => 'Riskien seuraus',
'RiskIndex' => 'Riskiindeksi',
'RiskLevels' => 'Riskitaso',
'RiskLikelihood' => 'Riskien todennäköisyys',
'RiskObject' => 'Riski-objekti',
'RiskObjectStatus' => 'Riski-objektin tila',
'RiskObjects' => 'Riski esineet',
'RiskProbabilities' => 'Riskien todennäköisyydet',
'RiskProtection' => 'Riskien suojelu',
'RiskStatus' => 'Riskitila',
'Risks' => 'Riskejä',
'Select' => 'Valitse',
'Severity' => 'Vakavuus',
'Solution' => 'Ratkaisu',
'Solutions' => 'Ratkaisut',
'Statistics' => 'Tilastot',
'Status' => 'Tila',
'Theme' => 'Teema',
'Title' => 'Otsikko',
'TopRisks' => 'Top riskit',
'Total' => 'Kaikki yhteensä',
'Type' => 'Tyyppi',
'Unit' => 'Yksikkö',
'Units' => 'Yksiköt',
'Upload' => 'Ladata',
'UserGroup' => 'Käyttäjäryhmä',
'Value' => 'Arvo',
'Watchlist' => 'Vartiolista',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'actif',
'All' => 'Tout',
'Assessment' => 'Évaluation',
'AvgRiskAmount' => 'Avg. Quantité de risque',
'Basic' => 'De base',
'Categories' => 'Catégories',
'Category' => 'Catégorie',
'Cause' => 'Cause',
'Causes' => 'Causes',
'Cost' => 'Coût',
'Critical' => 'Critique',
'Damage' => 'Endommager',
'Department' => 'département',
'Departments' => 'Départements',
'Description' => 'La description',
'Due' => 'Dû',
'Evaluation' => 'Évaluation',
'Export' => 'Exportation',
'Frequency' => 'La fréquence',
'Front' => 'De face',
'History' => 'Histoire',
'Interval' => 'Intervalle',
'Language' => 'Langue',
'LastReevaluation' => 'Dernière réévaluation',
'Level' => 'Niveau',
'Limit' => 'Limite',
'MainCategory' => 'catégorie principale',
'MainCause' => 'La cause principale',
'MainDepartment' => 'Département principal',
'Manager' => 'Directeur',
'Media' => 'Médias',
'Name' => 'Nom',
'Navigation' => 'La navigation',
'New' => 'Nouvelle',
'NewRisk' => 'Nouveau risque',
'NextReevaluation' => 'Prochaine réévaluation',
'Outdated' => 'Dépassé',
'OverallRisk' => 'Risque global',
'Parent' => 'Parent',
'Probability' => 'Probabilité',
'Process' => 'Traiter',
'Processes' => 'Procédés',
'Project' => 'Projet',
'Projects' => 'Projets',
'Protection' => 'protection',
'Ratio' => 'Rapport',
'Reduction' => 'Réduction',
'RemainingRisk' => 'Risque restant',
'Responsibility' => 'Responsabilité',
'Responsible' => 'Responsable',
'Review' => 'Passer en revue',
'Risk' => 'Risque',
'RiskAcceptance' => 'Acceptation des risques',
'RiskConsequence' => 'Conséquence des risques',
'RiskIndex' => 'Indice de risque',
'RiskLevels' => 'Niveaux de risque',
'RiskLikelihood' => 'Risque de risque',
'RiskObject' => 'Objet de risque',
'RiskObjectStatus' => 'Statut d\'objet de risque',
'RiskObjects' => 'Objets de risque',
'RiskProbabilities' => 'Probabilités de risque',
'RiskProtection' => 'Protection des risques',
'RiskStatus' => 'État des risques',
'Risks' => 'Des risques',
'Select' => 'Sélectionner',
'Severity' => 'Gravité',
'Solution' => 'Solution',
'Solutions' => 'Solutions',
'Statistics' => 'Statistiques',
'Status' => 'Statut',
'Theme' => 'Thème',
'Title' => 'Titre',
'TopRisks' => 'Top risques',
'Total' => 'Le total',
'Type' => 'Taper',
'Unit' => 'Unité',
'Units' => 'Unités',
'Upload' => 'Télécharger',
'UserGroup' => 'Utilisateur / groupe',
'Value' => 'Valeur',
'Watchlist' => 'Blancheur',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktív',
'All' => 'Minden',
'Assessment' => 'Értékelés',
'AvgRiskAmount' => 'AVG. Kockázati összeg',
'Basic' => 'Alapvető',
'Categories' => 'Kategóriák',
'Category' => 'Kategória',
'Cause' => 'Ok',
'Causes' => 'Okoz',
'Cost' => 'Költség',
'Critical' => 'Kritikai',
'Damage' => 'Kár',
'Department' => 'Osztály',
'Departments' => 'Osztályok',
'Description' => 'Leírás',
'Due' => 'Esedékes',
'Evaluation' => 'Értékelés',
'Export' => 'Export',
'Frequency' => 'Frekvencia',
'Front' => 'Elülső',
'History' => 'Történelem',
'Interval' => 'Intervallum',
'Language' => 'Nyelv',
'LastReevaluation' => 'Utolsó áttelepítés',
'Level' => 'Szint',
'Limit' => 'Határ',
'MainCategory' => 'Fő kategória',
'MainCause' => 'Fő ok',
'MainDepartment' => 'Főosztály',
'Manager' => 'Menedzser',
'Media' => 'Média',
'Name' => 'Név',
'Navigation' => 'Navigáció',
'New' => 'Új',
'NewRisk' => 'Új kockázat',
'NextReevaluation' => 'Következő áttelepítés',
'Outdated' => 'Elavult',
'OverallRisk' => 'Általános kockázat',
'Parent' => 'Szülő',
'Probability' => 'Valószínűség',
'Process' => 'Folyamat',
'Processes' => 'Folyamatok',
'Project' => 'Projekt',
'Projects' => 'Projektek',
'Protection' => 'Védelem',
'Ratio' => 'Hányados',
'Reduction' => 'Csökkentés',
'RemainingRisk' => 'Fennmaradó kockázat',
'Responsibility' => 'Felelősség',
'Responsible' => 'Felelős',
'Review' => 'Felülvizsgálat',
'Risk' => 'Kockázat',
'RiskAcceptance' => 'Kockázati elfogadás',
'RiskConsequence' => 'Kockázati következmény',
'RiskIndex' => 'Kockázati index',
'RiskLevels' => 'Kockázati szintek',
'RiskLikelihood' => 'Kockázati valószínűség',
'RiskObject' => 'Kockázati objektum',
'RiskObjectStatus' => 'Kockázati objektum állapota',
'RiskObjects' => 'Kockázati tárgyak',
'RiskProbabilities' => 'Kockázati valószínűségek',
'RiskProtection' => 'Kockázatvédelem',
'RiskStatus' => 'Kockázati állapot',
'Risks' => 'Kockázatok',
'Select' => 'Kiválaszt',
'Severity' => 'Súlyosság',
'Solution' => 'Megoldás',
'Solutions' => 'Megoldások',
'Statistics' => 'Statisztika',
'Status' => 'Állapot',
'Theme' => 'Téma',
'Title' => 'Cím',
'TopRisks' => 'Felső kockázatok',
'Total' => 'Teljes',
'Type' => 'típus',
'Unit' => 'Mértékegység',
'Units' => 'Egységek',
'Upload' => 'Feltöltés',
'UserGroup' => 'Felhasználói csoport',
'Value' => 'Érték',
'Watchlist' => 'Figyelőlista',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Attivo',
'All' => 'Tutto',
'Assessment' => 'Valutazione',
'AvgRiskAmount' => 'Avg. Importo del rischio',
'Basic' => 'Di base',
'Categories' => 'Categorie',
'Category' => 'Categoria',
'Cause' => 'Causa',
'Causes' => 'Cause',
'Cost' => 'Costo',
'Critical' => 'Critico',
'Damage' => 'Danno',
'Department' => 'Dipartimento',
'Departments' => 'Dipartimenti',
'Description' => 'Descrizione',
'Due' => 'Dovuto',
'Evaluation' => 'Valutazione',
'Export' => 'Esportare',
'Frequency' => 'Frequenza',
'Front' => 'Davanti',
'History' => 'Storia',
'Interval' => 'Intervallo',
'Language' => 'Lingua',
'LastReevaluation' => 'Ultima rivalutazione',
'Level' => 'Livello',
'Limit' => 'Limite',
'MainCategory' => 'Categoria Principale',
'MainCause' => 'Causa principale',
'MainDepartment' => 'Reparto principale',
'Manager' => 'Gestore',
'Media' => 'Media',
'Name' => 'Nome',
'Navigation' => 'Navigazione',
'New' => 'Nuovo',
'NewRisk' => 'Nuovo rischio',
'NextReevaluation' => 'Successiva rivalutazione',
'Outdated' => 'Obsoleto',
'OverallRisk' => 'Rischio complessivo',
'Parent' => 'Genitore',
'Probability' => 'Probabilità',
'Process' => 'Processi',
'Processes' => 'Processi',
'Project' => 'Progetto',
'Projects' => 'Progetti',
'Protection' => 'Protezione',
'Ratio' => 'Rapporto',
'Reduction' => 'Riduzione',
'RemainingRisk' => 'Residuo rischi',
'Responsibility' => 'Responsabilità',
'Responsible' => 'Responsabile',
'Review' => 'Revisione',
'Risk' => 'Rischio',
'RiskAcceptance' => 'Accettazione del rischio',
'RiskConsequence' => 'Conseguenza del rischio',
'RiskIndex' => 'Indice dei rischi',
'RiskLevels' => 'Livelli di rischio',
'RiskLikelihood' => 'Rischio di rischio',
'RiskObject' => 'Oggetto di rischio',
'RiskObjectStatus' => 'Stato dell\'oggetto del rischio',
'RiskObjects' => 'Oggetti di rischio',
'RiskProbabilities' => 'Probabilità del rischio',
'RiskProtection' => 'Protezione del rischio',
'RiskStatus' => 'Stato del rischio',
'Risks' => 'Rischi',
'Select' => 'Selezionare',
'Severity' => 'Gravità',
'Solution' => 'Soluzione',
'Solutions' => 'Soluzioni',
'Statistics' => 'Statistiche',
'Status' => 'Stato',
'Theme' => 'Tema',
'Title' => 'Titolo',
'TopRisks' => 'I migliori rischi',
'Total' => 'Totale',
'Type' => 'Tipo',
'Unit' => 'Unità',
'Units' => 'Unità',
'Upload' => 'Caricamento',
'UserGroup' => 'Gruppo di utenti',
'Value' => 'Valore',
'Watchlist' => 'Watchlist.',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'アクティブ',
'All' => '全て',
'Assessment' => '評価',
'AvgRiskAmount' => '平均。リスク額',
'Basic' => '基本',
'Categories' => 'カテゴリー',
'Category' => 'カテゴリー',
'Cause' => '原因',
'Causes' => '原因',
'Cost' => '料金',
'Critical' => '致命的',
'Damage' => 'ダメージ',
'Department' => 'デパートメント',
'Departments' => '部門',
'Description' => '説明',
'Due' => '期限',
'Evaluation' => '評価',
'Export' => '輸出',
'Frequency' => '周波数',
'Front' => 'フロント',
'History' => '歴史',
'Interval' => '間隔',
'Language' => '言語',
'LastReevaluation' => '最後の再評価',
'Level' => 'レベル',
'Limit' => '限界',
'MainCategory' => 'メインカテゴリー',
'MainCause' => '主要因',
'MainDepartment' => '主要百貨店',
'Manager' => 'マネジャー',
'Media' => 'メディア',
'Name' => '名前',
'Navigation' => 'ナビゲーション',
'New' => '新しい',
'NewRisk' => '新しいリスク',
'NextReevaluation' => '次の再評価',
'Outdated' => '古くて',
'OverallRisk' => '全体的なリスク',
'Parent' => '親',
'Probability' => '確率',
'Process' => 'プロセス',
'Processes' => 'プロセス',
'Project' => '計画',
'Projects' => 'プロジェクト',
'Protection' => '保護',
'Ratio' => '比',
'Reduction' => '割引',
'RemainingRisk' => '残りのリスク',
'Responsibility' => '責任',
'Responsible' => '責任者',
'Review' => 'レビュー',
'Risk' => '危険',
'RiskAcceptance' => 'リスク受け入れ',
'RiskConsequence' => 'リスクの結果',
'RiskIndex' => 'リスク指標',
'RiskLevels' => 'リスクレベル',
'RiskLikelihood' => '危険な可能性',
'RiskObject' => 'リスクオブジェクト',
'RiskObjectStatus' => 'リスクオブジェクトのステータス',
'RiskObjects' => 'リスクオブジェクト',
'RiskProbabilities' => 'リスク確率',
'RiskProtection' => 'リスク保護',
'RiskStatus' => 'リスク状況',
'Risks' => 'リスク',
'Select' => '選択する',
'Severity' => '重大度',
'Solution' => '解決',
'Solutions' => 'ソリューション',
'Statistics' => '統計学',
'Status' => '状態',
'Theme' => 'テーマ',
'Title' => 'タイトル',
'TopRisks' => 'トップリスク',
'Total' => '合計',
'Type' => 'タイプ',
'Unit' => '単位',
'Units' => '単位',
'Upload' => 'アップロード',
'UserGroup' => 'ユーザー・グループ',
'Value' => '価値',
'Watchlist' => 'ウォッチリスト',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => '활동적인',
'All' => '모두',
'Assessment' => '평가',
'AvgRiskAmount' => '평균 위험 금액',
'Basic' => '기초적인',
'Categories' => '카테고리',
'Category' => '범주',
'Cause' => '원인',
'Causes' => '원인',
'Cost' => '비용',
'Critical' => '비판적인',
'Damage' => '손상',
'Department' => '부서',
'Departments' => '부서',
'Description' => '설명',
'Due' => '로 인한',
'Evaluation' => '평가',
'Export' => '내 보내다',
'Frequency' => '빈도',
'Front' => '앞',
'History' => '역사',
'Interval' => '간격',
'Language' => '언어',
'LastReevaluation' => '마지막 재평가',
'Level' => '수준',
'Limit' => '한계',
'MainCategory' => '주요 카테고리',
'MainCause' => '주요 원인',
'MainDepartment' => '주요 부서',
'Manager' => '관리자',
'Media' => '미디어',
'Name' => '이름',
'Navigation' => '항해',
'New' => '새로운',
'NewRisk' => '새로운 위험',
'NextReevaluation' => '다음 재평가',
'Outdated' => '시대에 뒤쳐진',
'OverallRisk' => '전반적인 위험',
'Parent' => '부모의',
'Probability' => '개연성',
'Process' => '프로세스',
'Processes' => '프로세스',
'Project' => '프로젝트',
'Projects' => '프로젝트',
'Protection' => '보호',
'Ratio' => '비율',
'Reduction' => '절감',
'RemainingRisk' => '남은 위험',
'Responsibility' => '책임',
'Responsible' => '책임이있는',
'Review' => '검토',
'Risk' => '위험',
'RiskAcceptance' => '위험 수용',
'RiskConsequence' => '위험 결과',
'RiskIndex' => '위험 색인',
'RiskLevels' => '위험 수준',
'RiskLikelihood' => '위험 가능성',
'RiskObject' => '위험 객체',
'RiskObjectStatus' => '위험 개체 상태',
'RiskObjects' => '위험 물체',
'RiskProbabilities' => '위험 확률',
'RiskProtection' => '위험 보호',
'RiskStatus' => '위험 상태',
'Risks' => '위험',
'Select' => '선택하다',
'Severity' => '심각성',
'Solution' => '해결책',
'Solutions' => '솔루션',
'Statistics' => '통계',
'Status' => '상태',
'Theme' => '주제',
'Title' => '제목',
'TopRisks' => '최고 위험',
'Total' => '총',
'Type' => '유형',
'Unit' => '단위',
'Units' => '단위',
'Upload' => '업로드',
'UserGroup' => '사용자 / 그룹',
'Value' => '값',
'Watchlist' => '워치리스트',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktiv',
'All' => 'Alle',
'Assessment' => 'evaluering',
'AvgRiskAmount' => 'Nr. Risiko beløp',
'Basic' => 'Grunnleggende.',
'Categories' => 'Kategorier',
'Category' => 'Kategori',
'Cause' => 'Årsaken',
'Causes' => 'Fører til',
'Cost' => 'Koste',
'Critical' => 'Kritisk',
'Damage' => 'Skader',
'Department' => 'Avdeling',
'Departments' => 'Avdelinger',
'Description' => 'Beskrivelse',
'Due' => 'På grunn av det',
'Evaluation' => 'Evaluering',
'Export' => 'Eksport',
'Frequency' => 'Frekvens',
'Front' => 'Front',
'History' => 'Historie',
'Interval' => 'Intervall',
'Language' => 'Språk',
'LastReevaluation' => 'Siste revurdering',
'Level' => 'Nivå',
'Limit' => 'Grense',
'MainCategory' => 'Hovedkategori.',
'MainCause' => 'Hovedårsak',
'MainDepartment' => 'Hovedavdeling',
'Manager' => 'sjef',
'Media' => 'Media',
'Name' => 'Navn',
'Navigation' => 'Navigasjon',
'New' => 'Ny',
'NewRisk' => 'Ny risiko',
'NextReevaluation' => 'Neste revurdering',
'Outdated' => 'Utdatert',
'OverallRisk' => 'Samlet risiko',
'Parent' => 'Foreldre',
'Probability' => 'Sannsynlighet',
'Process' => 'Prosess',
'Processes' => 'Prosesser',
'Project' => 'Prosjekt',
'Projects' => 'Prosjekter',
'Protection' => 'Beskyttelse',
'Ratio' => 'Forhold',
'Reduction' => 'Reduksjon',
'RemainingRisk' => 'Resterende risiko',
'Responsibility' => 'Ansvar',
'Responsible' => 'Ansvarlig',
'Review' => 'Anmeldelse',
'Risk' => 'Fare',
'RiskAcceptance' => 'Risiko aksept',
'RiskConsequence' => 'Risiko konsekvens',
'RiskIndex' => 'Risikoindeks',
'RiskLevels' => 'Risiko nivåer',
'RiskLikelihood' => 'Risiko sannsynligheten for risiko',
'RiskObject' => 'Risikobjekt',
'RiskObjectStatus' => 'Risikobjektstatus',
'RiskObjects' => 'Risikobjekter',
'RiskProbabilities' => 'Risiko sannsynligheter',
'RiskProtection' => 'Risikobeskyttelse',
'RiskStatus' => 'Risikostatus',
'Risks' => 'Risiko',
'Select' => 'Plukke ut',
'Severity' => 'Alvorlighetsgraden',
'Solution' => 'Løsning',
'Solutions' => 'Løsninger',
'Statistics' => 'Statistikk',
'Status' => 'Status',
'Theme' => 'Tema',
'Title' => 'Tittel',
'TopRisks' => 'Topprisiko',
'Total' => 'Total',
'Type' => 'Type',
'Unit' => 'Enhet',
'Units' => 'Enheter',
'Upload' => 'Laste opp',
'UserGroup' => 'Brukergruppe',
'Value' => 'Verdi',
'Watchlist' => 'Watchlist.',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktywny',
'All' => 'Wszystkie',
'Assessment' => 'Oszacowanie',
'AvgRiskAmount' => 'AVG. Kwota ryzyka',
'Basic' => 'Podstawowy',
'Categories' => 'Kategorie',
'Category' => 'Kategoria',
'Cause' => 'Przyczyna',
'Causes' => 'Powoduje',
'Cost' => 'Koszt',
'Critical' => 'Krytyczny',
'Damage' => 'Szkoda',
'Department' => 'dział',
'Departments' => 'Wydziały',
'Description' => 'Opis',
'Due' => 'Z powodu',
'Evaluation' => 'Ocena',
'Export' => 'Eksport',
'Frequency' => 'Częstotliwość',
'Front' => 'Przód',
'History' => 'Historia',
'Interval' => 'Interwał',
'Language' => 'Język',
'LastReevaluation' => 'Ostatnia reewaluacja',
'Level' => 'Poziom',
'Limit' => 'Limit',
'MainCategory' => 'główna kategoria',
'MainCause' => 'Główna przyczyna',
'MainDepartment' => 'Główny dział',
'Manager' => 'Menedżer',
'Media' => 'Głoska bezdźwięczna',
'Name' => 'Nazwa',
'Navigation' => 'Nawigacja',
'New' => 'Nowy',
'NewRisk' => 'Nowe ryzyko',
'NextReevaluation' => 'Następna reewaluacja',
'Outdated' => 'Przestarzały',
'OverallRisk' => 'Ogólne ryzyko',
'Parent' => 'Rodzic',
'Probability' => 'Prawdopodobieństwo',
'Process' => 'Proces',
'Processes' => 'Procesy',
'Project' => 'Projekt',
'Projects' => 'Projektowanie',
'Protection' => 'Ochrona',
'Ratio' => 'Stosunek',
'Reduction' => 'Zmniejszenie',
'RemainingRisk' => 'Pozostały ryzyko',
'Responsibility' => 'Odpowiedzialność',
'Responsible' => 'Odpowiedzialny',
'Review' => 'Recenzja',
'Risk' => 'Ryzyko',
'RiskAcceptance' => 'Akceptacja ryzyka',
'RiskConsequence' => 'Konsekwencja ryzyka',
'RiskIndex' => 'Indeks ryzyka',
'RiskLevels' => 'Poziomy ryzyka',
'RiskLikelihood' => 'Prawdopodobieństwo ryzyka',
'RiskObject' => 'Obiekt ryzyka',
'RiskObjectStatus' => 'Status obiektu ryzyka',
'RiskObjects' => 'Obiekty ryzyka',
'RiskProbabilities' => 'Prawdopodobieństwa ryzyka',
'RiskProtection' => 'Ochrona ryzyka',
'RiskStatus' => 'Status ryzyka',
'Risks' => 'Ryzyko',
'Select' => 'Wybierać',
'Severity' => 'Surowość',
'Solution' => 'Rozwiązanie',
'Solutions' => 'Rozwiązania',
'Statistics' => 'Statystyka',
'Status' => 'Status',
'Theme' => 'Temat',
'Title' => 'Tytuł',
'TopRisks' => 'Najwyższe ryzyko',
'Total' => 'Całkowity',
'Type' => 'Rodzaj',
'Unit' => 'Jednostka',
'Units' => 'Jednostki',
'Upload' => 'Wgrywać',
'UserGroup' => 'Użytkownik / grupa.',
'Value' => 'Wartość',
'Watchlist' => 'Lista obserwacyjna',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Ativo',
'All' => 'Tudo',
'Assessment' => 'Avaliação',
'AvgRiskAmount' => 'Avg. Quantidade de risco',
'Basic' => 'Básico',
'Categories' => 'Categorias',
'Category' => 'Categoria',
'Cause' => 'Causa',
'Causes' => 'Causas',
'Cost' => 'Custo',
'Critical' => 'Crítico',
'Damage' => 'Dano',
'Department' => 'Departamento',
'Departments' => 'Departamentos.',
'Description' => 'Descrição',
'Due' => 'Vencimento',
'Evaluation' => 'Avaliação',
'Export' => 'Exportar',
'Frequency' => 'Frequência',
'Front' => 'Frente',
'History' => 'História',
'Interval' => 'Intervalo',
'Language' => 'Língua',
'LastReevaluation' => 'Última reavaliação',
'Level' => 'Nível',
'Limit' => 'Limite',
'MainCategory' => 'categoria principal',
'MainCause' => 'Causa principal',
'MainDepartment' => 'Departamento principal',
'Manager' => 'Gerente',
'Media' => 'meios de comunicação',
'Name' => 'Nome',
'Navigation' => 'Navegação',
'New' => 'Novo',
'NewRisk' => 'Novo risco',
'NextReevaluation' => 'Próximo reavaliação',
'Outdated' => 'Desatualizado',
'OverallRisk' => 'Risco geral',
'Parent' => 'Pai',
'Probability' => 'Probabilidade',
'Process' => 'Processo',
'Processes' => 'Processos',
'Project' => 'Projeto',
'Projects' => 'Projetos',
'Protection' => 'Proteção',
'Ratio' => 'Razão',
'Reduction' => 'Redução',
'RemainingRisk' => 'Risco restante',
'Responsibility' => 'Responsabilidade',
'Responsible' => 'Responsável',
'Review' => 'Análise',
'Risk' => 'Risco',
'RiskAcceptance' => 'Aceitação de risco',
'RiskConsequence' => 'Consequência de risco',
'RiskIndex' => 'Índice de risco',
'RiskLevels' => 'Níveis de risco',
'RiskLikelihood' => 'Projeção de risco',
'RiskObject' => 'Objeto de risco',
'RiskObjectStatus' => 'Status do objeto de risco',
'RiskObjects' => 'Objetos de risco',
'RiskProbabilities' => 'Probabilidades de risco',
'RiskProtection' => 'Proteção de Risco',
'RiskStatus' => 'Status de risco',
'Risks' => 'Riscos',
'Select' => 'Selecione.',
'Severity' => 'Gravidade',
'Solution' => 'Solução',
'Solutions' => 'Soluções',
'Statistics' => 'Estatisticas',
'Status' => 'Status',
'Theme' => 'Tema',
'Title' => 'Título',
'TopRisks' => 'Riscos principais',
'Total' => 'Total',
'Type' => 'Modelo',
'Unit' => 'Unidade',
'Units' => 'Unidades',
'Upload' => 'Envio',
'UserGroup' => 'Grupo de usuários',
'Value' => 'Valor',
'Watchlist' => 'Watchlist.',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Активный',
'All' => 'Все',
'Assessment' => 'Оценка',
'AvgRiskAmount' => 'Авг. Сумма риска',
'Basic' => 'Базовый',
'Categories' => 'Категории',
'Category' => 'Категория',
'Cause' => 'Причина',
'Causes' => 'Причина',
'Cost' => 'Расходы',
'Critical' => 'Критический',
'Damage' => 'Повреждать',
'Department' => 'отделение',
'Departments' => 'Отделы',
'Description' => 'Описание',
'Due' => 'Должное',
'Evaluation' => 'Оценка',
'Export' => 'Экспорт',
'Frequency' => 'Частота',
'Front' => 'Фронт',
'History' => 'История',
'Interval' => 'Интервал',
'Language' => 'Язык',
'LastReevaluation' => 'Последняя переоценка',
'Level' => 'Уровень',
'Limit' => 'Предел',
'MainCategory' => 'Главная категория',
'MainCause' => 'Главная причина',
'MainDepartment' => 'Главный отдел',
'Manager' => 'Управляющий делами',
'Media' => 'Средства массовой информации',
'Name' => 'Имя',
'Navigation' => 'Навигация',
'New' => 'Новый',
'NewRisk' => 'Новый риск',
'NextReevaluation' => 'Следующая переоценка',
'Outdated' => 'Устаревший',
'OverallRisk' => 'Общий риск',
'Parent' => 'Родитель',
'Probability' => 'Вероятность',
'Process' => 'Процесс',
'Processes' => 'Процессы',
'Project' => 'Проект',
'Projects' => 'Проекты',
'Protection' => 'Защита',
'Ratio' => 'Соотношение',
'Reduction' => 'Снижение',
'RemainingRisk' => 'Остальный риск',
'Responsibility' => 'Обязанность',
'Responsible' => 'Ответственный',
'Review' => 'Обзор',
'Risk' => 'Риск',
'RiskAcceptance' => 'Принятие риска',
'RiskConsequence' => 'Следствие риска',
'RiskIndex' => 'Индекс риска',
'RiskLevels' => 'Уровни риска',
'RiskLikelihood' => 'Вероятность вероятности риска',
'RiskObject' => 'Объект риска',
'RiskObjectStatus' => 'Статус объекта риска',
'RiskObjects' => 'Объекты риска',
'RiskProbabilities' => 'Вероятности риска',
'RiskProtection' => 'Защита риска',
'RiskStatus' => 'Статус риска',
'Risks' => 'Риски',
'Select' => 'Выбирать',
'Severity' => 'Строгость',
'Solution' => 'Решение',
'Solutions' => 'Растворы',
'Statistics' => 'Статистика',
'Status' => 'Статус',
'Theme' => 'Тема',
'Title' => 'Заголовок',
'TopRisks' => 'Высшие риски',
'Total' => 'Всего',
'Type' => 'Тип',
'Unit' => 'Единица измерения',
'Units' => 'Единицы',
'Upload' => 'Загрузить',
'UserGroup' => 'Группа пользователей',
'Value' => 'Ценность',
'Watchlist' => 'Наблюдатель',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktiva',
'All' => 'Allt',
'Assessment' => 'bedömning',
'AvgRiskAmount' => 'Avg. Riskbelopp',
'Basic' => 'Grundläggande',
'Categories' => 'Kategorier',
'Category' => 'Kategori',
'Cause' => 'Orsak',
'Causes' => 'Orsaker',
'Cost' => 'Kosta',
'Critical' => 'Kritisk',
'Damage' => 'Skada',
'Department' => 'Avdelning',
'Departments' => 'Avdelningar',
'Description' => 'Beskrivning',
'Due' => 'På grund av',
'Evaluation' => 'Utvärdering',
'Export' => 'Exportera',
'Frequency' => 'Frekvens',
'Front' => 'Främre',
'History' => 'Historia',
'Interval' => 'Intervall',
'Language' => 'Språk',
'LastReevaluation' => 'Senaste omvärderingen',
'Level' => 'Nivå',
'Limit' => 'Begränsa',
'MainCategory' => 'huvud kategorin',
'MainCause' => 'Huvudorsak',
'MainDepartment' => 'Huvudavdelning',
'Manager' => 'Chef',
'Media' => 'Media',
'Name' => 'namn',
'Navigation' => 'Navigering',
'New' => 'Ny',
'NewRisk' => 'Ny risk',
'NextReevaluation' => 'Nästa omvärdering',
'Outdated' => 'Föråldrad',
'OverallRisk' => 'Övergripande risk',
'Parent' => 'Förälder',
'Probability' => 'Sannolikhet',
'Process' => 'Bearbeta',
'Processes' => 'Processer',
'Project' => 'Projekt',
'Projects' => 'Projekt',
'Protection' => 'Skydd',
'Ratio' => 'Förhållande',
'Reduction' => 'Minskning',
'RemainingRisk' => 'Återstående risk',
'Responsibility' => 'Ansvar',
'Responsible' => 'Ansvarig',
'Review' => 'Recension',
'Risk' => 'Risk',
'RiskAcceptance' => 'Riskaccept',
'RiskConsequence' => 'Riskkonsekvens',
'RiskIndex' => 'Riskindex',
'RiskLevels' => 'Risknivåer',
'RiskLikelihood' => 'Risk sannolikhet',
'RiskObject' => 'Riskobjekt',
'RiskObjectStatus' => 'Riskobjektstatus',
'RiskObjects' => 'Riskobjekt',
'RiskProbabilities' => 'Risk sannolikheter',
'RiskProtection' => 'Riskskydd',
'RiskStatus' => 'Riskstatus',
'Risks' => 'Risker',
'Select' => 'Välj',
'Severity' => 'Allvarlighetsgrad',
'Solution' => 'Lösning',
'Solutions' => 'Lösningar',
'Statistics' => 'Statistik',
'Status' => 'Status',
'Theme' => 'Tema',
'Title' => 'Titel',
'TopRisks' => 'Topprisker',
'Total' => 'Total',
'Type' => 'Typ',
'Unit' => 'Enhet',
'Units' => 'Enheter',
'Upload' => 'Ladda upp',
'UserGroup' => 'Användargrupp',
'Value' => 'Värde',
'Watchlist' => 'Vaktlista',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'คล่องแคล่ว',
'All' => 'ทั้งหมด',
'Assessment' => 'การประเมิน',
'AvgRiskAmount' => 'avg จำนวนความเสี่ยง',
'Basic' => 'ขั้นพื้นฐาน',
'Categories' => 'หมวดหมู่',
'Category' => 'หมวดหมู่',
'Cause' => 'สาเหตุ',
'Causes' => 'สาเหตุ',
'Cost' => 'ค่าใช้จ่าย',
'Critical' => 'วิกฤต',
'Damage' => 'ความเสียหาย',
'Department' => 'แผนก',
'Departments' => 'แผนก',
'Description' => 'คำอธิบาย',
'Due' => 'เนื่องจาก',
'Evaluation' => 'การประเมิน',
'Export' => 'ส่งออก',
'Frequency' => 'ความถี่',
'Front' => 'ด้านหน้า',
'History' => 'ประวัติศาสตร์',
'Interval' => 'ช่วงเวลา',
'Language' => 'ภาษา',
'LastReevaluation' => 'การประเมินค่าครั้งสุดท้าย',
'Level' => 'ระดับ',
'Limit' => 'ขีด จำกัด',
'MainCategory' => 'หมวดหมู่หลัก',
'MainCause' => 'สาเหตุหลัก',
'MainDepartment' => 'แผนกหลัก',
'Manager' => 'ผู้จัดการ',
'Media' => 'สื่อ',
'Name' => 'ชื่อ',
'Navigation' => 'การนำทาง',
'New' => 'ใหม่',
'NewRisk' => 'ความเสี่ยงใหม่',
'NextReevaluation' => 'การประเมินค่าใหม่ครั้งต่อไป',
'Outdated' => 'เก่า',
'OverallRisk' => 'ความเสี่ยงโดยรวม',
'Parent' => 'พ่อแม่',
'Probability' => 'ความน่าจะเป็นได้',
'Process' => 'กระบวนการ',
'Processes' => 'กระบวนการ',
'Project' => 'โครงการ',
'Projects' => 'โครงการ',
'Protection' => 'การป้องกัน',
'Ratio' => 'อัตราส่วน',
'Reduction' => 'การลดน้อยลง',
'RemainingRisk' => 'ความเสี่ยงที่เหลืออยู่',
'Responsibility' => 'ความรับผิดชอบ',
'Responsible' => 'รับผิดชอบ',
'Review' => 'ทบทวน',
'Risk' => 'เสี่ยง',
'RiskAcceptance' => 'การยอมรับความเสี่ยง',
'RiskConsequence' => 'ผลที่ตามมา',
'RiskIndex' => 'ดัชนีความเสี่ยง',
'RiskLevels' => 'ระดับความเสี่ยง',
'RiskLikelihood' => 'ความเสี่ยงที่มีความเสี่ยง',
'RiskObject' => 'วัตถุเสี่ยง',
'RiskObjectStatus' => 'สถานะวัตถุเสี่ยง',
'RiskObjects' => 'วัตถุเสี่ยง',
'RiskProbabilities' => 'ความน่าจะเป็นความเสี่ยง',
'RiskProtection' => 'การป้องกันความเสี่ยง',
'RiskStatus' => 'สถานะความเสี่ยง',
'Risks' => 'ความเสี่ยง',
'Select' => 'เลือก',
'Severity' => 'ความรุนแรง',
'Solution' => 'สารละลาย',
'Solutions' => 'การแก้ปัญหา',
'Statistics' => 'สถิติ',
'Status' => 'สถานะ',
'Theme' => 'ธีม',
'Title' => 'ชื่อ',
'TopRisks' => 'ความเสี่ยงด้านบน',
'Total' => 'ทั้งหมด',
'Type' => 'พิมพ์',
'Unit' => 'หน่วย',
'Units' => 'หน่วย',
'Upload' => 'ที่อัพโหลด',
'UserGroup' => 'ผู้ใช้ / กลุ่ม',
'Value' => 'ค่า',
'Watchlist' => 'นักดู',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Aktif',
'All' => 'Herşey',
'Assessment' => 'Değerlendirme',
'AvgRiskAmount' => 'Avg. Risk miktarı',
'Basic' => 'Temel',
'Categories' => 'Kategoriler',
'Category' => 'Kategori',
'Cause' => 'Çünkü',
'Causes' => 'Neden',
'Cost' => 'Maliyet',
'Critical' => 'Kritik',
'Damage' => 'Zarar',
'Department' => 'Bölüm',
'Departments' => 'Departmanlar',
'Description' => 'Açıklama',
'Due' => 'Vadesi dolmuş',
'Evaluation' => 'Değerlendirme',
'Export' => 'İhracat',
'Frequency' => 'Sıklık',
'Front' => 'Ön',
'History' => 'Tarih',
'Interval' => 'Aralık',
'Language' => 'Dilim',
'LastReevaluation' => 'Son yeniden değerlendirme',
'Level' => 'Seviye',
'Limit' => 'Sınırlamak',
'MainCategory' => 'Ana Kategori',
'MainCause' => 'Ana neden',
'MainDepartment' => 'Ana departman',
'Manager' => 'Yönetici',
'Media' => 'Medya',
'Name' => 'İsim',
'Navigation' => 'Navigasyon',
'New' => 'Yeni',
'NewRisk' => 'Yeni risk',
'NextReevaluation' => 'Sonraki yeniden değerlendirme',
'Outdated' => 'Modası geçmiş',
'OverallRisk' => 'Genel risk',
'Parent' => 'Ebeveyn',
'Probability' => 'Olasılık',
'Process' => 'İşlem',
'Processes' => 'Süreçler',
'Project' => 'Proje',
'Projects' => 'Projeler',
'Protection' => 'Koruma',
'Ratio' => 'Oran',
'Reduction' => 'Kesinti',
'RemainingRisk' => 'Kalan risk',
'Responsibility' => 'Sorumluluk',
'Responsible' => 'Sorumlu',
'Review' => 'Gözden geçirmek',
'Risk' => 'Risk',
'RiskAcceptance' => 'Risk Kabul',
'RiskConsequence' => 'Risk sonucu',
'RiskIndex' => 'Risk Endeksi',
'RiskLevels' => 'Risk seviyeleri',
'RiskLikelihood' => 'Risk olasılığı',
'RiskObject' => 'Risk nesnesi',
'RiskObjectStatus' => 'Risk nesnesi durumu',
'RiskObjects' => 'Risk nesneleri',
'RiskProbabilities' => 'Risk olasılıkları',
'RiskProtection' => 'Risk koruması',
'RiskStatus' => 'Risk durumu',
'Risks' => 'Risk',
'Select' => 'Seçme',
'Severity' => 'Ciddiyet',
'Solution' => 'Çözüm',
'Solutions' => 'Çözümler',
'Statistics' => 'İstatistik',
'Status' => 'Durum',
'Theme' => 'Tema',
'Title' => 'Başlık',
'TopRisks' => 'Üst riskler',
'Total' => 'Toplam',
'Type' => 'Tip',
'Unit' => 'Birim',
'Units' => 'Birimler',
'Upload' => 'Yüklemek',
'UserGroup' => 'Kullanıcı grubu',
'Value' => 'Değer',
'Watchlist' => 'İzlenecekler listesi',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => 'Активний',
'All' => 'Все',
'Assessment' => 'Оцінка',
'AvgRiskAmount' => 'AVG. Сума ризику',
'Basic' => 'Основний',
'Categories' => 'Категорії',
'Category' => 'Категорія',
'Cause' => 'Причина',
'Causes' => 'Причина',
'Cost' => 'Вартість',
'Critical' => 'Критичний',
'Damage' => 'Збиток',
'Department' => 'Кафедра',
'Departments' => 'Кафедри',
'Description' => 'Опис',
'Due' => 'Заборгованість',
'Evaluation' => 'Оцінка',
'Export' => 'Експортувати',
'Frequency' => 'Частота',
'Front' => 'Фронт',
'History' => 'Історія',
'Interval' => 'Інтервал',
'Language' => 'Мову',
'LastReevaluation' => 'Остання переоцінка',
'Level' => 'Рівнина',
'Limit' => 'Обмеження',
'MainCategory' => 'Основна категорія',
'MainCause' => 'Основна причина',
'MainDepartment' => 'Головний відділ',
'Manager' => 'Керівник',
'Media' => 'Медіа',
'Name' => 'Назва',
'Navigation' => 'Навігація',
'New' => 'Новий',
'NewRisk' => 'Новий ризик',
'NextReevaluation' => 'Наступна переоцінка',
'Outdated' => 'Застарілий',
'OverallRisk' => 'Загальний ризик',
'Parent' => 'Батько',
'Probability' => 'Ймовірність',
'Process' => 'Процес',
'Processes' => 'Процеси',
'Project' => 'Проект',
'Projects' => 'Проекти',
'Protection' => 'Захист',
'Ratio' => 'Співвідношення',
'Reduction' => 'Зменшення',
'RemainingRisk' => 'Залишок ризику',
'Responsibility' => 'Відповідальність',
'Responsible' => 'Відповідальний',
'Review' => 'Огляд',
'Risk' => 'Ризик',
'RiskAcceptance' => 'Прийняття ризику',
'RiskConsequence' => 'Наслідки ризику',
'RiskIndex' => 'Індекс ризику',
'RiskLevels' => 'Рівень ризику',
'RiskLikelihood' => 'Ймовірність ризику',
'RiskObject' => 'Об\'єкт ризику',
'RiskObjectStatus' => 'Статус об\'єкта ризику',
'RiskObjects' => 'Об\'єкти ризику',
'RiskProbabilities' => 'Імовірності ризику',
'RiskProtection' => 'Захист ризику',
'RiskStatus' => 'Статус ризику',
'Risks' => 'Ризик',
'Select' => 'Вибирати',
'Severity' => 'Тяжкість',
'Solution' => 'Розчин',
'Solutions' => 'Рішення',
'Statistics' => 'Статистика',
'Status' => 'Статус',
'Theme' => 'Тема',
'Title' => 'Заголовок',
'TopRisks' => 'Найпопулярніші ризики',
'Total' => 'Загальний',
'Type' => 'Тип',
'Unit' => 'Підрозділ',
'Units' => 'Підрозділ',
'Upload' => 'Завантажувати',
'UserGroup' => 'Користувач / група',
'Value' => 'Вартість',
'Watchlist' => 'Список спостережень',
]];

View File

@ -1,97 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Localization
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
return ['RiskManagement' => [
'Active' => '积极的',
'All' => '全部',
'Assessment' => '评估',
'AvgRiskAmount' => 'Avg。风险金额',
'Basic' => '基本的',
'Categories' => '类别',
'Category' => '类别',
'Cause' => '原因',
'Causes' => '原因',
'Cost' => '成本',
'Critical' => '危急',
'Damage' => '损害',
'Department' => '部',
'Departments' => '部门',
'Description' => '描述',
'Due' => '到期的',
'Evaluation' => '评估',
'Export' => '出口',
'Frequency' => '频率',
'Front' => '正面',
'History' => '历史',
'Interval' => '间隔',
'Language' => '语',
'LastReevaluation' => '最后重新评估',
'Level' => '等级',
'Limit' => '限制',
'MainCategory' => '主要类别',
'MainCause' => '主要原因',
'MainDepartment' => '主要部门',
'Manager' => '经理',
'Media' => '媒体',
'Name' => '名称',
'Navigation' => '导航',
'New' => '新的',
'NewRisk' => '新风险',
'NextReevaluation' => '下一次重新评估',
'Outdated' => '过时',
'OverallRisk' => '总体风险',
'Parent' => '父母',
'Probability' => '可能性',
'Process' => '过程',
'Processes' => '流程',
'Project' => '项目',
'Projects' => '项目',
'Protection' => '保护',
'Ratio' => '比率',
'Reduction' => '减少',
'RemainingRisk' => '剩下的风险',
'Responsibility' => '责任',
'Responsible' => '负责任的',
'Review' => '审查',
'Risk' => '风险',
'RiskAcceptance' => '风险接受',
'RiskConsequence' => '风险后果',
'RiskIndex' => '风险指数',
'RiskLevels' => '风险水平',
'RiskLikelihood' => '风险可能',
'RiskObject' => '风险对象',
'RiskObjectStatus' => '风险对象状态',
'RiskObjects' => '风险对象',
'RiskProbabilities' => '风险概率',
'RiskProtection' => '风险保护',
'RiskStatus' => '风险状况',
'Risks' => '风险',
'Select' => '选择',
'Severity' => '严重程度',
'Solution' => '解决方案',
'Solutions' => '解决方案',
'Statistics' => '统计数据',
'Status' => '地位',
'Theme' => '主题',
'Title' => '标题',
'TopRisks' => '最高风险',
'Total' => '全部的',
'Type' => '类型',
'Unit' => '单元',
'Units' => '单位',
'Upload' => '上传',
'UserGroup' => '用户/群体',
'Value' => '价值',
'Watchlist' => '看书列表',
]];

View File

@ -17,26 +17,25 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Categories'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Categories'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($categories as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/category/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($categories as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/category/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getL11n()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -17,28 +17,27 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Causes'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Causes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($causes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($causes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->risk->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -12,24 +12,28 @@
*/
declare(strict_types=1);
use Modules\Organization\Models\DepartmentMapper;
use Modules\ProjectManagement\Models\ProjectMapper;
use Modules\RiskManagement\Models\CategoryMapper;
use Modules\RiskManagement\Models\CauseMapper;
use Modules\RiskManagement\Models\ProcessMapper;
use Modules\RiskManagement\Models\Risk;
use Modules\RiskManagement\Models\RiskMapper;
use Modules\RiskManagement\Models\RiskStatus;
use Modules\RiskManagement\Models\SolutionMapper;
use phpOMS\Stdlib\Base\FloatInt;
/**
* @var \phpOMS\Views\View $this
*/
$footerView = new \phpOMS\Views\PaginationView($this->l11nManager, $this->request, $this->response);
$footerView->setTemplate('/Web/Templates/Lists/Footer/PaginationBig');
$footerView->setPages(25);
$footerView->setPage(1);
$footerView->setResults(1);
echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12 col-md-9">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('TopRisks'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('TopRisks'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('Severity'); ?>
@ -38,66 +42,507 @@ echo $this->data['nav']->render(); ?>
<td><?= $this->getHtml('Category'); ?>
<td><?= $this->getHtml('Process'); ?>
<td><?= $this->getHtml('Project'); ?>
<td><?= $this->getHtml('Unit'); ?>
<tfoot>
<tr><td colspan="6">
<tbody>
<?php $c = 0; foreach ([] as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/admin/group/settings?{?}&id=' . $value->id); ?>
<?php $c = 0;
foreach ($this->data['toprisks'] as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/risk/view?{?}&id=' . $value->id); ?>
<tr>
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->getCurrency($value->netExpectedCost, symbol: '', format: 'medium'); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<td>
<td>
<td>
<td>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="7" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->department->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->category?->getL11n()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->process?->title); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->project?->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="6" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
<div class="col-xs-12 col-md-3">
<section class="box wf-100">
<div class="inner">
<a tabindex="0" class="button" href="<?= \phpOMS\Uri\UriFactory::build('riskmanagement/risk/create'); ?>"><?= $this->getHtml('NewRisk'); ?></a>
<section class="portlet">
<div class="portlet-body">
<a tabindex="0" class="button" href="<?= \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/risk/create'); ?>"><?= $this->getHtml('NewRisk'); ?></a>
</div>
</section>
<section class="box wf-100">
<header><h1><?= $this->getHtml('Statistics'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Statistics'); ?></div>
<div class="portlet-body">
<table class="list">
<thead>
<tr>
<th><?= $this->getHtml('Risks'); ?>
<td>0
<td><?= RiskMapper::count()
->where('unit', $this->data['unit'])
->where('status', RiskStatus::ACTIVE)
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Causes'); ?>
<td>0
<td><?= CauseMapper::count()
->with('risk')
->where('risk/unit', $this->data['unit'])
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Solutions'); ?>
<td>0
<td><?= SolutionMapper::count()
->with('risk')
->where('risk/unit', $this->data['unit'])
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Department'); ?>
<td>0
<th><?= $this->getHtml('Departments'); ?>
<td><?= DepartmentMapper::count()
->where('unit', $this->data['unit'])
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Category'); ?>
<td>0
<th><?= $this->getHtml('Categories'); ?>
<td><?= CategoryMapper::count()
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Process'); ?>
<td>0
<th><?= $this->getHtml('Processes'); ?>
<td><?= ProcessMapper::count()
->where('unit', $this->data['unit'])
->executeCount(); ?>
<tr>
<th><?= $this->getHtml('Project'); ?>
<td>0
<tr>
<th><?= $this->getHtml('Total'); ?>
<td>0
<th><?= $this->getHtml('Projects'); ?>
<td><?= ProjectMapper::count()
->where('unit', $this->data['unit'])
->executeCount(); ?>
</table>
</div>
</section>
</div>
</div>
<?php if (!empty($this->data['risks'])) : ?>
<div class="row">
<div class="col-xs-12 col-md-6 col-lg-4">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Net'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 1;">
<canvas id="risk-net" data-chart='{
"type": "scatter",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_map(function (Risk $risk) : string { return $risk->name; }, $this->data['risks'])) . '"'; ?>
],
"datasets": [{
"data": [
<?php
$temp = [];
foreach ($this->data['risks'] as $risk) {
$temp[] = '{"x": ' . ($risk->netCostLevel + \mt_rand(-100, 100) / 300)
. ', "y": ' . ($risk->netLikelihoodLevel + \mt_rand(-100, 100) / 300) . '}';
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis1",
"xAxisID": "axis2",
"backgroundColor": "rgb(54, 162, 235)"
}]
},
"options": {
"responsive": true,
"aspectRatio": 1,
"scales": {
"axis1": {
"id": "axis1",
"display": true,
"position": "left",
"min": 1,
"max": 5,
"ticks": {
"stepSize": 1
},
"title": {
"display": true,
"text": "<?= $this->getHtml('Likelihood'); ?>"
},
"offset": true,
"grid": {
"offset": true
}
},
"axis2": {
"id": "axis2",
"display": true,
"min": 1,
"max": 5,
"ticks": {
"stepSize": 1
},
"title": {
"display": true,
"text": "<?= $this->getHtml('Severity'); ?>"
},
"offset": true,
"grid": {
"offset": true
}
}
},
"plugins": {
"legend": {
"display": false
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-4">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Gross'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 1;">
<canvas id="risk-gross" data-chart='{
"type": "scatter",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_map(function (Risk $risk) : string { return $risk->name; }, $this->data['risks'])) . '"'; ?>
],
"datasets": [{
"data": [
<?php
$temp = [];
foreach ($this->data['risks'] as $risk) {
$temp[] = '{"x": ' . ($risk->grossCostLevel + \mt_rand(-100, 100) / 300)
. ', "y": ' . ($risk->grossLikelihoodLevel + \mt_rand(-100, 100) / 300) . '}';
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis1",
"xAxisID": "axis2",
"backgroundColor": "rgb(54, 162, 235)"
}]
},
"options": {
"responsive": true,
"aspectRatio": 1,
"scales": {
"axis1": {
"id": "axis1",
"display": true,
"position": "left",
"min": 1,
"max": 5,
"ticks": {
"stepSize": 1
},
"title": {
"display": true,
"text": "<?= $this->getHtml('Likelihood'); ?>"
},
"offset": true,
"grid": {
"offset": true
}
},
"axis2": {
"id": "axis2",
"display": true,
"min": 1,
"max": 5,
"ticks": {
"stepSize": 1
},
"title": {
"display": true,
"text": "<?= $this->getHtml('Severity'); ?>"
},
"offset": true,
"grid": {
"offset": true
}
}
},
"plugins": {
"legend": {
"display": false
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php if (!empty($this->data['history'])) : ?>
<div class="col-xs-12 col-lg-4">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('History'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 2;">
<canvas id="risk-departments" data-chart='{
"type": "line",
"data": {
"labels": [
<?php
$temp = [];
foreach ($this->data['history'] as $history) {
$temp[] = $history['year'] . '-' . $history['month'] . '-' . $history['day'];
}
?>
<?= '"' . \implode('", "', $temp) . '"'; ?>
],
"datasets": [{
"label": "Costs",
"type": "line",
"data": [
<?php
$temp = [];
foreach ($this->data['history'] as $history) {
$temp[] = $history['net_costs'] / FloatInt::DIVISOR;
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis1",
"backgroundColor": "rgb(54, 162, 235)"
}]
},
"options": {
"responsive": true,
"scales": {
"axis1": {
"id": "axis1",
"display": true,
"position": "left",
"suggestedMin": 0,
"ticks": {
"precision": 0
}
}
},
"plugins": {
"legend": {
"display": false
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
<div class="row">
<?php if (!empty($this->data['stats-departments'])) : ?>
<div class="col-xs-12 col-md-6">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Departments'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 2;">
<canvas id="risk-departments" data-chart='{
"type": "bar",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_keys($this->data['stats-departments'])) . '"'; ?>
],
"datasets": [{
"label": "Costs",
"type": "bar",
"data": [
<?php
$temp = [];
foreach ($this->data['stats-departments'] as $department) {
$costs = 0;
foreach ($department as $risk) {
$costs += $risk->netExpectedCost->value;
}
$temp[] = $costs / FloatInt::DIVISOR;
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis1",
"backgroundColor": "rgb(54, 162, 235)"
}]
},
"options": {
"responsive": true,
"scales": {
"axis1": {
"id": "axis1",
"display": true,
"position": "left",
"suggestedMin": 0,
"ticks": {
"precision": 0
}
}
},
"plugins": {
"legend": {
"display": false
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php if (!empty($this->data['stats-categories'])) : ?>
<div class="col-xs-12 col-md-6">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Categories'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 2;">
<canvas id="risk-categories" data-chart='{
"type": "bar",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_keys($this->data['stats-categories'])) . '"'; ?>
],
"datasets": [{
"label": "Costs",
"type": "bar",
"data": [
<?php
$temp = [];
foreach ($this->data['stats-categories'] as $category) {
$costs = 0;
foreach ($category as $risk) {
$costs += $risk->netExpectedCost->value;
}
$temp[] = $costs / FloatInt::DIVISOR;
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis1",
"backgroundColor": "rgb(54, 162, 235)"
}]
},
"options": {
"responsive": true,
"scales": {
"axis1": {
"id": "axis1",
"display": true,
"position": "left",
"suggestedMin": 0,
"ticks": {
"precision": 0
}
}
},
"plugins": {
"legend": {
"display": false
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php if (!empty($this->data['stats-departments'])) : ?>
<div class="col-xs-12 col-md-6">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Departments'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 1;">
<canvas id="risk-departments" data-chart='{
"type": "pie",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_keys($this->data['stats-departments'])) . '"'; ?>
],
"datasets": [{
"data": [
<?php
$temp = [];
foreach ($this->data['stats-departments'] as $department) {
$temp[] = \count($department);
}
?>
<?= \implode(',', $temp); ?>
],
"backgroundColor": [
"#3498db", "#2ecc71", "#9b59b6", "#f1c40f", "#1abc9c",
"#34495e", "#e74c3c", "#e67e22", "#ecf0f1", "#95a5a6",
"#16a085", "#2980b9", "#8e44ad", "#2c3e50", "#27ae60", "#f39c12"
]
}]
},
"options": {
"responsive": true,
"plugins": {
"legend": {
"display": true
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php if (!empty($this->data['stats-categories'])) : ?>
<div class="col-xs-12 col-md-6">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Categories'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="portlet-body">
<div style="position: relative; width: 100%; height: 100%; aspect-ratio: 1;">
<canvas id="risk-categories" data-chart='{
"type": "pie",
"data": {
"labels": [
<?= '"' . \implode('", "', \array_keys($this->data['stats-categories'])) . '"'; ?>
],
"datasets": [{
"data": [
<?php
$temp = [];
foreach ($this->data['stats-categories'] as $category) {
$temp[] = \count($category);
}
?>
<?= \implode(',', $temp); ?>
],
"backgroundColor": [
"#3498db", "#2ecc71", "#9b59b6", "#f1c40f", "#1abc9c",
"#34495e", "#e74c3c", "#e67e22", "#ecf0f1", "#95a5a6",
"#16a085", "#2980b9", "#8e44ad", "#2c3e50", "#27ae60", "#f39c12"
]
}]
},
"options": {
"responsive": true,
"plugins": {
"legend": {
"display": true
}
}
}
}'></canvas>
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
<?php endif; ?>

View File

@ -17,26 +17,25 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Departments'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Departments'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($departments as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/department/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($departments as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/department/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getDepartment()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -13,7 +13,29 @@
declare(strict_types=1);
$department = $this->data['department'];
echo $this->data['nav']->render(); ?>
$categories = [];
$projects = [];
$processes = [];
$causes = [];
$solutions = [];
foreach ($this->data['risks'] as $risk) {
$categories[$risk->category?->id] = $risk->category;
$projects[$risk->project?->id] = $risk->project;
$processes[$risk->process?->id] = $risk->process;
foreach ($risk->causes as $cause) {
$causes[$cause->id] = $cause;
}
foreach ($risk->solutions as $solution) {
$solutions[$solution->id] = $solution;
}
}
echo $this->data['nav']->render();
?>
<div class="tabview tab-2">
<div class="box">
@ -32,16 +54,16 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Department'); ?></h1></header>
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Department'); ?></div>
<div class="inner">
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td><?= $this->getHtml('Name'); ?></label><td><?= $this->printHtml($department->getDepartment()->getName()); ?>
<tr><td><?= $this->getHtml('Description'); ?>:<td><?= $this->printHtml($department->getDepartment()->description); ?>
<tr><td><?= $this->getHtml('Unit'); ?>:<td><?= $this->printHtml($department->getDepartment()->getUnit()->getName()); ?>
<tr><td><?= $this->getHtml('Name'); ?></label><td><?= $this->printHtml($department->department->name); ?>
<tr><td><?= $this->getHtml('Description'); ?>:<td><?= $this->printHtml($department->department->description); ?>
<tr><td><?= $this->getHtml('Unit'); ?>:<td><?= $this->printHtml($department->department->unit->name); ?>
<tr><td><?= $this->getHtml('Risks'); ?>:<td>
<tr><td><?= $this->getHtml('Categories'); ?>:<td>
<tr><td><?= $this->getHtml('Projects'); ?>:<td>
@ -55,15 +77,15 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="inner">
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -75,10 +97,10 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Responsibility'); ?></h1></header>
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Responsibility'); ?></div>
<div class="inner">
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
@ -86,7 +108,7 @@ echo $this->data['nav']->render(); ?>
<tr><td><select id="iStatus" name="status">
<option value="">
</select>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user" placeholder=""></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user"></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
</table>
</form>
</div>
@ -98,9 +120,9 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Risks'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Risks'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
@ -108,21 +130,20 @@ echo $this->data['nav']->render(); ?>
<td><?= $this->getHtml('Causes'); ?>
<td><?= $this->getHtml('Solutions'); ?>
<td><?= $this->getHtml('RiskObjects'); ?>
<tfoot>
<tr><td colspan="5">
<tbody>
<?php $c = 0; foreach ($risks as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($this->data['risks'] as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getCauses())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getSolutions())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getRiskObjects())); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="5" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= \count($value->causes); ?></a>
<td><a href="<?= $url; ?>"><?= \count($value->solutions); ?></a>
<td><a href="<?= $url; ?>"><?= \count($value->riskObjects); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="5" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
@ -132,25 +153,24 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Categories'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Categories'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($categories as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/category/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($categories as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/category/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
@ -160,25 +180,25 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Projects'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Projects'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($projects as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/project/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($projects as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/project/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getProject()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->project->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
@ -188,25 +208,23 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Processes'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Processes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($processes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/process/view?{?}&id=' . $value->id); ?>
<?php $c = 0; foreach ($processes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/process/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
@ -216,27 +234,26 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Causes'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Causes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($causes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($causes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->risk->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
@ -246,29 +263,28 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Solutions'); ?><i class="g-icon download btn end-xs">download</i></div>
<table class="default sticky">
<caption><?= $this->getHtml('Solutions'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<td><?= $this->getHtml('Cause'); ?>
<tfoot>
<tr><td colspan="4">
<tbody>
<?php $c = 0; foreach ($solutions as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/solution/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($solutions as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/solution/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getCause()->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->risk->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->cause->title); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -17,26 +17,25 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Processes'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Processes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($processes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/process/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($processes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/process/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -17,26 +17,25 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Projects'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Projects'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($projects as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/project/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($projects as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/project/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getProject()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->project->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -37,7 +37,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td><label for="iName"><?= $this->getHtml('Name'); ?></label>
<tr><td><input type="text" id="iName" name="name" placeholder="<?= $this->getHtml('Name'); ?>" required>
<tr><td><input type="text" id="iName" name="name" required>
<tr><td><label for="iDescription"><?= $this->getHtml('Description'); ?></label>
<tr><td><textarea id="iDescription" name="description"></textarea>
<tr><td><label for="iUnit"><?= $this->getHtml('Unit'); ?></label>
@ -68,7 +68,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -91,7 +91,7 @@ echo $this->data['nav']->render(); ?>
<tr><td><select id="iStatus" name="status">
<option value="">
</select>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user" placeholder=""></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user"></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
</table>
</form>
</div>
@ -144,7 +144,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -166,7 +166,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td><label for="iRiskObjectName"><?= $this->getHtml('Name'); ?></label>
<tr><td><input type="text" id="iRiskObjectName" name="riskobjectname" placeholder="<?= $this->getHtml('Name'); ?>">
<tr><td><input type="text" id="iRiskObjectName" name="riskobjectname">
<tr><td><label for="iRiskObjectDescription"><?= $this->getHtml('Description'); ?></label>
<tr><td><textarea id="iRiskObjectDescription" name="riskobjectdescription"></textarea>
<tr><td><input type="submit" value="<?= $this->getHtml('Create', '0', '0'); ?>" name="">
@ -185,7 +185,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -230,7 +230,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -292,7 +292,7 @@ echo $this->data['nav']->render(); ?>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>

View File

@ -17,10 +17,10 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Risks'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Risks'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
@ -28,21 +28,20 @@ echo $this->data['nav']->render(); ?>
<td><?= $this->getHtml('Causes'); ?>
<td><?= $this->getHtml('Solutions'); ?>
<td><?= $this->getHtml('RiskObjects'); ?>
<tfoot>
<tr><td colspan="5">
<tbody>
<?php $c = 0; foreach ($risks as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/risk/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($risks as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/risk/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getCauses())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getSolutions())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getRiskObjects())); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="5" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= \count($value->causes); ?></a>
<td><a href="<?= $url; ?>"><?= \count($value->solutions); ?></a>
<td><a href="<?= $url; ?>"><?= \count($value->riskObjects); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="5" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -30,20 +30,19 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Risk'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Risk'); ?></div>
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td><?= $this->getHtml('Name'); ?><td><?= $this->printHtml($risk->getName()); ?>
<tr><td><?= $this->getHtml('Name'); ?><td><?= $this->printHtml($risk->name); ?>
<tr><td><?= $this->getHtml('Description'); ?><td><?= $this->printHtml($risk->description); ?>
<tr><td><?= $this->getHtml('Unit'); ?><td><?= $this->printHtml($risk->getUnit()->getName()); ?>
<tr><td><?= $this->getHtml('Category'); ?><td><?= $this->printHtml($risk->getCategory()->getTitle()); ?>
<tr><td><?= $this->getHtml('Department'); ?><td><?= $this->printHtml($risk->getDepartment()->getDepartment()->getName()); ?>
<tr><td><?= $this->getHtml('Process'); ?><td><?= $this->printHtml($risk->getProcess()->getTitle()); ?>
<tr><td><?= $this->getHtml('Project'); ?><td><?= $this->printHtml($risk->getProject()->getProject()->getName()); ?>
<tr><td><?= $this->getHtml('Unit'); ?><td><?= $this->printHtml($risk->unit->name); ?>
<tr><td><?= $this->getHtml('Category'); ?><td><?= $this->printHtml($risk->category->title); ?>
<tr><td><?= $this->getHtml('Department'); ?><td><?= $this->printHtml($risk->department->department?->name); ?>
<tr><td><?= $this->getHtml('Process'); ?><td><?= $this->printHtml($risk->process->title); ?>
<tr><td><?= $this->getHtml('Project'); ?><td><?= $this->printHtml($risk->project->project?->name); ?>
</table>
</form>
</div>
@ -51,15 +50,14 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -71,10 +69,9 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Responsibility'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Responsibility'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
@ -82,7 +79,7 @@ echo $this->data['nav']->render(); ?>
<tr><td><select id="iStatus" name="status">
<option value="">
</select>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user" placeholder=""></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user"></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
</table>
</form>
</div>
@ -94,10 +91,9 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('RiskStatus'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('RiskStatus'); ?></div>
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
@ -127,15 +123,14 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -149,15 +144,14 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('RiskObjects'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('RiskObjects'); ?></div>
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td><label for="iRiskObjectName"><?= $this->getHtml('Name'); ?></label>
<tr><td><input type="text" id="iRiskObjectName" name="riskobjectname" placeholder="<?= $this->getHtml('Name'); ?>">
<tr><td><input type="text" id="iRiskObjectName" name="riskobjectname">
<tr><td><label for="iRiskObjectDescription"><?= $this->getHtml('Description'); ?></label>
<tr><td><textarea id="iRiskObjectDescription" name="riskobjectdescription"></textarea>
<tr><td><input type="submit" value="<?= $this->getHtml('Create', '0', '0'); ?>" name="">
@ -168,15 +162,14 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -190,10 +183,9 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('RiskObjectStatus'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('RiskObjectStatus'); ?></div>
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
@ -213,15 +205,14 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
@ -235,10 +226,9 @@ echo $this->data['nav']->render(); ?>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Solution'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Solution'); ?></div>
<div class="portlet-body">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
@ -275,15 +265,14 @@ echo $this->data['nav']->render(); ?>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Media'); ?></div>
<div class="portlet-body">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td><input type="text" id="iMedia"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>

View File

@ -18,30 +18,29 @@ echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="portlet">
<div class="portlet-head"><?= $this->getHtml('Solutions'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Solutions'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<td><?= $this->getHtml('Cause'); ?>
<tfoot>
<tr><td colspan="4">
<tbody>
<?php $c = 0; foreach ($solutions as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/solution/view?{?}&id=' . $value->id); ?>
<tbody>
<?php $c = 0;
foreach ($solutions as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('{/base}/controlling/riskmanagement/solution/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getCause()->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->title); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->risk->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->cause->title); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>

View File

@ -1,44 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
$units = $this->data['units'];
echo $this->data['nav']->render(); ?>
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<div class="slider">
<table class="default sticky">
<caption><?= $this->getHtml('Units'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Name'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($units as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/unit/view?{?}&id=' . $value->id); ?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>

View File

@ -1,307 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\RiskManagement
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
$unit = $this->data['unit'];
echo $this->data['nav']->render(); ?>
<div class="tabview tab-2">
<div class="box">
<ul class="tab-links">
<li><label for="c-tab-1"><?= $this->getHtml('Unit'); ?></label>
<li><label for="c-tab-2"><?= $this->getHtml('Risks'); ?></label>
<li><label for="c-tab-3"><?= $this->getHtml('Departments'); ?></label>
<li><label for="c-tab-4"><?= $this->getHtml('Categories'); ?></label>
<li><label for="c-tab-5"><?= $this->getHtml('Projects'); ?></label>
<li><label for="c-tab-6"><?= $this->getHtml('Processes'); ?></label>
<li><label for="c-tab-7"><?= $this->getHtml('Causes'); ?></label>
<li><label for="c-tab-8"><?= $this->getHtml('Solutions'); ?></label>
</ul>
</div>
<div class="tab-content">
<input type="radio" id="c-tab-1" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Unit'); ?></h1></header>
<div class="inner">
<form id="fRisk" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('{/api}controlling/riskmanagement?{?}&csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td><?= $this->getHtml('Name'); ?></label><td><?= $this->printHtml($unit->getName()); ?>
<tr><td><?= $this->getHtml('Description'); ?>:<td><?= $this->printHtml($unit->description); ?>
<tr><td><?= $this->getHtml('Risks'); ?>:<td>
<tr><td><?= $this->getHtml('Departments'); ?>:<td>
<tr><td><?= $this->getHtml('Categories'); ?>:<td>
<tr><td><?= $this->getHtml('Projects'); ?>:<td>
<tr><td><?= $this->getHtml('Processes'); ?>:<td>
<tr><td><?= $this->getHtml('Causes'); ?>:<td>
<tr><td><?= $this->getHtml('Solutions'); ?>:<td>
</table>
</form>
</div>
</section>
</div>
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Media'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="File"><td><button><?= $this->getHtml('Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
</form>
</div>
</section>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="box wf-100">
<header><h1><?= $this->getHtml('Responsibility'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tbody>
<tr><td><label for="iResponsibility"><?= $this->getHtml('Responsibility'); ?></label><td><label for="iUser"><?= $this->getHtml('UserGroup'); ?></label><td>
<tr><td><select id="iStatus" name="status">
<option value="">
</select>
<td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="text" id="iUser" name="user" placeholder=""></span><td><button><?= $this->getHtml('Add', '0', '0'); ?></button>
</table>
</form>
</div>
</section>
</div>
</div>
</div>
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Risks'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Causes'); ?>
<td><?= $this->getHtml('Solutions'); ?>
<td><?= $this->getHtml('RiskObjects'); ?>
<tfoot>
<tr><td colspan="5">
<tbody>
<?php $c = 0; foreach ($risks as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getCauses())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getSolutions())); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml(\count($value->getRiskObjects())); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="5" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Departments'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($departments as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/department/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getDepartment()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Categories'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($categories as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/category/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Projects'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($projects as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/project/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getProject()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-6" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-6' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Processes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($processes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/process/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-7" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Causes'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<tfoot>
<tr><td colspan="3">
<tbody>
<?php $c = 0; foreach ($causes as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/cause/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="3" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
<input type="radio" id="c-tab-8" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>>
<div class="tab">
<div class="row">
<div class="col-xs-12">
<div class="box wf-100">
<table class="default sticky">
<caption><?= $this->getHtml('Solutions'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td class="wf-100"><?= $this->getHtml('Title'); ?>
<td><?= $this->getHtml('Risk'); ?>
<td><?= $this->getHtml('Cause'); ?>
<tfoot>
<tr><td colspan="4">
<tbody>
<?php $c = 0; foreach ($solutions as $key => $value) : ++$c;
$url = \phpOMS\Uri\UriFactory::build('riskmanagement/solution/view?{?}&id=' . $value->id); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getTitle()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getRisk()->getName()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getCause()->getTitle()); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="4" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
<?php endif; ?>
</table>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -19,6 +19,7 @@
"dependencies": {
"Media": "*",
"Organization": "*",
"Controlling": "*",
"ProjectManagement": "*"
},
"providing": {
@ -27,7 +28,7 @@
"load": [
{
"pid": [
"/riskmanagement"
"/controlling/riskmanagement"
],
"type": 4,
"for": 0,

View File

@ -1,42 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\tests\Models;
use Modules\Organization\Models\NullDepartment;
use Modules\RiskManagement\Models\Department;
use Modules\RiskManagement\Models\DepartmentMapper;
/**
* @internal
*/
#[\PHPUnit\Framework\Attributes\CoversClass(\Modules\RiskManagement\Models\DepartmentMapper::class)]
final class DepartmentMapperTest extends \PHPUnit\Framework\TestCase
{
#[\PHPUnit\Framework\Attributes\Group('module')]
public function testCRUD() : void
{
$obj = new Department();
$obj->department = new NullDepartment();
$obj->responsible = 1;
$obj->deputy = 1;
DepartmentMapper::create()->execute($obj);
$objR = DepartmentMapper::get()->where('id', $obj->id)->execute();
self::assertEquals($obj->department->id, $objR->department->id);
self::assertEquals($obj->responsible, $objR->responsible);
self::assertEquals($obj->deputy, $objR->deputy);
}
}

View File

@ -1,44 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\tests\Models;
use Modules\RiskManagement\Models\NullProject;
/**
* @internal
*/
#[\PHPUnit\Framework\Attributes\CoversClass(\Modules\RiskManagement\Models\NullProject::class)]
final class NullProjectTest extends \PHPUnit\Framework\TestCase
{
#[\PHPUnit\Framework\Attributes\Group('module')]
public function testNull() : void
{
self::assertInstanceOf('\Modules\RiskManagement\Models\Project', new NullProject());
}
#[\PHPUnit\Framework\Attributes\Group('module')]
public function testId() : void
{
$null = new NullProject(2);
self::assertEquals(2, $null->id);
}
#[\PHPUnit\Framework\Attributes\Group('module')]
public function testJsonSerialize() : void
{
$null = new NullProject(2);
self::assertEquals(['id' => 2], $null->jsonSerialize());
}
}

View File

@ -1,90 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\RiskManagement\tests\Models;
use Modules\Admin\Models\NullAccount;
use Modules\Media\Models\Media;
use Modules\ProjectManagement\Models\NullProject;
use Modules\ProjectManagement\Models\ProgressType;
use Modules\ProjectManagement\Models\Project as PMProject;
use Modules\ProjectManagement\Models\ProjectMapper as PMProjectMapper;
use Modules\RiskManagement\Models\Project;
use Modules\RiskManagement\Models\ProjectMapper;
use Modules\Tasks\Models\Task;
use phpOMS\Stdlib\Base\FloatInt;
/**
* @internal
*/
#[\PHPUnit\Framework\Attributes\CoversClass(\Modules\RiskManagement\Models\ProjectMapper::class)]
final class ProjectMapperTest extends \PHPUnit\Framework\TestCase
{
#[\PHPUnit\Framework\Attributes\Group('module')]
public function testCRUD() : void
{
$project = new PMProject();
$project->setName('Projectname');
$project->description = 'Description';
$project->createdBy = new NullAccount(1);
$project->start = new \DateTime('2000-05-05');
$project->end = new \DateTime('2005-05-05');
$money = new FloatInt();
$money->setString('1.23');
$project->budgetCosts = $money;
$project->budgetEarnings = $money;
$project->actualCosts = $money;
$project->actualEarnings = $money;
$task = new Task();
$task->title = 'ProjectTask 1';
$task->setCreatedBy(new NullAccount(1));
$task2 = new Task();
$task2->title = 'ProjectTask 2';
$task2->setCreatedBy(new NullAccount(1));
$project->tasks[] = $task;
$project->tasks[] = $task2;
$project->progress = 10;
$project->setProgressType(ProgressType::TASKS);
$media = new Media();
$media->createdBy = new NullAccount(1);
$media->description = 'desc';
$media->setPath('some/path');
$media->size = 11;
$media->extension = 'png';
$media->name = 'Project Media';
$project->files[] = $media;
$id = PMProjectMapper::create()->execute($project);
$obj = new Project();
$obj->project = new NullProject($id);
$obj->responsible = 1;
$obj->deputy = 1;
ProjectMapper::create()->execute($obj);
$objR = ProjectMapper::get()->where('id', $obj->id)->execute();
self::assertEquals($obj->project->id, $objR->project->id);
self::assertEquals($obj->responsible, $objR->responsible);
self::assertEquals($obj->deputy, $objR->deputy);
}
}