first commit
This commit is contained in:
commit
7cd423a875
2443 files changed
+169189
No files matched your search
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"repositories": {
|
||||
"local": {
|
||||
"type": "path",
|
||||
"url": "packages/*"
|
||||
},
|
||||
"0": {
|
||||
"type": "composer",
|
||||
"url": "https://composer.typo3.org/"
|
||||
}
|
||||
},
|
||||
"name": "typo3/cms-base-distribution",
|
||||
"description": "TYPO3 CMS Base Distribution",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.4"
|
||||
},
|
||||
"allow-plugins": {
|
||||
"typo3/class-alias-loader": true,
|
||||
"typo3/cms-composer-installers": true
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"typo3/cms-about": "^10.4",
|
||||
"typo3/cms-adminpanel": "^10.4",
|
||||
"typo3/cms-belog": "^10.4",
|
||||
"typo3/cms-beuser": "^10.4",
|
||||
"typo3/cms-felogin": "^10.4",
|
||||
"typo3/cms-fluid-styled-content": "^10.4",
|
||||
"typo3/cms-form": "^10.4",
|
||||
"typo3/cms-impexp": "^10.4",
|
||||
"typo3/cms-info": "^10.4",
|
||||
"typo3/cms-redirects": "^10.4",
|
||||
"typo3/cms-reports": "^10.4",
|
||||
"typo3/cms-rte-ckeditor": "^10.4",
|
||||
"typo3/cms-setup": "^10.4",
|
||||
"typo3/cms-sys-note": "^10.4",
|
||||
"typo3/cms-t3editor": "^10.4",
|
||||
"typo3/cms-tstemplate": "^10.4",
|
||||
"typo3/cms-viewpage": "^10.4",
|
||||
"mpdf/mpdf": "^8.0",
|
||||
"bk2k/bootstrap-package": "^11.0",
|
||||
"catfan/medoo": "^1.7",
|
||||
"hermanntelser/zuladungsliste": "^10.4",
|
||||
"helhum/typo3-console": "^6.6",
|
||||
"typo3/cms-backend": "^10.4",
|
||||
"typo3/cms-core": "^10.4",
|
||||
"typo3/cms-extbase": "^10.4",
|
||||
"typo3/cms-extensionmanager": "^10.4",
|
||||
"typo3/cms-filelist": "^10.4",
|
||||
"typo3/cms-fluid": "^10.4",
|
||||
"typo3/cms-frontend": "^10.4",
|
||||
"typo3/cms-install": "^10.4",
|
||||
"typo3/cms-recordlist": "^10.4",
|
||||
"typo3/cms-scheduler": "^10.4",
|
||||
"typo3/cms-workspaces": "^10.4",
|
||||
"neitanod/forceutf8": "^2.0",
|
||||
"nesbot/carbon": "^2.73"
|
||||
},
|
||||
"scripts": {
|
||||
"typo3-cms-scripts": [],
|
||||
"post-autoload-dump": [
|
||||
"@typo3-cms-scripts"
|
||||
]
|
||||
}
|
||||
}
|
||||
Generated
+8102
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,26 @@
|
||||
base: /app
|
||||
errorHandling:
|
||||
-
|
||||
errorCode: 403
|
||||
errorHandler: Page
|
||||
errorContentSource: 't3://page?uid=1'
|
||||
-
|
||||
errorCode: 404
|
||||
errorHandler: Page
|
||||
errorContentSource: 't3://page?uid=1'
|
||||
languages:
|
||||
-
|
||||
title: Deutsch
|
||||
enabled: true
|
||||
base: /
|
||||
typo3Language: de
|
||||
locale: de_DE.UTF-8
|
||||
iso-639-1: de
|
||||
navigationTitle: ''
|
||||
hreflang: de-DE
|
||||
direction: ''
|
||||
flag: global
|
||||
languageId: 0
|
||||
websiteTitle: ''
|
||||
rootPageId: 50
|
||||
websiteTitle: zuladungsliste.at
|
||||
@@ -0,0 +1,26 @@
|
||||
base: /
|
||||
errorHandling:
|
||||
-
|
||||
errorCode: 403
|
||||
errorHandler: Page
|
||||
errorContentSource: 't3://page?uid=1'
|
||||
-
|
||||
errorCode: 404
|
||||
errorHandler: Page
|
||||
errorContentSource: 't3://page?uid=1'
|
||||
languages:
|
||||
-
|
||||
title: Deutsch
|
||||
enabled: true
|
||||
base: '/'
|
||||
typo3Language: de
|
||||
locale: de_DE.UTF-8
|
||||
iso-639-1: de
|
||||
navigationTitle: ''
|
||||
hreflang: de-DE
|
||||
direction: ''
|
||||
flag: global
|
||||
languageId: 0
|
||||
websiteTitle: ''
|
||||
rootPageId: 1
|
||||
websiteTitle: 'zuladungsliste.at'
|
||||
+626
@@ -0,0 +1,626 @@
|
||||
{
|
||||
"storeLogMessages": true,
|
||||
"enableLogging": true,
|
||||
"reverseOrder": false,
|
||||
"checkSimilar": true,
|
||||
"checkStoredRecords": true,
|
||||
"checkStoredRecords_loose": true,
|
||||
"deleteTree": false,
|
||||
"neverHideAtCopy": false,
|
||||
"isImporting": false,
|
||||
"dontProcessTransformations": false,
|
||||
"bypassWorkspaceRestrictions": false,
|
||||
"bypassAccessCheckForRecords": false,
|
||||
"copyWhichTables": "*",
|
||||
"copyTree": 0,
|
||||
"defaultValues": {
|
||||
"sys_note": {
|
||||
"author": "",
|
||||
"email": ""
|
||||
}
|
||||
},
|
||||
"overrideValues": [],
|
||||
"data_disableFields": [],
|
||||
"suggestedInsertUids": [],
|
||||
"callBackObj": null,
|
||||
"autoVersionIdMap": [],
|
||||
"substNEWwithIDs": [],
|
||||
"substNEWwithIDs_table": [],
|
||||
"newRelatedIDs": [],
|
||||
"copyMappingArray_merged": [],
|
||||
"errorLog": [],
|
||||
"pagetreeRefreshFieldsFromPages": [
|
||||
"pid",
|
||||
"sorting",
|
||||
"deleted",
|
||||
"hidden",
|
||||
"title",
|
||||
"doktype",
|
||||
"is_siteroot",
|
||||
"fe_group",
|
||||
"nav_hide",
|
||||
"nav_title",
|
||||
"module",
|
||||
"starttime",
|
||||
"endtime",
|
||||
"content_from_pid",
|
||||
"extendToSubpages"
|
||||
],
|
||||
"pagetreeNeedsRefresh": false,
|
||||
"BE_USER": {
|
||||
"usergroup_column": "usergroup",
|
||||
"usergroup_table": "be_groups",
|
||||
"groupData": {
|
||||
"filemounts": [],
|
||||
"webmounts": "0",
|
||||
"pagetypes_select": "",
|
||||
"tables_select": "",
|
||||
"tables_modify": "",
|
||||
"non_exclude_fields": "",
|
||||
"explicit_allowdeny": "",
|
||||
"allowed_languages": "",
|
||||
"custom_options": "",
|
||||
"modules": "",
|
||||
"available_widgets": "",
|
||||
"file_permissions": "",
|
||||
"workspace_perms": 1
|
||||
},
|
||||
"userGroups": [],
|
||||
"userGroupsUID": [],
|
||||
"groupList": "",
|
||||
"workspace": 0,
|
||||
"workspaceRec": {
|
||||
"uid": 0,
|
||||
"_ACCESS": "admin"
|
||||
},
|
||||
"dataLists": {
|
||||
"webmount_list": "0,",
|
||||
"filemount_list": null,
|
||||
"file_permissions": null,
|
||||
"modList": null,
|
||||
"tables_select": "",
|
||||
"tables_modify": "",
|
||||
"pagetypes_select": "",
|
||||
"non_exclude_fields": "",
|
||||
"explicit_allowdeny": "",
|
||||
"allowed_languages": "",
|
||||
"workspace_perms": 1,
|
||||
"available_widgets": "",
|
||||
"custom_options": ""
|
||||
},
|
||||
"includeGroupArray": [],
|
||||
"errorMsg": "",
|
||||
"user_table": "be_users",
|
||||
"username_column": "username",
|
||||
"userident_column": "password",
|
||||
"userid_column": "uid",
|
||||
"lastLogin_column": "lastlogin",
|
||||
"enablecolumns": {
|
||||
"rootLevel": 1,
|
||||
"deleted": "deleted",
|
||||
"disabled": "disable",
|
||||
"starttime": "starttime",
|
||||
"endtime": "endtime"
|
||||
},
|
||||
"formfield_uname": "username",
|
||||
"formfield_uident": "userident",
|
||||
"formfield_status": "login_status",
|
||||
"writeStdLog": true,
|
||||
"writeAttemptLog": true,
|
||||
"sessionTimeout": 28800,
|
||||
"firstMainGroup": 0,
|
||||
"uc": {
|
||||
"interfaceSetup": "backend",
|
||||
"moduleData": {
|
||||
"web_layout": {
|
||||
"function": "1",
|
||||
"language": "0"
|
||||
},
|
||||
"web_ts": {
|
||||
"function": "TYPO3\\CMS\\Tstemplate\\Controller\\TypoScriptTemplateConstantEditorModuleFunctionController",
|
||||
"constant_editor_cat": "frontend login",
|
||||
"ts_browser_type": "const",
|
||||
"ts_browser_const": "0",
|
||||
"ts_browser_fixedLgd": "1",
|
||||
"ts_browser_showComments": "1",
|
||||
"tsbrowser_depthKeys_const": {
|
||||
"config": 1,
|
||||
"plugin": 1
|
||||
},
|
||||
"tsbrowser_depthKeys_setup": {
|
||||
"plugin.tx_zuladungsliste_zuladungsliste": 1,
|
||||
"plugin.tx_zuladungsliste": 1,
|
||||
"plugin.tx_zuladungsliste_zuladungsliste.view": 1,
|
||||
"plugin.tx_zuladungsliste_zuladungsliste.view.templateRootPaths": 1,
|
||||
"plugin.tx_zuladungsliste_zuladungsliste.persistence": 1,
|
||||
"lib": 1
|
||||
}
|
||||
},
|
||||
"FormEngine": [
|
||||
{
|
||||
"ef16fd1dd21cee72b942496ea114ff2b": [
|
||||
"Ivanova Ralitza [T] [4.00]",
|
||||
{
|
||||
"edit": {
|
||||
"fe_users": {
|
||||
"1295": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bfe_users%5D%5B1295%5D=edit",
|
||||
{
|
||||
"table": "fe_users",
|
||||
"uid": 1295,
|
||||
"pid": 41,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"ef16fd1dd21cee72b942496ea114ff2b"
|
||||
],
|
||||
"TYPO3\\CMS\\Backend\\Utility\\BackendUtility::getUpdateSignal": [],
|
||||
"opendocs::recent": {
|
||||
"a21d6c7edc1b15cb689c935c0722c396": [
|
||||
"Tirol 26. M\u00e4rz 2007",
|
||||
{
|
||||
"edit": {
|
||||
"tx_zuladungsliste_domain_model_sektionstage": {
|
||||
"1": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Btx_zuladungsliste_domain_model_sektionstage%5D%5B1%5D=edit",
|
||||
{
|
||||
"table": "tx_zuladungsliste_domain_model_sektionstage",
|
||||
"uid": 1,
|
||||
"pid": 55,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"ee4c99616f49d31dbc82d25c2d3c9a1c": [
|
||||
"Tirol 25. April 2022",
|
||||
{
|
||||
"edit": {
|
||||
"tx_zuladungsliste_domain_model_sektionstage": {
|
||||
"5": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Btx_zuladungsliste_domain_model_sektionstage%5D%5B5%5D=edit",
|
||||
{
|
||||
"table": "tx_zuladungsliste_domain_model_sektionstage",
|
||||
"uid": 5,
|
||||
"pid": 55,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"5c47f13e0902dfd8209b90b0d7723150": [
|
||||
"SCHAFFERER Architektur und Projektmanagement ZT-GmbH [T] [10.50]",
|
||||
{
|
||||
"edit": {
|
||||
"fe_users": {
|
||||
"1039": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bfe_users%5D%5B1039%5D=edit",
|
||||
{
|
||||
"table": "fe_users",
|
||||
"uid": 1039,
|
||||
"pid": 41,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"96ec1f943e21ef2c82b60f01603ad514": [
|
||||
"ma.lo ZT GmbH [T] [11.20]",
|
||||
{
|
||||
"edit": {
|
||||
"fe_users": {
|
||||
"278": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bfe_users%5D%5B278%5D=edit",
|
||||
{
|
||||
"table": "fe_users",
|
||||
"uid": 278,
|
||||
"pid": 41,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"a664a04ba99864562a82556d5959e654": [
|
||||
"Off. WB Volksschule Neilreichgasse 126, 1100 Wien",
|
||||
{
|
||||
"edit": {
|
||||
"tx_zuladungsliste_domain_model_wettbewerbe": {
|
||||
"1328": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Btx_zuladungsliste_domain_model_wettbewerbe%5D%5B1328%5D=edit",
|
||||
{
|
||||
"table": "tx_zuladungsliste_domain_model_wettbewerbe",
|
||||
"uid": 1328,
|
||||
"pid": 38,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"6f8355db50b8ab6ede002da86e799ea9": [
|
||||
"[T] Reich Christoph, Waltl Clemens [0.00]",
|
||||
{
|
||||
"edit": {
|
||||
"fe_users": {
|
||||
"1410": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bfe_users%5D%5B1410%5D=edit",
|
||||
{
|
||||
"table": "fe_users",
|
||||
"uid": 1410,
|
||||
"pid": 41,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"e3c44f8049f1ccbd6f867f6a028f3451": [
|
||||
"App",
|
||||
{
|
||||
"edit": {
|
||||
"pages": {
|
||||
"50": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bpages%5D%5B50%5D=edit",
|
||||
{
|
||||
"table": "pages",
|
||||
"uid": 50,
|
||||
"pid": 0,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
],
|
||||
"2a0b9c6788d93d9fa28f19ce1513f16d": [
|
||||
"Florian Lutz . Daniela Amann . Architekten, Zivilt [Tirol] [32.50]",
|
||||
{
|
||||
"edit": {
|
||||
"fe_users": {
|
||||
"12": "edit"
|
||||
}
|
||||
},
|
||||
"defVals": null,
|
||||
"overrideVals": null,
|
||||
"columnsOnly": null,
|
||||
"noView": null
|
||||
},
|
||||
"&edit%5Bfe_users%5D%5B12%5D=edit",
|
||||
{
|
||||
"table": "fe_users",
|
||||
"uid": 12,
|
||||
"pid": 41,
|
||||
"cmd": "edit",
|
||||
"deleteAccess": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"web_list": {
|
||||
"bigControlPanel": "1",
|
||||
"clipBoard": "0"
|
||||
},
|
||||
"file_list": [],
|
||||
"tx_beuser": "O:40:\"TYPO3\\CMS\\Beuser\\Domain\\Model\\ModuleData\":2:{s:9:\"\u0000*\u0000demand\";O:36:\"TYPO3\\CMS\\Beuser\\Domain\\Model\\Demand\":12:{s:11:\"\u0000*\u0000userName\";s:0:\"\";s:11:\"\u0000*\u0000userType\";i:0;s:9:\"\u0000*\u0000status\";i:0;s:9:\"\u0000*\u0000logins\";i:0;s:19:\"\u0000*\u0000backendUserGroup\";i:0;s:6:\"\u0000*\u0000uid\";N;s:16:\"\u0000*\u0000_localizedUid\";N;s:15:\"\u0000*\u0000_languageUid\";N;s:16:\"\u0000*\u0000_versionedUid\";N;s:6:\"\u0000*\u0000pid\";N;s:61:\"\u0000TYPO3\\CMS\\Extbase\\DomainObject\\AbstractDomainObject\u0000_isClone\";b:0;s:69:\"\u0000TYPO3\\CMS\\Extbase\\DomainObject\\AbstractDomainObject\u0000_cleanProperties\";a:0:{}}s:18:\"\u0000*\u0000compareUserList\";a:0:{}}",
|
||||
"browse_links.php": null,
|
||||
"dashboard\/current_dashboard\/": "92c76bc17e0cf2b9faad9ba789cd1fb6304ca56e",
|
||||
"web_info": {
|
||||
"function": "TYPO3\\CMS\\Belog\\Module\\BackendLogModuleBootstrap"
|
||||
},
|
||||
"system_txschedulerM1": {
|
||||
"function": "scheduler"
|
||||
},
|
||||
"TYPO3\\CMS\\Belog\\Controller\\BackendLogController": "O:39:\"TYPO3\\CMS\\Belog\\Domain\\Model\\Constraint\":12:{s:14:\"\u0000*\u0000userOrGroup\";s:1:\"0\";s:9:\"\u0000*\u0000number\";i:20;s:15:\"\u0000*\u0000workspaceUid\";s:3:\"-99\";s:12:\"\u0000*\u0000timeFrame\";i:20;s:9:\"\u0000*\u0000action\";i:-1;s:14:\"\u0000*\u0000groupByPage\";b:0;s:17:\"\u0000*\u0000startTimestamp\";i:0;s:15:\"\u0000*\u0000endTimestamp\";i:0;s:18:\"\u0000*\u0000manualDateStart\";N;s:17:\"\u0000*\u0000manualDateStop\";N;s:9:\"\u0000*\u0000pageId\";i:0;s:8:\"\u0000*\u0000depth\";i:0;}",
|
||||
"clipboard": {
|
||||
"tab_1": [],
|
||||
"tab_2": [],
|
||||
"tab_3": [],
|
||||
"current": "normal",
|
||||
"normal": {
|
||||
"el": {
|
||||
"tx_zuladungsliste_domain_model_kriterien|33": "1"
|
||||
},
|
||||
"mode": "copy"
|
||||
}
|
||||
},
|
||||
"web_view": {
|
||||
"States": {
|
||||
"current": {
|
||||
"width": "1024",
|
||||
"height": "1366",
|
||||
"label": "iPad Pro"
|
||||
}
|
||||
}
|
||||
},
|
||||
"list\/displayFields": {
|
||||
"tx_zuladungsliste_domain_model_extrasperrung": [
|
||||
"",
|
||||
"sperrzeitbis"
|
||||
],
|
||||
"tx_zuladungsliste_domain_model_kriterien": [
|
||||
"",
|
||||
"sektinstagid"
|
||||
],
|
||||
"fe_users": [
|
||||
"",
|
||||
"company",
|
||||
"punktestand",
|
||||
"frauenfoerderpunkt",
|
||||
"kammernid",
|
||||
"burogemeinschaft"
|
||||
],
|
||||
"tx_zuladungsliste_domain_model_wettbewerbe": [
|
||||
"",
|
||||
"sperrung",
|
||||
"uid"
|
||||
],
|
||||
"tx_zuladungsliste_domain_model_sektionstage": [
|
||||
"",
|
||||
"sperrzeit"
|
||||
]
|
||||
}
|
||||
},
|
||||
"thumbnailsByDefault": 1,
|
||||
"emailMeAtLogin": 0,
|
||||
"startModule": "help_AboutAbout",
|
||||
"titleLen": 50,
|
||||
"edit_RTE": "1",
|
||||
"edit_docModuleUpload": "1",
|
||||
"resizeTextareas": 1,
|
||||
"resizeTextareas_MaxHeight": 500,
|
||||
"resizeTextareas_Flexible": 0,
|
||||
"lang": "de",
|
||||
"firstLoginTimeStamp": 1630820412,
|
||||
"moduleSessionID": {
|
||||
"web_layout": "25fcfcf92982fa42346580799e48537d4b8f777a",
|
||||
"web_ts": "2de213855cebd2a2a402927d354a986ef8676738",
|
||||
"FormEngine": "74b4bd7a0a16ee20ecad2bc152910ac1ccfa561d",
|
||||
"TYPO3\\CMS\\Backend\\Utility\\BackendUtility::getUpdateSignal": "74b4bd7a0a16ee20ecad2bc152910ac1ccfa561d",
|
||||
"opendocs::recent": "b126de6826f76cbccf93ca2cd171702a31e1860e",
|
||||
"web_list": "52d3ccefceb667e2006d39500beb09ed0e6d9dd5",
|
||||
"file_list": "a108910a133349f44b7a30695f39f4f9d46ebea7",
|
||||
"tx_beuser": "47984b26e00ef94c61198304478512981f5b1bfb",
|
||||
"browse_links.php": "1a6a66d79b2d74ef433e538f4da2e577a5fbc912",
|
||||
"dashboard\/current_dashboard\/": "736f1226b905776c353f2fa01d1d8996e3df6407",
|
||||
"web_info": "64d318271cb7cde508059aa706f1b46b85725d33",
|
||||
"system_txschedulerM1": "79b7773748da14dfca565f8916423ef4b5441af5",
|
||||
"TYPO3\\CMS\\Belog\\Controller\\BackendLogController": "dfaa44a4cb3c3883af45a2ed2f21d38cf13e88a4",
|
||||
"clipboard": "423da4f5321274300e630376b27acb3ae534ba71",
|
||||
"list\/displayFields": "52d3ccefceb667e2006d39500beb09ed0e6d9dd5"
|
||||
},
|
||||
"BackendComponents": {
|
||||
"States": {
|
||||
"Pagetree": {
|
||||
"stateHash": {
|
||||
"0_1": "1",
|
||||
"0_50": "1",
|
||||
"0_37": "1",
|
||||
"0_42": "1",
|
||||
"0_39": "0",
|
||||
"0_62": "1"
|
||||
}
|
||||
},
|
||||
"typo3-module-menu": {
|
||||
"collapsed": "false"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inlineView": "{\"tx_zuladungsliste_domain_model_punkte\":{\"37\":{\"tx_zuladungsliste_punkte_kriterien_mm\":[\"145\"]},\"19\":{\"tx_zuladungsliste_punkte_kriterien_mm\":{\"5\":\"\"}},\"7\":{\"tx_zuladungsliste_punkte_kriterien_mm\":{\"1\":\"\"}},\"30\":{\"tx_zuladungsliste_punkte_kriterien_mm\":{\"3\":\"\"}}},\"site\":{\"1\":{\"site_language\":[\"0\"],\"site_errorhandling\":[\"0\",\"1\"]},\"50\":{\"site_errorhandling\":{\"1\":\"1\",\"2\":\"0\"},\"site_language\":{\"2\":\"0\"}}},\"fe_users\":{\"294\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"2\":\"1614\"}},\"131\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"10\":\"432\"}},\"259\":{\"tx_zuladungsliste_konto_aufloesung_mm\":{\"6\":\"\"}},\"159\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"11\":\"\"}},\"251\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"1785\"]},\"172\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"116\"]},\"170\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"1780\",\"1779\"]},\"160\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"}},\"244\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"2078\"]},\"154\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"2\":\"1101\"}},\"1\":{\"tx_zuladungsliste_extrasperrung_user_mm\":{\"12\":\"72\"},\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"38\":\"4798\"},\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"9\":\"2\",\"26\":\"\"},\"tx_zuladungsliste_konto_aufloesung_mm\":{\"5\":\"\"},\"tx_zuladungsliste_ruhestellung_user_mm\":[1],\"tx_zuladungsliste_domain_model_ruhestellung\":{\"0\":\"3\",\"3\":\"\"}},\"954\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"},\"tx_zuladungsliste_extrasperrung_user_mm\":{\"1\":\"\"},\"tx_zuladungsliste_domain_model_ruhestellung\":[5]},\"4\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"2\":\"3520\"},\"tx_zuladungsliste_domain_model_ruhestellung\":[6]},\"953\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"4765\"]},\"862\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"},\"tx_zuladungsliste_konto_aufloesung_mm\":{\"1\":\"\"},\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"0\":\"2\",\"1\":4,\"2\":\"3\",\"6\":\"\"},\"tx_zuladungsliste_domain_model_ruhestellung\":[17]},\"1001\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"5\":\"7\",\"6\":\"8\"}},\"1058\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"19\":\"\"},\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"}},\"67\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"2\":\"4\"},\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"15\":\"\"},\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"7\":\"\"},\"tx_zuladungsliste_konto_aufloesung_mm\":[\"12\",\"13\"]},\"164\":{\"tx_zuladungsliste_domain_model_ruhestellung\":[7]},\"1096\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"2\":\"\"}},\"992\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"3\":\"\"},\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"10\":\"4899\"}},\"570\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"25\":\"5032\"}},\"444\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"5121\"]},\"643\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":[\"37\"]},\"1201\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"12\":\"5154\"},\"tx_zuladungsliste_domain_model_ruhestellung\":{\"10\":\"14\"}},\"1156\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"8\":\"\"}},\"867\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"}},\"1073\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"8\":\"12\"}},\"430\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"1\":\"\"},\"tx_zuladungsliste_domain_model_ruhestellung\":[20],\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"}},\"827\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":{\"1\":\"\"}},\"825\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"2\":\"5118\"}},\"949\":{\"tx_zuladungsliste_domain_model_ruhestellung\":[18]},\"278\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"2\":\"19\"},\"tx_zuladungsliste_buro_gemeinschaft_mm\":[\"21\"]},\"956\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"5138\"]},\"521\":{\"tx_zuladungsliste_konto_aufloesung_mm\":[9,10]},\"664\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"1\":\"\"}},\"1392\":{\"tx_zuladungsliste_buro_gemeinschaft_mm\":[\"163\",\"164\"]},\"651\":{\"tx_zuladungsliste_konto_aufloesung_mm\":[\"19\",\"20\"]},\"791\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"2380\"]},\"1295\":{\"tx_zuladungsliste_domain_model_ruhestellung\":{\"4\":\"23\",\"5\":\"24\"}}},\"tx_zuladungsliste_domain_model_wettbewerbe\":{\"674\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"1882\"]},\"688\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":{\"41\":\"\"}},\"720\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"2140\"]},\"708\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"2115\"]},\"715\":{\"tx_zuladungsliste_wettbewerbe_architekten_mm\":[\"2055\"]},\"717\":{\"tx_zuladungsliste_wettbLine truncated
|
||||
"browseTrees": {
|
||||
"folder": "{\"25218\":{\"62822724\":1,\"14248556\":1,\"202941852\":1}}",
|
||||
"browsePages": "[{\"0\":1,\"1\":1,\"39\":1}]"
|
||||
},
|
||||
"recentSwitchedToUsers": [
|
||||
6
|
||||
],
|
||||
"modulemenu": "{}",
|
||||
"reports": {
|
||||
"selection": {
|
||||
"extension": "",
|
||||
"report": ""
|
||||
}
|
||||
},
|
||||
"systeminformation": "{\"system_BelogLog\":{\"lastAccess\":1738829473}}",
|
||||
"beuser": {
|
||||
"compareGroupUidList": {
|
||||
"11": true,
|
||||
"10": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"uc_default": {
|
||||
"interfaceSetup": "",
|
||||
"moduleData": [],
|
||||
"thumbnailsByDefault": 1,
|
||||
"emailMeAtLogin": 0,
|
||||
"titleLen": 50,
|
||||
"edit_RTE": "1",
|
||||
"edit_docModuleUpload": "1",
|
||||
"resizeTextareas": 1,
|
||||
"resizeTextareas_MaxHeight": 500,
|
||||
"resizeTextareas_Flexible": 0
|
||||
},
|
||||
"loginType": "BE",
|
||||
"name": "be_typo_user",
|
||||
"showHiddenRecords": false,
|
||||
"auth_timeout_field": "",
|
||||
"lifetime": 0,
|
||||
"gc_time": 28800,
|
||||
"gc_probability": 1,
|
||||
"sendNoCacheHeaders": true,
|
||||
"hash_length": 32,
|
||||
"warningEmail": "",
|
||||
"warningPeriod": 3600,
|
||||
"warningMax": 3,
|
||||
"checkPid": true,
|
||||
"checkPid_value": 0,
|
||||
"id": "cdb89caf20737bf6f1308f1179246707",
|
||||
"loginFailure": false,
|
||||
"loginSessionStarted": false,
|
||||
"user": {
|
||||
"ses_id": "f83e3650f07302b46147597aa86a375a",
|
||||
"ses_iplock": "[DISABLED]",
|
||||
"ses_userid": 1,
|
||||
"ses_tstamp": 1771344450,
|
||||
"ses_data": "a:4:{s:26:\"formProtectionSessionToken\";s:64:\"fb0365b9bb620711613eceb086315c20f588489066f7ede0bcfb7d04d5fe01b5\";s:27:\"core.template.flashMessages\";N;s:52:\"TYPO3\\CMS\\Recordlist\\Controller\\RecordListController\";a:1:{s:12:\"search_field\";s:7:\"ivanova\";}s:26:\"extbase.flashmessages.tx__\";N;}",
|
||||
"ses_backuserid": 0,
|
||||
"uid": 1,
|
||||
"pid": 0,
|
||||
"tstamp": 1599464037,
|
||||
"username": "hermann.telser@gmail.com",
|
||||
"description": "Salam Admin Access",
|
||||
"avatar": 0,
|
||||
"password": "$argon2i$v=19$m=65536,t=16,p=1$VmZjQ3Rpd0kwdjh3c0l3eA$GZbZS\/xBv1z6RoGcMLhqXiobqzjVrR951VcBFqFt22U",
|
||||
"admin": 1,
|
||||
"usergroup": "",
|
||||
"disable": 0,
|
||||
"starttime": 0,
|
||||
"endtime": 0,
|
||||
"lang": "de",
|
||||
"email": "",
|
||||
"db_mountpoints": null,
|
||||
"options": 0,
|
||||
"crdate": 1468737078,
|
||||
"cruser_id": 0,
|
||||
"realName": "",
|
||||
"userMods": null,
|
||||
"allowed_languages": "",
|
||||
"uc": "a:22:{s:14:\"interfaceSetup\";s:7:\"backend\";s:10:\"moduleData\";a:16:{s:10:\"web_layout\";a:2:{s:8:\"function\";s:1:\"1\";s:8:\"language\";s:1:\"0\";}s:6:\"web_ts\";a:8:{s:8:\"function\";s:88:\"TYPO3\\CMS\\Tstemplate\\Controller\\TypoScriptTemplateConstantEditorModuleFunctionController\";s:19:\"constant_editor_cat\";s:14:\"frontend login\";s:15:\"ts_browser_type\";s:5:\"const\";s:16:\"ts_browser_const\";s:1:\"0\";s:19:\"ts_browser_fixedLgd\";s:1:\"1\";s:23:\"ts_browser_showComments\";s:1:\"1\";s:25:\"tsbrowser_depthKeys_const\";a:2:{s:6:\"config\";i:1;s:6:\"plugin\";i:1;}s:25:\"tsbrowser_depthKeys_setup\";a:6:{s:39:\"plugin.tx_zuladungsliste_zuladungsliste\";i:1;s:24:\"plugin.tx_zuladungsliste\";i:1;s:44:\"plugin.tx_zuladungsliste_zuladungsliste.view\";i:1;s:62:\"plugin.tx_zuladungsliste_zuladungsliste.view.templateRootPaths\";i:1;s:51:\"plugin.tx_zuladungsliste_zuladungsliste.persistence\";i:1;s:3:\"lib\";i:1;}}s:10:\"FormEngine\";a:2:{i:0;a:1:{s:32:\"ef16fd1dd21cee72b942496ea114ff2b\";a:4:{i:0;s:27:\"Ivanova Ralitza [T] [4.00]\";i:1;a:5:{s:4:\"edit\";a:1:{s:8:\"fe_users\";a:1:{i:1295;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:34:\"&edit%5Bfe_users%5D%5B1295%5D=edit\";i:3;a:5:{s:5:\"table\";s:8:\"fe_users\";s:3:\"uid\";i:1295;s:3:\"pid\";i:41;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}}i:1;s:32:\"ef16fd1dd21cee72b942496ea114ff2b\";}s:57:\"TYPO3\\CMS\\Backend\\Utility\\BackendUtility::getUpdateSignal\";a:0:{}s:16:\"opendocs::recent\";a:8:{s:32:\"a21d6c7edc1b15cb689c935c0722c396\";a:4:{i:0;s:20:\"Tirol 26. M\u00e4rz 2007\";i:1;a:5:{s:4:\"edit\";a:1:{s:43:\"tx_zuladungsliste_domain_model_sektionstage\";a:1:{i:1;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:66:\"&edit%5Btx_zuladungsliste_domain_model_sektionstage%5D%5B1%5D=edit\";i:3;a:5:{s:5:\"table\";s:43:\"tx_zuladungsliste_domain_model_sektionstage\";s:3:\"uid\";i:1;s:3:\"pid\";i:55;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"ee4c99616f49d31dbc82d25c2d3c9a1c\";a:4:{i:0;s:20:\"Tirol 25. April 2022\";i:1;a:5:{s:4:\"edit\";a:1:{s:43:\"tx_zuladungsliste_domain_model_sektionstage\";a:1:{i:5;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:66:\"&edit%5Btx_zuladungsliste_domain_model_sektionstage%5D%5B5%5D=edit\";i:3;a:5:{s:5:\"table\";s:43:\"tx_zuladungsliste_domain_model_sektionstage\";s:3:\"uid\";i:5;s:3:\"pid\";i:55;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"5c47f13e0902dfd8209b90b0d7723150\";a:4:{i:0;s:65:\"SCHAFFERER Architektur und Projektmanagement ZT-GmbH [T] [10.50]\";i:1;a:5:{s:4:\"edit\";a:1:{s:8:\"fe_users\";a:1:{i:1039;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:34:\"&edit%5Bfe_users%5D%5B1039%5D=edit\";i:3;a:5:{s:5:\"table\";s:8:\"fe_users\";s:3:\"uid\";i:1039;s:3:\"pid\";i:41;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"96ec1f943e21ef2c82b60f01603ad514\";a:4:{i:0;s:26:\"ma.lo ZT GmbH [T] [11.20]\";i:1;a:5:{s:4:\"edit\";a:1:{s:8:\"fe_users\";a:1:{i:278;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:33:\"&edit%5Bfe_users%5D%5B278%5D=edit\";i:3;a:5:{s:5:\"table\";s:8:\"fe_users\";s:3:\"uid\";i:278;s:3:\"pid\";i:41;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"a664a04ba99864562a82556d5959e654\";a:4:{i:0;s:49:\"Off. WB Volksschule Neilreichgasse 126, 1100 Wien\";i:1;a:5:{s:4:\"edit\";a:1:{s:42:\"tx_zuladungsliste_domain_model_wettbewerbe\";a:1:{i:1328;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:68:\"&edit%5Btx_zuladungsliste_domain_model_wettbewerbe%5D%5B1328%5D=edit\";i:3;a:5:{s:5:\"table\";s:42:\"tx_zuladungsliste_domain_model_wettbewerbe\";s:3:\"uid\";i:1328;s:3:\"pid\";i:38;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"6f8355db50b8ab6ede002da86e799ea9\";a:4:{i:0;s:41:\"[T] Reich Christoph, Waltl Clemens [0.00]\";i:1;a:5:{s:4:\"edit\";a:1:{s:8:\"fe_users\";a:1:{i:1410;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:34:\"&edit%5Bfe_users%5D%5B1410%5D=edit\";i:3;a:5:{s:5:\"table\";s:8:\"fe_users\";s:3:\"uid\";i:1410;s:3:\"pid\";i:41;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"e3c44f8049f1ccbd6f867f6a028f3451\";a:4:{i:0;s:3:\"App\";i:1;a:5:{s:4:\"edit\";a:1:{s:5:\"pages\";a:1:{i:50;s:4:\"edit\";}}s:7:\"defVals\";N;s:12:\"overrideVals\";N;s:11:\"columnsOnly\";N;s:6:\"noView\";N;}i:2;s:29:\"&edit%5Bpages%5D%5B50%5D=edit\";i:3;a:5:{s:5:\"table\";s:5:\"pages\";s:3:\"uid\";i:50;s:3:\"pid\";i:0;s:3:\"cmd\";s:4:\"edit\";s:12:\"deleteAccess\";b:1;}}s:32:\"2a0b9c6788d93d9fa28f19ce1513f16d\";a:4:{i:0;s:67:\"Florian Lutz . Daniela Amann . Architekten, Zivilt [Tirol] [32.50]\";i:1;a:5:{s:4:\"edit\";a:1:{s:8:\"fe_users\";a:1:{i:12;s:4:\"edit\";Line truncated
|
||||
"file_mountpoints": null,
|
||||
"file_permissions": null,
|
||||
"workspace_perms": 1,
|
||||
"lockToDomain": "",
|
||||
"disableIPlock": 0,
|
||||
"deleted": 0,
|
||||
"TSconfig": null,
|
||||
"lastlogin": 1771320105,
|
||||
"createdByAction": 0,
|
||||
"usergroup_cached_list": null,
|
||||
"workspace_id": 0,
|
||||
"category_perms": "",
|
||||
"password_reset_token": "",
|
||||
"is_online": 1771344450
|
||||
},
|
||||
"newSessionID": false,
|
||||
"forceSetCookie": false,
|
||||
"dontSetCookie": false,
|
||||
"svConfig": []
|
||||
},
|
||||
"userid": 1,
|
||||
"username": "hermann.telser@gmail.com",
|
||||
"admin": 1,
|
||||
"defaultPermissions": {
|
||||
"user": "show,edit,delete,new,editcontent",
|
||||
"group": "show,edit,new,editcontent",
|
||||
"everybody": ""
|
||||
},
|
||||
"datamap": {
|
||||
"fe_users": {
|
||||
"1295": {
|
||||
"username": "ralichka00@yahoo.com",
|
||||
"password": "$argon2i$v=19$m=65536,t=16,p=1$oRBcgdrIZnImY6lhB80iDw$M\/recXtvDC4n3\/1YO+WEieMbJjnDwR13S1eFV0794hQ",
|
||||
"usergroup": "2",
|
||||
"company": "Ivanova Ralitza",
|
||||
"gender": "2",
|
||||
"title": "",
|
||||
"first_name": "Ralitza",
|
||||
"last_name": "Ivanova",
|
||||
"kammernid": "1",
|
||||
"kammermitgliedsnummer": "23843",
|
||||
"vereidigung": "2023-06-26T00:00:00+00:00",
|
||||
"frauenfoerderpunkt": "1",
|
||||
"wettbewerbe": "6702,5906,6781",
|
||||
"extrasperrung": "",
|
||||
"ruhestellungen": "23,24",
|
||||
"burogemeinschaft_start": "0000-00-00",
|
||||
"burogemeinschaft": "",
|
||||
"kontoaufloesung_active": "0000-00-00",
|
||||
"kontoaufloesung": "",
|
||||
"kontoaufloesung_begruendung": ""
|
||||
}
|
||||
},
|
||||
"tx_zuladungsliste_domain_model_ruhestellung": {
|
||||
"23": {
|
||||
"ruhestellung_start": "2025-01-14T00:00:00+00:00",
|
||||
"ruhestellung_end": "2025-05-05T00:00:00+00:00"
|
||||
},
|
||||
"24": {
|
||||
"ruhestellung_start": "2025-02-03T00:00:00+00:00",
|
||||
"ruhestellung_end": "2026-03-20T00:00:00+00:00"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cmdmap": [],
|
||||
"pMap": {
|
||||
"show": 1,
|
||||
"edit": 2,
|
||||
"delete": 4,
|
||||
"new": 8,
|
||||
"editcontent": 16
|
||||
},
|
||||
"sortIntervals": 256,
|
||||
"dbAnalysisStore": [],
|
||||
"registerDBList": [],
|
||||
"registerDBPids": [],
|
||||
"copyMappingArray": [],
|
||||
"remapStack": [],
|
||||
"remapStackRecords": [],
|
||||
"callFromImpExp": false,
|
||||
"checkValue_currentRecord": {
|
||||
"uid": 23,
|
||||
"pid": 63,
|
||||
"tstamp": 0,
|
||||
"crdate": 0,
|
||||
"hidden": 0,
|
||||
"deleted": 0,
|
||||
"ruhestellung_start": "2025-01-14",
|
||||
"ruhestellung_end": "2025-05-05",
|
||||
"uid_ruhestellung": 1295
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
# flush cache
|
||||
php vendor/bin/typo3 cache:flush
|
||||
|
||||
# get version
|
||||
./vendor/bin/typo3 --version
|
||||
|
||||
|
||||
# Falls der Vhost noch existiert, einmal sauber entfernen:
|
||||
reeve vhost remove tirol.test
|
||||
|
||||
# Mit Root-Verzeichnis UND Proxy-Weiterleitung neu anlegen:
|
||||
reeve vhost add tirol.test --root ~/Sites/typo3_zuladung_tirol/public --proxy http://127.0.0.1:9074 --server apache
|
||||
|
||||
# path to reeve config
|
||||
cd ~/Library/Application\ Support/reeve/
|
||||
|
||||
# Erzwinge PHP 7.4 aus dem Docker-Container für alle PHP-Dateien
|
||||
<FilesMatch \.php$>
|
||||
SetHandler "proxy:fcgi://127.0.0.1:9074"
|
||||
</FilesMatch>
|
||||
|
||||
|
||||
|
||||
# Die Lösung: Den Datenbank-Host anpassen um vom docker php auf macos DB zuzugrreifen
|
||||
|
||||
# Du musst TYPO3 mitteilen, dass es die Datenbank über die spezielle Schnittstelle von Docker zum Mac-Host ansprechen soll.
|
||||
# 1. Öffne die TYPO3-Konfigurationsdatei deines Projekts auf deinem Mac:
|
||||
# • Bei TYPO3 v11/v12/v13: config/system/additional.php (oder settings.php)
|
||||
# • Bei älteren Versionen (z. B. TYPO3 v9/v10): typo3conf/LocalConfiguration.php (oder AdditionalConfiguration.php)
|
||||
# 2. Suche nach dem Eintrag für die Datenbankverbindung (Connections -> Default) und ändere den Wert für host um:php
|
||||
# Vorher: 'host' => '127.0.0.1', oder 'localhost'
|
||||
# Nachher:
|
||||
'host' => 'host.docker.internal',
|
||||
@@ -0,0 +1,5 @@
|
||||
composer.lock
|
||||
Resources/Public/Css/node_modules
|
||||
Resources/Public/Css/package-lock.json
|
||||
Resources/Public/JavaScript/package-lock.json
|
||||
Resources/Public/JavaScript/node_modules
|
||||
+434
@@ -0,0 +1,434 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Backend;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Page\PageRenderer;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use DateTime;
|
||||
use IntlDateFormatter;
|
||||
|
||||
/**
|
||||
* Generate additional label for category records
|
||||
* including the title of the parent category
|
||||
*
|
||||
* @$parameters array $params
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* \TYPO3\CMS\Core\Utility\DebugUtility::debug($wettbewerbeid);
|
||||
*
|
||||
*/
|
||||
class Labels extends DateTime
|
||||
{
|
||||
public function loadKriterien(&$parameters, $parentObject)
|
||||
{
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $parameters['row']['uid']);
|
||||
$newTitle = $record['bezeichnung'];
|
||||
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_sektionstage', $record['sektionstagid'], "rwcode,bezeichnung,stichtag,kammernid");
|
||||
$parameters['title'] = $record['rwcode'] . ' ' . $newTitle;
|
||||
// $parameters['title'] = $record['rwcode'];
|
||||
// $parameters['title'] = $record['rwcode'] . ': ' . $newTitle . ' (' . $record['bezeichnung'] . ' vom ' . date("d. M. y", strtotime($record['stichtag'])) . ')';
|
||||
}
|
||||
|
||||
public function loadSektionstag(&$parameters, $parentObject)
|
||||
{
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $parameters['row']['uid']);
|
||||
$newTitle = $record['bezeichnung'];
|
||||
$date = new DateTime($record['stichtag']);
|
||||
|
||||
$formatter = new IntlDateFormatter(
|
||||
"de-DE",
|
||||
IntlDateFormatter::LONG,
|
||||
IntlDateFormatter::NONE,
|
||||
"Europe/Vienna",
|
||||
IntlDateFormatter::GREGORIAN,
|
||||
"dd. MMMM YYYY"
|
||||
);
|
||||
|
||||
// $newTitle .= ' ' . date("d. M. y", strtotime($record['stichtag']));
|
||||
$newTitle .= ' ' . $formatter->format($date);
|
||||
$parameters['title'] = $newTitle;
|
||||
}
|
||||
|
||||
public function loadArchitekten(&$parameters, $parentObject)
|
||||
{
|
||||
/********************************************************
|
||||
KONTOAUFLOESUNG
|
||||
********************************************************/
|
||||
$uid = $parameters["row"]['uid'];
|
||||
//use pid filter admin out of popup
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $uid, '*', 'pid=41');
|
||||
if (!$record) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// $isPartner = "";
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_konto_aufloesung_mm');
|
||||
$count = $queryBuilder
|
||||
->count('uid')
|
||||
->from('tx_zuladungsliste_konto_aufloesung_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid_empfaenger', (int) $uid)
|
||||
)->execute()
|
||||
->fetchColumn(0);
|
||||
|
||||
|
||||
switch ($record['kammernid']) {
|
||||
case '1':
|
||||
$title = $record['company'].' [T] ';
|
||||
break;
|
||||
case '2':
|
||||
$title = $record['company'].' [V] ';
|
||||
break;
|
||||
default:
|
||||
$title = $record['company'].' [!] ';
|
||||
break;
|
||||
}
|
||||
|
||||
if ($count) {
|
||||
$title .= ' [Empfänger]';
|
||||
} elseif ($record["kontoaufloesung"] > 0) {
|
||||
$title .= " [".$record["kontoaufloesung_active"]." Aufgelöst]";
|
||||
}
|
||||
switch($parameters["row"]['istpartner']) {
|
||||
case 1:
|
||||
$title .= " [Partner]";
|
||||
break;
|
||||
case 2:
|
||||
$title .= " [" . $record['punktestand'] . "][Gemeinschaft]";
|
||||
break;
|
||||
default:
|
||||
$title .= " [" . $record['punktestand'] . ']';
|
||||
break;
|
||||
}
|
||||
$parameters['title'] = $title;
|
||||
|
||||
// print_r($parameters);
|
||||
}
|
||||
|
||||
// public function loadSektionstag($id)
|
||||
// {
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($id);
|
||||
//
|
||||
// $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_sektionstage');
|
||||
// $ref = $queryBuilder
|
||||
// ->select('bezeichnung', 'stichtag')
|
||||
// ->from('tx_zuladungsliste_domain_model_sektionstage')
|
||||
// ->where(
|
||||
// $queryBuilder->expr()->eq('uid', $id),
|
||||
// )
|
||||
// ->execute()
|
||||
// ->fetchRow();
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($ref);
|
||||
// }
|
||||
|
||||
public function loadKriterienPunkte(&$parameters)
|
||||
{
|
||||
$kriterien_label = '';
|
||||
if (isset($parameters['options']['tx_zuladungsliste_punkte_kriterien_mm']) && is_array($parameters['options']['tx_zuladungsliste_punkte_kriterien_mm'])) {
|
||||
/********************************************************
|
||||
KRITERIEN BEZEICHNUNG
|
||||
********************************************************/
|
||||
$kriterien_id = $parameters['row']['uid_kriterien'];
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_kriterien', $kriterien_id);
|
||||
$kriterien_label = '<span class="blau bold;">' . $record['bezeichnung'] . '</span>';
|
||||
/********************************************************
|
||||
KAMMER STICHTAG
|
||||
********************************************************/
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_sektionstage', $record['sektionstagid']);
|
||||
$stichtagTitle = $record['bezeichnung'];
|
||||
$stichtagDate = $record['stichtag'];
|
||||
$kriterien_label .= '<br><span class="grau bold">' . $stichtagTitle . ' ' . $stichtagDate . '</span>';
|
||||
/********************************************************
|
||||
PREIS
|
||||
********************************************************/
|
||||
$punkte_id = $parameters['row']['uid_punkte'][0];
|
||||
$item = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_punkte', $punkte_id);
|
||||
$kriterien_label .= '<br><b>' . $item['bezeichnung'] . '</b>';
|
||||
|
||||
//\TYPO3\CMS\Core\Utility\DebugUtility::debug($parameters['row']['uid_punkte'][0]);
|
||||
/********************************************************
|
||||
PUNKTE
|
||||
********************************************************/
|
||||
if ($parameters['row']['punkte']==1) {
|
||||
$kriterien_label .= '<br><span class="rot bold">' . $parameters['row']['punkte'] . ' Punkt</span>';
|
||||
} else {
|
||||
$kriterien_label .= '<br><span class="rot bold">' . $parameters['row']['punkte'] . ' Punkte</span>';
|
||||
}
|
||||
} else {
|
||||
$kriterien_label = '[Fehler!]';
|
||||
}
|
||||
$parameters['title'] = $kriterien_label;
|
||||
}
|
||||
|
||||
public function loadPunkteVerteilungs(&$parameters)
|
||||
{
|
||||
$parameters['title'] = "ERROR";
|
||||
if (isset($parameters['options']['tx_zuladungsliste_konto_aufloesung_mm']) && is_array($parameters['options']['tx_zuladungsliste_konto_aufloesung_mm'])) {
|
||||
$uid_empfaenger = $parameters['row']['uid_empfaenger'][0];
|
||||
|
||||
//\TYPO3\CMS\Core\Utility\DebugUtility::debug($uid_empfaenger);
|
||||
|
||||
$prozente = $parameters['row']['prozente'];
|
||||
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $uid_empfaenger);
|
||||
|
||||
$colorclass = "zuladungsliste-kammern-".$record["kammernid"];
|
||||
|
||||
$parameters['title'] = '<span class="'.$colorclass.'">' . $record['name'];
|
||||
$parameters['title'] .= " <b>(" .$prozente. "%) </b></span>";
|
||||
}
|
||||
}
|
||||
|
||||
public function loadBuerogemeinschaft(&$parameters)
|
||||
{
|
||||
$parameters['title'] = "ERROR";
|
||||
if (isset($parameters['options']['tx_zuladungsliste_buro_gemeinschaft_mm']) && is_array($parameters['options']['tx_zuladungsliste_buro_gemeinschaft_mm'])) {
|
||||
$uid_user = $parameters['row']['uid_user'][0];
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $uid_user);
|
||||
$colorclass = "zuladungsliste-kammern-".$record["kammernid"];
|
||||
// $parameters['title'] = '<span class="'.$colorclass.'">' . $record['last_name'] . " " . $record['first_name'];
|
||||
$parameters['title'] = '<span class="'.$colorclass.'">' . $record['company'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function loadWettbewerbArchitekten(&$parameters)
|
||||
{
|
||||
if (isset($parameters['options']['tx_zuladungsliste_wettbewerbe_architekten_mm']) && is_array($parameters['options']['tx_zuladungsliste_wettbewerbe_architekten_mm'])) {
|
||||
if (is_array($parameters['row']['uid_wettbewerbe'])) {
|
||||
$wettbewerbe_id = (int)$parameters['row']['uid_wettbewerbe'][0];
|
||||
} else {
|
||||
$wettbewerbe_id = (int)$parameters['row']['uid_wettbewerbe'];
|
||||
}
|
||||
|
||||
if (is_array($parameters['row']['uid_user'])) {
|
||||
$user_id = (int)$parameters['row']['uid_user'][0];
|
||||
} else {
|
||||
$user_id = (int)$parameters['row']['uid_user'];
|
||||
}
|
||||
|
||||
if (is_array($parameters['row']['uid_punkte'])) {
|
||||
$punkte_id = (int)$parameters['row']['uid_punkte'][0];
|
||||
} else {
|
||||
$punkte_id = (int)$parameters['row']['uid_punkte'];
|
||||
}
|
||||
|
||||
if (is_array($parameters['row']['sperrzeitteilung'])) {
|
||||
$sperrzeitteilung = (int)$parameters['row']['sperrzeitteilung'][0];
|
||||
} else {
|
||||
$sperrzeitteilung = (int)$parameters['row']['sperrzeitteilung'];
|
||||
}
|
||||
|
||||
if (is_array($parameters['row']['ladung_durch_auslober'])) {
|
||||
$ladung_durch_auslober = (int)$parameters['row']['ladung_durch_auslober'][0];
|
||||
} else {
|
||||
$ladung_durch_auslober = (int)$parameters['row']['ladung_durch_auslober'];
|
||||
}
|
||||
|
||||
if (is_array($parameters['row']['nichtsperren'])) {
|
||||
$nichtsperren = (int)$parameters['row']['nichtsperren'][0];
|
||||
} else {
|
||||
$nichtsperren = (int)$parameters['row']['nichtsperren'];
|
||||
}
|
||||
|
||||
// echo json_encode($parameters);
|
||||
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",array_keys($parameters["row"])));
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",$parameters["row"]));
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($parameters["row"]["uid_user"],"uid_user 1: ");
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($user_id,"uid_user 2: ");
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug(implode(", ",array_keys($parameters["options"])));
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($wettbewerbe_id);
|
||||
|
||||
if (isset($wettbewerbe_id)) {
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$record = $queryBuilder
|
||||
->select('kriteriumid', 'wettbewerb', 'kammerbeschluss', 'entscheidungstermin', 'loserverfahren')
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $wettbewerbe_id)
|
||||
)->execute();
|
||||
|
||||
while ($row = $record->fetch()) {
|
||||
$kriterien_id = $row['kriteriumid'];
|
||||
$wettbewerb_label = $row['wettbewerb'];
|
||||
$kammerbeschluss = $row['kammerbeschluss'];
|
||||
$entscheidungstermin = $row['entscheidungstermin'];
|
||||
$loserverfahren = $row['loserverfahren'];
|
||||
}
|
||||
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_kriterien');
|
||||
$record = $queryBuilder
|
||||
->select('sperrung', 'sektionstagid')
|
||||
->from('tx_zuladungsliste_domain_model_kriterien')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $kriterien_id)
|
||||
)->execute();
|
||||
|
||||
while ($row = $record->fetch()) {
|
||||
$sperrung = $row['sperrung'];
|
||||
$sektionstagid = $row['sektionstagid'];
|
||||
}
|
||||
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($record);
|
||||
// return;
|
||||
// $record = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("kriteriumid,wettbewerb", "tx_zuladungsliste_domain_model_wettbewerbe", "uid=$wettbewerbe_id");
|
||||
|
||||
|
||||
$parameters['row']['uid'] = strpos($parameters['row']['uid'], "NEW")!==false ? "Neuer Eintrag Bitte Sichern" : $parameters['row']['uid'];
|
||||
|
||||
if ($user_id) {
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $user_id);
|
||||
$wettbewerb_label .= '</b><br><span class="blau bold">' . $record['company'] . '</span>';
|
||||
}
|
||||
if ($punkte_id) {
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte');
|
||||
$record = $queryBuilder
|
||||
->select('tx_zuladungsliste_domain_model_punkte.bezeichnung', 'k.uid', 'k.punkte')
|
||||
->from('tx_zuladungsliste_domain_model_punkte')
|
||||
->join(
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'k',
|
||||
$queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid'))
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('k.uid_kriterien', $queryBuilder->createNamedParameter($kriterien_id, \PDO::PARAM_INT)),
|
||||
$queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->createNamedParameter($punkte_id, \PDO::PARAM_INT))
|
||||
)
|
||||
->execute();
|
||||
|
||||
while ($row = $record->fetch()) {
|
||||
$punkte = $row['punkte']==0 ? "Keine " : $row['punkte'];
|
||||
$bezeichnung = $row['bezeichnung'];
|
||||
}
|
||||
|
||||
if ($punkte!=0) {
|
||||
$wettbewerb_label .= '</b><br><span class="rot bold">' . $bezeichnung .' (' . $punkte;
|
||||
$wettbewerb_label .= $punkte==1 ? ' Punkt)</span>' : ' Punkte)</span>';
|
||||
if ($kammerbeschluss) {
|
||||
$wettbewerb_label .= '<li> Kooperationsdatum: ' . $kammerbeschluss;
|
||||
}
|
||||
if ($entscheidungstermin) {
|
||||
$wettbewerb_label .= '<li> Entscheidungstermin: ' . $entscheidungstermin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_sektionstage');
|
||||
$record = $queryBuilder
|
||||
->select('punktezeit', 'sperrzeit', 'sperrzeit_aufteilen', 'ausloberladung')
|
||||
->from('tx_zuladungsliste_domain_model_sektionstage')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $sektionstagid)
|
||||
)->execute();
|
||||
|
||||
while ($row = $record->fetch()) {
|
||||
$punktezeit = $row['punktezeit'];
|
||||
$sperrzeit_monate = $row['sperrzeit'];
|
||||
$sperrzeit_aufteilen = $row['sperrzeit_aufteilen'];
|
||||
// Maximale Sperrzeiten bei Auslosung
|
||||
$ausloberladung_monate = $row['ausloberladung'];
|
||||
}
|
||||
|
||||
if ($ladung_durch_auslober != 0) {
|
||||
// Active Sperrzeit wird auf im Sektionstag beschlossene Monate verkürzt
|
||||
// Daniela mail 16.11
|
||||
// Mir ist aufgefallen, dass wenn ich eingebe „Zuladung durch Auslober“ oder „Zuladung durch Kammer“ sich eine Sperrzeitreduktion ergibt. Das sollte bitte nicht sein.
|
||||
// Eine Reduktion ergibt sich nur bei „Zuladung durch Auslosen“.
|
||||
// 'Keine Spezielle Zuladung', => 0
|
||||
// 'Zuladung durch Auslober:in' => 1
|
||||
// 'Zuladung durch Kammer' => 2
|
||||
// 'Zuladung durch Auslosung' => 3
|
||||
|
||||
switch ($ladung_durch_auslober) {
|
||||
case '1':
|
||||
if($loserverfahren == 1 and $ausloberladung_monate > 0) {
|
||||
$tmp = $ausloberladung_monate==1 ? $ausloberladung_monate ." Monat" : $ausloberladung_monate ." Monate";
|
||||
$wettbewerb_label .= '<li> Zuladung durch Auslober:in bei Losverfahren, Sperrzeitreduktion auf maximal ' . $tmp;
|
||||
|
||||
if ($ausloberladung_monate < $sperrzeit_monate) {
|
||||
$sperrzeit_monate = $ausloberladung_monate;
|
||||
}
|
||||
} else {
|
||||
$wettbewerb_label .= '<li> Zuladung durch Auslober:in';
|
||||
}
|
||||
break;
|
||||
case '2':
|
||||
$wettbewerb_label .= '<li> Zuladung durch Kammer';
|
||||
break;
|
||||
case '3':
|
||||
// reduktion nur hier!
|
||||
if ($ausloberladung_monate > 0) {
|
||||
$tmp = $ausloberladung_monate==1 ? $ausloberladung_monate ." Monat" : $ausloberladung_monate ." Monate";
|
||||
$wettbewerb_label .= '<li> Auslosung, Sperrzeitreduktion auf maximal ' . $tmp;
|
||||
|
||||
if ($ausloberladung_monate < $sperrzeit_monate) {
|
||||
$sperrzeit_monate = $ausloberladung_monate;
|
||||
}
|
||||
} else {
|
||||
$wettbewerb_label .= '<li> Auslosung';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
Zeitlimits
|
||||
Sperren => immer ab Freigabedatum (Kooperationsdatum)!! in db: "kammerbeschluss"
|
||||
Punke => für Punkteverfall immer ab "entscheidungstermin"
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
if ($sperrung) {
|
||||
// hier sperrzeitteiliung vom beschluss
|
||||
# DEBUG
|
||||
// \TYPO3\CMS\Core\Utility\DebugUtility::debug($sektionstagid);
|
||||
|
||||
|
||||
|
||||
if ($sperrzeitteilung > 1) {
|
||||
// sperrzeit => Monate
|
||||
$sperrzeit_monate = floor($sperrzeit_monate/$sperrzeitteilung);
|
||||
}
|
||||
|
||||
if ($nichtsperren == 1) {
|
||||
$wettbewerb_label .= '<li> Sperre deaktiviert';
|
||||
} else {
|
||||
switch ($sperrzeitteilung) {
|
||||
case 2:
|
||||
$wettbewerb_label .= '<li> Gemeinschafliches Antreten Sperrzeit wurde halbiert.';
|
||||
break;
|
||||
case 3:
|
||||
$wettbewerb_label .= '<li> Gemeinschafliches Antreten Sperrzeit wurde gedrittelt.';
|
||||
break;
|
||||
case 4:
|
||||
$wettbewerb_label .= '<li> Gemeinschafliches Antreten Sperrzeit wurde geviertelt.';
|
||||
break;
|
||||
}
|
||||
|
||||
$sperre = new DateTime($kammerbeschluss);
|
||||
if ($sperrzeit_monate > 0) {
|
||||
$sperre->modify("+".$sperrzeit_monate." months");
|
||||
}
|
||||
|
||||
if ($kammerbeschluss and $sperre->format("U") > time()) {
|
||||
$wettbewerb_label .= '<li>Gesperrt bis: <span class="rot">' . $sperre->format("Y-m-d") . '</span>';
|
||||
} elseif ($kammerbeschluss) {
|
||||
$wettbewerb_label .= '<li>Sperre beendet am: ' . $sperre->format("Y-m-d") . '</span>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$wettbewerb_label .= '<li>Wettbewerb ohne Sperrung';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$wettbewerb_label = '[Fehler!]';
|
||||
}
|
||||
|
||||
$parameters['title'] = '<b>' . $wettbewerb_label . '</b>';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Backend;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
|
||||
/**
|
||||
* Generate additional label for category records
|
||||
* including the title of the parent category
|
||||
*
|
||||
* @$parameters array $params
|
||||
* @return void
|
||||
*
|
||||
*
|
||||
* \TYPO3\CMS\Core\Utility\DebugUtility::debug($wettbewerbeid);
|
||||
*
|
||||
*/
|
||||
class Selecting
|
||||
{
|
||||
public function loadPunkte(&$parameters)
|
||||
{
|
||||
if (is_array($parameters['row']['uid_wettbewerbe'])) {
|
||||
$wettbewerbe_id = (int) $parameters['row']['uid_wettbewerbe'][0];
|
||||
} else {
|
||||
$wettbewerbe_id = (int) $parameters['row']['uid_wettbewerbe'];
|
||||
}
|
||||
|
||||
if ($wettbewerbe_id!=0) {
|
||||
$parameters["items"][] = array('Keine Punkte vergeben','0');
|
||||
|
||||
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_wettbewerbe', $wettbewerbe_id);
|
||||
$kriterien_id = $record['kriteriumid'];
|
||||
|
||||
if ($kriterien_id!=0) {
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte');
|
||||
|
||||
$resource = $queryBuilder
|
||||
->select('tx_zuladungsliste_domain_model_punkte.bezeichnung', 'tx_zuladungsliste_domain_model_punkte.uid', 'k.punkte')
|
||||
->from('tx_zuladungsliste_domain_model_punkte')
|
||||
->join(
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'k',
|
||||
$queryBuilder->expr()->eq('k.uid_punkte', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid'))
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('k.uid_kriterien', $queryBuilder->createNamedParameter($kriterien_id, \PDO::PARAM_INT))
|
||||
)
|
||||
->orderBy('tx_zuladungsliste_domain_model_punkte.sorting')
|
||||
->execute()
|
||||
->fetchAll();
|
||||
|
||||
foreach ($resource as $key => $row) {
|
||||
if ($row['punkte']==0) {
|
||||
$parameters["items"][] = array($row['bezeichnung'].' (Keine Punkte Zugeordnet)', $row['uid']);
|
||||
} else {
|
||||
$parameters["items"][] = array($row['bezeichnung'].' ('.$row['punkte'].' Punkte)', $row['uid']);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$parameters["items"][] = array('Punkte für Kriterium fehlen','');
|
||||
}
|
||||
} else {
|
||||
$parameters["items"][] = array('Wettbewerb auswählen und speichern','');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,254 @@
|
||||
<?PHP
|
||||
|
||||
if (!class_exists('t3lib_befunc')) require_once(PATH_t3lib.'class.t3lib_befunc.php');
|
||||
|
||||
class user_LabelClass {
|
||||
|
||||
function getSektionstagLabel(&$params, &$pObj) {
|
||||
$id = $params['row']['uid']; //aktuelle uid
|
||||
if ($id) {
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_sektionstage', $id);
|
||||
$label = $item['bezeichnung'];
|
||||
$stichtag = $item['stichtag'];
|
||||
$uid = $item['tx_archwest_sperrzeit'];
|
||||
$item2 = t3lib_BEfunc::getRecord('tx_archwest_sperrzeit', $uid);
|
||||
$kammer = $item2['bezeichnung'];
|
||||
}
|
||||
else {
|
||||
$label = '[Fehler!]';
|
||||
$stichtag = '';
|
||||
}
|
||||
$params['title'] = $label.' '.date("j.m.y",$stichtag).' '.$kammer;
|
||||
}
|
||||
|
||||
function getUserWettbewerbeLabel(&$params, &$pObj) {
|
||||
#tx_archwest_feusers_wettbewerbe_mm
|
||||
if ($params['row']['uid']) {
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_wettbewerbe', $params['row']['wettbewerbeid']);
|
||||
#print_r($item);
|
||||
/*
|
||||
(
|
||||
[uid] => 122
|
||||
[pid] => 14
|
||||
[tstamp] => 1328171206
|
||||
[crdate] => 1328171206
|
||||
[cruser_id] => 16
|
||||
[sorting] => 16384
|
||||
[deleted] => 0
|
||||
[hidden] => 0
|
||||
[starttime] => 0
|
||||
[endtime] => 0
|
||||
[wettbewerb] => Sanierung Volks- und Unesco-Mittelschule Bürs
|
||||
[beschreibung] =>
|
||||
[registrierung] =>
|
||||
[verfahrensort] =>
|
||||
[bundesland] =>
|
||||
[abgabetermin] => 0
|
||||
[entscheidungstermin] => 1257462000
|
||||
[aufgabenstellung] =>
|
||||
[punktekriterium] => 5
|
||||
[feusersid] => 5
|
||||
[kammerbeschluss] => 0
|
||||
[sperrung] => 0
|
||||
)
|
||||
*/
|
||||
$bewerblabel = "ID: " . $item['uid'] . "<br>";
|
||||
$bewerblabel .= $item['wettbewerb'];
|
||||
|
||||
$kriterienid = $item['punktekriterium'];
|
||||
$entscheidungstermin = $item['entscheidungstermin'];
|
||||
$punktekriteriumId = $params['row']['punkte'];
|
||||
//Sperre ab Kammerbschluß
|
||||
$kammerbeschlusstermin = $item['kammerbeschluss'];
|
||||
$sperrung = $item['sperrung'];
|
||||
|
||||
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_punkte', $punktekriteriumId);
|
||||
#print_r($item);
|
||||
/*
|
||||
Array
|
||||
(
|
||||
[uid] => 3
|
||||
[pid] => 11
|
||||
[tstamp] => 1317098953
|
||||
[crdate] => 1316882336
|
||||
[cruser_id] => 1
|
||||
[deleted] => 0
|
||||
[hidden] => 0
|
||||
[bezeichnung] => Anerkennung
|
||||
[kriterien] => 1
|
||||
)
|
||||
*/
|
||||
|
||||
|
||||
$preislabel = '<span style="color:blue; font-weight:normal;">'.$item['bezeichnung'].'</span>';
|
||||
$punkte = '';
|
||||
$esGibtPunkte = true;
|
||||
if($item['bezeichnung']!="") {
|
||||
#echo "SELECT * FROM tx_archwest_punkte_kriterien_mm WHERE punkteid = $punktekriteriumId AND kriterienid = $kriterienid";
|
||||
$item = t3lib_BEfunc::getRecordRaw('tx_archwest_punkte_kriterien_mm', "punkteid = $punktekriteriumId AND kriterienid = $kriterienid","punkte");
|
||||
#print_r($item);
|
||||
$punkte .= $item['punkte'];
|
||||
|
||||
if($punkte==1) {
|
||||
$punkte .= " Punkt";
|
||||
}
|
||||
else if($punkte >0) {
|
||||
$punkte .= " Punkte";
|
||||
}
|
||||
else {
|
||||
$punkte = "Keine Punktevergabe";
|
||||
$esGibtPunkte=false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$preislabel = '<span style="color:#F00;">Preis oder Auszeichnung nicht zugeordnet!</span>';
|
||||
}
|
||||
|
||||
//
|
||||
$feuserId = $params['row']['feusersid'];
|
||||
$item = t3lib_BEfunc::getRecord('fe_users', $feuserId);
|
||||
if($item['name']){
|
||||
$feuserlabel = '<br><span style="color:#909; font-weight:normal;">'.$item['name'].'</span><br>';
|
||||
}
|
||||
else {
|
||||
$feuserlabel = '<br><span style="color:#F00;">Architekt nicht zugeordnet!</span><br>';
|
||||
}
|
||||
|
||||
################################################################################
|
||||
//Sperre from TIROL ODER VORARLBERG
|
||||
$tx_archwest_sperrart = $item['tx_archwest_sperrart'];
|
||||
//$item = t3lib_BEfunc::getRecord('tx_archwest_sperrzeit', $tx_archwest_sperrart);
|
||||
//if($params['row']['wettbewerbeid']==392)
|
||||
//{
|
||||
// print_r($item);
|
||||
//}
|
||||
//echo "<hr>";
|
||||
|
||||
//ANGEPASST AN SPERAGE VON SEKTIONSTAGUNGEN
|
||||
$arr = t3lib_BEfunc::getRecordsByField('tx_archwest_sektionstage', "tx_archwest_sperrzeit", $tx_archwest_sperrart,"","","stichtag DESC");
|
||||
while (list($key,$value) = each($arr))
|
||||
{
|
||||
$monateSperre = $value['sperrzeit'];
|
||||
$monatePunkte = $value['punkteverfall'];
|
||||
if($kammerbeschlusstermin>$value['stichtag'])
|
||||
break;
|
||||
}
|
||||
|
||||
//if($params['row']['wettbewerbeid']==392)
|
||||
//{
|
||||
//echo $monatePunkte.",";
|
||||
//echo $monateSperre.";";
|
||||
//}
|
||||
|
||||
if($sperrung) {
|
||||
if($kammerbeschlusstermin AND mktime(0, 0, 0, date("m")-$monateSperre, date("d"), date("Y")) < $kammerbeschlusstermin){
|
||||
$gesperrt = '<br>Gesperrt bis: <span style="color:blue; font-weight:normal;">' . date("d. m. Y",mktime(0, 0, 0, date("m",$kammerbeschlusstermin)+$monateSperre, date("d",$kammerbeschlusstermin), date("Y",$kammerbeschlusstermin))).'</span>';
|
||||
}
|
||||
else if($kammerbeschlusstermin){
|
||||
$gesperrt = '<br><span style="color:#666; font-weight:normal;">Sperre verfallen am: ' . date("d. m. Y",mktime(0, 0, 0, date("m",$kammerbeschlusstermin)+$monateSperre, date("d",$kammerbeschlusstermin), date("Y",$kammerbeschlusstermin))).'</span>';
|
||||
}
|
||||
else if($esGibtPunkte){
|
||||
$gesperrt ='<br><span style="color:#f00;">Sperrung aktive aber Freigabedatum fehlt!</span>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($esGibtPunkte){
|
||||
if($entscheidungstermin AND mktime(0, 0, 0, date("m")-$monatePunkte, date("d"), date("Y"))<$entscheidungstermin){
|
||||
$punkte .= '<br>Punkte gültig bis: <span style="color:blue; font-weight:normal;">' . date("d. m. Y",mktime(0, 0, 0, date("m",$entscheidungstermin)+$monatePunkte, date("d",$entscheidungstermin), date("Y",$entscheidungstermin))).'</span>';
|
||||
}
|
||||
else if($entscheidungstermin>0){
|
||||
$verfall = mktime(0, 0, 0, date("m",$entscheidungstermin)+$monatePunkte, date("d",$entscheidungstermin), date("Y",$entscheidungstermin));
|
||||
$punkte = '<br><span style="color:#666; font-weight:normal;">Punkte ungültig seit: ' . date("d. m. Y",$verfall) . '</span>';
|
||||
}
|
||||
else{
|
||||
$punkte ='<br><span style="color:#f00;">Freigabedatum fehlt! Punkte werden nicht in Zuladungsliste zugerechnet.</span>';
|
||||
}
|
||||
}
|
||||
########
|
||||
}
|
||||
else {
|
||||
$bewerblabel = '<span style="color:#f00; font-weight:bold;">[Fehler!]</span>';
|
||||
$preislabel = '';
|
||||
$punkte = '';
|
||||
$feuserlabel = '';
|
||||
}
|
||||
$params['title'] = '<div style="font-weight:normal;">'.$bewerblabel . $feuserlabel . $preislabel .' '.$punkte . $gesperrt . '</div>';
|
||||
}
|
||||
|
||||
|
||||
function getKriterienPunkteLabel(&$params, &$pObj) {
|
||||
|
||||
if ($params['row']['uid']) {
|
||||
$kriterienid = $params['row']['kriterienid'];
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_kriterien', $kriterienid);
|
||||
$krilabel = $item['bezeichnung'];
|
||||
|
||||
$punktekriteriumId = $params['row']['punkteid'];
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_punkte', $punktekriteriumId);
|
||||
$preislabel = $item['bezeichnung'];
|
||||
|
||||
$punkte = $params['row']['punkte'];
|
||||
}
|
||||
else {
|
||||
$krilabel = '[Fehler!]';
|
||||
$punkte = '';
|
||||
}
|
||||
if($punkte=='')
|
||||
$str='';
|
||||
else if($punkte==1)
|
||||
$str = ' Punkt';
|
||||
else
|
||||
$str = ' Punkte';
|
||||
$params['title'] = $krilabel . ', ' . $preislabel . ', ' . $punkte . $str;
|
||||
}
|
||||
|
||||
function getBesondereSperrungLabel(&$params, &$pObj) {
|
||||
/*
|
||||
[row] => Array
|
||||
(
|
||||
[uid] => 4
|
||||
[pid] => 12
|
||||
[tstamp] => 1334475048
|
||||
[tablenames] =>
|
||||
[sorting] => 1
|
||||
[feusersid] => 2
|
||||
[extrasperrungid] => 1
|
||||
[crdate] => 1334475048
|
||||
[cruser_id] => 0
|
||||
[deleted] => 0
|
||||
[hidden] => 0
|
||||
)
|
||||
*/
|
||||
if ($params['row']['extrasperrungid']) {
|
||||
$extrasperrungid = $params['row']['extrasperrungid'];
|
||||
$item = t3lib_BEfunc::getRecord('tx_archwest_extrasperrung', $extrasperrungid);
|
||||
|
||||
$label = '<span style=" font-weight:normal;">'.$item['begruendung'].'</span>';
|
||||
$sperrzeitbis = $item['sperrzeitbis'];
|
||||
|
||||
$feuserId = $params['row']['feusersid'];
|
||||
$item = t3lib_BEfunc::getRecord('fe_users', $feuserId);
|
||||
if($item['name']){
|
||||
$label .= '<br><span style="color:#909; font-weight:normal;">'.$item['name'].'</span>';
|
||||
}
|
||||
else {
|
||||
$label .= '<br><span style="color:#F00;">Architekt nicht zugeordnet!</span>';
|
||||
}
|
||||
|
||||
if($sperrzeitbis > time()) {
|
||||
$label .= '<br>Sperrung <span style="color:red;">aktiv</span> bis: ' . date("d. M. Y",$sperrzeitbis);
|
||||
}
|
||||
else {
|
||||
$label .= '<br>Sperrung <span style="color:green;">inaktiv</span> seit: ' . date("d. M. Y",$sperrzeitbis);
|
||||
}
|
||||
$params['title'] = $label;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/archwest/lib/class.userLabelClass.php']) {
|
||||
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/archwest/lib/class.userLabelClass.php']);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Architekten
|
||||
{
|
||||
/**
|
||||
* @param mixed $uid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function load($uid = 0)
|
||||
{
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Load Architekten');
|
||||
}
|
||||
|
||||
// PARTNER
|
||||
$_ingemeinschaft = Partner::load_alle_in_gemeinschaft();
|
||||
|
||||
do {
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('uid', 'disable', 'email', 'name', 'first_name', 'last_name', 'company', 'teilhaber', 'vereidigung', 'frauenfoerderpunkt', 'frauenfoerderpunkt_verfallen', 'solidaritaetserklaerung', 'extrasperrung', 'kontoaufloesung', 'kontoaufloesung_active', 'wettbewerbe', 'kammernid', 'kammermitgliedsnummer', 'gender', 'istpartner', 'burogemeinschaft', 'burogemeinschaft_start', 'ruhestellungen')
|
||||
->from('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('kammernid', (int) _Berechnung::$_config['kammernid']),
|
||||
$queryBuilder->expr()->eq('pid', (int) _Berechnung::$_config['pid']),
|
||||
$queryBuilder->expr()->eq('usergroup', (int) _Berechnung::$_config['usergroup']),
|
||||
$queryBuilder->expr()->notIn('uid', $_ingemeinschaft)
|
||||
);
|
||||
if (is_array($uid)) {
|
||||
$queryBuilder->andWhere($queryBuilder->expr()->in('uid', $uid));
|
||||
} elseif (0 != $uid) {
|
||||
$queryBuilder->andWhere($queryBuilder->expr()->eq('uid', (int) $uid));
|
||||
}
|
||||
$queryBuilder->andWhere("vereidigung < '" . _Berechnung::$berechne_bis->format('Y-m-d') . "'");
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
if(\count($statement) == 0){
|
||||
Message::error(__file__,__line__, "Keine Architekten selektiert. Falsche Kammer?");
|
||||
}
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
foreach ($statement as $key => $user_objekt) {
|
||||
if ($statement[$key]['burogemeinschaft']) {
|
||||
$statement[$key]['frauenfoerderpunkt'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
_Berechnung::$_data['architekten'] = $statement;
|
||||
|
||||
if (!$statement) {
|
||||
_Berechnung::moveOneMonthForward();
|
||||
}
|
||||
} while (!$statement);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use DateTime;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Aufloesung
|
||||
{
|
||||
private static function getPunkte(&$value)
|
||||
{
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $row) {
|
||||
if ($row['user_id'] == $value['uid_geber']) {
|
||||
$value['geber'] = $row['company'];
|
||||
$value['punkte'] = $row['punkte'];
|
||||
}
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function verteilung()
|
||||
{
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Auflösung Punkte Verteilung');
|
||||
}
|
||||
|
||||
// 2 usergroup => Ordentliche Registrierung zur Zuladungsliste
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_konto_aufloesung_mm');
|
||||
$statement = $queryBuilder
|
||||
->select('uid_geber', ' uid_empfaenger', ' prozente')
|
||||
->from('tx_zuladungsliste_konto_aufloesung_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->gt('prozente', (int) 0)
|
||||
)->execute()->fetchAll();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$verteiler_arr = [];
|
||||
foreach ($statement as $key => $value) {
|
||||
$uid = $value['uid_geber'];
|
||||
$verteiler_arr[$uid][] = $value;
|
||||
}
|
||||
|
||||
// print_r($verteiler_arr);
|
||||
// print_r(_Berechnung::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
foreach ($verteiler_arr as $uid_geber => $empfaener_arr) {
|
||||
$frauenpunkt_abgezogen = '';
|
||||
|
||||
if (!_Berechnung::$_data['liste']) {
|
||||
break;
|
||||
}
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) {
|
||||
if ($_value_liste['user_id'] == $uid_geber) {
|
||||
|
||||
// print_r($_value_liste);
|
||||
// exit;
|
||||
|
||||
|
||||
// LIST WETTBEWERBE VON AUFGELÖSTEN KONTEN BEI EMPFÄNGER
|
||||
|
||||
// set punktestand from geber to 0
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
|
||||
$queryBuilder->update('fe_users')->where($queryBuilder->expr()->eq('uid', (int) $uid_geber))->set('punktestand', 0)->execute();
|
||||
|
||||
$geber_wettbewerbe = $_value_liste['auswertung']['wettbewerbe'];
|
||||
|
||||
$geber_punkte = $_value_liste['punkte'];
|
||||
$geber_gueltig_bis = '';
|
||||
foreach ($geber_wettbewerbe as $k => $value) {
|
||||
$geber_wettbewerbe[$k]['kontoaufloesung'] = 1;
|
||||
if ($value['punkte'] > 0 and $value['gueltig_bis'] > $geber_gueltig_bis) {
|
||||
$geber_gueltig_bis = $value['gueltig_bis'];
|
||||
}
|
||||
}
|
||||
if ($geber_gueltig_bis) {
|
||||
$geber_gueltig_bis = new DateTime($geber_gueltig_bis);
|
||||
}
|
||||
|
||||
if ($geber_punkte > 0) {
|
||||
$geber_company = $_value_liste['company'];
|
||||
|
||||
_Berechnung::$_data['liste'][$key]['company'] .= ' ( Kontoauflösung ' . _Berechnung::$_data['liste'][$key]['kontoaufloesung_active'] . ')';
|
||||
// _Berechnung::$_data['liste'][$key]['punkte'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['nominiert'] = 0;
|
||||
// _Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe']['punkte'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
|
||||
if (1 == _Berechnung::$_data['liste'][$key]['auswertung']['frauenfoerderpunkt']['punkte']) {
|
||||
$frauenpunkt_abgezogen = ', Frauenförderpunkt wurde abgezogen';
|
||||
--$geber_punkte;
|
||||
}
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['frauenfoerderpunkt']['punkte'] = 0;
|
||||
|
||||
foreach ($empfaener_arr as $k => $_empfaenger) {
|
||||
|
||||
// print_r($geber_punkte);exit;
|
||||
|
||||
$uid_empfaenger = $_empfaenger['uid_empfaenger'];
|
||||
$prozente = $_empfaenger['prozente'];
|
||||
|
||||
// SET EMPFÄNGER
|
||||
foreach (_Berechnung::$_data['liste'] as $keyEmp => $value) {
|
||||
if ($value['user_id'] == $uid_empfaenger) {
|
||||
|
||||
|
||||
$punkte_empf_anteil = round($geber_punkte * ($prozente / 100), 2);
|
||||
|
||||
if ($geber_gueltig_bis > _Berechnung::$berechne_bis) {
|
||||
_Berechnung::$_data['liste'][$keyEmp]['nominiert'] = 1;
|
||||
}
|
||||
if($_value_liste['gesperrt_bis'] >_Berechnung::$berechne_bis->format('Y-m-d')){
|
||||
_Berechnung::$_data['liste'][$keyEmp]['gesperrt_bis'] = $_value_liste['gesperrt_bis'];
|
||||
_Berechnung::$_data['liste'][$keyEmp]['gesperrt'] = 1;
|
||||
_Berechnung::$_data['liste'][$keyEmp]['nominiert'] = 0;
|
||||
}
|
||||
|
||||
_Berechnung::$_data['liste'][$keyEmp]['punkte'] += $punkte_empf_anteil;
|
||||
_Berechnung::$_data['liste'][$keyEmp]['istempfaenger'] = (int) 1;
|
||||
|
||||
// reduzier die punkte vom geber nach prozenten
|
||||
$geber_wettbewerbe_reduziert = $geber_wettbewerbe;
|
||||
foreach ($geber_wettbewerbe_reduziert as $kw => $vw) {
|
||||
$geber_wettbewerbe_reduziert[$kw]['punkte'] = round($vw['punkte'] * ($prozente / 100), 2);
|
||||
}
|
||||
|
||||
|
||||
// _Berechnung::$_data['liste'][$keyEmp]['auswertung']['wettbewerbe']['punkte'] += $punkte_empf_anteil;
|
||||
_Berechnung::$_data['liste'][$keyEmp]['auswertung']['wettbewerbe'] = array_merge(_Berechnung::$_data['liste'][$keyEmp]['auswertung']['wettbewerbe'], $geber_wettbewerbe_reduziert);
|
||||
_Berechnung::$_data['liste'][$keyEmp]['auswertung']['kontoaufloesung'] = [
|
||||
'kommentar' => "$prozente% von Kontoauflösung" . $frauenpunkt_abgezogen . ' "' . $geber_company . '"',
|
||||
'punkte' => $punkte_empf_anteil,
|
||||
'gueltig_bis' => $geber_gueltig_bis->format("Y-m-d") ?? '',
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// REMOVE AUFGELÖSTE KONTEN
|
||||
$tmp = _Berechnung::$_data['liste'];
|
||||
_Berechnung::$_data['liste'] = [];
|
||||
foreach ($tmp as $keyEmp => $_value_liste) {
|
||||
if($_value_liste['kontoaufloesung_active'] == '0000-00-00' OR $_value_liste['kontoaufloesung_active'] >= _Berechnung::$berechne_bis->format('Y-m-d')){
|
||||
_Berechnung::$_data['liste'][] = $_value_liste;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,338 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Tools\TageInRuhestellung;
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Erfolgspunkte
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static $buero_id = 0;
|
||||
public static $extrapunkte_jahr = [];
|
||||
|
||||
/**
|
||||
* bis bei Auflösung von Bürogemeinschaften
|
||||
*/
|
||||
public static function load_user(&$_liste, $user_id, $name)
|
||||
{
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
"Erfolgspunkte"
|
||||
);
|
||||
}
|
||||
|
||||
// $anzeigemodus = GeneralUtility::_GP('anzeigemodus');
|
||||
|
||||
|
||||
if (!isset(_Berechnung::$_data['sektionstage'])) {
|
||||
Sektionstage::load();
|
||||
}
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.uid AS verfahrensid',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.wettbewerb',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.kammerbeschluss',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.sperrung AS sperrung_wettbewerb',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.sperre_deaktiviert',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe.loserverfahren',
|
||||
'b.ladung_durch_auslober',
|
||||
'b.uid_punkte',
|
||||
'b.sperrzeitteilung',
|
||||
'b.nichtsperren',
|
||||
)
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe')
|
||||
->leftJoin(
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq(
|
||||
'b.uid_wettbewerbe',
|
||||
$queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.uid')
|
||||
)
|
||||
)
|
||||
->where(
|
||||
// $queryBuilder->expr()->eq('tx_zuladungsliste_domain_model_wettbewerbe.uid', (int)992),
|
||||
$queryBuilder->expr()->eq('b.uid_user', (int)$user_id)
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note("Wettbewerbe\n" . $queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
PUNKTE
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
// $statement = self::punkteVergabe($statement);
|
||||
|
||||
// print_r($statement);
|
||||
// exit;
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
Bürogemeinschften haben gleiche ID aber verschidene user
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
if (self::$buero_id != $_liste['user_id']) {
|
||||
$_liste["gesperrt_bis"] = 0;
|
||||
$_liste["gesperrt"] = 0;
|
||||
$_liste["nominiert"] = 1;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
Punke => für Punkteverfall immer ab "entscheidungstermin"
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
$_return_sort = [];
|
||||
self::$extrapunkte_jahr = [];
|
||||
foreach ($statement as $row) {
|
||||
|
||||
$uid_punkte = (int) $row["uid_punkte"];
|
||||
$kriteriumid = $row['kriteriumid'];
|
||||
$loserverfahren = $row['loserverfahren'];
|
||||
|
||||
if ($row['entscheidungstermin'] == "") {
|
||||
$row['entscheidungstermin'] = 0;
|
||||
}
|
||||
if ($row['kammerbeschluss'] == "") {
|
||||
$row['kammerbeschluss'] = 0;
|
||||
}
|
||||
|
||||
if ($_liste['burogemeinschaft']) {
|
||||
$row['teilnehmer'] = $name;
|
||||
}
|
||||
|
||||
$row['bezeichnung_punkte'] = _Berechnung::$_bezeichnung_punkte[$uid_punkte]['bezeichnung'] ?? '';
|
||||
$row['bezeichnung'] = _Berechnung::$_kriterien[$kriteriumid]['bezeichnung'];
|
||||
|
||||
$entscheidungstermin = strtotime($row["entscheidungstermin"]);
|
||||
|
||||
if(isset(_Berechnung::$_data['ruhestellungen'][$user_id])){
|
||||
$ruhestellungen = _Berechnung::$_data['ruhestellungen'][$user_id];
|
||||
|
||||
$tage = TageInRuhestellung::get($ruhestellungen);
|
||||
// $tage = 0;
|
||||
// foreach ($ruhestellungen as $key => $ruhe) {
|
||||
// if($ruhe['ruhestellung_end'] != 'offen'){
|
||||
// $tage += $ruhe['tage'];
|
||||
// }
|
||||
// }
|
||||
$_liste['tage_in_ruhestellung'] = $tage;
|
||||
$row['tage_in_ruhestellung'] = $tage;
|
||||
|
||||
// Ruhestellung wurde beended, tage der Ruhestellung werden dem Entscheidungstermin hinzugezählt
|
||||
$entscheidungstermin += $tage * 86400;
|
||||
}
|
||||
|
||||
// echo "\nentscheidungstermin nachher\n";
|
||||
// echo $entscheidungstermin;
|
||||
// exit;
|
||||
|
||||
/**
|
||||
* PUNKTE
|
||||
* Punkteverfall immer ab entscheidungstermin
|
||||
*/
|
||||
|
||||
|
||||
if ((int)$entscheidungstermin) {
|
||||
|
||||
$_sektionstag = Sektionstage::filter($entscheidungstermin);
|
||||
$row["regelwerk"] = $_sektionstag["bezeichnung"];
|
||||
|
||||
/**
|
||||
* Punkte gültigkeit
|
||||
*/
|
||||
$gueltig_bis = new DateTime();
|
||||
$gueltig_bis->setTimestamp($entscheidungstermin);
|
||||
$gueltig_bis->add(new DateInterval("P".$_sektionstag["punktezeit"]."M"));
|
||||
$row["gueltig_bis"] = $gueltig_bis->format("Y-m-d");
|
||||
$row["wettbewerb_sort"] = $entscheidungstermin;
|
||||
|
||||
/**
|
||||
* Punkte jährliche nur wenn Punkte
|
||||
*/
|
||||
// print_r(_Berechnung::$_bezeichnung_punkte);
|
||||
// exit;
|
||||
|
||||
$jahr = date("Y", $entscheidungstermin);
|
||||
if (isset(_Berechnung::$_bezeichnung_punkte[$uid_punkte]['einmal_im_jahr']) and _Berechnung::$_bezeichnung_punkte[$uid_punkte]['einmal_im_jahr'] == 1) {
|
||||
$row['einmal_im_jahr'] = 1;
|
||||
if(!in_array($jahr, self::$extrapunkte_jahr)) {
|
||||
$row['punkte'] = (float) _Berechnung::$_punkte[$kriteriumid][$uid_punkte] ?? 0;
|
||||
self::$extrapunkte_jahr[] = $jahr;
|
||||
}
|
||||
} else {
|
||||
$row['einmal_im_jahr'] = 0;
|
||||
$row['punkte'] = (float) _Berechnung::$_punkte[$kriteriumid][$uid_punkte] ?? 0;
|
||||
}
|
||||
|
||||
$gueltig_bis = new DateTime($row['gueltig_bis']);
|
||||
$row["punkte_aktive"] = $gueltig_bis->format("U") >= _Berechnung::$berechne_bis ->format('U') ? 1 : 0;
|
||||
|
||||
|
||||
// print_r($row);
|
||||
// exit;
|
||||
|
||||
if($row["punkte_aktive"]){
|
||||
$punkte = (float) $row['punkte'];
|
||||
$_liste["punkte"] += $punkte;
|
||||
}
|
||||
|
||||
|
||||
// b) bei Gleichstand: Ältestes in der Wertung
|
||||
// befindliche Zuerkennungs-, Entscheidungs- oder Vereidigungsdatum geht vor
|
||||
if ($punkte and $entscheidungstermin < $_liste["sorting"]) {
|
||||
$_liste["sorting"] = $entscheidungstermin;
|
||||
}
|
||||
|
||||
} else {
|
||||
$row["entscheidungstermin"] = "";
|
||||
$row["wettbewerb_sort"] = $_liste["sorting"];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* SPERREN
|
||||
* immer ab Freigabedatum (Kooperationsdatum)
|
||||
* ohne kooperationsdatum gibt es keine Sperre
|
||||
*/
|
||||
|
||||
if ($row["kammerbeschluss"] != "" and $row["nichtsperren"] == 0) {
|
||||
/**
|
||||
* nichtsperren
|
||||
* Einzelner Teilnehmer kann für Teilnahme an Bewerb nicht geperrt werden
|
||||
* auch wenn das Kriterium eine Sperrung vorgibt
|
||||
*/
|
||||
|
||||
$kammerbeschluss = new DateTime($row["kammerbeschluss"]);
|
||||
|
||||
if ((int)$entscheidungstermin) {
|
||||
$_sektionstag = Sektionstage::filter($entscheidungstermin);
|
||||
} elseif ((int)$kammerbeschluss) {
|
||||
$_sektionstag = Sektionstage::filter($kammerbeschluss->format("U"));
|
||||
}
|
||||
|
||||
$sperrung_kriterien = _Berechnung::$_kriterien[$kriteriumid]['sperrung'];
|
||||
|
||||
if ($row["sperre_deaktiviert"]==0 and ($sperrung_kriterien or $row["sperrung_wettbewerb"])) {
|
||||
/**
|
||||
* KRITERIUM MIT SPERRUNG
|
||||
*/
|
||||
|
||||
switch ($row['ladung_durch_auslober']) {
|
||||
case 3:
|
||||
// case "sperrzeitteilung == 2" Bei gemeinschaftlichem Antreten wurde schon verkürzt.
|
||||
|
||||
/**
|
||||
* Active Sperrzeit wird auf im Sektionstag beschlossene Monate verkürzt
|
||||
* Daniela mail 16.11
|
||||
* Mir ist aufgefallen, dass wenn ich eingebe „Zuladung durch Auslober“ oder „Zuladung durch Kammer“
|
||||
* sich eine Sperrzeitreduktion ergibt. Das sollte bitte nicht sein.
|
||||
* Eine Reduktion ergibt sich nur bei „Auslosen“.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Keine Spezielle Zuladung => 0
|
||||
* Zuladung durch Auslober:in => 1
|
||||
* Zuladung durch Kammer => 2
|
||||
* Auslosung => 3
|
||||
*/
|
||||
|
||||
$row['ladung_durch_auslober_monate'] = $_sektionstag['ausloberladung'];
|
||||
$_sektionstag["sperrzeit"] = $_sektionstag['ausloberladung'];
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if($loserverfahren == 1) {
|
||||
// Maximale Sperrzeiten werden auch für Architekten:innen die durch die/den Auslober:in
|
||||
// zugeladen wurden auf die im Sektionstag festgelegten Monate verkürzt wenn der Wettbewerb durch Losverfahren ermittelt wird
|
||||
$row['ladung_durch_auslober_monate'] = $_sektionstag['ausloberladung'];
|
||||
$_sektionstag["sperrzeit"] = $_sektionstag['ausloberladung'];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
$month = $_sektionstag['sperrzeit'];
|
||||
|
||||
if ($row["sperrzeitteilung"] > 0) {
|
||||
/**
|
||||
* größe sperrzeitteilung ist auch divisor
|
||||
*/
|
||||
$month = round($month/$row["sperrzeitteilung"], 2);
|
||||
}
|
||||
|
||||
$datetime_gesperrt_bis = new DateTime($row["kammerbeschluss"]);
|
||||
if ($month > 0) {
|
||||
$datetime_gesperrt_bis->modify("+".$month." months");
|
||||
}
|
||||
|
||||
$row["gesperrt_bis"] = date("Y-m-d", $datetime_gesperrt_bis->format("U"));
|
||||
|
||||
/**
|
||||
* Sperre
|
||||
*/
|
||||
// Ruhestellungen::sperre($user_id, $row, $_liste);
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
Sperren => immer ab Freigabedatum (Kooperationsdatum)!! in db: "kammerbeschluss" ohne kooperationsdatum gibt es keine Sperre
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
$row["sperrung_aktive"] = $datetime_gesperrt_bis->format("U") > _Berechnung::$_config['berechne_bis'] ? 1 : 0;
|
||||
if ($row["gesperrt_bis"] == 'Ruhend' or ($row["sperrung_aktive"] and strtotime($row["gesperrt_bis"]) > strtotime($_liste["gesperrt_bis"]))) {
|
||||
$_liste["gesperrt_bis"] = $row["gesperrt_bis"];
|
||||
$_liste["gesperrt"] = 1;
|
||||
$_liste["nominiert"] = 0;
|
||||
}
|
||||
|
||||
// if ($row['verfahrensid'] == 1152) {
|
||||
// echo "\n---------------\n" . __line__ . " END \n---------------\n\n";
|
||||
// print_r($row);
|
||||
// exit;
|
||||
// }
|
||||
}
|
||||
}
|
||||
// anzeigemodus (für FFP werden alle gebrauch remove them at the end)
|
||||
$_return_sort[] = $row;
|
||||
// if (($row['punkte'] and $row['punkte_aktive']) or $anzeigemodus > 1 or $row['sperrung_aktive']) {
|
||||
// $_return_sort[] = $row;
|
||||
// }
|
||||
}
|
||||
|
||||
$_return_sort = array_merge($_liste["auswertung"]["wettbewerbe"], $_return_sort);
|
||||
|
||||
if ($_return_sort) {
|
||||
$wettbewerb_sort = array_column($_return_sort, 'wettbewerb_sort');
|
||||
array_multisort($wettbewerb_sort, SORT_ASC, $_return_sort);
|
||||
}
|
||||
|
||||
// WETTBEWERBE ERFOLGSPUNKTE
|
||||
$_liste["auswertung"]["wettbewerbe"] = $_return_sort;
|
||||
|
||||
// damit liste nicht ünerschrieben wird bei Bürogemeinschaften
|
||||
self::$buero_id = $_liste['user_id'];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,346 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use Carbon\Carbon;
|
||||
use Carbon\CarbonPeriod;
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
* FRAUENFÖRDERPUNKT
|
||||
* Gültigkeit hat der Frauenförderpunkt dann drei Jahre ab Jurydatum des erzielten Erfolges bzw. der Wettbewerbsteilnahme.
|
||||
* Mit dem Verfall der Punkte für den Wettbewerbserfolg bzw. für die Wettbewerbsteilnahme (drei Jahre ab Jurydatum) würde auch der Frauenförderpunkt verfallen,
|
||||
* außer es sind wieder neue Wettbewerbserfolge/-teilnahmen dazugekommen. Es wird immer das neueste Jurydatum herangezogen.
|
||||
* Wenn generell keine Punkte dazugekommen sind, bleibt der Frauenförderpunkt - wie gehabt – fünf Jahre ab Vereidigungsdatum in der Liste.
|
||||
*
|
||||
* Vor den Änderungen der Kriterien am 25.04.2022 war es so, dass der Frauenpunkt ab Vereidigungsdatum 5 Jahre gültig war und dann verfallen ist.
|
||||
*/
|
||||
|
||||
class Frauen
|
||||
{
|
||||
|
||||
public static $frauenfoerderpunkte = [];
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, "Frauen Förderungs Punkt");
|
||||
}
|
||||
|
||||
// print_r(_Berechnung::$_data);
|
||||
// exit;
|
||||
|
||||
|
||||
$sondersperrungen = _Berechnung::$_data['sondersperrungen'];
|
||||
$sektionstage = _Berechnung::$_data['sektionstage'];
|
||||
$ruhestellungen = _Berechnung::$_data['ruhestellungen'];
|
||||
$berechnen_bis = Carbon::createFromDate(_Berechnung::$berechne_bis);
|
||||
|
||||
// print_r(_Berechnung::$_data['ruhestellungen']);
|
||||
// exit;
|
||||
|
||||
$kammerBeschluss2022 = Carbon::createFromDate(2022, 04, 25);
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $listenkey => $user_objekt) {
|
||||
|
||||
// print_r($user_objekt);
|
||||
// exit;
|
||||
|
||||
$user_ruhestellungen = $ruhestellungen[$user_objekt['id']] ?? null;
|
||||
|
||||
$wettbewerbe = $user_objekt['auswertung']['wettbewerbe'] ?? [];
|
||||
|
||||
$ist_bueogemeinschaft = (bool) $user_objekt["burogemeinschaft"];
|
||||
|
||||
$hat_frauenfoerderpunkt = (bool) $user_objekt["frauenfoerderpunkt"];
|
||||
|
||||
$days_verlaengerung = 0;
|
||||
|
||||
if(is_array($user_ruhestellungen)){
|
||||
$days_verlaengerung = self::getVerlaengerungDurchRuhestellung( $user_ruhestellungen);
|
||||
}
|
||||
|
||||
if(!$ist_bueogemeinschaft && ! $hat_frauenfoerderpunkt){
|
||||
if (GeneralUtility::_GP('anzeigemodus') > 1) {
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Kein Anspruch";
|
||||
}
|
||||
}
|
||||
else if($hat_frauenfoerderpunkt){
|
||||
|
||||
$kommentar = '';
|
||||
|
||||
$punkte = 0;
|
||||
|
||||
$ruhestellung = '';
|
||||
|
||||
$verfallen = false;
|
||||
|
||||
$vereidigung = Carbon::createFromDate($user_objekt['vereidigung'])->addYears(5);
|
||||
|
||||
$ffp = Carbon::createFromDate($user_objekt['vereidigung']);
|
||||
|
||||
$summe_punkte = array_sum(array_column($wettbewerbe,'punkte'));
|
||||
|
||||
/**
|
||||
* Vereidigung + 5 Jahre VOR Kammerbeschluss (25.4.2022) => FFP verfällt
|
||||
* || $berechnen_bis->greaterThan($vereidigung)
|
||||
*/
|
||||
if($kammerBeschluss2022->greaterThan($vereidigung)){
|
||||
// schon verfallene bleiben verfallen
|
||||
$kommentar = "Verfallen am ".$vereidigung->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte = 0;
|
||||
}
|
||||
else if (!$summe_punkte && $kammerBeschluss2022->greaterThan($vereidigung)){
|
||||
// keine wettbewerbe
|
||||
$kommentar = "Verfallen am ".$vereidigung->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte = 0;
|
||||
} else if(!$summe_punkte && $berechnen_bis->greaterThan($vereidigung)){
|
||||
$kommentar = "Verfallen am ".$vereidigung->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte = 0;
|
||||
}
|
||||
else {
|
||||
$punkte = 1;
|
||||
$kommentar = "Gültig bis ".$vereidigung->format('d. M Y');
|
||||
}
|
||||
|
||||
$ffp->addYears(3);
|
||||
|
||||
foreach ($wettbewerbe as $wettbewerb) {
|
||||
|
||||
if(!$verfallen){
|
||||
|
||||
$stichtag = self::stichtag($wettbewerb);
|
||||
|
||||
if($stichtag && $wettbewerb['punkte'] >0){
|
||||
|
||||
/**
|
||||
* EINZELN
|
||||
*/
|
||||
|
||||
$stichtag_p3 = Carbon::createFromDate($stichtag)->addYears(3);
|
||||
|
||||
// if($days_verlaengerung){
|
||||
// $stichtag_p3->addDays($days_verlaengerung);
|
||||
// $ruhestellung = ' (verlängert durch Ruhestellung)';
|
||||
// }
|
||||
if($stichtag_p3->diffInYears($ffp) < 3 or $vereidigung->greaterThan($stichtag)){
|
||||
|
||||
$ffp = $stichtag_p3;
|
||||
$punkte = 1;
|
||||
|
||||
if($vereidigung->greaterThan($ffp)){
|
||||
$ffp = $vereidigung;
|
||||
$kommentar = "Gültig bis ".$ffp->format('d. M Y').$ruhestellung;
|
||||
}
|
||||
else {
|
||||
$kommentar = "Gültig bis ".$ffp->format('d. M Y'). ' (verlängert)'.$ruhestellung;
|
||||
}
|
||||
|
||||
} else{
|
||||
$kommentar = "Verfallen am ".$ffp->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_Berechnung::$_data['liste'][$listenkey]["punkte"] += $punkte;
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['punkte'] = $punkte;
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['kommentar'] = $kommentar;
|
||||
}
|
||||
else if($ist_bueogemeinschaft){
|
||||
|
||||
$kommentare = [];
|
||||
|
||||
$punkte = [];
|
||||
|
||||
$ruhestellung = '';
|
||||
|
||||
$verfallen = false;
|
||||
|
||||
$burogemeinschaft = $user_objekt['auswertung']['burogemeinschaft'] ?? [];
|
||||
|
||||
$summe_punkte = array_sum(array_column($wettbewerbe,'punkte'));
|
||||
|
||||
$order = $burogemeinschaft['order'];
|
||||
|
||||
|
||||
foreach ($burogemeinschaft['data'] as $partner) {
|
||||
|
||||
/**
|
||||
* bei mehreren Frauen in Bürogemeinschaft
|
||||
*/
|
||||
|
||||
if($partner["frauenfoerderpunkt"] > 0){
|
||||
|
||||
$suplement = '<sup>'.$order[$partner['name']].'</sup>';
|
||||
|
||||
$pntr = $order[$partner['name']];
|
||||
|
||||
$vereidigung = Carbon::createFromDate($partner['vereidigung'])->addYears(5);
|
||||
|
||||
$ffp = Carbon::createFromDate($partner['vereidigung']);
|
||||
|
||||
$verfallen = false;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Vereidigung + 5 Jahre VOR Kammerbeschluss (25.4.2022) => FFP verfällt
|
||||
*/
|
||||
if($kammerBeschluss2022->greaterThan($vereidigung)){
|
||||
$kommentare[$pntr] = "Verfallen am ".$vereidigung->format('d. M Y').$suplement;
|
||||
$verfallen = true;
|
||||
$punkte[$pntr] = 0;
|
||||
}
|
||||
else if (!$summe_punkte && $kammerBeschluss2022->greaterThan($vereidigung)){
|
||||
// keine wettbewerbe
|
||||
// beschluss vor vereidigung
|
||||
$kommentare[$pntr] = "Verfallen am ".$vereidigung->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte[$pntr] = 0;
|
||||
} else if(!$summe_punkte && $berechnen_bis->greaterThan($vereidigung)){
|
||||
// keine wettbewerbe
|
||||
// berechnen bis vor vereidigung punkt verfallen
|
||||
$kommentare[$pntr] = "Verfallen am ".$vereidigung->format('d. M Y');
|
||||
$verfallen = true;
|
||||
$punkte[$pntr] = 0;
|
||||
}
|
||||
else {
|
||||
$punkte[$pntr] = 1;
|
||||
$kommentare[$pntr] = "Gültig bis ".$vereidigung->format('d. M Y').$suplement;
|
||||
}
|
||||
|
||||
/**
|
||||
* vor Kammerbeschluss vom 25.04.22 verfällt Punkt nach 5 Jahren wenn kein neuer Punkte erzielt wurden, er wird auch nicht mehr aktiviert
|
||||
*/
|
||||
|
||||
$ffp->addYears(3);
|
||||
|
||||
foreach ($wettbewerbe as $wettbewerb) {
|
||||
|
||||
|
||||
if(!$verfallen){
|
||||
|
||||
$stichtag = self::stichtag($wettbewerb);
|
||||
|
||||
if($stichtag && $wettbewerb['punkte']){
|
||||
|
||||
/**
|
||||
* BÜRO
|
||||
*/
|
||||
|
||||
$stichtag_p3 = Carbon::createFromDate($stichtag)->addYears(3);
|
||||
|
||||
// if($days_verlaengerung){
|
||||
// $stichtag_p3->addDays($days_verlaengerung);
|
||||
// $ruhestellung = ' (verlängert durch Ruhestellung)';
|
||||
// }
|
||||
|
||||
if($stichtag_p3->diffInYears($ffp) < 3 or $vereidigung->greaterThan($stichtag)){
|
||||
|
||||
$ffp = $stichtag_p3;
|
||||
|
||||
if($vereidigung->greaterThan($ffp)){
|
||||
$ffp = $vereidigung;
|
||||
}
|
||||
|
||||
$punkte[$pntr] = 1;
|
||||
|
||||
$kommentare[$pntr] = "Gültig bis ".$ffp->format('d. M Y'). ' (verlängert)'.$ruhestellung.$suplement;
|
||||
|
||||
} else{
|
||||
$kommentare[$pntr] = "Verfallen am RR ".$ffp->format('d. M Y').$suplement;
|
||||
|
||||
$punkte[$pntr] = 0;
|
||||
|
||||
$verfallen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(count($kommentare)) {
|
||||
|
||||
$kommentar = implode('<br>',$kommentare);
|
||||
|
||||
_Berechnung::$_data['liste'][$listenkey]["punkte"] += array_sum($punkte);
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['punkte'] = array_sum($punkte);
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['kommentar'] = $kommentar;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function stichtag($wettbewerb){
|
||||
if(isset($wettbewerb['entscheidungstermin']) && $wettbewerb['entscheidungstermin'] != null){
|
||||
return $wettbewerb['entscheidungstermin'];
|
||||
}
|
||||
else if(isset($wettbewerb['kammerbeschluss']) && $wettbewerb['kammerbeschluss'] != null){
|
||||
return $wettbewerb['kammerbeschluss'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function getVerlaengerungDurchRuhestellung( $user_ruhestellungen){
|
||||
|
||||
// print_r($user_ruhestellungen);
|
||||
|
||||
$days_summe = 0;
|
||||
$_periods = [];
|
||||
foreach ($user_ruhestellungen as $ruhestellung) {
|
||||
$ruhestellung_start = Carbon::parse( $ruhestellung['ruhestellung_start']);
|
||||
if($ruhestellung['ruhestellung_end'] == 'offen'){
|
||||
$ruhestellung_end = Carbon::parse(_Berechnung::$_config['berechne_bis_datum']);
|
||||
}else {
|
||||
$ruhestellung_end = Carbon::parse( $ruhestellung['ruhestellung_end']);
|
||||
}
|
||||
$_periods[] = CarbonPeriod::create($ruhestellung_start, $ruhestellung_end);
|
||||
|
||||
$days = $ruhestellung_end->diffInDays($ruhestellung_start);
|
||||
$days_summe +=$days;
|
||||
}
|
||||
// $overlapDays = self::overlapping($_periods);
|
||||
return $days_summe;
|
||||
}
|
||||
|
||||
public static function overlapping($_periods){
|
||||
|
||||
|
||||
if(count($_periods) <= 1){
|
||||
return 0;
|
||||
}
|
||||
$overlapDays = 0;
|
||||
for ($i=0; $i < count($_periods); $i++) {
|
||||
if(isset($_periods[$i]) && isset($_periods[$i + 1])){
|
||||
$range1 = $_periods[$i];
|
||||
$range2 = $_periods[$i + 1];
|
||||
if ($range1->overlaps($range2)) {
|
||||
// Find the overlapping start/end
|
||||
$start = $range1->getStartDate()->greaterThan($range2->getStartDate()) ? $range1->getStartDate() : $range2->getStartDate();
|
||||
$end = $range1->getEndDate()->lessThan($range2->getEndDate()) ? $range1->getEndDate() : $range2->getEndDate();
|
||||
// Count days (including end date)
|
||||
$overlapDays += (int) $start->diffInDays($end) + 1; // Result: 17
|
||||
}
|
||||
}
|
||||
}
|
||||
return $overlapDays;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class FilterWettbewerbe
|
||||
{
|
||||
public static function filter(&$_liste, &$wettbewerbe, $gemeischaft = [])
|
||||
{
|
||||
|
||||
|
||||
print_r($_liste);
|
||||
print_r($wettbewerbe);
|
||||
// exit;
|
||||
|
||||
$sondersperrungen = _Berechnung::$_data['sondersperrungen'];
|
||||
|
||||
$sektionstage = _Berechnung::$_data['sektionstage'];
|
||||
|
||||
$ruhestellungen = _Berechnung::$_data['ruhestellungen'];
|
||||
|
||||
$berechnen_bis = Carbon::createFromDate(_Berechnung::$berechne_bis);
|
||||
|
||||
$kammerBeschluss2022 = Carbon::createFromDate(2022, 04, 25);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class FrauenPunkteBewertung
|
||||
{
|
||||
/**
|
||||
* Erklärung:
|
||||
* Den Frauenförderpunkt erhält jede Frau, ausschlaggebend ist das Vereidigungsdatum. Ab dem Vereidigungsdatum (Tag der Eidesablegung) bleibt der Frauenförderpunkt 5 Jahre in der Wertung
|
||||
* Sollte diese Frau aber in der Folge Wettbewerbspunkte erzielt haben, verlängert sich die Dauer der Wertung um diejenige Zeit, bis zu dem auch der Punkt dieses Wettbewerbserfolges verfallen würde.
|
||||
*
|
||||
* @param mixed $_liste
|
||||
* @return void
|
||||
*/
|
||||
public static function lade()
|
||||
{
|
||||
// print_r(_Berechnung::$_data['liste']);exit;
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $value) {
|
||||
|
||||
$berechnen_bis = Carbon::createFromDate(_Berechnung::$berechne_bis);
|
||||
|
||||
if(isset($value['auswertung']['burogemeinschaft']['order'])){
|
||||
$order = $value['auswertung']['burogemeinschaft']['order'];
|
||||
}
|
||||
|
||||
$punkt = 0;
|
||||
$kommentar = "";
|
||||
|
||||
$vereidigung = Carbon::createFromDate($value['ffp']['vereidigung']);
|
||||
$name = $value['ffp']['name'];
|
||||
|
||||
$sup = '';
|
||||
if(isset($order[$name])){
|
||||
$sup = '<sup>'.$order[$name].'</sup><br>';
|
||||
}
|
||||
|
||||
if($vereidigung->greaterThan($berechnen_bis)){
|
||||
$punkt = 0;
|
||||
$kommentar = " Verfallen am ".$vereidigung->format('d. M Y').$sup;
|
||||
} else {
|
||||
$punkt = 1;
|
||||
$kommentar = " Gültig bis ".$vereidigung->format('d. M Y').$sup;
|
||||
}
|
||||
|
||||
// foreach ($value['ffp'] as $user_id => $ffps) {
|
||||
|
||||
// $sort = array_column($ffps['opjekte'], 'entscheidungstermin');
|
||||
// array_multisort($sort, SORT_ASC, SORT_REGULAR ,$ffps['opjekte']);
|
||||
|
||||
// /**
|
||||
// * filter double
|
||||
// */
|
||||
// $match = '';
|
||||
// $ffpObjekte = [];
|
||||
// foreach ($ffps['opjekte'] as $value) {
|
||||
// if($match != $value['entscheidungstermin']){
|
||||
// $match = $value['entscheidungstermin'];
|
||||
// $ffpObjekte[] = $value;
|
||||
// }
|
||||
|
||||
// }
|
||||
// foreach ($ffpObjekte as $k => $ffp) {
|
||||
|
||||
// $entscheidungstermin = Carbon::parse($ffp['entscheidungstermin']);
|
||||
|
||||
// if($k == 0){
|
||||
// if($entscheidungstermin > $vereidigung){
|
||||
// // 1. Projekt mehr al 5 Jahre nach der Vereidigung, der FFP wird nicht mehr aktiviert
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// $entscheidungstermin = Carbon::parse($ffp['entscheidungstermin'])->addYears(5);
|
||||
|
||||
// // echo $vereidigung->format('d. M Y')."\n";
|
||||
// // echo $entscheidungstermin->format('d. M Y')."\n";
|
||||
|
||||
// if($entscheidungstermin < $berechnen_bis){
|
||||
// $punkt = 0;
|
||||
// $kommentar = " Verfallen am ".$entscheidungstermin->format('d. M Y').$sup;
|
||||
// }else {
|
||||
// $punkt = 1;
|
||||
// $kommentar = " Gültig bis ".$entscheidungstermin->format('d. M Y').$sup;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if($kommentar){
|
||||
_Berechnung::$_data['liste'][$key]["punkte"] += $punkt;
|
||||
_Berechnung::$_data['liste'][$key]["auswertung"]["frauenfoerderpunkt"]['punkte'] = $punkt;
|
||||
_Berechnung::$_data['liste'][$key]["auswertung"]["frauenfoerderpunkt"]['kommentar'] = $kommentar;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
class FrauenRuhestellung
|
||||
{
|
||||
public static function load(){
|
||||
|
||||
if(isset(_Berechnung::$_data['ruhestellungen'])){
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $value) {
|
||||
if(isset($value['ffp'])){
|
||||
foreach ($value['ffp'] as $user_id => $value) {
|
||||
if(isset(_Berechnung::$_data['ruhestellungen'][$user_id])){
|
||||
foreach ( _Berechnung::$_data['ruhestellungen'][$user_id] as $ruhestellungen) {
|
||||
$ruhestellungen['entscheidungstermin'] = $ruhestellungen['ruhestellung_start'];
|
||||
foreach (_Berechnung::$_data['liste'][$key]['ffp'] as $user_id => $value) {
|
||||
_Berechnung::$_data['liste'][$key]['ffp'][$user_id]['opjekte'][] = $ruhestellungen;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
|
||||
class GetGeber
|
||||
{
|
||||
public static function load($uid)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_konto_aufloesung_mm');
|
||||
$queryBuilder->select('uid_geber')->from('tx_zuladungsliste_konto_aufloesung_mm')->where($queryBuilder->expr()->eq('uid_empfaenger', (int) $uid));
|
||||
return $queryBuilder->execute()->fetchAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
|
||||
class LoadWettbewerbe
|
||||
{
|
||||
public static function load($uid, $stichtagVerlaengerung)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder->select('uid_wettbewerbe')->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where($queryBuilder->expr()->eq('uid_user', (int) $uid));
|
||||
$uid_wettbewerbe = $queryBuilder->execute()->fetchAll();
|
||||
$arr = [];
|
||||
foreach ($uid_wettbewerbe as $value) {
|
||||
$arr[] = $value['uid_wettbewerbe'];
|
||||
}
|
||||
if($arr){
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$queryBuilder->select('wettbewerb','entscheidungstermin','kammerbeschluss')->from('tx_zuladungsliste_domain_model_wettbewerbe')
|
||||
->where(
|
||||
$queryBuilder->expr()->gt('entscheidungstermin', $stichtagVerlaengerung->format('Y-m-d')),
|
||||
$queryBuilder->expr()->in('uid', $arr)
|
||||
);
|
||||
return $queryBuilder->execute()->fetchAll();
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Frauen;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
class SetVerfallen
|
||||
{
|
||||
public static function setDatum($verfallsdatum, $uid)
|
||||
{
|
||||
if(_Berechnung::$debug){
|
||||
echo "Set FFP Datum: " . $verfallsdatum;
|
||||
echo "\n<br>";
|
||||
}
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder->update('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid),
|
||||
)
|
||||
->set('frauenfoerderpunkt_verfallen', (string) $verfallsdatum)
|
||||
->execute();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use Carbon\Carbon;
|
||||
use Carbon\CarbonPeriod;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Frauen\FrauenPunkteBewertung;
|
||||
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
* FRAUENFÖRDERPUNKT
|
||||
* Gültigkeit hat der Frauenförderpunkt dann drei Jahre ab Jurydatum des erzielten Erfolges bzw. der Wettbewerbsteilnahme.
|
||||
* Mit dem Verfall der Punkte für den Wettbewerbserfolg bzw. für die Wettbewerbsteilnahme (drei Jahre ab Jurydatum) würde auch der Frauenförderpunkt verfallen,
|
||||
* außer es sind wieder neue Wettbewerbserfolge/-teilnahmen dazugekommen. Es wird immer das neueste Jurydatum herangezogen.
|
||||
* Wenn generell keine Punkte dazugekommen sind, bleibt der Frauenförderpunkt - wie gehabt – fünf Jahre ab Vereidigungsdatum in der Liste.
|
||||
*
|
||||
* Vor den Änderungen der Kriterien am 25.04.2022 war es so, dass der Frauenpunkt ab Vereidigungsdatum 5 Jahre gültig war und dann verfallen ist.
|
||||
*/
|
||||
|
||||
class FrauenFoerderPunkt
|
||||
{
|
||||
|
||||
public static $frauenfoerderpunkte = [];
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function berechnen()
|
||||
{
|
||||
_Berechnung::$debug = 1;
|
||||
|
||||
print_r(_Berechnung::$_data['liste']);
|
||||
exit;
|
||||
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, "Frauen Förderungs Punkt");
|
||||
}
|
||||
|
||||
$kammerBeschluss2022 = Carbon::createFromDate(2022, 04, 25);
|
||||
$berechnen_bis = Carbon::createFromDate(_Berechnung::$berechne_bis);
|
||||
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $_liste) {
|
||||
|
||||
$ist_bueogemeinschaft = (bool) $_liste["burogemeinschaft"];
|
||||
|
||||
$hat_frauenfoerderpunkt = (bool) $_liste["frauenfoerderpunkt"];
|
||||
|
||||
if(!$ist_bueogemeinschaft && ! $hat_frauenfoerderpunkt){
|
||||
if (GeneralUtility::_GP('anzeigemodus') > 1) {
|
||||
$_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 0;
|
||||
$_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Kein Anspruch";
|
||||
}
|
||||
}
|
||||
else if($hat_frauenfoerderpunkt){
|
||||
|
||||
}
|
||||
|
||||
// print_r($_liste);
|
||||
// exit;
|
||||
|
||||
|
||||
|
||||
|
||||
foreach ($_liste as $listenkey => $user_objekt) {
|
||||
|
||||
// print_r($user_objekt);
|
||||
// exit;
|
||||
|
||||
$user_ruhestellungen = $ruhestellungen[$user_objekt['id']] ?? null;
|
||||
|
||||
|
||||
|
||||
$wettbewerbe = $user_objekt['auswertung']['wettbewerbe'] ?? [];
|
||||
|
||||
$ist_bueogemeinschaft = (bool) $user_objekt["burogemeinschaft"];
|
||||
$hat_frauenfoerderpunkt = (bool) $user_objekt["frauenfoerderpunkt"];
|
||||
$days_verlaengerung = 0;
|
||||
|
||||
if(is_array($user_ruhestellungen)){
|
||||
$days_verlaengerung = self::getVerlaengerungDurchRuhestellung( $user_ruhestellungen);
|
||||
}
|
||||
|
||||
|
||||
$kommentare = [];
|
||||
$punkte = 0;
|
||||
|
||||
if(!$ist_bueogemeinschaft && ! $hat_frauenfoerderpunkt){
|
||||
if (GeneralUtility::_GP('anzeigemodus') > 1) {
|
||||
$kommentar = "Kein Anspruch";
|
||||
}
|
||||
}
|
||||
else if(! $ist_bueogemeinschaft && $hat_frauenfoerderpunkt){
|
||||
|
||||
$vereidigung_p5 = Carbon::createFromDate($user_objekt['vereidigung'])->addYears(5);
|
||||
|
||||
/**
|
||||
* vor Kammerbeschluss verfällt Punkt nach 5 Jahren und wird auch nicht mehr aktiviert
|
||||
*/
|
||||
if($kammerBeschluss2022->greaterThan($vereidigung_p5)){
|
||||
$kommentare[] = "Verfallen am ".$vereidigung_p5->addDays($days_verlaengerung)->format('d. M Y');
|
||||
}
|
||||
else {
|
||||
|
||||
if($vereidigung_p5->greaterThan($berechnen_bis)){
|
||||
$punkte += 1;
|
||||
$kommentare[] = "Gültig bis ".$vereidigung_p5->addDays($days_verlaengerung)->format('d. M Y');
|
||||
}
|
||||
|
||||
foreach ($wettbewerbe as $wettbewerb) {
|
||||
|
||||
/**
|
||||
* Stichtag vom Wettbewerb
|
||||
*/
|
||||
|
||||
$stichtagstring = self::stichtag($wettbewerb);
|
||||
|
||||
if($stichtagstring){
|
||||
|
||||
$stichtag_p3 = Carbon::createFromDate($stichtagstring)->addYears(3);
|
||||
|
||||
if($stichtag_p3->greaterThan($berechnen_bis)){
|
||||
$punkte += 1;
|
||||
$kommentare[] = "Gültig bis ".$stichtag_p3->addDays($days_verlaengerung)->format('d. M Y'). ' (verlängert)';
|
||||
} else {
|
||||
$kommentare[] = " Verfallen am ".$stichtag_p3->addDays($days_verlaengerung)->format('d. M Y');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if($ist_bueogemeinschaft){
|
||||
|
||||
$burogemeinschaft = $user_objekt['auswertung']['burogemeinschaft'] ?? [];
|
||||
|
||||
$order = $burogemeinschaft['order'];
|
||||
|
||||
foreach ($burogemeinschaft['data'] as $partner) {
|
||||
|
||||
/**
|
||||
* bei mehreren Frauen in Bürogemeinschaft
|
||||
*/
|
||||
|
||||
$hat_frauenfoerderpunkt = (bool) $partner["frauenfoerderpunkt"] ? true : false;
|
||||
|
||||
if($hat_frauenfoerderpunkt){
|
||||
|
||||
$suplement = '<sub>'.$order[$partner['name']].'</sub>';
|
||||
|
||||
$vereidigung_p5 = Carbon::createFromDate($partner['vereidigung'])->addYears(5);
|
||||
/**
|
||||
* vor Kammerbeschluss verfällt Punkt nach 5 Jahren und wird auch nicht mehr aktiviert
|
||||
*/
|
||||
if($kammerBeschluss2022->greaterThan($vereidigung_p5)){
|
||||
$kommentare[] = "Verfallen am ".$vereidigung_p5->addDays($days_verlaengerung)->format('d. M Y').$suplement;
|
||||
}
|
||||
else {
|
||||
|
||||
if($vereidigung_p5->greaterThan($berechnen_bis)){
|
||||
$punkte += 1;
|
||||
$kommentare[] = "Gültig bis ".$vereidigung_p5->addDays($days_verlaengerung)->format('d. M Y').$suplement;
|
||||
}
|
||||
|
||||
foreach ($wettbewerbe as $wettbewerb) {
|
||||
|
||||
/**
|
||||
* Stichtag vom Wettbewerb
|
||||
*/
|
||||
|
||||
$stichtagstring = self::stichtag($wettbewerb);
|
||||
|
||||
if($stichtagstring){
|
||||
|
||||
$stichtag_p3 = Carbon::createFromDate($stichtagstring)->addYears(3);
|
||||
|
||||
if($stichtag_p3->greaterThan($berechnen_bis)){
|
||||
$punkte += 1;
|
||||
$kommentare[] = "Gültig bis ".$stichtag_p3->addDays($days_verlaengerung)->format('d. M Y'). ' (verlängert)'.$suplement;
|
||||
} else {
|
||||
$kommentare[] = " Verfallen am ".$stichtag_p3->addDays($days_verlaengerung)->format('d. M Y').$suplement;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(count($kommentare)) {
|
||||
|
||||
$kommentar = implode('<br>',$kommentare);
|
||||
|
||||
_Berechnung::$_data['liste'][$listenkey]["punkte"] += $punkte;
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['punkte'] = $punkte;
|
||||
_Berechnung::$_data['liste'][$listenkey]["auswertung"]["frauenfoerderpunkt"]['kommentar'] = $kommentar;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function stichtag($wettbewerb){
|
||||
if(isset($wettbewerb['entscheidungstermin']) && $wettbewerb['entscheidungstermin'] != null){
|
||||
return $wettbewerb['entscheidungstermin'];
|
||||
}
|
||||
else if(isset($wettbewerb['kammerbeschluss']) && $wettbewerb['kammerbeschluss'] != null){
|
||||
return $wettbewerb['kammerbeschluss'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function getVerlaengerungDurchRuhestellung( $user_ruhestellungen){
|
||||
|
||||
$days_summe = 0;
|
||||
foreach ($user_ruhestellungen as $ruhestellung) {
|
||||
$ruhestellung_start = Carbon::parse( $ruhestellung['ruhestellung_start']);
|
||||
if($ruhestellung['ruhestellung_end'] == 'offen'){
|
||||
$ruhestellung_end = Carbon::parse(_Berechnung::$_config['berechne_bis_datum']);
|
||||
}else {
|
||||
$ruhestellung_end = Carbon::parse( $ruhestellung['ruhestellung_end']);
|
||||
}
|
||||
$_periods[] = CarbonPeriod::create($ruhestellung_start, $ruhestellung_end);
|
||||
|
||||
$days = $ruhestellung_end->diffInDays($ruhestellung_start);
|
||||
$days_summe +=$days;
|
||||
}
|
||||
return $days_summe;
|
||||
}
|
||||
|
||||
// public static function overlapping($_periods){
|
||||
// if(count($_periods) <= 1){
|
||||
// return 0;
|
||||
// }
|
||||
// $overlapDays = 0;
|
||||
// for ($i=0; $i < count($_periods); $i++) {
|
||||
// if(isset($_periods[$i]) && isset($_periods[$i + 1])){
|
||||
// $range1 = $_periods[$i];
|
||||
// $range2 = $_periods[$i + 1];
|
||||
// if ($range1->overlaps($range2)) {
|
||||
// // Find the overlapping start/end
|
||||
// $start = $range1->getStartDate()->greaterThan($range2->getStartDate()) ? $range1->getStartDate() : $range2->getStartDate();
|
||||
// $end = $range1->getEndDate()->lessThan($range2->getEndDate()) ? $range1->getEndDate() : $range2->getEndDate();
|
||||
// // Count days (including end date)
|
||||
// $overlapDays += (int) $start->diffInDays($end) + 1; // Result: 17
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return $overlapDays;
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Zeit;
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Neueinsteiger
|
||||
{
|
||||
/**
|
||||
* @param mixed $_liste
|
||||
* @param mixed $user_objekt
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function load(&$_liste, $user_objekt, $burogemeinschaft)
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Load NeueinsteigerPunkt');
|
||||
}
|
||||
|
||||
$anzeigemodus = GeneralUtility::_GP('anzeigemodus');
|
||||
|
||||
/***
|
||||
* BÜROGEMEINSCHAFT
|
||||
*/
|
||||
if ($burogemeinschaft) {
|
||||
$_partner = $_liste["auswertung"]["burogemeinschaft"]["data"];
|
||||
|
||||
$punkte = 0;
|
||||
$kommentar = [];
|
||||
$i=1;
|
||||
foreach ($_partner as $key => $value) {
|
||||
if ('0000-00-00' == $value['vereidigung']) {
|
||||
$kommentar[] = "Vereidigungsdatum fehlt" . "<sup>$i</sup>";
|
||||
} else {
|
||||
$return = self::controll_ruhestellung_neueinsteiger($value, $_liste);
|
||||
if ($return['status'] == 1) {
|
||||
$punkte += 1;
|
||||
$_liste['punkte'] = $_liste['punkte'] + 1;
|
||||
$kommentar[] = $return['kommentar'] . "<sup>$i</sup>";
|
||||
} elseif ($anzeigemodus > 1) {
|
||||
$kommentar[] = $return['kommentar'] . "<sup>$i</sup>";
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
if ($punkte or $anzeigemodus > 1) {
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = $punkte;
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = implode("<br>", $kommentar);
|
||||
}
|
||||
} else {
|
||||
/***
|
||||
* REGULARE
|
||||
*/
|
||||
if ('0000-00-00' == $user_objekt['vereidigung']) {
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Kein Vereidigungsdatum verfügbar';
|
||||
}
|
||||
|
||||
$return = self::controll_ruhestellung_neueinsteiger($user_objekt, $_liste);
|
||||
|
||||
if ($return['status'] == 1) {
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 1;
|
||||
$_liste['punkte'] = $_liste['punkte'] + 1;
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = $return['kommentar'];
|
||||
} else {
|
||||
if ($anzeigemodus > 1) {
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
|
||||
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = $return['kommentar'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static function controll_ruhestellung_neueinsteiger($value, &$_liste)
|
||||
{
|
||||
$uid = $value['uid'];
|
||||
$ruhestellungen = [];
|
||||
if (isset(_Berechnung::$_data['ruhestellungen'][$uid])) {
|
||||
$ruhestellungen = _Berechnung::$_data['ruhestellungen'][$uid];
|
||||
}
|
||||
// bei Bürogemeinschaft uid ist von partner, bürogemeinschaft hat keinen NeueinsteigerPunkt
|
||||
|
||||
$return = [];
|
||||
$return['status'] = 0;
|
||||
|
||||
// set Tag der Vereidigung
|
||||
$vereidigung = new DateTime($value['vereidigung']);
|
||||
$_sektionstag = Sektionstage::filter($vereidigung->format("U"));
|
||||
|
||||
// Gültigkeits Dauer des neueinsteiger Punktes von Sektionstag
|
||||
$neueinsteiger = $_sektionstag['neueinsteiger'];
|
||||
$gueltig_bis = new DateTime($value['vereidigung']);
|
||||
$gueltig_bis->add(new DateInterval("P" . $neueinsteiger . "M"));
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------
|
||||
Ruhestellung => für jede Ruhestellung werden die Punkte verlängert.
|
||||
--------------------------------------------------------------------------------------------------------------*/
|
||||
foreach ($ruhestellungen as $ruhestellung) {
|
||||
// wenn die punkte noch gültig sind wird verlängert
|
||||
if($gueltig_bis->format("Y-m-d") > $ruhestellung['ruhestellung_start']){
|
||||
$gueltig_bis->modify($ruhestellung['tage']." days");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($gueltig_bis < _Berechnung::$berechne_bis) {
|
||||
$return['status'] = 0;
|
||||
$return['kommentar'] = "Verfallen am " . $gueltig_bis->format("d. M Y");
|
||||
} else {
|
||||
$return['status'] = 1;
|
||||
$return['kommentar'] = "Gültig bis " . $gueltig_bis->format("d. M Y");
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Partner
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function load($user_objekt, $burogemeinschaft)
|
||||
{
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Lade Partner');
|
||||
}
|
||||
|
||||
if ($burogemeinschaft == 0) {
|
||||
// keine bürogemeinschaft
|
||||
return false;
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'fe_users.uid',
|
||||
'fe_users.first_name',
|
||||
'fe_users.last_name',
|
||||
'fe_users.vereidigung',
|
||||
'fe_users.frauenfoerderpunkt',
|
||||
'fe_users.frauenfoerderpunkt_verfallen',
|
||||
'fe_users.solidaritaetserklaerung',
|
||||
'a.punkte_mitnehmen'
|
||||
)->from('fe_users')
|
||||
->join(
|
||||
'fe_users',
|
||||
'tx_zuladungsliste_buro_gemeinschaft_mm',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid_user', $queryBuilder->quoteIdentifier('fe_users.uid'))
|
||||
)
|
||||
->where($queryBuilder->expr()->eq('uid_gemeinschaft', (int) $user_objekt["uid"]));
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$ref = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$i=1;
|
||||
$kom = [];
|
||||
$tmp = [];
|
||||
$order = [];
|
||||
foreach ($ref as $value) {
|
||||
|
||||
$vereidigung = Carbon::createFromDate($value['vereidigung']);
|
||||
$sub = '<sup>'.$i.'</sup><br><div style="color:#999; text-align:right;">Vereidigung '.$vereidigung->format('d.M.Y').'</div>';
|
||||
|
||||
if ($value['name'] == "") {
|
||||
$value['name'] = $value['first_name'] . " " . $value['last_name'];
|
||||
}
|
||||
$tmp[$i] = $value;
|
||||
if ($value['last_name'] != "") {
|
||||
$kom[] = '<i class="far fa-user small"></i> ' . $value['first_name'] . ' ' . $value['last_name'] . $sub;
|
||||
} else {
|
||||
$kom[] = '<i class="far fa-user small"></i> ' . $value['name'] . $sub;
|
||||
}
|
||||
$order[$value['name']] = $i;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$data = [];
|
||||
$data['data'] = $tmp;
|
||||
$data['order'] = $order;
|
||||
$data['kommentar'] = implode("<br>", $kom);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function load_alle_in_gemeinschaft()
|
||||
{
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Lade Partner in Gemeinschaft');
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$res = $queryBuilder->select('uid')->from('fe_users')->where(
|
||||
$queryBuilder->expr()->gt('kontoaufloesung_active', (string) _Berechnung::$berechne_bis->format('Y-m-d')))
|
||||
->execute()
|
||||
->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
foreach ($res as $key => $value) {
|
||||
$aufgeloesteGemeinschaften[] = $value['uid'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_buro_gemeinschaft_mm');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder->select('uid_user','uid_gemeinschaft')->from('tx_zuladungsliste_buro_gemeinschaft_mm');
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$res = $queryBuilder->execute()->fetchAll();
|
||||
$return = [];
|
||||
foreach ($res as $key => $value) {
|
||||
if(!in_array($value['uid_gemeinschaft'], $aufgeloesteGemeinschaften))
|
||||
{
|
||||
$return[] = $value['uid_user'];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class PunkteKriterien
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Load Punkte Kriterien');
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.punkte',
|
||||
'a.bezeichnung AS bezeichnung_punkte',
|
||||
'b.bezeichnung AS bezeichnung_kritierien'
|
||||
)->from('tx_zuladungsliste_punkte_kriterien_mm')
|
||||
->join(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_punkte'))
|
||||
)
|
||||
->join(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'tx_zuladungsliste_domain_model_kriterien',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien'))
|
||||
);
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$tmp = $queryBuilder->execute()->fetchAll();
|
||||
$return = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
$return[$value['uid_punkte']] = $value;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
public static function fill()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
"Lade Arrays [PUNKTE, KRITERIEN, BEZEICHNUNG_PUNKTE]"
|
||||
);
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm');
|
||||
$queryBuilder
|
||||
->select('uid_punkte', 'uid_kriterien', 'punkte')->from('tx_zuladungsliste_punkte_kriterien_mm');
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
foreach ($statement as $key => $value) {
|
||||
$uid_kriterien = $value['uid_kriterien'];
|
||||
$uid_punkte = $value['uid_punkte'];
|
||||
_Berechnung::$_punkte[$uid_kriterien][$uid_punkte] = $value['punkte'];
|
||||
}
|
||||
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_kriterien');
|
||||
$queryBuilder->select('uid', 'bezeichnung', 'sperrung')->from('tx_zuladungsliste_domain_model_kriterien');
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
foreach ($statement as $key => $value) {
|
||||
$uid = $value['uid'];
|
||||
_Berechnung::$_kriterien[$uid] = $value;
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte');
|
||||
$queryBuilder->select('uid', 'bezeichnung', 'einmal_im_jahr')->from('tx_zuladungsliste_domain_model_punkte');
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
foreach ($statement as $key => $value) {
|
||||
$uid = $value['uid'];
|
||||
_Berechnung::$_bezeichnung_punkte[$uid] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Zeit;
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
use DateTimeImmutable;
|
||||
use Carbon\Carbon;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Ruhestellungen
|
||||
{
|
||||
public static $_ruhestellungen = [];
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function company($uid)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
return $queryBuilder
|
||||
->select("company")
|
||||
->from('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid)
|
||||
)
|
||||
->execute()
|
||||
->fetchOne();
|
||||
}
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_ruhestellung');
|
||||
$queryBuilder
|
||||
->select("uid", "uid_ruhestellung", "ruhestellung_start", "ruhestellung_end")
|
||||
->from('tx_zuladungsliste_domain_model_ruhestellung')
|
||||
->execute();
|
||||
$result = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$_arr = [];
|
||||
foreach ($result as $value) {
|
||||
/**
|
||||
* sort per user
|
||||
*/
|
||||
$uid = $value['uid_ruhestellung'];
|
||||
|
||||
$ruhestellung_start = new DateTime($value['ruhestellung_start']);
|
||||
$ruhestellung_end = new DateTime($value['ruhestellung_end']);
|
||||
if(!$value['ruhestellung_end']){
|
||||
$value['ruhestellung_end'] = 'offen';
|
||||
// $ruhestellung_end->format('Y-m-d');
|
||||
}
|
||||
$difference = $ruhestellung_start->diff($ruhestellung_end);
|
||||
$value['tage'] = $difference->format('%R%a');
|
||||
$value['company'] = self::company($value['uid_ruhestellung']);
|
||||
/**
|
||||
* as array as same user can have more sperren
|
||||
*/
|
||||
unset($value['uid']);
|
||||
unset($value['uid_ruhestellung']);
|
||||
_Berechnung::$_data['ruhestellungen'][$uid][] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function berechnen()
|
||||
{
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'IN -> RUHESTELLUNGEN BERECHNEN');
|
||||
}
|
||||
|
||||
$_ruhestellungen = _Berechnung::$_data['ruhestellungen'];
|
||||
|
||||
// print_r(_Berechnung::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) {
|
||||
|
||||
$userid = $_value_liste['id'];
|
||||
|
||||
if(isset($_ruhestellungen[$userid])){
|
||||
$user_ruhestellung = $_ruhestellungen[$userid];
|
||||
|
||||
// print_r($user_ruhestellung);
|
||||
|
||||
// exit;
|
||||
/**
|
||||
* loop $_ruhestellungen in case for more then one time ruhegestellt
|
||||
*/
|
||||
|
||||
$kommentare = [];
|
||||
foreach ($user_ruhestellung as $ruhestellung) {
|
||||
|
||||
$ruhestellung_start = Carbon::parse( $ruhestellung['ruhestellung_start']);
|
||||
if($ruhestellung['ruhestellung_end'] == 'offen'){
|
||||
$ruhestellung_end = Carbon::parse(_Berechnung::$_config['berechne_bis_datum']);
|
||||
}else {
|
||||
$ruhestellung_end = Carbon::parse( $ruhestellung['ruhestellung_end']);
|
||||
}
|
||||
$kommentare[] = $ruhestellung_start->format('d. M Y').' - '.$ruhestellung_end->format('d. M Y');
|
||||
|
||||
if($ruhestellung['ruhestellung_end'] == 'offen' OR $ruhestellung['ruhestellung_end'] >= _Berechnung::$berechne_bis) {
|
||||
$row['gesperrt_bis'] = 'Ruhend';
|
||||
_Berechnung::$_data['liste'][$key]['gesperrt'] = 1;
|
||||
_Berechnung::$_data['liste'][$key]['nominiert'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['inruhestellung'] = 1;
|
||||
}
|
||||
|
||||
$objekte = $_value_liste['auswertung']['wettbewerbe'];
|
||||
|
||||
// NEUE VERSION, WENN SPERRE BEENDED VERLÄNGERUNG WIRD IN ERFOLGSPUNKTE BERECHNET
|
||||
// WHEN OFFEN DANN HIER
|
||||
foreach ($objekte as $k => $objekt) {
|
||||
|
||||
if ($objekt['gueltig_bis'] >= $ruhestellung['ruhestellung_start'] and $ruhestellung['ruhestellung_end'] == 'offen')
|
||||
{
|
||||
$objekte[$k]['punkte_verl'] = 1;
|
||||
$objekte[$k]['punkte_aktive'] = 1;
|
||||
$objekte[$k]['gueltig_bis'] = 'offen';
|
||||
}
|
||||
}
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe'] = $objekte;
|
||||
}
|
||||
|
||||
if($kommentare){
|
||||
_Berechnung::$_data['liste'][$key]["auswertung"]["ruhestellungen"]['punkte'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]["auswertung"]["ruhestellungen"]['kommentar'] = implode('<br>', $kommentare);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Sektionstage
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__file__, __line__, "Lade Sektionstage");
|
||||
}
|
||||
|
||||
// 2 usergroup => Ordentliche Registrierung zur Zuladungsliste
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_sektionstage');
|
||||
$statement = $queryBuilder
|
||||
->select("bezeichnung", "rwcode", "stichtag", "sperrzeit", "punktezeit", "neueinsteiger", "frauenfoerderung", "frauenfoerderung_erweitert", "kammernid", "ausloberladung", "sperrzeit_aufteilen", "teilnahme_maximumjahr")
|
||||
->from('tx_zuladungsliste_domain_model_sektionstage')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('kammernid', (int)_Berechnung::$_config['kammernid'])
|
||||
);
|
||||
|
||||
if (_Berechnung::$_config['berechne_bis'] != 0) {
|
||||
$date = date("Y-m-d", _Berechnung::$_config['berechne_bis']);
|
||||
$queryBuilder->andWhere("stichtag < '". $date ."'");
|
||||
}
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$_arr = [];
|
||||
foreach ($statement as $key => $value) {
|
||||
$stichtag = strtotime(trim($value['stichtag']));
|
||||
$value['stichtagtstamp'] = $stichtag;
|
||||
$_arr[$stichtag] = $value;
|
||||
ksort($_arr[$stichtag]);
|
||||
}
|
||||
|
||||
_Berechnung::$_data['sektionstage'] = $_arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function filter($entscheidungstermin)
|
||||
{
|
||||
$_sektionstage = _Berechnung::$_data['sektionstage'];
|
||||
foreach ($_sektionstage as $stichtag => $_stichtagdetails) {
|
||||
if ($entscheidungstermin <= $stichtag) {
|
||||
return $_stichtagdetails;
|
||||
}
|
||||
}
|
||||
return $_stichtagdetails;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Solidaritaetserklaerung
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function filter(&$_liste, $user_objekt, $burogemeinschaft)
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__file__, __line__, "Filter Solidaritaetserklaerung");
|
||||
}
|
||||
|
||||
// Datum Start SOLIDARITÄTSERKLÄRUNG ab 15. Juni "2021"
|
||||
if (_Berechnung::$_config['berechne_bis'] > mktime(0, 0, 0, 6, 15, 2021)) {
|
||||
/***
|
||||
* BÜROGEMEINSCHAFT
|
||||
*/
|
||||
if ($burogemeinschaft) {
|
||||
$_partner = $_liste["auswertung"]["burogemeinschaft"]["data"];
|
||||
|
||||
$punkte = 0;
|
||||
$kommentar = [];
|
||||
$i=1;
|
||||
foreach ($_partner as $key => $value) {
|
||||
if ($user_objekt["solidaritaetserklaerung"]==0) {
|
||||
$kommentar[] = "Nicht zugestimmt" . "<sup>$i</sup>";
|
||||
} else {
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Zugestimmt<sup>$i</sup>";
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 1;
|
||||
$punkte++;
|
||||
$_liste["punkte"]++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$_liste['auswertung']['solidaritaetserklaerung']['punkte'] = $punkte;
|
||||
$_liste['auswertung']['solidaritaetserklaerung']['kommentar'] = implode(", ", $kommentar);
|
||||
return $_liste;
|
||||
}
|
||||
|
||||
if ($user_objekt["solidaritaetserklaerung"]==0) {
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Nicht zugestimmt";
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 0;
|
||||
} else {
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Zugestimmt";
|
||||
$_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 1;
|
||||
$_liste["punkte"]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Sondersperrungen
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
"Lade Sondersperrungen"
|
||||
);
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_extrasperrung');
|
||||
$statement = $queryBuilder
|
||||
->select('tx_zuladungsliste_domain_model_extrasperrung.begruendung', 'tx_zuladungsliste_domain_model_extrasperrung.sperrzeitbis', 'b.uid_user', 'c.company')
|
||||
->from('tx_zuladungsliste_domain_model_extrasperrung')
|
||||
->join(
|
||||
'tx_zuladungsliste_domain_model_extrasperrung',
|
||||
'tx_zuladungsliste_extrasperrung_user_mm',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid_extrasperrung', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_extrasperrung.uid'))
|
||||
)
|
||||
->join(
|
||||
'b',
|
||||
'fe_users',
|
||||
'c',
|
||||
$queryBuilder->expr()->eq('c.uid', $queryBuilder->quoteIdentifier('b.uid_user'))
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('c.kammernid', _Berechnung::$_config['kammernid'])
|
||||
)->execute()->fetchAll();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$_sondersperrungen = [];
|
||||
foreach ($statement as $key => $value) {
|
||||
$_sondersperrungen[$value['uid_user']][] = $value;
|
||||
}
|
||||
_Berechnung::$_data['sondersperrungen'] = $_sondersperrungen;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function filter(&$_liste, $user_objekt)
|
||||
{
|
||||
$user_id = $user_objekt["uid"];
|
||||
if (isset(_Berechnung::$_data['sondersperrungen'][$user_id])) {
|
||||
foreach (_Berechnung::$_data['sondersperrungen'][$user_id] as $key => $value_sperrung) {
|
||||
// nur active Sperrungen auflisten
|
||||
$sperrzeitbis = new DateTime($value_sperrung['sperrzeitbis']);
|
||||
if (_Berechnung::$berechne_bis < $sperrzeitbis) {
|
||||
$tmp = [];
|
||||
$tmp["active"] = 1;
|
||||
$tmp["gesperrt_bis"] = $sperrzeitbis->format('Y-m-d');
|
||||
$tmp["kommentar"] = $value_sperrung["begruendung"];
|
||||
$_liste["auswertung"]["sondersperrungen"][] = $tmp;
|
||||
if ($_liste['gesperrt_bis'] == 0) {
|
||||
$_liste["gesperrt_bis"] = $sperrzeitbis->format('Y-m-d');
|
||||
} else {
|
||||
$gesperrt_bis = new DateTime($_liste['gesperrt_bis']);
|
||||
if ($sperrzeitbis > $gesperrt_bis) {
|
||||
$_liste["gesperrt_bis"] = $sperrzeitbis->format('Y-m-d');
|
||||
}
|
||||
}
|
||||
$_liste["nominiert"] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung\Tools;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Carbon\CarbonPeriod;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class TageInRuhestellung
|
||||
{
|
||||
public static function get($ruhestellungen)
|
||||
{
|
||||
// print_r($ruhestellungen);
|
||||
// echo _Berechnung::$_config['berechne_bis_datum'];
|
||||
// exit;
|
||||
|
||||
$days_summe = 0;
|
||||
$_periods = [];
|
||||
foreach ($ruhestellungen as $ruhestellung) {
|
||||
$ruhestellung_start = Carbon::parse( $ruhestellung['ruhestellung_start']);
|
||||
if($ruhestellung['ruhestellung_end'] == 'offen'){
|
||||
$ruhestellung_end = Carbon::parse(_Berechnung::$_config['berechne_bis_datum']);
|
||||
}else {
|
||||
$ruhestellung_end = Carbon::parse( $ruhestellung['ruhestellung_end']);
|
||||
}
|
||||
$_periods[] = CarbonPeriod::create($ruhestellung_start, $ruhestellung_end);
|
||||
|
||||
$days = $ruhestellung_end->diffInDays($ruhestellung_start);
|
||||
$days_summe +=$days;
|
||||
}
|
||||
// return $days_summe;
|
||||
// $overlapDays = self::overlapping($_periods);
|
||||
return $days_summe;
|
||||
}
|
||||
|
||||
public static function overlapping($_periods){
|
||||
|
||||
|
||||
if(count($_periods) <= 1){
|
||||
return 0;
|
||||
}
|
||||
$overlapDays = 0;
|
||||
for ($i=0; $i < count($_periods); $i++) {
|
||||
if(isset($_periods[$i]) && isset($_periods[$i + 1])){
|
||||
$range1 = $_periods[$i];
|
||||
$range2 = $_periods[$i + 1];
|
||||
if ($range1->overlaps($range2)) {
|
||||
// Find the overlapping start/end
|
||||
$start = $range1->getStartDate()->greaterThan($range2->getStartDate()) ? $range1->getStartDate() : $range2->getStartDate();
|
||||
$end = $range1->getEndDate()->lessThan($range2->getEndDate()) ? $range1->getEndDate() : $range2->getEndDate();
|
||||
// Count days (including end date)
|
||||
$overlapDays += (int) $start->diffInDays($end) + 1; // Result: 17
|
||||
}
|
||||
}
|
||||
}
|
||||
return $overlapDays;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class WettbewerbeArchitekten
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Load Wettbewerbe Architekten');
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.uid AS uid_wettarch',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_user',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.uid_punkte',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_zuordnung',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_aktivierung',
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm.tstamp_ablehnen',
|
||||
'a.wettbewerb',
|
||||
'a.bundesland',
|
||||
'a.entscheidungstermin',
|
||||
'a.abgabetermin'
|
||||
)
|
||||
->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->join(
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe'))
|
||||
)->where(
|
||||
$queryBuilder->expr()->gt('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_punkte', 0)
|
||||
);
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
return $queryBuilder->execute()->fetchAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,527 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
set_time_limit(600);
|
||||
ini_set("memory_limit", -1);
|
||||
ini_set("max_execution_time", "600");
|
||||
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
|
||||
date_default_timezone_set('Europe/Vienna');
|
||||
ini_set('date.timezone','Europe/Vienna');
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class _Berechnung
|
||||
{
|
||||
public static $_return = [];
|
||||
public static $_data = [];
|
||||
public static $_config = [];
|
||||
public static $_punkte = [];
|
||||
public static $_bezeichnung_punkte = [];
|
||||
public static $_kriterien = [];
|
||||
public static $debug = 0;
|
||||
public static $berechne_bis = 0;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// self::$debug = 1;
|
||||
|
||||
self::$_data = [];
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
/**
|
||||
* pid
|
||||
* Ordner ID für gültige Architeken
|
||||
*/
|
||||
self::$_config['pid'] = 41;
|
||||
$kammerid = GeneralUtility::_GP('kammernid');
|
||||
if (isset($kammerid)) {
|
||||
self::$_config['kammernid'] = GeneralUtility::_GP('kammernid');
|
||||
}
|
||||
self::$_config['userid'] = $user['uid'];
|
||||
/**
|
||||
* usergroup
|
||||
* 2 => Ordentliche Registrierung zur Zuladungsliste
|
||||
*/
|
||||
self::$_config['usergroup'] = 2; //
|
||||
/**
|
||||
* Start Liste
|
||||
* 15 November 2011 12:00:00 AM CEST
|
||||
* Liste Tirol Vorarlberg
|
||||
* Ältester Eintrag Wettbewerb 2009-01-08
|
||||
*/
|
||||
self::$_config['liste_start'] = strtotime("2008-12-15");
|
||||
self::$_config['liste_start_datum'] = date("Y-m-d", self::$_config['liste_start']);
|
||||
|
||||
_Berechnung::$berechne_bis = new \DateTime();
|
||||
_Berechnung::$berechne_bis->setTimestamp(time());
|
||||
|
||||
self::$_config['berechne_bis'] = _Berechnung::$berechne_bis ->format('U');
|
||||
self::$_config['berechne_bis_datum'] = _Berechnung::$berechne_bis ->format('Y-m-d');
|
||||
}
|
||||
|
||||
public static function local_debug():void
|
||||
{
|
||||
foreach (self::$_data['architekten'] as $value) {
|
||||
echo "\n------------------------------------\n";
|
||||
echo $value['uid'].': '.$value['company'];
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function berechnen():void
|
||||
{
|
||||
// self::$debug = 1;
|
||||
|
||||
if (self::$debug) {
|
||||
Message::note("BERECHNUNG FOR: " . _Berechnung::$berechne_bis ->format('Y-m-d'));
|
||||
}
|
||||
|
||||
if (!self::$_config['kammernid']) {
|
||||
Message::error(__FILE__, __LINE__, "kammernid fehlt!");
|
||||
}
|
||||
|
||||
// $architekt_uid = 1201;
|
||||
// $architekt_uid = [1201,1312];
|
||||
// $architekt_uid = [1201];
|
||||
// $architekt_uid = [67,1096,1073,1201];
|
||||
// $architekt_uid = [1201,949];
|
||||
// $architekt_uid = [22,49,62,225,225,262,333,381,444,444,444,570,678,757,763,764,796,807,807,826,857,895,900,935,938,948,950950,948,938,935];
|
||||
// $architekt_uid = [278, 1191, 1190, 164];
|
||||
// $architekt_uid = [949,979];
|
||||
// $architekt_uid = [1091, 148];
|
||||
// $architekt_uid = [1041,289];
|
||||
// $architekt_uid = [827,1119,1120];
|
||||
// $architekt_uid = 1071;
|
||||
// BÜRGEMEINSCHAFTEN
|
||||
// $architekt_uid = [1291,1071];
|
||||
// $architekt_uid = [1110,1111,72,1305,1306,645,1171,1172,22,581];
|
||||
// Frauen
|
||||
// $architekt_uid = [104,278,619,643,662,693,709,732,757,763,764,791,792,796,807,808,847,859,868,872,886,893,894,901,904,940,949,954,964,979,987,993,997,998,1012,1013,1017,1018,1036,1071,1085,1107,1111,1115,1119,1120,1122,1127,1131,1133,1144,1159,1195,1203,1229,1232,1238,1241,1245,1254,1290,1295,1304,1307,1327,1336,1339,1341,1344,1350,1351,1363,1370,1375,1377,1378,1379,1380];
|
||||
// $architekt_uid = [827, 1119, 1383, 1120];
|
||||
|
||||
$architekt_uid = 663;
|
||||
$architekt_uid = [12,1143,1144];
|
||||
$architekt_uid = [1279,1223,1328];
|
||||
$architekt_uid = [1383, 1121, 1120];
|
||||
$architekt_uid = [827, 1383, 1121, 1120];
|
||||
$architekt_uid = [964,954];
|
||||
$architekt_uid = 0;
|
||||
|
||||
self::$_data = [];
|
||||
|
||||
PunkteKriterien::fill();
|
||||
|
||||
Sondersperrungen::load();
|
||||
|
||||
Architekten::load($architekt_uid);
|
||||
|
||||
Sektionstage::load();
|
||||
|
||||
Ruhestellungen::load();
|
||||
|
||||
// self::local_debug();
|
||||
// print_r(_Berechnung::$_data['architekten']);
|
||||
// exit;
|
||||
// print_r(_Berechnung::$_data);
|
||||
// exit;
|
||||
|
||||
foreach (self::$_data['architekten'] as $key => $user_objekt) {
|
||||
|
||||
// print_r($user_objekt);
|
||||
// exit;
|
||||
|
||||
$user_id = $user_objekt["uid"];
|
||||
|
||||
$_liste = [];
|
||||
$_liste["id"] = $user_objekt["uid"];
|
||||
$_liste["disable"] = $user_objekt["disable"];
|
||||
$_liste["user_id"] = $user_objekt["uid"];
|
||||
$_liste["company"] = $user_objekt["company"];
|
||||
$_liste["teilhaber"] = $user_objekt["teilhaber"];
|
||||
$_liste["vereidigung"] = $user_objekt["vereidigung"];
|
||||
$_liste["frauenfoerderpunkt"] = $user_objekt["frauenfoerderpunkt"];
|
||||
$_liste["frauenfoerderpunkt_verfallen"] = $user_objekt["frauenfoerderpunkt_verfallen"];
|
||||
$_liste["sorting"] = 10000000000;
|
||||
if ($user_objekt["last_name"] != '') {
|
||||
$_liste["name"] = $user_objekt["first_name"] . ' ' . $user_objekt["last_name"];
|
||||
} else {
|
||||
$_liste["name"] = $user_objekt["name"];
|
||||
}
|
||||
$_liste["kontoaufloesung"] = $user_objekt["kontoaufloesung"];
|
||||
$_liste["kontoaufloesung_active"] = $user_objekt["kontoaufloesung_active"];
|
||||
$_liste["punkte"] = 0;
|
||||
$_liste["inruhestellung"] = 0;
|
||||
$_liste["auswertung"] = [];
|
||||
$_liste["auswertung"]["wettbewerbe"] = [];
|
||||
|
||||
/**
|
||||
* WETTBEWERBE ERFOLGSPUNKTE
|
||||
*/
|
||||
Erfolgspunkte::load_user($_liste, $user_id, $user_objekt["company"]);
|
||||
|
||||
// print_r($_liste);
|
||||
// exit;
|
||||
|
||||
|
||||
/**
|
||||
* BÜROGEMEINSCHAFT START
|
||||
*/
|
||||
$_liste["burogemeinschaft"] = 0;
|
||||
if ($user_objekt["burogemeinschaft"] > 0 and
|
||||
$user_objekt["burogemeinschaft_start"] != '0000-00-00' and
|
||||
$user_objekt["kontoaufloesung_active"] == '0000-00-00')
|
||||
{
|
||||
|
||||
$burogemeinschaft_start = strtotime($user_objekt['burogemeinschaft_start']);
|
||||
|
||||
// echo "\nHERE\n";
|
||||
// print_r($user_objekt);
|
||||
// echo PHP_EOL;
|
||||
// echo $burogemeinschaft_start;
|
||||
// echo PHP_EOL;
|
||||
// echo _Berechnung::$_config['berechne_bis'];
|
||||
// echo PHP_EOL;
|
||||
|
||||
if ($burogemeinschaft_start < _Berechnung::$_config['berechne_bis']) {
|
||||
$_liste["burogemeinschaft"] = 1;
|
||||
|
||||
/**
|
||||
* BÜROGEMEINSCHAFT PARTNER load
|
||||
*/
|
||||
$buerogemeischaft = Partner::load($user_objekt, $_liste["burogemeinschaft"]);
|
||||
|
||||
/**
|
||||
* COPY WETTBEWERBE VON PARTNER TO BÜROGEMEINSCHAFT
|
||||
*/
|
||||
if($buerogemeischaft) {
|
||||
$_liste['auswertung']['burogemeinschaft'] = $buerogemeischaft;
|
||||
foreach ($_liste['auswertung']['burogemeinschaft']['data'] as $partner) {
|
||||
if ((int) $partner['punkte_mitnehmen'] == 1) {
|
||||
Erfolgspunkte::load_user($_liste, $partner['uid'], $partner['name']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* NEUEINSTEIGERPUNKT
|
||||
*/
|
||||
Neueinsteiger::load($_liste, $user_objekt, $_liste["burogemeinschaft"]);
|
||||
|
||||
/**
|
||||
* SOLIDARITÄTSERKLÄRUNG
|
||||
* disabled not used
|
||||
*/
|
||||
Solidaritaetserklaerung::filter($_liste, $user_objekt, $_liste["burogemeinschaft"]);
|
||||
|
||||
|
||||
if ($_liste["punkte"] == 0) {
|
||||
$_liste["nominiert"] = 0;
|
||||
}
|
||||
if ($_liste["inruhestellung"] == 1) {
|
||||
$_liste["nominiert"] = 0;
|
||||
}
|
||||
|
||||
if ($_liste["sorting"] == 10000000000) {
|
||||
// wenn keine punkte, verwende neueinsteigerpunk für die sortierung
|
||||
if ($_liste["auswertung"]['neueinsteigerpunkt']['punkte'] == 1) {
|
||||
$_liste["sorting"] = strtotime($_liste["vereidigung"]);
|
||||
}
|
||||
}
|
||||
|
||||
self::$_data['liste'][] = $_liste;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* VERTEILUNG DER PUNKTE NACH AUFLÖSUNG
|
||||
*/
|
||||
Aufloesung::verteilung();
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
/**
|
||||
* RUHESTELLUNGEN BERECHNEN
|
||||
* (am 15.06.25 nach "Auflösung" verschoben wegen user Claudia Gast, die hatte alle punkte nur von auflösung)
|
||||
*/
|
||||
|
||||
Ruhestellungen::berechnen();
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
/**
|
||||
* sortierung der bewerbe per user
|
||||
*/
|
||||
|
||||
|
||||
foreach (self::$_data['liste'] as $key => $user_data) {
|
||||
$tmp = $user_data['auswertung']['wettbewerbe'];
|
||||
$wettbewerb_sort = array_column($tmp, 'wettbewerb_sort');
|
||||
array_multisort($wettbewerb_sort, SORT_NUMERIC, SORT_ASC, $tmp);
|
||||
self::$_data['liste'][$key]['auswertung']['wettbewerbe'] = $tmp;
|
||||
}
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
|
||||
/**
|
||||
* FRAUEN FÖRDERUNGS PUNKT
|
||||
* Anzeigemodus nach FFP da bis hier auch alle verfallenen Punkte in der Liste sind
|
||||
* 1) FFP für Architektin
|
||||
* 2) FFP für Architektin in BG
|
||||
* 3) FFP Durch Vererbung ddurch Auflösung ( deshalb nach Auflösung)
|
||||
* 4) FFP Verlängerung durch Ruhestellung
|
||||
*/
|
||||
|
||||
Frauen::load();
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
// schreib punkte stand ins BE
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
foreach (self::$_data['liste'] as $key => $user_data) {
|
||||
$queryBuilder->update('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $user_data['user_id'])
|
||||
)
|
||||
->set('punktestand', number_format($user_data['punkte'], 2))
|
||||
->execute();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ANZEIGEMODUS
|
||||
1) Nur Aktive Daten
|
||||
2) erweitert mit Wettbewerben, FFP und Neueinsteigerpunkt ohne Sperre oder Punkte
|
||||
3) Umfassen mit Architekten ohne Punkte
|
||||
*/
|
||||
$anzeigemodus = GeneralUtility::_GP('anzeigemodus');
|
||||
switch($anzeigemodus){
|
||||
default:
|
||||
case 1:
|
||||
foreach (self::$_data['liste'] as $key => $user_data) {
|
||||
foreach ($user_data['auswertung']['wettbewerbe'] as $k => $value) {
|
||||
if($value['punkte_aktive'] && $value['punkte'] || $value['sperrung_aktive']){
|
||||
// keep
|
||||
}
|
||||
else {
|
||||
unset(self::$_data['liste'][$key]['auswertung']['wettbewerbe'][$k]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
[verfahrensid] => 491
|
||||
[wettbewerb] => Gel. WB Entwicklung Bäumlequartier am See, Lochau
|
||||
[kriteriumid] => 11
|
||||
[entscheidungstermin] => 2015-04-21
|
||||
[kammerbeschluss] => 2014-12-19
|
||||
[sperrung_wettbewerb] => 1
|
||||
[sperre_deaktiviert] => 0
|
||||
[loserverfahren] => 0
|
||||
[ladung_durch_auslober] => 1
|
||||
[uid_punkte] => 0
|
||||
[sperrzeitteilung] => 0
|
||||
[nichtsperren] => 0
|
||||
[bezeichnung_punkte] =>
|
||||
[bezeichnung] => Offene Wettbewerbe und geladene Wettbewerbe (1-stufige und 2-stufige) mit mind. 15 TN im Unterschwellenbereich
|
||||
[regelwerk] => Vorarlberg
|
||||
[gueltig_bis] => 2018-04-21
|
||||
[wettbewerb_sort] => 1429567200
|
||||
[einmal_im_jahr] => 0
|
||||
[punkte] => 0
|
||||
[punkte_aktive] => 0
|
||||
[gesperrt_bis] => 2015-06-19
|
||||
[sperrung_aktive] => 0
|
||||
*
|
||||
* [verfahrensid] => 1368
|
||||
[wettbewerb] => Gel. WB Südtirolersiedlung Bregenz Rheinstraße 2.0 Ersatzneubauten Wohnanlage 801 Bregenz - Rheinstraße I
|
||||
[kriteriumid] => 55
|
||||
[entscheidungstermin] =>
|
||||
[kammerbeschluss] => 2025-10-06
|
||||
[sperrung_wettbewerb] => 0
|
||||
[sperre_deaktiviert] => 0
|
||||
[loserverfahren] => 0
|
||||
[ladung_durch_auslober] => 1
|
||||
[uid_punkte] => 0
|
||||
[sperrzeitteilung] => 0
|
||||
[nichtsperren] => 0
|
||||
[bezeichnung_punkte] =>
|
||||
[bezeichnung] => Geladene Wettbewerbe im Unterschwellenbereich
|
||||
[wettbewerb_sort] => 1683842400
|
||||
[gesperrt_bis] => 2026-04-06
|
||||
[sperrung_aktive] => 1
|
||||
*/
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
|
||||
|
||||
|
||||
/***
|
||||
Reihung der Liste absolut
|
||||
a) Punktezahl
|
||||
b) bei Gleichstand: Ältestes in der Wertung befindliche Zuerkennungs-, Entscheidungs- oder Vereidigungsdatum geht vor
|
||||
c) falls immer noch Gleichstand: Reihung alphabetisch nach Nach- bzw. Firmennamen
|
||||
*/
|
||||
|
||||
if (self::$_data['liste']) {
|
||||
|
||||
$punkte = array_column(self::$_data['liste'], 'punkte');
|
||||
$sorting = array_column(self::$_data['liste'], 'sorting');
|
||||
$nameorder = array_column(self::$_data['liste'], 'company');
|
||||
foreach ($nameorder as $key => $value) {
|
||||
$nameorder[$key] = strtolower($value);
|
||||
}
|
||||
|
||||
// Message::note("ARRAY_MULTISORT");
|
||||
// print_r($punkte);
|
||||
// print_r($sortdatum);
|
||||
// print_r($nameorder);
|
||||
// exit;
|
||||
if (\count($punkte) and \count($sorting) and \count($nameorder)) {
|
||||
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $sorting, SORT_NUMERIC, SORT_ASC, $nameorder, SORT_STRING, SORT_ASC, self::$_data['liste']);
|
||||
}
|
||||
}
|
||||
|
||||
// if ($architekt_uid) {
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
/***
|
||||
Reihung für Nominierung Wie Reihung absolut, aber ohne Zählung von gesperrten Teilnehmern (Sperre bei WB-Teilnahme an geladenen WB, aber nicht nur durch Nominierung aus der Liste(!), dzt. 18 Monate)
|
||||
Nominierung Herangezogen wird die Nominierungsreihung.
|
||||
1 Nominierung: Nr. 1 der Nominierungsreihung
|
||||
2 Nominierungen: Nr. 1 und die Nr. des Absolutwerts der Hälfte des Maximalwerts der Nominierungsreihung (z.B. 35 in der Nominierungswertung, gezogen wird Nr. 1 und Nr. 17)
|
||||
3 Nominierungen: Nr. 1, die Nr. des Absolutwerts von 2/3 des Maximalwerts der Nominierungsreihung, die Nr. des Absolutwerts von 1/3 des Maximalwerts der Nominierungsreihung (z.B. 35 in der Nominierungswertung, gezogen wird Nr. 1, Nr. 11, Nr. 23)
|
||||
ab 4 Nominierungen: Die ersten 3 Nominierungen wie oben, nächste ist die Nr. 2, nächste die dem Absolutwert von 2/3 des Maximalwerts der Nominierungreihung folgende Zahl (z.B. bei obigem Beispiel, aber 5 aus 35: Nr. 1,2,11,12,23)
|
||||
*/
|
||||
|
||||
$arr = [];
|
||||
$pos = 0;
|
||||
$rang = 1;
|
||||
if (self::$_data['liste']) {
|
||||
foreach (self::$_data['liste'] as $key => $value) {
|
||||
if ($value["disable"] == 0) {
|
||||
$value["rang"] = $rang;
|
||||
$rang++;
|
||||
|
||||
$sperre_wettbewerbe = $value["auswertung"]["wettbewerbe"]["gesperrt_bis"];
|
||||
$sperre_sondersperrungen = $value["auswertung"]["sondersperrungen"]["gesperrt_bis"];
|
||||
|
||||
$sperre_wettbewerbe = str_replace(". ", "-", $sperre_wettbewerbe);
|
||||
if (strtotime($sperre_wettbewerbe) > self::$_config['berechne_bis']) {
|
||||
$value["gesperrt_bis"] = $sperre_wettbewerbe;
|
||||
}
|
||||
if (strtotime($sperre_sondersperrungen) > self::$_config['berechne_bis']) {
|
||||
$value["gesperrt_bis"] = $sperre_sondersperrungen;
|
||||
}
|
||||
|
||||
$value["punkte"] = (float) $value["punkte"];
|
||||
if ($value["nominiert"] == 1 and $value["punkte"] > 0) {
|
||||
$value["pos"] = $pos + 1;
|
||||
$pos++;
|
||||
} else {
|
||||
$value["pos"] = 0;
|
||||
}
|
||||
// unset($value["auswertung"]);
|
||||
unset($value["nameorder"]);
|
||||
unset($value["sorting"]);
|
||||
unset($value["last_name"]);
|
||||
// unset($value["vereidigung"]);
|
||||
|
||||
$arr[] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
$zwei = round($pos / 2);
|
||||
$drei = round($pos / 3);
|
||||
$vier = round($pos / 4);
|
||||
$fuenf = round($pos / 5);
|
||||
$sechs = round($pos / 6);
|
||||
|
||||
// echo "\neins: " . $eins;
|
||||
// echo "\nzwei: " . $zwei;
|
||||
// echo "\ndrei: " . $drei;
|
||||
// echo "\nvier: " . $vier;
|
||||
// echo "\nfünf: " . $fuenf;
|
||||
// echo "\nsechs: " . $sechs;
|
||||
// exit;
|
||||
|
||||
self::$_data['liste'] = [];
|
||||
foreach ($arr as $key => $value) {
|
||||
$pos = $value["pos"];
|
||||
if ($pos == 1) {
|
||||
$value["n1"] = 1;
|
||||
$value["n2"] = 1;
|
||||
$value["n3"] = 1;
|
||||
$value["n4"] = 1;
|
||||
$value["n5"] = 1;
|
||||
$value["n6"] = 1;
|
||||
} elseif ($pos > 1) {
|
||||
$value["n2"] = ($pos == $zwei) ? 1 : 0;
|
||||
$value["n3"] = ($pos == $drei || $pos == $drei * 2) ? 1 : 0;
|
||||
$value["n4"] = ($pos == $vier || $pos == $vier * 2 || $pos == $vier * 3) ? 1 : 0;
|
||||
$value["n5"] = ($pos == $fuenf || $pos == $fuenf * 2 || $pos == $fuenf * 3 || $pos == $fuenf * 4) ? 1 : 0;
|
||||
$value["n6"] = ($pos == $sechs || $pos == $sechs * 2 || $pos == $sechs * 3 || $pos == $sechs * 4 || $pos == $sechs * 5) ? 1 : 0;
|
||||
}
|
||||
|
||||
if ($pos == 2) {
|
||||
$value["e1"] = 1;
|
||||
$value["e2"] = 1;
|
||||
$value["e3"] = 1;
|
||||
}
|
||||
if ($pos == 3) {
|
||||
$value["e4"] = 1;
|
||||
$value["e5"] = 1;
|
||||
$value["e6"] = 1;
|
||||
} elseif ($pos > 3) {
|
||||
$value["e2"] = ($pos == $zwei + 1) ? 1 : 0;
|
||||
$value["e3"] = ($pos == $drei + 1 || $pos == $drei * 2 + 1) ? 1 : 0;
|
||||
$value["e4"] = ($pos == $vier + 1 || $pos == $vier * 2 + 1 || $pos == $vier * 3 + 1) ? 1 : 0;
|
||||
$value["e5"] = ($pos == $fuenf + 1 || $pos == $fuenf * 2 + 1 || $pos == $fuenf * 3 + 1 || $pos == $fuenf * 4 + 1) ? 1 : 0;
|
||||
$value["e6"] = ($pos == $sechs + 1 || $pos == $sechs * 2 + 1 || $pos == $sechs * 3 + 1 || $pos == $sechs * 4 + 1 || $pos == $sechs * 5 + 1) ? 1 : 0;
|
||||
}
|
||||
self::$_data['liste'][] = $value;
|
||||
}
|
||||
|
||||
// print_r(self::$_data['liste']);
|
||||
// exit;
|
||||
}
|
||||
|
||||
public static function moveOneMonthForward()
|
||||
{
|
||||
_Berechnung::$berechne_bis->add(new \DateInterval("P1M"));
|
||||
_Berechnung::$_config['berechne_bis'] = _Berechnung::$berechne_bis ->format('U');
|
||||
_Berechnung::$_config['berechne_bis_datum'] = _Berechnung::$berechne_bis ->format('Y-m-d');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
Den Frauenförderpunkt erhält jede Frau, ausschlaggebend ist das Vereidigungsdatum.
|
||||
Ab dem Vereidigungsdatum (Tag der Eidesablegung) bleibt der Frauenförderpunkt 5 Jahre in der Wertung.
|
||||
|
||||
Sollte diese Frau aber in der Folge Wettbewerbspunkte erzielt haben,
|
||||
verlängert sich die Dauer der Wertung um diejenige Zeit,
|
||||
bis zu dem auch der Punkt dieses Wettbewerbserfolges verfallen würde.
|
||||
|
||||
Z.B. Frau X legt am 12.01.2026 den Eid ab. Der Frauenförderpunkt würde dann am 12.01.2031 verfallen.
|
||||
Erzielt Frau X aber Wettbewerbspunkte (z.B. Jurydatum des Wettbewerbes 18.12.2030 – Wettbewerbspunkte würden 3 Jahre später verfallen),
|
||||
verlängert sich auch der Frauenförderpunkt und würde erst am 18.12.2033 verfallen.
|
||||
Dies gilt für alle darauffolgenden Erzielung von Wettbewerbspunkten.
|
||||
|
||||
Z.B. Frau X legt am 12.01.2026 den Eid ab.
|
||||
Der Frauenförderpunkt würde dann am 12.01.2031 verfallen.
|
||||
Erzielt Frau X aber Wettbewerbspunkte (z.B. Jurydatum des Wettbewerbes 01.05.2031),
|
||||
kann das Jurydatum und die Dauer von 3 Jahren nicht ausschlaggebend sein,
|
||||
denn dann würde der Frauenförderpunkt am 01.05.2034 verfallen.
|
||||
Der Frauenförderpunkt muss aber auf alle Fälle 5 Jahre in der Wertung bleiben,
|
||||
das heißt der Frauenförderpunkt würde am 12.01.2036 verfallen.
|
||||
|
||||
Ist der Frauenförderpunkt schon vor Inkrafttreten der neuen Kriterien, z.B. am 01.04.2022 verfallen,
|
||||
ist dieser verfallen und wird auch durch Wettbewerbspunkte nicht mehr aktiviert.
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Bootstrap;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class Kammern
|
||||
{
|
||||
/**
|
||||
* @param mixed $kammerid
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function loadById($user)
|
||||
{
|
||||
$kammerid = $user['kammernid'];
|
||||
$uid = $user['uid'];
|
||||
|
||||
if ($kammerid == 0 and $uid == ARCHITEKTEN_PID) {
|
||||
Message::error(__file__, __line__, "Kammer ID fehlt");
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_domain_model_kammern')->createQueryBuilder();
|
||||
$statement = $queryBuilder->select('bezeichnung')->from('tx_zuladungsliste_domain_model_kammern')
|
||||
->where($queryBuilder->expr()->in('uid', $kammerid))
|
||||
->execute();
|
||||
while ($row = $statement->fetch()) {
|
||||
return $row['bezeichnung'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_domain_model_kammern')->createQueryBuilder();
|
||||
return $queryBuilder->select('uid AS id', 'bezeichnung')->from('tx_zuladungsliste_domain_model_kammern')
|
||||
->execute()
|
||||
->fetchAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Bootstrap;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
|
||||
class User
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
if ($user['gender'] == 0) {
|
||||
$gender = 'Herr';
|
||||
} elseif ($user['gender'] == 1) {
|
||||
$gender = 'Frau';
|
||||
} else {
|
||||
$gender = '';
|
||||
}
|
||||
|
||||
_Berechnung::$_return = [
|
||||
['key' => 'userid', 'value' => $user['uid']],
|
||||
['key' => 'isadmin', 'value' => self::is_admin($user['usergroup'])],
|
||||
['key' => 'usergroup', 'value' => $user['usergroup']],
|
||||
['key' => 'gender', 'value' => $gender],
|
||||
['key' => 'username', 'value' => $user['username']],
|
||||
['key' => 'company', 'value' => $user['company']],
|
||||
['key' => 'email', 'value' => $user['email']],
|
||||
['key' => 'inliste', 'value' => $user['inliste']],
|
||||
['key' => 'vereidigung', 'value' => $user['vereidigung']],
|
||||
['key' => 'frauenfoerderpunkt', 'value' => $user['frauenfoerderpunkt']],
|
||||
['key' => 'kammernid', 'value' => $user['kammernid']],
|
||||
['key' => 'kammermitgliedsnummer', 'value' => $user['kammermitgliedsnummer']],
|
||||
['key' => 'kammer', 'value' => Kammern::loadById($user)],
|
||||
['key' => 'kammern', 'value' => Kammern::load()],
|
||||
['key' => 'displaymenu', 'value' => Resources::displaymenu()],
|
||||
['key' => 'sperren', 'value' => Resources::sperren()],
|
||||
['key' => 'years', 'value' => Resources::years()],
|
||||
['key' => 'next', 'value' => Resources::next()],
|
||||
['key' => 'bundeslaender', 'value' => Resources::bundeslaender()]];
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function is_admin($str)
|
||||
{
|
||||
$_arr = \explode(",", $str);
|
||||
foreach ($_arr as $key => $value) {
|
||||
if ($value == '3') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Bootstrap;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Liste\ArchiveMenu;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
|
||||
class _BootstrapController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'administrator':
|
||||
User::load();
|
||||
break;
|
||||
case 'start_liste':
|
||||
User::load();
|
||||
break;
|
||||
case 'load_archive_menu':
|
||||
ArchiveMenu::load();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, "no xaction switch defined");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Controller;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Test case for class HermannTelser\Zuladungsliste\Controller\ExtrasperrungController.
|
||||
*
|
||||
* @author Hermann Telser <hermann.telser@gmail.com>
|
||||
*/
|
||||
class AdministrationController extends \TYPO3\CMS\Core\Tests\UnitTestCase
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Controller;
|
||||
|
||||
|
||||
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Test case for class HermannTelser\Zuladungsliste\Controller\KriterienController.
|
||||
*
|
||||
* @author Hermann Telser <hermann.telser@gmail.com>
|
||||
*/
|
||||
class ArchitektenController extends ActionController
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \HermannTelser\Zuladungsliste\Controller\KriterienController
|
||||
*/
|
||||
protected $subject = NULL;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\KriterienController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function listActionFetchesAllKriteriensFromRepositoryAndAssignsThemToView()
|
||||
{
|
||||
$allKriteriens = $this->getMock('TYPO3\CMS\Extbase\Persistence\ObjectStorage', array(), array(), '', FALSE);
|
||||
$kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('findAll'), array(), '', FALSE);
|
||||
$kriterienRepository->expects($this->once())->method('findAll')->will($this->returnValue($allKriteriens));
|
||||
$this->inject($this->subject, 'kriterienRepository', $kriterienRepository);
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$view->expects($this->once())->method('assign')->with('kriteriens', $allKriteriens);
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$this->subject->listAction();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function showActionAssignsTheGivenKriterienToView()
|
||||
{
|
||||
$kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien();
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$view->expects($this->once())->method('assign')->with('kriterien', $kriterien);
|
||||
$this->subject->showAction($kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function createActionAddsTheGivenKriterienToKriterienRepository()
|
||||
{
|
||||
$kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien();
|
||||
$kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('add'), array(), '', FALSE);
|
||||
$kriterienRepository->expects($this->once())->method('add')->with($kriterien);
|
||||
$this->inject($this->subject, 'kriterienRepository', $kriterienRepository);
|
||||
$this->subject->createAction($kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function editActionAssignsTheGivenKriterienToView()
|
||||
{
|
||||
$kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien();
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$view->expects($this->once())->method('assign')->with('kriterien', $kriterien);
|
||||
$this->subject->editAction($kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function updateActionUpdatesTheGivenKriterienInKriterienRepository()
|
||||
{
|
||||
$kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien();
|
||||
$kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('update'), array(), '', FALSE);
|
||||
$kriterienRepository->expects($this->once())->method('update')->with($kriterien);
|
||||
$this->inject($this->subject, 'kriterienRepository', $kriterienRepository);
|
||||
$this->subject->updateAction($kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function deleteActionRemovesTheGivenKriterienFromKriterienRepository()
|
||||
{
|
||||
$kriterien = new \HermannTelser\Zuladungsliste\Domain\Model\Kriterien();
|
||||
$kriterienRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository', array('remove'), array(), '', FALSE);
|
||||
$kriterienRepository->expects($this->once())->method('remove')->with($kriterien);
|
||||
$this->inject($this->subject, 'kriterienRepository', $kriterienRepository);
|
||||
$this->subject->deleteAction($kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* action list
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
// $architektens = $this->architektenRepository->findAll();
|
||||
// $this->view->assign('architektens', $architektens);
|
||||
}
|
||||
|
||||
/**
|
||||
* action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function Action()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Controller;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Test case for class HermannTelser\Zuladungsliste\Controller\WettbewerbeController.
|
||||
*
|
||||
* @author Hermann Telser <hermann.telser@gmail.com>
|
||||
*/
|
||||
class ExtrasperrungController extends \TYPO3\CMS\Core\Tests\UnitTestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \HermannTelser\Zuladungsliste\Controller\WettbewerbeController
|
||||
*/
|
||||
protected $subject = NULL;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\WettbewerbeController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function listActionFetchesAllWettbewerbesFromRepositoryAndAssignsThemToView()
|
||||
{
|
||||
$allWettbewerbes = $this->getMock('TYPO3\CMS\Extbase\Persistence\ObjectStorage', array(), array(), '', FALSE);
|
||||
$wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('findAll'), array(), '', FALSE);
|
||||
$wettbewerbeRepository->expects($this->once())->method('findAll')->will($this->returnValue($allWettbewerbes));
|
||||
$this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository);
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$view->expects($this->once())->method('assign')->with('wettbewerbes', $allWettbewerbes);
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$this->subject->listAction();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function showActionAssignsTheGivenWettbewerbeToView()
|
||||
{
|
||||
$wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe();
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$view->expects($this->once())->method('assign')->with('wettbewerbe', $wettbewerbe);
|
||||
$this->subject->showAction($wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function createActionAddsTheGivenWettbewerbeToWettbewerbeRepository()
|
||||
{
|
||||
$wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe();
|
||||
$wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('add'), array(), '', FALSE);
|
||||
$wettbewerbeRepository->expects($this->once())->method('add')->with($wettbewerbe);
|
||||
$this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository);
|
||||
$this->subject->createAction($wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function editActionAssignsTheGivenWettbewerbeToView()
|
||||
{
|
||||
$wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe();
|
||||
$view = $this->getMock('TYPO3\CMS\Extbase\Mvc\View\ViewInterface');
|
||||
$this->inject($this->subject, 'view', $view);
|
||||
$view->expects($this->once())->method('assign')->with('wettbewerbe', $wettbewerbe);
|
||||
$this->subject->editAction($wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function updateActionUpdatesTheGivenWettbewerbeInWettbewerbeRepository()
|
||||
{
|
||||
$wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe();
|
||||
$wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('update'), array(), '', FALSE);
|
||||
$wettbewerbeRepository->expects($this->once())->method('update')->with($wettbewerbe);
|
||||
$this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository);
|
||||
$this->subject->updateAction($wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function deleteActionRemovesTheGivenWettbewerbeFromWettbewerbeRepository()
|
||||
{
|
||||
$wettbewerbe = new \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe();
|
||||
$wettbewerbeRepository = $this->getMock('HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository', array('remove'), array(), '', FALSE);
|
||||
$wettbewerbeRepository->expects($this->once())->method('remove')->with($wettbewerbe);
|
||||
$this->inject($this->subject, 'wettbewerbeRepository', $wettbewerbeRepository);
|
||||
$this->subject->deleteAction($wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function Action()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Controller;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Test case for class HermannTelser\Zuladungsliste\Controller\ExtrasperrungController.
|
||||
*
|
||||
* @author Hermann Telser <hermann.telser@gmail.com>
|
||||
*/
|
||||
class KriterienController extends \TYPO3\CMS\Core\Tests\UnitTestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \HermannTelser\Zuladungsliste\Controller\ExtrasperrungController
|
||||
*/
|
||||
protected $subject = NULL;
|
||||
|
||||
/**
|
||||
* kriterienRepository
|
||||
*
|
||||
* @var \HermannTelser\Zuladungsliste\Domain\Repository\KriterienRepository
|
||||
* @TYPO3CMSExtbaseAnnotationInject
|
||||
*/
|
||||
protected $kriterienRepository = NULL;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->subject = $this->getMock('HermannTelser\Zuladungsliste\Controller\ExtrasperrungController', array('redirect', 'forward', 'addFlashMessage'), array(), '', FALSE);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* action list
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
$kriteriens = $this->kriterienRepository->findAll();
|
||||
$this->view->assign('kriteriens', $kriteriens);
|
||||
}
|
||||
|
||||
/**
|
||||
* action show
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien
|
||||
* @return void
|
||||
*/
|
||||
public function showAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien)
|
||||
{
|
||||
$this->view->assign('kriterien', $kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* action new
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function newAction()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* action create
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $newKriterien
|
||||
* @return void
|
||||
*/
|
||||
public function createAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $newKriterien)
|
||||
{
|
||||
$this->addFlashMessage('The object was created. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->kriterienRepository->add($newKriterien);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
/**
|
||||
* action edit
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien
|
||||
* @TYPO3CMS\Extbase\Annotation\IgnoreValidation $kriterien
|
||||
* @return void
|
||||
*/
|
||||
public function editAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien)
|
||||
{
|
||||
$this->view->assign('kriterien', $kriterien);
|
||||
}
|
||||
|
||||
/**
|
||||
* action update
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien
|
||||
* @return void
|
||||
*/
|
||||
public function updateAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien)
|
||||
{
|
||||
$this->addFlashMessage('The object was updated. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->kriterienRepository->update($kriterien);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
/**
|
||||
* action delete
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien
|
||||
* @return void
|
||||
*/
|
||||
public function deleteAction(\HermannTelser\Zuladungsliste\Domain\Model\Kriterien $kriterien)
|
||||
{
|
||||
$this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->kriterienRepository->remove($kriterien);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Controller;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
use TYPO3\CMS\Extbase\Annotation\Inject;
|
||||
|
||||
/**
|
||||
* Test case for class \HermannTelser\Zuladungsliste\Domain\Model\Architekten.
|
||||
*
|
||||
* @copyright Copyright belongs to the respective authors
|
||||
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
|
||||
* @author Hermann Telser <hermann.telser@gmail.com>
|
||||
*/
|
||||
class WettbewerbeController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \HermannTelser\Zuladungsliste\Domain\Model\Architekten
|
||||
*/
|
||||
protected $subject = NULL;
|
||||
|
||||
/**
|
||||
* wettbewerbeRepository
|
||||
*
|
||||
* @var \HermannTelser\Zuladungsliste\Domain\Repository\WettbewerbeRepository
|
||||
* @TYPO3\CMS\Extbase\Annotation\Inject
|
||||
*/
|
||||
protected $wettbewerbeRepository = NULL;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->subject = new \HermannTelser\Zuladungsliste\Domain\Model\Architekten();
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->subject);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function getInlisteReturnsInitialValueForBool()
|
||||
{
|
||||
$this->assertSame(FALSE, $this->subject->getInliste());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function setInlisteForBoolSetsInliste()
|
||||
{
|
||||
$this->subject->setInliste(TRUE);
|
||||
$this->assertAttributeEquals(TRUE, 'inliste', $this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function getVereidigungReturnsInitialValueForDateTime()
|
||||
{
|
||||
$this->assertEquals(NULL, $this->subject->getVereidigung());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function setVereidigungForDateTimeSetsVereidigung()
|
||||
{
|
||||
$dateTimeFixture = new \DateTime();
|
||||
$this->subject->setVereidigung($dateTimeFixture);
|
||||
$this->assertAttributeEquals($dateTimeFixture, 'vereidigung', $this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function getGeburtsdatumReturnsInitialValueForDateTime()
|
||||
{
|
||||
$this->assertEquals(NULL, $this->subject->getGeburtsdatum());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function setGeburtsdatumForDateTimeSetsGeburtsdatum()
|
||||
{
|
||||
$dateTimeFixture = new \DateTime();
|
||||
$this->subject->setGeburtsdatum($dateTimeFixture);
|
||||
$this->assertAttributeEquals($dateTimeFixture, 'geburtsdatum', $this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function getfrauenfoerderpunktReturnsInitialValueForBool()
|
||||
{
|
||||
$this->assertSame(FALSE, $this->subject->getfrauenfoerderpunkt());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function setfrauenfoerderpunktForBoolSetsfrauenfoerderpunkt()
|
||||
{
|
||||
$this->subject->setfrauenfoerderpunkt(TRUE);
|
||||
$this->assertAttributeEquals(TRUE, 'frauenfoerderpunkt', $this->subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* action list
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
$wettbewerbes = $this->wettbewerbeRepository->findAll();
|
||||
$this->view->assign('wettbewerbes', $wettbewerbes);
|
||||
}
|
||||
|
||||
/**
|
||||
* action show
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe
|
||||
* @return void
|
||||
*/
|
||||
public function showAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe)
|
||||
{
|
||||
$this->view->assign('wettbewerbe', $wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* action new
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function newAction()
|
||||
{
|
||||
//// top.TYPO3.Backend.NavigationContainer.PageTree.select(38);
|
||||
echo '<script>
|
||||
if (top && top.TYPO3.Backend.NavigationContainer.PageTree) {
|
||||
top.TYPO3.ModuleMenu.App.showModule("web_list");
|
||||
}
|
||||
window.open("http://'.$_SERVER["SERVER_NAME"].':index.php?id=34","_blank");
|
||||
</script>';
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* action create
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $newWettbewerbe
|
||||
* @return void
|
||||
*/
|
||||
public function createAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $newWettbewerbe)
|
||||
{
|
||||
$this->addFlashMessage('The object was created. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->wettbewerbeRepository->add($newWettbewerbe);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
/**
|
||||
* action edit
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe
|
||||
* @TYPO3\CMS\Extbase\Annotation\IgnoreValidation $wettbewerbe
|
||||
* @return void
|
||||
*/
|
||||
public function editAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe)
|
||||
{
|
||||
$this->view->assign('wettbewerbe', $wettbewerbe);
|
||||
}
|
||||
|
||||
/**
|
||||
* action update
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe
|
||||
* @return void
|
||||
*/
|
||||
public function updateAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe)
|
||||
{
|
||||
$this->addFlashMessage('The object was updated. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->wettbewerbeRepository->update($wettbewerbe);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
/**
|
||||
* action delete
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe
|
||||
* @return void
|
||||
*/
|
||||
public function deleteAction(\HermannTelser\Zuladungsliste\Domain\Model\Wettbewerbe $wettbewerbe)
|
||||
{
|
||||
$this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
|
||||
$this->wettbewerbeRepository->remove($wettbewerbe);
|
||||
$this->redirect('list');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,193 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Architeckten model extends FrondenUser model
|
||||
*/
|
||||
class Architekten extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
|
||||
{
|
||||
|
||||
/**
|
||||
* kammermitgliedsnummer
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $kammermitgliedsnummer;
|
||||
|
||||
/**
|
||||
* inliste
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $inliste = false;
|
||||
|
||||
/**
|
||||
* vereidigung
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $vereidigung = null;
|
||||
|
||||
/**
|
||||
* geburtsdatum
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $geburtsdatum = null;
|
||||
|
||||
/**
|
||||
* frauenfoerderpunkt
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $frauenfoerderpunkt = false;
|
||||
|
||||
/**
|
||||
* Returns the kammermitgliedsnummer
|
||||
*
|
||||
* @return string $kammermitgliedsnummer
|
||||
*/
|
||||
public function getKammermitgliedsnummer() {
|
||||
return $this->kammermitgliedsnummer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the kammermitgliedsnummer
|
||||
*
|
||||
* @param string $kammermitgliedsnummer
|
||||
* @return void
|
||||
*/
|
||||
public function setKammermitgliedsnummer($kammermitgliedsnummer) {
|
||||
$this->kammermitgliedsnummer = $kammermitgliedsnummer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the inliste
|
||||
*
|
||||
* @return bool $inliste
|
||||
*/
|
||||
public function getInliste()
|
||||
{
|
||||
return $this->inliste;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the inliste
|
||||
*
|
||||
* @param bool $inliste
|
||||
* @return void
|
||||
*/
|
||||
public function setInliste($inliste)
|
||||
{
|
||||
$this->inliste = $inliste;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the boolean state of inliste
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isInliste()
|
||||
{
|
||||
return $this->inliste;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the vereidigung
|
||||
*
|
||||
* @return \DateTime $vereidigung
|
||||
*/
|
||||
public function getVereidigung()
|
||||
{
|
||||
return $this->vereidigung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the vereidigung
|
||||
*
|
||||
* @param \DateTime $vereidigung
|
||||
* @return void
|
||||
*/
|
||||
public function setVereidigung(\DateTime $vereidigung)
|
||||
{
|
||||
$this->vereidigung = $vereidigung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the geburtsdatum
|
||||
*
|
||||
* @return \DateTime $geburtsdatum
|
||||
*/
|
||||
public function getGeburtsdatum()
|
||||
{
|
||||
return $this->geburtsdatum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the geburtsdatum
|
||||
*
|
||||
* @param \DateTime $geburtsdatum
|
||||
* @return void
|
||||
*/
|
||||
public function setGeburtsdatum(\DateTime $geburtsdatum)
|
||||
{
|
||||
$this->geburtsdatum = $geburtsdatum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the frauenfoerderpunkt
|
||||
*
|
||||
* @return bool $frauenfoerderpunkt
|
||||
*/
|
||||
public function getfrauenfoerderpunkt()
|
||||
{
|
||||
return $this->frauenfoerderpunkt;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the frauenfoerderpunkt
|
||||
*
|
||||
* @param bool $frauenfoerderpunkt
|
||||
* @return void
|
||||
*/
|
||||
public function setfrauenfoerderpunkt($frauenfoerderpunkt)
|
||||
{
|
||||
$this->frauenfoerderpunkt = $frauenfoerderpunkt;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the boolean state of frauenfoerderpunkt
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isfrauenfoerderpunkt()
|
||||
{
|
||||
return $this->frauenfoerderpunkt;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Extrasperrung
|
||||
*/
|
||||
class Extrasperrung extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
|
||||
/**
|
||||
* begruendung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $begruendung = '';
|
||||
|
||||
/**
|
||||
* sperrzeitbis
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $sperrzeitbis = null;
|
||||
|
||||
/**
|
||||
* extrasperrungUser
|
||||
*
|
||||
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage
|
||||
*/
|
||||
protected $extrasperrungUser = null;
|
||||
|
||||
/**
|
||||
* Returns the begruendung
|
||||
*
|
||||
* @return string $begruendung
|
||||
*/
|
||||
public function getBegruendung()
|
||||
{
|
||||
return $this->begruendung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the begruendung
|
||||
*
|
||||
* @param string $begruendung
|
||||
* @return void
|
||||
*/
|
||||
public function setBegruendung($begruendung)
|
||||
{
|
||||
$this->begruendung = $begruendung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sperrzeitbis
|
||||
*
|
||||
* @return \DateTime $sperrzeitbis
|
||||
*/
|
||||
public function getSperrzeitbis()
|
||||
{
|
||||
return $this->sperrzeitbis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the sperrzeitbis
|
||||
*
|
||||
* @param \DateTime $sperrzeitbis
|
||||
* @return void
|
||||
*/
|
||||
public function setSperrzeitbis(\DateTime $sperrzeitbis)
|
||||
{
|
||||
$this->sperrzeitbis = $sperrzeitbis;
|
||||
}
|
||||
|
||||
/**
|
||||
* __construct
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//Do not remove the next line: It would break the functionality
|
||||
$this->initStorageObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes all ObjectStorage properties
|
||||
* Do not modify this method!
|
||||
* It will be rewritten on each save in the extension builder
|
||||
* You may modify the constructor of this class instead
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function initStorageObjects()
|
||||
{
|
||||
$this->extrasperrungUser = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Kammern
|
||||
*/
|
||||
class Kammern extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
|
||||
/**
|
||||
* bezeichnung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bezeichnung = '';
|
||||
|
||||
/**
|
||||
* Returns the bezeichnung
|
||||
*
|
||||
* @return string $bezeichnung
|
||||
*/
|
||||
public function getBezeichnung()
|
||||
{
|
||||
return $this->bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the bezeichnung
|
||||
*
|
||||
* @param string $bezeichnung
|
||||
* @return void
|
||||
*/
|
||||
public function setBezeichnung($bezeichnung)
|
||||
{
|
||||
$this->bezeichnung = $bezeichnung;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Wetbewerbsarten mit Bewertung
|
||||
*/
|
||||
class Kriterien extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
/**
|
||||
* bezeichnung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bezeichnung = '';
|
||||
|
||||
/**
|
||||
* sektionstagid
|
||||
*
|
||||
* @var \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage
|
||||
*/
|
||||
protected $sektionstagid = null;
|
||||
|
||||
/**
|
||||
* Returns the bezeichnung
|
||||
*
|
||||
* @return string $bezeichnung
|
||||
*/
|
||||
public function getBezeichnung()
|
||||
{
|
||||
return $this->bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the bezeichnung
|
||||
*
|
||||
* @param string $bezeichnung
|
||||
* @return void
|
||||
*/
|
||||
public function setBezeichnung($bezeichnung)
|
||||
{
|
||||
$this->bezeichnung = $bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sektionstagid
|
||||
*
|
||||
* @return \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektionstagid
|
||||
*/
|
||||
public function getsektionstagid()
|
||||
{
|
||||
return $this->sektionstagid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the sektionstagid
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektionstagid
|
||||
* @return void
|
||||
*/
|
||||
public function setsektionstagid(\HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektionstagid)
|
||||
{
|
||||
$this->sektionstagid = $sektionstagid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Punkte
|
||||
*/
|
||||
class Punkte extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
|
||||
/**
|
||||
* bezeichnung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bezeichnung = '';
|
||||
|
||||
/**
|
||||
* Returns the bezeichnung
|
||||
*
|
||||
* @return string $bezeichnung
|
||||
*/
|
||||
public function getBezeichnung()
|
||||
{
|
||||
return $this->bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the bezeichnung
|
||||
*
|
||||
* @param string $bezeichnung
|
||||
* @return void
|
||||
*/
|
||||
public function setBezeichnung($bezeichnung)
|
||||
{
|
||||
$this->bezeichnung = $bezeichnung;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Wetbewerbsarten mit Bewertung
|
||||
*/
|
||||
class Ruhestellungen extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
/**
|
||||
* bezeichnung
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $ruhestellung_start = null;
|
||||
|
||||
/**
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $ruhestellung_end = null;
|
||||
|
||||
/**
|
||||
* uid_ruhestellung
|
||||
*
|
||||
* @var \HermannTelser\Zuladungsliste\Domain\Model\Architekten
|
||||
*/
|
||||
protected $uid_ruhestellung = null;
|
||||
|
||||
|
||||
/**
|
||||
* Returns the ruhestellung_start
|
||||
*
|
||||
* @return \DateTime $ruhestellung_start
|
||||
*/
|
||||
public function getRuhestellung_Start()
|
||||
{
|
||||
return $this->ruhestellung_start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ruhestellung_start
|
||||
*
|
||||
* @param \DateTime $ruhestellung_start
|
||||
* @return void
|
||||
*/
|
||||
public function setRuhestellung_Start(\DateTime $ruhestellung_start)
|
||||
{
|
||||
$this->sperrzeitbis = $ruhestellung_start;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the ruhestellung_end
|
||||
*
|
||||
* @return \DateTime $ruhestellung_end
|
||||
*/
|
||||
public function getRuhestellung_End()
|
||||
{
|
||||
return $this->ruhestellung_end;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ruhestellung_end
|
||||
*
|
||||
* @param \DateTime $ruhestellung_end
|
||||
* @return void
|
||||
*/
|
||||
public function setRuhestellung_End(\DateTime $ruhestellung_end)
|
||||
{
|
||||
$this->sperrzeitbis = $ruhestellung_end;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,227 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Sektionstage
|
||||
*/
|
||||
class Sektionstage extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
/**
|
||||
* bezeichnung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bezeichnung = '';
|
||||
|
||||
/**
|
||||
* stichtag
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $stichtag = null;
|
||||
|
||||
/**
|
||||
* sperrzeit
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $sperrzeit = 0;
|
||||
|
||||
/**
|
||||
* punktezeit
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $punktezeit = 0;
|
||||
|
||||
|
||||
/**
|
||||
* neueinsteiger
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $neueinsteiger = 0;
|
||||
|
||||
|
||||
/**
|
||||
* frauenfoerderung
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $frauenfoerderung = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Returns the bezeichnung
|
||||
*
|
||||
* @return string $bezeichnung
|
||||
*/
|
||||
public function getBezeichnung()
|
||||
{
|
||||
return $this->bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the bezeichnung
|
||||
*
|
||||
* @param string $bezeichnung
|
||||
* @return void
|
||||
*/
|
||||
public function setBezeichnung($bezeichnung)
|
||||
{
|
||||
$this->bezeichnung = $bezeichnung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the stichtag
|
||||
*
|
||||
* @return \DateTime $stichtag
|
||||
*/
|
||||
public function getStichtag()
|
||||
{
|
||||
return $this->stichtag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the stichtag
|
||||
*
|
||||
* @param \DateTime $stichtag
|
||||
* @return void
|
||||
*/
|
||||
public function setStichtag(\DateTime $stichtag)
|
||||
{
|
||||
$this->stichtag = $stichtag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sperrzeit
|
||||
*
|
||||
* @return int $sperrzeit
|
||||
*/
|
||||
public function getSperrzeit()
|
||||
{
|
||||
return $this->sperrzeit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the sperrzeit
|
||||
*
|
||||
* @param int $sperrzeit
|
||||
* @return void
|
||||
*/
|
||||
public function setSperrzeit($sperrzeit)
|
||||
{
|
||||
$this->sperrzeit = $sperrzeit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the punktezeit
|
||||
*
|
||||
* @return int $punktezeit
|
||||
*/
|
||||
public function getPunktezeit()
|
||||
{
|
||||
return $this->punktezeit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the punktezeit
|
||||
*
|
||||
* @param int $punktezeit
|
||||
* @return void
|
||||
*/
|
||||
public function setPunktezeit($punktezeit)
|
||||
{
|
||||
$this->punktezeit = $punktezeit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the neueinsteiger
|
||||
*
|
||||
* @return int $neueinsteiger
|
||||
*/
|
||||
public function getNeueinsteiger()
|
||||
{
|
||||
return $this->neueinsteiger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the neueinsteiger
|
||||
*
|
||||
* @param int $neueinsteiger
|
||||
* @return void
|
||||
*/
|
||||
public function setNeueinsteiger($neueinsteiger)
|
||||
{
|
||||
$this->neueinsteiger = $neueinsteiger;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the frauenfoerderung
|
||||
*
|
||||
* @return int $frauenfoerderung
|
||||
*/
|
||||
public function getFrauenfoerderung()
|
||||
{
|
||||
return $this->frauenfoerderung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the frauenfoerderung
|
||||
*
|
||||
* @param int $frauenfoerderung
|
||||
* @return void
|
||||
*/
|
||||
public function setFrauenfoerderung($frauenfoerderung)
|
||||
{
|
||||
$this->frauenfoerderung = $frauenfoerderung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the kammernid
|
||||
*
|
||||
* @return \HermannTelser\Zuladungsliste\Domain\Model\Kammern kammernid
|
||||
*/
|
||||
public function getKammernid()
|
||||
{
|
||||
return $this->kammernid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the kammernid
|
||||
*
|
||||
* @param \HermannTelser\Zuladungsliste\Domain\Model\Kammern $kammernid
|
||||
* @return void
|
||||
*/
|
||||
public function setKammernid(\HermannTelser\Zuladungsliste\Domain\Model\Kammern $kammernid)
|
||||
{
|
||||
$this->kammernid = $kammernid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,355 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Model;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* Wettbewerbe und Preise
|
||||
*/
|
||||
class Wettbewerbe extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
|
||||
{
|
||||
|
||||
/**
|
||||
* wettbewerb
|
||||
*
|
||||
* @var string
|
||||
* @TYPO3\CMS\Extbase\Annotation\Validate NotEmpty
|
||||
*/
|
||||
protected $wettbewerb = '';
|
||||
|
||||
/**
|
||||
* beschreibung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $beschreibung = '';
|
||||
|
||||
/**
|
||||
* registrierung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $registrierung = '';
|
||||
|
||||
/**
|
||||
* verfahrensort
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $verfahrensort = '';
|
||||
|
||||
/**
|
||||
* bundesland
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bundesland = '';
|
||||
|
||||
/**
|
||||
* abgabetermin
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $abgabetermin = null;
|
||||
|
||||
/**
|
||||
* kammerbeschluss
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $kammerbeschluss = null;
|
||||
|
||||
/**
|
||||
* entscheidungstermin
|
||||
*
|
||||
* @var \DateTime
|
||||
*/
|
||||
protected $entscheidungstermin = null;
|
||||
|
||||
/**
|
||||
* sperrung
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $sperrung = false;
|
||||
|
||||
/**
|
||||
* aufgabenstellung
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $aufgabenstellung = '';
|
||||
|
||||
/**
|
||||
* wettbewerbUser
|
||||
*
|
||||
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\HermannTelser\Zuladungsliste\Domain\Model\Architekten>
|
||||
*/
|
||||
protected $wettbewerbUser = null;
|
||||
|
||||
/**
|
||||
* Returns the wettbewerb
|
||||
*
|
||||
* @return string $wettbewerb
|
||||
*/
|
||||
public function getWettbewerb()
|
||||
{
|
||||
return $this->wettbewerb;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the wettbewerb
|
||||
*
|
||||
* @param string $wettbewerb
|
||||
* @return void
|
||||
*/
|
||||
public function setWettbewerb($wettbewerb)
|
||||
{
|
||||
$this->wettbewerb = $wettbewerb;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the beschreibung
|
||||
*
|
||||
* @return string $beschreibung
|
||||
*/
|
||||
public function getBeschreibung()
|
||||
{
|
||||
return $this->beschreibung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the beschreibung
|
||||
*
|
||||
* @param string $beschreibung
|
||||
* @return void
|
||||
*/
|
||||
public function setBeschreibung($beschreibung)
|
||||
{
|
||||
$this->beschreibung = $beschreibung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the registrierung
|
||||
*
|
||||
* @return string $registrierung
|
||||
*/
|
||||
public function getRegistrierung()
|
||||
{
|
||||
return $this->registrierung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the registrierung
|
||||
*
|
||||
* @param string $registrierung
|
||||
* @return void
|
||||
*/
|
||||
public function setRegistrierung($registrierung)
|
||||
{
|
||||
$this->registrierung = $registrierung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the verfahrensort
|
||||
*
|
||||
* @return string $verfahrensort
|
||||
*/
|
||||
public function getVerfahrensort()
|
||||
{
|
||||
return $this->verfahrensort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the verfahrensort
|
||||
*
|
||||
* @param string $verfahrensort
|
||||
* @return void
|
||||
*/
|
||||
public function setVerfahrensort($verfahrensort)
|
||||
{
|
||||
$this->verfahrensort = $verfahrensort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the bundesland
|
||||
*
|
||||
* @return string $bundesland
|
||||
*/
|
||||
public function getBundesland()
|
||||
{
|
||||
return $this->bundesland;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the bundesland
|
||||
*
|
||||
* @param string $bundesland
|
||||
* @return void
|
||||
*/
|
||||
public function setBundesland($bundesland)
|
||||
{
|
||||
$this->bundesland = $bundesland;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the abgabetermin
|
||||
*
|
||||
* @return \DateTime $abgabetermin
|
||||
*/
|
||||
public function getAbgabetermin()
|
||||
{
|
||||
return $this->abgabetermin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the abgabetermin
|
||||
*
|
||||
* @param \DateTime $abgabetermin
|
||||
* @return void
|
||||
*/
|
||||
public function setAbgabetermin(\DateTime $abgabetermin)
|
||||
{
|
||||
$this->abgabetermin = $abgabetermin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the kammerbeschluss
|
||||
*
|
||||
* @return \DateTime $kammerbeschluss
|
||||
*/
|
||||
public function getKammerbeschluss()
|
||||
{
|
||||
return $this->kammerbeschluss;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the kammerbeschluss
|
||||
*
|
||||
* @param \DateTime $kammerbeschluss
|
||||
* @return void
|
||||
*/
|
||||
public function setKammerbeschluss(\DateTime $kammerbeschluss)
|
||||
{
|
||||
$this->kammerbeschluss = $kammerbeschluss;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the entscheidungstermin
|
||||
*
|
||||
* @return \DateTime $entscheidungstermin
|
||||
*/
|
||||
public function getEntscheidungstermin()
|
||||
{
|
||||
return $this->entscheidungstermin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the entscheidungstermin
|
||||
*
|
||||
* @param \DateTime $entscheidungstermin
|
||||
* @return void
|
||||
*/
|
||||
public function setEntscheidungstermin(\DateTime $entscheidungstermin)
|
||||
{
|
||||
$this->entscheidungstermin = $entscheidungstermin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sperrung
|
||||
*
|
||||
* @return bool $sperrung
|
||||
*/
|
||||
public function getSperrung()
|
||||
{
|
||||
return $this->sperrung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the sperrung
|
||||
*
|
||||
* @param bool $sperrung
|
||||
* @return void
|
||||
*/
|
||||
public function setSperrung($sperrung)
|
||||
{
|
||||
$this->sperrung = $sperrung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the boolean state of sperrung
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isSperrung()
|
||||
{
|
||||
return $this->sperrung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the aufgabenstellung
|
||||
*
|
||||
* @return string $aufgabenstellung
|
||||
*/
|
||||
public function getAufgabenstellung()
|
||||
{
|
||||
return $this->aufgabenstellung;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the aufgabenstellung
|
||||
*
|
||||
* @param string $aufgabenstellung
|
||||
* @return void
|
||||
*/
|
||||
public function setAufgabenstellung($aufgabenstellung)
|
||||
{
|
||||
$this->aufgabenstellung = $aufgabenstellung;
|
||||
}
|
||||
|
||||
/**
|
||||
* __construct
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//Do not remove the next line: It would break the functionality
|
||||
$this->initStorageObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes all ObjectStorage properties
|
||||
* Do not modify this method!
|
||||
* It will be rewritten on each save in the extension builder
|
||||
* You may modify the constructor of this class instead
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function initStorageObjects()
|
||||
{
|
||||
$this->wettbewerbUser = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Repository;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* The repository for Architektens
|
||||
*/
|
||||
class ArchitektenRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Repository;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* The repository for Kriteriens
|
||||
*/
|
||||
class KriterienRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Repository;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016 Hermann Telser <hermann.telser@gmail.com>, Hermann Telser
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
|
||||
/**
|
||||
* The repository for Ruhestellungen
|
||||
*/
|
||||
class RuhestellungenRepository extends Repository
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
namespace HermannTelser\Zuladungsliste\Domain\Repository;
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2016
|
||||
*
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
/**
|
||||
* The repository for Wettbewerbes
|
||||
*/
|
||||
class WettbewerbeRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Download;
|
||||
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Core\Environment;
|
||||
|
||||
class PdfEinreichung
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function download()
|
||||
{
|
||||
|
||||
$pdfname = GeneralUtility::_GP("pdf");
|
||||
$userid = GeneralUtility::_GP("userid");
|
||||
$file = Environment::getPublicPath() . "/uploads/tx_zuladungsliste/" . $userid . "/" . $pdfname;
|
||||
|
||||
echo $file;
|
||||
|
||||
if(file_exists($file)) {
|
||||
header('Content-Description: File Transfer');
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-Disposition: attachment; filename='.basename($file));
|
||||
header('Content-Transfer-Encoding: binary');
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||
header('Pragma: public');
|
||||
header('Content-Length: ' . filesize($file));
|
||||
ob_clean();
|
||||
flush();
|
||||
readfile($file);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Download;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Sektionstage;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Liste\ListeTree;
|
||||
use Mpdf;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use DateTime;
|
||||
|
||||
class PdfListe
|
||||
{
|
||||
public static $Mpdf;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function download()
|
||||
{
|
||||
new _Berechnung();
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
$pdf_archive_id = GeneralUtility::_GP('pdf_archive_id');
|
||||
$kammernid = GeneralUtility::_GP('kammernid');
|
||||
$extPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('zuladungsliste');
|
||||
|
||||
Sektionstage::load();
|
||||
// exit;
|
||||
|
||||
if ($pdf_archive_id) {
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
|
||||
$statement = $queryBuilder
|
||||
->select('liste', 'erstellt_am', 'kammernid')
|
||||
->from('tx_zuladungsliste_archive_admin')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $pdf_archive_id)
|
||||
)
|
||||
->execute()->fetchAll();
|
||||
$tmp = json_decode($statement[0]['liste'], true);
|
||||
$erstellt_am = $statement[0]['erstellt_am'];
|
||||
$kammernid = $statement[0]['kammernid'];
|
||||
} else {
|
||||
_Berechnung::berechnen();
|
||||
|
||||
ListeTree::set_dijit();
|
||||
|
||||
$tmp = _Berechnung::$_return;
|
||||
$t = new DateTime();
|
||||
$erstellt_am = $t->format('Y-m-d');
|
||||
}
|
||||
|
||||
$door = 'open';
|
||||
$_liste = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
if ($value['hasChildren'] == 1 and $value['punkte'] == 0) {
|
||||
$door = 'close';
|
||||
}
|
||||
if ($door == 'open') {
|
||||
$_liste[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// dd($_liste);
|
||||
|
||||
self::$Mpdf = new \Mpdf\Mpdf([
|
||||
'mode' => 'utf-8',
|
||||
'format' => 'A4-L',
|
||||
'margin_left' => 7,
|
||||
'margin_right' => 7,
|
||||
'margin_top' => 12,
|
||||
'margin_bottom' => 12,
|
||||
'margin_header' => 0,
|
||||
'margin_footer' => 0,
|
||||
]);
|
||||
self::$Mpdf->SetTitle("ZL vom " . $erstellt_am);
|
||||
$stylesheet = file_get_contents($extPath.'Classes/Download/style.css');
|
||||
self::$Mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
|
||||
|
||||
// logo
|
||||
$html = '<div>';
|
||||
$html .= '<img src="'.$extPath.'Resources/Public/Images/logo-archwest-adler.png" style="height:17mm; width:auto">';
|
||||
|
||||
// wappen
|
||||
// switch ($kammernid) {
|
||||
// case 1:
|
||||
// $image = $extPath.'Resources/Public/Images/wappen-tirol.svg';
|
||||
// break;
|
||||
// case 2:
|
||||
// $image = $extPath.'Resources/Public/Images/wappen-vorarlberg.svg';
|
||||
// break;
|
||||
// }
|
||||
// $wappen = '<img src="'.$image.'" style="height:10mm; width:auto">';
|
||||
|
||||
// header
|
||||
// $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_kammern');
|
||||
// $kammer = $queryBuilder
|
||||
// ->select('bezeichnung')
|
||||
// ->from('tx_zuladungsliste_domain_model_kammern')
|
||||
// ->where(
|
||||
// $queryBuilder->expr()->eq('uid', (int) $kammernid)
|
||||
// )
|
||||
// ->execute()->fetchOne();
|
||||
// switch($kammernid) {
|
||||
// case 1:
|
||||
// $html .= '<div class="liste-titel">Wettbewerbzuladungsliste Kammer der ZiviltechnikerInnen für Tirol</div>';
|
||||
// break;
|
||||
// case 2:
|
||||
// $html .= '<div class="liste-titel">Wettbewerbzuladungsliste Kammer der ZiviltechnikerInnen für Vorarlberg</div>';
|
||||
// break;
|
||||
// }
|
||||
$html .= '<div class="liste-titel">Wettbewerbzuladungsliste vom ' . $erstellt_am . '</div>';
|
||||
|
||||
|
||||
|
||||
// sub header
|
||||
// $sektionstag = Sektionstage::filter($timestamp);
|
||||
// $html .= '<p class="center">Stand ' . $erstellt_am . ', auf Basis des Sektionstages vom '.$sektionstag['stichtag'].', '.$sektionstag['bezeichnung'].'</p>';
|
||||
$html .= '<p class="liste-subtitel">Die Wettbewerbsliste wurde vom Sektionstag der Sektion Architekt:innen am 13.11.1998 mit Zusätzen vom 04.10.2001, 14.06.2004, 27.03.2007, 20.06.2013, 15.09.2014, 09.10.2017, 14.10.2019, 25.04.2022 beschlossen. Dabei handelt es sich um eine Liste, aus der die Kammer nach einem Punktesystem Architekt:innen für Wettbewerbe nominiert.</p>';
|
||||
// print_r($_liste);
|
||||
// exit;
|
||||
|
||||
self::movePartnerToTeilhaber($_liste);
|
||||
|
||||
$bggrau = "";
|
||||
$html .= '<table class="pure-table pure-table-bordered liste">';
|
||||
$html .= '<tr><th>Reihung</th><th>Nennung</th><th>Teilnehmer:innen</th><th>Verfall Punkte</th><th>Sperre bis</th><th>Preis/Zuladung</th><th>Punkte</th><th>Wettbewerb</th><tr>';
|
||||
foreach ($_liste as $key => $value) {
|
||||
if (isset($value['user_id'])) {
|
||||
if ($key > 0) {
|
||||
$html .= '<tr class="border-table"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
|
||||
}
|
||||
if (0 == $value['pos']) {
|
||||
$value['pos'] = '';
|
||||
} else {
|
||||
$value['gesperrt_bis'] = "";
|
||||
}
|
||||
if ($value['pos']) {
|
||||
$html .= '<tr>';
|
||||
$bggrau = "";
|
||||
} else {
|
||||
$html .= '<tr class="bg-grau">';
|
||||
$bggrau = "bg-grau";
|
||||
$value['pos'] = "Gesperrt";
|
||||
}
|
||||
$html .= "<td class=\"center\">".$value['rang'].'</td>';
|
||||
$html .= "<td class=\"center \">".$value['pos'].'</td>';
|
||||
if($value['burogemeinschaft'] == 1){
|
||||
$html .= "<td>" . $value['company'] . '<br><span class="small">' . $value['teilhaber'] . '</small></td>';
|
||||
}
|
||||
else {
|
||||
$html .= "<td>" . $value['company'] . '<br><span class="small">' . $value['name'] . '</small></td>';
|
||||
}
|
||||
|
||||
// $html .= "<td>" . $value['company'] . '<br><span class="small">' . $value['teilhaber'] . '</small></td>';
|
||||
$html .= "<td class=\"center\">Verfall Punkte</td>";
|
||||
$html .= "<td class=\"center\">" . $value['gesperrt_bis'] . '</td>';
|
||||
$html .= "<td class=\"center\">Preis/Zuladung</td>";
|
||||
if ($value['punkte']) {
|
||||
$html .= "<td class=\"center bg-grau-d\">" . number_format($value['punkte'], 2) . '</td>';
|
||||
} else {
|
||||
$html .= "<td class=\"center\"></td>";
|
||||
}
|
||||
$html .= "<td class=\"center\">Wettbewerb</td>";
|
||||
$html .= '</tr>';
|
||||
} elseif (isset($value['type'])) {
|
||||
switch ($value['type']) {
|
||||
case 'neueinsteiger':
|
||||
case 'frauenfoerderpunkt':
|
||||
if ($value['punkte']) {
|
||||
// [id] => 3
|
||||
// [company] => Neueinsteigerpunkt
|
||||
// [kommentar] => Gültig bis 2023-07-31<sup>2</sup>
|
||||
// [hasChildren] => 0
|
||||
// [parent] => 1
|
||||
// [punkte] => 1
|
||||
// [nominiert] => 2
|
||||
// [gesperrt_bis] =>
|
||||
// [type] => neueinsteiger
|
||||
$html .= '<tr class="' . $bggrau . '">';
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td class=\"center\">".str_replace("Gültig bis ", "", $value['kommentar'])."</td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td>".$value['company']."</td>";
|
||||
$html .= "<td class=\"center\">" . number_format($value['punkte'], 2) . '</td>';
|
||||
$html .= "<td></td>";
|
||||
$html .= '</tr>';
|
||||
}
|
||||
break;
|
||||
case 'wettbewerb':
|
||||
// "id": 5,
|
||||
// "company": "Off. WB Neubau Hofgartencafe Innsbruck<br><i class=\"fa fa-trophy\"></i> Anerkennung",
|
||||
// "gesperrt_bis": "",
|
||||
// "kommentar": "",
|
||||
// "entscheidungstermin": "2022-11-25",
|
||||
// "zuladung": 0,
|
||||
// "valid": "2025-11-25",
|
||||
// "hasChildren": 0,
|
||||
// "parent": 1,
|
||||
// "punkte": 4,
|
||||
// "nominiert": 2,
|
||||
// "punkte_aktive": 1,
|
||||
// "geladen": null,
|
||||
// "type": "wettbewerb"
|
||||
#############
|
||||
// 'Keine Spezielle Zuladung', => 0
|
||||
// 'Zuladung durch Auslober:in' => 1
|
||||
// 'Zuladung durch Kammer' => 2
|
||||
// 'Zuladung durch Auslosung' => 3
|
||||
|
||||
$zuladung = "";
|
||||
switch ($value['ladung_durch_auslober']) {
|
||||
case '1':
|
||||
$zuladung = 'Zuladung durch Auslober:in';
|
||||
break;
|
||||
case '2':
|
||||
$zuladung = 'Zuladung durch Kammer';
|
||||
break;
|
||||
case '3':
|
||||
$zuladung = 'Zuladung durch Auslosung';
|
||||
break;
|
||||
}
|
||||
#############
|
||||
$html .= '<tr class="' . $bggrau . '">';
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td class=\"center\">".$value['valid']."</td>";
|
||||
$html .= "<td class=\"center\">" . $value['gesperrt_bis'] . '</td>';
|
||||
if ($value['bezeichnung_punkte'] != "" and $zuladung != "") {
|
||||
$html .= "<td>". $value['bezeichnung_punkte'] . "<br>" . $zuladung . "</td>";
|
||||
} else {
|
||||
$html .= "<td>". $value['bezeichnung_punkte'] . $zuladung . "</td>";
|
||||
}
|
||||
if ($value['punkte']) {
|
||||
$html .= "<td class=\"center\">" . number_format($value['punkte'], 2) . '</td>';
|
||||
} else {
|
||||
$html .= "<td></td>";
|
||||
}
|
||||
$html .= "<td>".$value['company']."</td>";
|
||||
$html .= '</tr>';
|
||||
break;
|
||||
case 'sondersperrung':
|
||||
// [id] => 38
|
||||
// [company] => Sondersperrung
|
||||
// [kommentar] => Ablehnung Baufeld Neuwirt, Götzens
|
||||
// [hasChildren] => 0
|
||||
// [parent] => 37
|
||||
// [punkte] => 0
|
||||
// [nominiert] => 2
|
||||
// [gesperrt_bis] => 04.02.2023
|
||||
// [type] => sondersperrung
|
||||
$html .= '<tr class="' . $bggrau . '">';
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td class=\"center\">" . $value['gesperrt_bis'] . '</td>';
|
||||
$html .= "<td>".$value['company']."</td>";
|
||||
$html .= "<td></td>";
|
||||
$html .= "<td>".$value['kommentar']."</td>";
|
||||
$html .= '</tr>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$html .= '</table>';
|
||||
|
||||
self::$Mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY);
|
||||
|
||||
self::$Mpdf->Output('Standard.pdf', Mpdf\Output\Destination::INLINE);
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
public static function movePartnerToTeilhaber(&$_liste)
|
||||
{
|
||||
foreach ($_liste as $key => $value) {
|
||||
if ($value['burogemeinschaft']) {
|
||||
$key1 = $key +1;
|
||||
$_liste[$key]['teilhaber'] = str_replace("<br>", " ", $_liste[$key1]['kommentar']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Download;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
|
||||
class _DownloadController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'download_pdf':
|
||||
PdfListe::download();
|
||||
break;
|
||||
case 'download_einreichung':
|
||||
PdfEinreichung::download();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.1em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.liste-titel {
|
||||
font-family: sans-serif;
|
||||
padding: 15mm 0 0;
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin: 1em auto;
|
||||
}
|
||||
|
||||
.rot {
|
||||
color: #800;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.filter {
|
||||
background-color: #eee;
|
||||
border: 1px solid #cbcbcb;
|
||||
padding: 0.5rem 1rem;
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
/* PURE TABLES START */
|
||||
.pure-table {
|
||||
/* Remove spacing between table cells (from Normalize.css) */
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
empty-cells: show;
|
||||
border: 1px solid #cbcbcb;
|
||||
}
|
||||
|
||||
.pure-table td,
|
||||
.pure-table th,
|
||||
.pure-table-noborder td,
|
||||
.pure-table-noborder th {
|
||||
border-left: 1px solid #cbcbcb;
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
/* inner column border */
|
||||
border-width: 0 0 1px 1px;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
/*to make ths where the title is really long work*/
|
||||
padding: .7em 1em;
|
||||
/* cell padding */
|
||||
}
|
||||
|
||||
.pure-table td {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.pure-table-odd td {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
/* nth-child selector for modern browsers */
|
||||
.pure-table-striped tr:nth-child(2n-1) td {
|
||||
background-color: #eee;
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
}
|
||||
|
||||
/* BORDERED TABLES */
|
||||
.pure-table-bordered td {
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
}
|
||||
|
||||
.pure-table-bordered tbody>tr:last-child>td {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
/* HORIZONTAL BORDERED TABLES */
|
||||
.pure-table-horizontal td,
|
||||
.pure-table-horizontal th {
|
||||
border-width: 0 0 1px 0;
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
}
|
||||
|
||||
.pure-table-horizontal tbody>tr:last-child>td {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.1rem;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.liste-titel {
|
||||
font-family: sans-serif;
|
||||
padding: 15mm 0 0;
|
||||
font-size: 1.8em;
|
||||
text-align: center;
|
||||
}
|
||||
.liste-subtitel {
|
||||
font-size: 1.1em;
|
||||
line-height: 1.3;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.liste {
|
||||
width: 100%;
|
||||
font-size: 0.9em;
|
||||
margin-top: 7mm;
|
||||
}
|
||||
|
||||
.rot {
|
||||
color: #800;
|
||||
}
|
||||
|
||||
.gruen {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.bg-grau {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.bg-grau-d {
|
||||
background-color: #bcbcbc;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bg-black {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.border-table td {
|
||||
height: 5px;
|
||||
padding: 0;
|
||||
background-color: #000;
|
||||
border-left: 1px solid #000;
|
||||
border-bottom: 1px solid #000;
|
||||
border-top: 1px solid #000;
|
||||
}
|
||||
|
||||
/* PURE TABLES START */
|
||||
.pure-table {
|
||||
/* Remove spacing between table cells (from Normalize.css) */
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
empty-cells: show;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.pure-table caption {
|
||||
color: #000;
|
||||
font: italic 85%/1 arial, sans-serif;
|
||||
padding: 1em 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.pure-table td,
|
||||
.pure-table th {
|
||||
border-left: 1px solid #000;
|
||||
border-bottom: 1px solid #000;
|
||||
/* inner column border */
|
||||
/* border-width: 0 0 1px 1px; */
|
||||
border-top: 1px solid #000;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
/*to make ths where the title is really long work*/
|
||||
padding: 0.5em 0.7em;
|
||||
/* cell padding */
|
||||
}
|
||||
|
||||
.pure-table th {
|
||||
background-color: #000;
|
||||
color: #e0e0e0;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
|
||||
/* BORDERED TABLES */
|
||||
/* .pure-table-bordered td {
|
||||
border-bottom: 1px solid #000 !important;
|
||||
} */
|
||||
|
||||
.pure-table-bordered tbody>tr:last-child>td {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Einreichen;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class EinreichungDelete
|
||||
{
|
||||
public static function laden()
|
||||
{
|
||||
// lösche Einreichung
|
||||
$uid = GeneralUtility::_GP('uid');
|
||||
if (!is_numeric($uid)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid)
|
||||
)
|
||||
->set('tstamp', time())
|
||||
->set('deleted', (int) 1)
|
||||
->execute();
|
||||
|
||||
echo $queryBuilder->getSQL();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Einreichen;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class EinreichungenUser
|
||||
{
|
||||
public static function laden()
|
||||
{
|
||||
// EIGEREICHTE PROJEKT
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
// $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('uid', 'crdate', 'wettbewerb', 'beschreibung', 'entscheidungstermin', 'verfahrensort', 'bundesland', 'dokument_orig_name', 'aufgenommen', 'abgelehnt', 'begruendung')
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where($queryBuilder->expr()->eq('cruser_id', $user['uid']))
|
||||
->orderBy('aufgenommen');
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$arr = array();
|
||||
foreach ($statement as $key => $value) {
|
||||
$value["status"] = 0;
|
||||
if($value["aufgenommen"] > 0){
|
||||
$value["status"] = 1;
|
||||
}
|
||||
else if ($value["abgelehnt"] > 0){
|
||||
$value["status"] = 2;
|
||||
}
|
||||
$arr[] = $value;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($arr);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Einreichen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _EinreichenController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'lade_einreichungen':
|
||||
return EinreichungenUser::laden();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Hooks;
|
||||
|
||||
/**
|
||||
* This file is part of the "news" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*/
|
||||
use TYPO3\CMS\Backend\Utility\BackendUtility as BackendUtilityCore;
|
||||
use TYPO3\CMS\Core\SingletonInterface;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use \TYPO3\CMS\Core\Messaging\FlashMessage;
|
||||
use \TYPO3\CMS\Core\Messaging\FlashMessageService;
|
||||
use Carbon\Carbon;
|
||||
/**
|
||||
* Hook into tcemain which is used to show preview of news item
|
||||
*/
|
||||
class DataHandler implements SingletonInterface
|
||||
{
|
||||
/**
|
||||
* Prevent saving of a news record if the editor doesn't have access to all categories of the news record
|
||||
*
|
||||
* @param array $fieldArray
|
||||
* @param string $table
|
||||
* @param int $id
|
||||
* @param $parentObject \TYPO3\CMS\Core\DataHandling\DataHandler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, $parentObject): void
|
||||
{
|
||||
if ($table === 'tx_zuladungsliste_domain_model_ruhestellung') {
|
||||
|
||||
$carbon_start = Carbon::parse($fieldArray['ruhestellung_start']);
|
||||
$carbon_end = Carbon::parse($fieldArray['ruhestellung_end']);
|
||||
|
||||
$flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
|
||||
$messageQueue = $flashMessageService->getMessageQueueByIdentifier();
|
||||
|
||||
if($carbon_start >= $carbon_end){
|
||||
/**
|
||||
* Ende vor Start error
|
||||
*/
|
||||
$text = 'Der Start der Ruhestellung vom '.$carbon_start->format('d. M Y').' muß vor dessem Ende sein.';
|
||||
$message = GeneralUtility::makeInstance(
|
||||
FlashMessage::class, $text,'Fehler in Ruhestellungen', FlashMessage::ERROR);
|
||||
$messageQueue->addMessage($message);
|
||||
}
|
||||
else {
|
||||
/**
|
||||
* load all ruhestellungen für aktuellen user
|
||||
*/
|
||||
$row = GeneralUtility::makeInstance(ConnectionPool::class)
|
||||
->getConnectionForTable($table)
|
||||
->select(['uid_ruhestellung'], // fields to select
|
||||
$table, // from
|
||||
[ 'uid' => (int)$id ] // where
|
||||
)
|
||||
->fetch();
|
||||
|
||||
$uid_ruhestellung = $row['uid_ruhestellung'];
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
|
||||
$queryBuilder->select('ruhestellung_start','ruhestellung_end')->from($table)->where(
|
||||
$queryBuilder->expr()->eq('uid_ruhestellung', (int)$uid_ruhestellung),
|
||||
$queryBuilder->expr()->neq('uid', (int)$id)
|
||||
);
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$ueberlappend = false;
|
||||
foreach ($statement as $row) {
|
||||
$row_start = Carbon::parse($row['ruhestellung_start']);
|
||||
$row_end = Carbon::parse($row['ruhestellung_end']);
|
||||
|
||||
if($carbon_start->between($row_start, $row_end) or $carbon_end->between($row_start, $row_end)){
|
||||
$text = $carbon_start->format('d. M y').' -'.$row_start->format('d. M y').' -'.$row_end->format('d. M y');
|
||||
$message = GeneralUtility::makeInstance(FlashMessage::class, $text,'Ruhestellungen Fehler', FlashMessage::INFO);
|
||||
$messageQueue->addMessage($message);
|
||||
$ueberlappend = true;
|
||||
}
|
||||
}
|
||||
|
||||
if($ueberlappend){
|
||||
$text = 'Die Ruhestellung vom '.$carbon_start->format('d. M y').' überschneiden sich mit einer anderen Ruhestellung.';
|
||||
$message = GeneralUtility::makeInstance(FlashMessage::class, $text,'Ruhestellungen Fehler', FlashMessage::ERROR);
|
||||
$messageQueue->addMessage($message);
|
||||
}
|
||||
else {
|
||||
/********************************************************
|
||||
fix pid
|
||||
********************************************************/
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_ruhestellung');
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_ruhestellung')
|
||||
->set('pid', 63)
|
||||
->execute();
|
||||
$message = GeneralUtility::makeInstance(FlashMessage::class, '','Ruhestellungen Gespeichert', FlashMessage::OK);
|
||||
$messageQueue->addMessage($message);
|
||||
}
|
||||
|
||||
}
|
||||
// FlashMessage::NOTICE for notifications
|
||||
// FlashMessage::INFO for information messages
|
||||
// FlashMessage::OK for success messages
|
||||
// FlashMessage::WARNING for warnings
|
||||
// FlashMessage::ERROR for errors
|
||||
}
|
||||
|
||||
|
||||
if ($table === 'tx_zuladungsliste_buro_gemeinschaft_mm') {
|
||||
/********************************************************
|
||||
BUROGEMEINSCHAFT ALLE AKTIVEN PARTNER in tx_zuladungsliste_buro_gemeinschaft_mm
|
||||
********************************************************/
|
||||
$_partner = [];
|
||||
$_gemeinschaft = [];
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
|
||||
$ref = $queryBuilder
|
||||
->select('uid_user','uid_gemeinschaft')
|
||||
->from($table)
|
||||
->execute()
|
||||
->fetchAll();
|
||||
$_partner = [];
|
||||
foreach ($ref as $key => $value) {
|
||||
$_partner[] = $value['uid_user'];
|
||||
$_gemeinschaft[] = $value['uid_gemeinschaft'];
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
IS PARTNER TO DISABLE CREATION OF BÜROGEMEISCHAFT on PARTNER in fe_users
|
||||
0 => Architekt Alleine
|
||||
1 => Partner einer Bürogemeischaft
|
||||
2 => Ist Bürogemeischaft
|
||||
********************************************************/
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder
|
||||
->update('fe_users')
|
||||
->set('istpartner', '0')
|
||||
->execute();
|
||||
if ($_partner) {
|
||||
$queryBuilder
|
||||
->update('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('deleted', 0),
|
||||
$queryBuilder->expr()->eq('kontoaufloesung', 0),
|
||||
$queryBuilder->expr()->in('uid', $_partner)
|
||||
)
|
||||
->set('istpartner', '1')
|
||||
->execute();
|
||||
}
|
||||
$_gemeinschaft = array_unique($_gemeinschaft);
|
||||
if ($_gemeinschaft) {
|
||||
$queryBuilder
|
||||
->update('fe_users')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('deleted', 0),
|
||||
$queryBuilder->expr()->eq('kontoaufloesung', 0),
|
||||
$queryBuilder->expr()->in('uid', $_gemeinschaft)
|
||||
)
|
||||
->set('istpartner', '2')
|
||||
->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Archive
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load($archive_id)
|
||||
{
|
||||
// Ajax::$debug = 1;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
'Load Liste Archive'
|
||||
);
|
||||
}
|
||||
$queryBuilder = GeneralUtility::makeInstance(
|
||||
ConnectionPool::class
|
||||
)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
|
||||
$statement = $queryBuilder
|
||||
->select('liste')
|
||||
->from('tx_zuladungsliste_archive_admin')
|
||||
->where($queryBuilder->expr()->eq('uid', (int) $archive_id))
|
||||
->addOrderBy('uid', 'DESC')
|
||||
->execute()
|
||||
->fetchAll();
|
||||
|
||||
$tmp = json_decode($statement[0]['liste'], true);
|
||||
$door = 'open';
|
||||
$_return = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
if ($value['hasChildren'] == 1 and $value['punkte'] == 0) {
|
||||
$door = 'close';
|
||||
}
|
||||
if ($door == 'open') {
|
||||
$_return[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($_return);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use DateTime;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class ArchiveMenu
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
$kammerid = GeneralUtility::_GP('kammernid');
|
||||
$queryBuilder = GeneralUtility::makeInstance(
|
||||
ConnectionPool::class
|
||||
)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
|
||||
$statement = $queryBuilder
|
||||
->select('uid', 'erstellt_am')
|
||||
->from('tx_zuladungsliste_archive_admin')
|
||||
->where($queryBuilder->expr()->in('kammernid', $kammerid))
|
||||
->addOrderBy('uid', 'DESC')
|
||||
->execute();
|
||||
|
||||
$tmp=[];
|
||||
foreach ($statement as $key => $value) {
|
||||
$zeit = new DateTime($value["erstellt_am"]);
|
||||
$year = $zeit->format("Y");
|
||||
$tmp[$year][] = $value;
|
||||
}
|
||||
_Berechnung::$_return = [];
|
||||
foreach ($tmp as $year => $value) {
|
||||
$t = array();
|
||||
$t["year"] = $year;
|
||||
foreach ($value as $key => $val) {
|
||||
$t2 = array();
|
||||
$t2["id"] = $val["uid"];
|
||||
$t2["titel"] = $val["erstellt_am"];
|
||||
$t["subdata"][] = $t2;
|
||||
}
|
||||
_Berechnung::$_return[] = $t;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class EinreichungenAdmin
|
||||
{
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function disable()
|
||||
{
|
||||
// EINGEREICHTE PROJEKT DELETE
|
||||
$uid = preg_replace("'\D'", "", $_GET['uid']);
|
||||
if (!is_numeric($uid)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid),
|
||||
$queryBuilder->expr()->eq('aufgenommen', 0),
|
||||
$queryBuilder->expr()->eq('abgelehnt', 0)
|
||||
)->set('deleted', '1')->execute();
|
||||
// echo $queryBuilder->getSQL();
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function update()
|
||||
{
|
||||
// EINGEREICHTE PROJEKT UPDATE
|
||||
$uid = preg_replace("'\D'", "", $_GET['uid']);
|
||||
if (!is_numeric($uid)) {
|
||||
exit;
|
||||
}
|
||||
$field = preg_replace("'\W'", "", $_GET['field']);
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
if ($field=="aufgenommen") {
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where($queryBuilder->expr()->eq('uid', (int) $uid))
|
||||
->set('aufgenommen', (int) time())
|
||||
->set('abgelehnt', 0)
|
||||
->execute();
|
||||
} elseif ($field=="abgelehnt") {
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where($queryBuilder->expr()->eq('uid', (int) $uid))
|
||||
->set('aufgenommen', 0)
|
||||
->set('abgelehnt', (int) time())
|
||||
->execute();
|
||||
}
|
||||
|
||||
// echo $queryBuilder->getSQL();
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
// EINGEREICHTE PROJEKT LOAD
|
||||
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
'Load ListeBerechnung'
|
||||
);
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
$statement = $queryBuilder
|
||||
->select(
|
||||
'a.company',
|
||||
'a.name',
|
||||
'a.uid AS user_uid',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.uid',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.crdate',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.wettbewerb',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.beschreibung',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.entscheidungstermin',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.verfahrensort',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.bundesland',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.dokument_orig_name',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.aufgenommen',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.abgelehnt',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.begruendung'
|
||||
)
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->join(
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe_einreichungen',
|
||||
'fe_users',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.cruser_id'))
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('a.deleted', (int) 0),
|
||||
$queryBuilder->expr()->eq('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen.deleted', (int) 0)
|
||||
)->execute()->fetchAll();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$bundeslaender_map = array_flip(Resources::bundeslaender());
|
||||
|
||||
|
||||
$_return = [];
|
||||
foreach ($statement as $key => $value) {
|
||||
$value['id'] = (int) $value['uid'];
|
||||
unset($value['uid']);
|
||||
$value['aufgenommen'] = (int) $value['aufgenommen'];
|
||||
$value['abgelehnt'] = (int) $value['abgelehnt'];
|
||||
$value['year'] = (int) substr($value['entscheidungstermin'], 0, 4);
|
||||
$value['bundeslandid'] = $bundeslaender_map[$value['bundesland']];
|
||||
|
||||
$value['status'] = 1;
|
||||
if ($value['abgelehnt'] > 0) {
|
||||
$value['status'] = 3;
|
||||
} elseif ($value['aufgenommen'] > 0) {
|
||||
$value['status'] = 2;
|
||||
}
|
||||
|
||||
$_return[] = $value;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($_return);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\Architekten;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\PunkteKriterien;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\WettbewerbeArchitekten;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/*
|
||||
ORIGINAL QUERY
|
||||
$fields = "wamm.uid id,
|
||||
fe.company,fe.name,
|
||||
wb.wettbewerb,
|
||||
wb.bundesland,
|
||||
EXTRACT(YEAR FROM wb.entscheidungstermin) entyear,
|
||||
EXTRACT(YEAR FROM wb.abgabetermin) abgyear,
|
||||
pu.bezeichnung pname,
|
||||
pkmm.punkte,
|
||||
wamm.tstamp_zuordnung,
|
||||
wamm.tstamp_aktivierung,
|
||||
wamm.tstamp_ablehnen";
|
||||
$from = "tx_zuladungsliste_wettbewerbe_architekten_mm wamm,
|
||||
fe_users fe,
|
||||
tx_zuladungsliste_domain_model_wettbewerbe wb,
|
||||
tx_zuladungsliste_punkte_kriterien_mm pkmm,
|
||||
tx_zuladungsliste_domain_model_punkte pu";
|
||||
$where = "wamm.uid_user=fe.uid AND
|
||||
wamm.uid_wettbewerbe=wb.uid AND
|
||||
wb.kriteriumid=pkmm.uid_kriterien AND
|
||||
wamm.uid_punkte=pu.uid AND
|
||||
pkmm.uid_punkte = wamm.uid_punkte";
|
||||
*/
|
||||
|
||||
class Freischaltungen
|
||||
{
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function aktivieren()
|
||||
{
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
$uid_wettarch = GeneralUtility::_GP('uid_wettarch');
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid_wettarch)
|
||||
)
|
||||
->set('tstamp', (int) time())
|
||||
->set('tstamp_aktivierung', (int) time())
|
||||
->set('tstamp_ablehnen', 0)
|
||||
->execute();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function ablehnen()
|
||||
{
|
||||
// _Berechnung::$debug = 1;
|
||||
|
||||
$uid_wettarch = GeneralUtility::_GP('uid_wettarch');
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid_wettarch)
|
||||
)
|
||||
->set('tstamp', (int)time())
|
||||
->set('tstamp_aktivierung', 0)
|
||||
->set('tstamp_ablehnen', (int)time())
|
||||
->execute();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
|
||||
$webvalue = GeneralUtility::_GP('value');
|
||||
$webkey = GeneralUtility::_GP('key');
|
||||
|
||||
new _Berechnung();
|
||||
|
||||
_Berechnung::$debug = 0;
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
'Load Liste Freischaltungen'
|
||||
);
|
||||
}
|
||||
Architekten::load();
|
||||
$Architekten = [];
|
||||
foreach (_Berechnung::$_data['architekten'] as $key => $_row) {
|
||||
$Architekten[$_row['uid']] = $_row;
|
||||
}
|
||||
$PunkteKriterien = PunkteKriterien::load();
|
||||
$WettbewerbeArchitekten = WettbewerbeArchitekten::load();
|
||||
|
||||
$_data = [];
|
||||
foreach ($WettbewerbeArchitekten as $key => $_row) {
|
||||
$uid_user = $_row['uid_user'];
|
||||
if (isset($Architekten[$uid_user])) {
|
||||
$_row = array_merge($_row, $Architekten[$uid_user]);
|
||||
|
||||
$uid_punkte = $_row['uid_punkte'];
|
||||
if (!$PunkteKriterien[$uid_punkte]) {
|
||||
print_r($_row);
|
||||
exit;
|
||||
}
|
||||
$_row = array_merge($_row, $PunkteKriterien[$uid_punkte]);
|
||||
$_data[] = $_row;
|
||||
}
|
||||
}
|
||||
|
||||
$bundeslaender_map = array_flip(Resources::bundeslaender());
|
||||
|
||||
_Berechnung::$_return = [];
|
||||
foreach ($_data as $key => $_row) {
|
||||
$_row['id'] = $key;
|
||||
$entyear = (int) substr($_row['entscheidungstermin'], 0, 4);
|
||||
$abgyear = (int) substr($_row['abgabetermin'], 0, 4);
|
||||
if ($entyear) {
|
||||
$_row['jahr'] = $entyear;
|
||||
} elseif ($abgyear) {
|
||||
$_row['jahr'] = $abgyear;
|
||||
} else {
|
||||
$_row['jahr'] = 'fehlt!';
|
||||
}
|
||||
// anstehend
|
||||
$_row['status'] = 0;
|
||||
if (0 != $_row['tstamp_zuordnung'] and 0 == $_row['tstamp_aktivierung'] and 0 == $_row['tstamp_ablehnen']) {
|
||||
$_row['status'] = 1;
|
||||
}
|
||||
// freie
|
||||
if (0 != $_row['tstamp_aktivierung']) {
|
||||
$_row['status'] = 2;
|
||||
}
|
||||
// freie
|
||||
if (0 != $_row['tstamp_ablehnen']) {
|
||||
$_row['status'] = 3;
|
||||
}
|
||||
$_row['bundeslandid'] = $bundeslaender_map[$_row['bundesland']];
|
||||
if ('jahr' == $webkey) {
|
||||
if ($_row['jahr'] == $webvalue) {
|
||||
_Berechnung::$_return[] = $_row;
|
||||
}
|
||||
} else {
|
||||
_Berechnung::$_return[] = $_row;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2019 Hermann Telser <hermann.telser@gmail.com>, NUH-Odds GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
class ListeAdmin
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
$archive_id = GeneralUtility::_GP('archive_id');
|
||||
|
||||
if ($archive_id) {
|
||||
Archive::load($archive_id);
|
||||
}
|
||||
|
||||
$berechnen = new _Berechnung();
|
||||
$berechnen::berechnen();
|
||||
|
||||
ListeTree::set_dijit();
|
||||
|
||||
Punketstand::update();
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(_Berechnung::$_return);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,349 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class ListeTree
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function set_dijit()
|
||||
{
|
||||
$anzeigemodus = GeneralUtility::_GP('anzeigemodus');
|
||||
|
||||
// print_r(_Berechnung::$_data['liste']);
|
||||
// exit;
|
||||
|
||||
$_return = [];
|
||||
$i = 1;
|
||||
foreach (_Berechnung::$_data['liste'] as $value) {
|
||||
// if($value["user_id"]==859) {
|
||||
// print_r($value);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
$wettbewerbe = $value["auswertung"]["wettbewerbe"];
|
||||
$neueinsteigerpunkt = $value["auswertung"]["neueinsteigerpunkt"];
|
||||
$frauenfoerderpunkt = $value["auswertung"]["frauenfoerderpunkt"];
|
||||
$solidaritaetserklaerung = $value["auswertung"]["solidaritaetserklaerung"];
|
||||
$sondersperrungen = $value["auswertung"]["sondersperrungen"];
|
||||
$kontoaufloesung = $value["auswertung"]["kontoaufloesung"];
|
||||
$ruhestellungen = $value["auswertung"]["ruhestellungen"];
|
||||
$burogemeinschaft = $value["auswertung"]["burogemeinschaft"];
|
||||
$ruhestellung = $value["auswertung"]["ruhestellung"];
|
||||
$vereidigung = $value["vereidigung"];
|
||||
|
||||
unset($value["auswertung"]);
|
||||
$value["id"] = (int) $i;
|
||||
$value["hasChildren"] = (int) 1;
|
||||
$value["parent"] = null;
|
||||
$value["punkte"] = (float) $value["punkte"];
|
||||
$value["sortdatum"] = (int) $value["sortdatum"];
|
||||
$value["ffp"] = $frauenfoerderpunkt['punkte'];
|
||||
$_return[] = $value;
|
||||
$i++;
|
||||
|
||||
// burogemeinschaft
|
||||
if ($burogemeinschaft) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Partner:innen';
|
||||
$tmp["kommentar"] = $burogemeinschaft["kommentar"];
|
||||
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $solidaritaetserklaerung["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "burogemeinschaft";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
else {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Vereidigung';
|
||||
$tmp["kommentar"] = $vereidigung;
|
||||
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = "";
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "burogemeinschaft";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
|
||||
// neueinsteigerpunkt
|
||||
if ($neueinsteigerpunkt) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Neueinsteiger:innenpunkt';
|
||||
$tmp["kommentar"] = $neueinsteigerpunkt["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $neueinsteigerpunkt["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "neueinsteiger";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
// frauenfoerderpunkt
|
||||
if ($frauenfoerderpunkt) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Frauenförderpunkt';
|
||||
$tmp["kommentar"] = $frauenfoerderpunkt["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $frauenfoerderpunkt["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "frauenfoerderpunkt";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
|
||||
// kontoaufloesung
|
||||
if ($kontoaufloesung) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Kontoaufloesung';
|
||||
$tmp["kommentar"] = $kontoaufloesung["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $kontoaufloesung["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["valid"] = $kontoaufloesung["gueltig_bis"];
|
||||
$tmp["type"] = "kontoaufloesung";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
|
||||
// solidaritaetserklaerung
|
||||
if ($solidaritaetserklaerung['punkte']) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Solidaritätserklärung';
|
||||
$tmp["kommentar"] = $solidaritaetserklaerung["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $solidaritaetserklaerung["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "solidaritaetserklaerung";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
//
|
||||
if ($sondersperrungen) {
|
||||
foreach ($sondersperrungen as $key => $sondersperrung) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Sondersperrung';
|
||||
$tmp["kommentar"] = $sondersperrung["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = 0;
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = $sondersperrung["gesperrt_bis"];
|
||||
$tmp["type"] = "sondersperrung";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if ($ruhestellungen) {
|
||||
// foreach ($ruhestellungen as $key => $ruhestellung) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
$tmp["company"] = 'Ruhestellung';
|
||||
$tmp["kommentar"] = $ruhestellungen["kommentar"];
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = 0;
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
$tmp["type"] = "ruhestellung";
|
||||
$_return[] = $tmp;
|
||||
// }
|
||||
}
|
||||
$wettbewerbe = array_reverse($wettbewerbe);
|
||||
foreach ($wettbewerbe as $key => $value2) {
|
||||
if (is_array($value2)) {
|
||||
$tmp = [];
|
||||
$tmp["id"] = (int) $i;
|
||||
$i++;
|
||||
|
||||
$tmp["company"] = '';
|
||||
if ($value2["sperrung_kriterien"] == 1) {
|
||||
$tmp["company"] .= ' <span class="geladen">Geladen</span>';
|
||||
}
|
||||
$tmp["company"] .= $value2["wettbewerb"];
|
||||
$tmp["bezeichnung_punkte"] = $value2["bezeichnung_punkte"];
|
||||
|
||||
$tmp["gesperrt_bis"] = '';
|
||||
if (isset($value2["sperrung_aktive"]) and $value2["sperrung_aktive"] == 1) {
|
||||
$tmp["gesperrt_bis"] .= $value2["gesperrt_bis"];
|
||||
}
|
||||
|
||||
if (isset($value2["von_transfer"])) {
|
||||
$tmp["gesperrt_bis"] .= $value2["von_transfer"];
|
||||
$tmp["info"] = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
$kommentare = [];
|
||||
if ($value2['sperrzeitteilung']) {
|
||||
$txt = 'Punkte und Sperrzeit ';
|
||||
switch ($value2['sperrzeitteilung']) {
|
||||
case 2:
|
||||
$txt .= 'halbiert';
|
||||
break;
|
||||
case 3:
|
||||
$txt .= 'gedrittelt';
|
||||
break;
|
||||
case 4:
|
||||
$txt .= 'geviertelt';
|
||||
break;
|
||||
case 5:
|
||||
$txt .= 'gefünftelt';
|
||||
break;
|
||||
}
|
||||
$kommentare[] = '<i class="fa fa-divide"></i> ' . $txt;
|
||||
}
|
||||
|
||||
if ($value2["einmal_im_jahr"] == 1) {
|
||||
if($value2['entscheidungstermin']){
|
||||
$t = explode('-',$value2['entscheidungstermin']);
|
||||
}
|
||||
else if($value2['kammerbeschluss']){
|
||||
$t = explode('-',$value2['kammerbeschluss']);
|
||||
}
|
||||
$str = '';
|
||||
if($t){
|
||||
$str = '('.$t[0].')';
|
||||
}
|
||||
|
||||
$kommentare[] = '<i class="fa fa-plus-circle"></i> Punkt für Teilnahme '.$str;
|
||||
}
|
||||
|
||||
if ($value2["tage_in_ruhestellung"]) {
|
||||
$kommentare[] = '<i class="fa fa-bed"></i> Verlängert um ' . $value2["tage_in_ruhestellung"]. ' Tage';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ruhestellung -> punkte_verl
|
||||
* 1: Verlängerung aktive, Abschlußdatum fehlt
|
||||
* 2: Verlängerung stopped, Abschlußdatum present
|
||||
* 3: Verlängerung active, Abschlußdatum present
|
||||
*/
|
||||
|
||||
if ($value2['punkte_verl']) {
|
||||
switch($value2['punkte_verl']) {
|
||||
case 1:
|
||||
$kommentare[] = '<i class="fa fa-bed"></i> Ruhestellung Ende offen';
|
||||
break;
|
||||
case 2:
|
||||
$kommentare[] = '<i class="fa fa-bed"></i> Pausierte für ' . $value2["punkte_ruhiggestellt_tage"] . ' Tage';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sperre -> sperre_verl
|
||||
* 1: Verlängerung aktive, Abschlußdatum fehlt
|
||||
* 2: Verlängerung stopped, Abschlußdatum present
|
||||
* 3: Verlängerung active, Abschlußdatum present
|
||||
*/
|
||||
if ($value2['sperre_verl']) {
|
||||
switch($value2['punkte_verl']) {
|
||||
case 1:
|
||||
$kommentare[] = '<i class="fa fa-times"></i> Sperre verl. offen';
|
||||
break;
|
||||
case 2:
|
||||
$kommentare[] = '<i class="fa fa-times"></i> Sperre verl. um ' . $value2["tage_verl"] . ' Tage';
|
||||
break;
|
||||
case 3:
|
||||
$kommentare[] = '<i class="fa fa-times"></i> Sperre verl. um ' . $value2["tage_verl"] . ' Tage';
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 'Keine Spezielle Zuladung', => 0
|
||||
// 'Zuladung durch Auslober:in' => 1
|
||||
// 'Zuladung durch Kammer' => 2
|
||||
// 'Zuladung durch Auslosung' => 3
|
||||
if ($value2['ladung_durch_auslober'] == 1) {
|
||||
if($value2['loserverfahren'] ==1) {
|
||||
$kommentare[] = '<i class="fa fa-dolly"></i> Zuladung durch Auslober:in<br><i class="fa fa-random"></i> Losverfahren Sperrzeitreduktion';
|
||||
} else {
|
||||
$kommentare[] = '<i class="fa fa-dolly"></i> Zuladung durch Auslober:in';
|
||||
}
|
||||
} elseif ($value2['ladung_durch_auslober'] == 2) {
|
||||
$kommentare[] = '<i class="fa fa-dolly"></i> Zuladung durch Kammer';
|
||||
} elseif ($value2['ladung_durch_auslober'] == 3) {
|
||||
$kommentare[] = '<i class="fa fa-dolly"></i> Auslosung';
|
||||
}
|
||||
if ($value2['kontoaufloesung'] == 1) {
|
||||
$kommentare[] = '<i class="fa fa-share"></i> von Kontoauflösung';
|
||||
}
|
||||
if ($value2['nichtsperren'] == 1) {
|
||||
$kommentare[] = '<i class="fa fa-undo"></i> Sperre aufgehoben ';
|
||||
}
|
||||
|
||||
$tmp["ladung_durch_auslober"] = $value2['ladung_durch_auslober'];
|
||||
$tmp["kommentar"] = implode('<br>', $kommentare);
|
||||
|
||||
|
||||
if ($value2['entscheidungstermin']) {
|
||||
$tmp["entscheidungstermin"] .= $value2['entscheidungstermin'];
|
||||
}
|
||||
|
||||
if ($value2['kammerbeschluss']) {
|
||||
$tmp["kammerbeschluss"] .= $value2['kammerbeschluss'];
|
||||
}
|
||||
|
||||
$tmp["zuladung"] = (int) $value2["ladung_durch_auslober"];
|
||||
if ($value2["punkte"]) {
|
||||
$tmp["valid"] = $value2["gueltig_bis"];
|
||||
}
|
||||
$tmp["hasChildren"] = (int) 0;
|
||||
$tmp["parent"] = (int) $value["id"];
|
||||
$tmp["punkte"] = (float) $value2["punkte"];
|
||||
$tmp["nominiert"] = (int) 2;
|
||||
// $tmp["sortdatum"] = (int)$value2["sortdatum"]+$key;
|
||||
$tmp["punkte_aktive"] = $value2["punkte_aktive"];
|
||||
$tmp["geladen"] = $value2["mit_sperrung"];
|
||||
if ($value2["kontoaufloesung"]) {
|
||||
$tmp["kontoaufloesung"] = $value2["kontoaufloesung"];
|
||||
}
|
||||
$tmp["type"] = "wettbewerb";
|
||||
$_return[] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// print_r($_return);
|
||||
// exit;
|
||||
// filter out Architekten mit null punkten
|
||||
$door = 'open';
|
||||
_Berechnung::$_return = [];
|
||||
foreach ($_return as $key => $value) {
|
||||
if ($anzeigemodus != 3 and $value['hasChildren'] == 1 and $value['punkte'] == 0) {
|
||||
$door = 'close';
|
||||
}
|
||||
if ($door == 'open') {
|
||||
_Berechnung::$_return[] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Punketstand
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function update()
|
||||
{
|
||||
return;
|
||||
foreach (_Berechnung::$_data['liste'] as $value) {
|
||||
$punkte = (float) str_replace(',', '.', $value['punkte']) ?? 0;
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder
|
||||
->update('fe_users')
|
||||
->where(
|
||||
|
||||
$queryBuilder->expr()->eq('uid', (int) $value['user_id'])
|
||||
)
|
||||
->set('punktestand', "$punkte")
|
||||
->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
// use Doctrine\DBAL\DBALException;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use ForceUTF8\Encoding;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
||||
|
||||
class Recalculate
|
||||
{
|
||||
public static function latest()
|
||||
{
|
||||
// Message::error(__file__,__line__,"TEST LATEST");
|
||||
|
||||
$timestamp = mktime(0, 0, 0, date("m"), 15, date("Y"));
|
||||
if ($timestamp > time()) {
|
||||
$timestamp = mktime(0, 0, 0, date("m") - 1, 15, date("Y"));
|
||||
}
|
||||
/*
|
||||
* ZT Kammer Tirol => 1
|
||||
* ZT Kammer Vorarlberg => 2
|
||||
*/
|
||||
|
||||
foreach ([1, 2] as $kammernid) {
|
||||
new _Berechnung();
|
||||
_Berechnung::$debug = 0;
|
||||
_Berechnung::$_config['kammernid'] = $kammernid;
|
||||
_Berechnung::$berechne_bis = (new DateTime('@' . $timestamp))->setTimezone(new DateTimeZone('Europe/Vienna'));
|
||||
_Berechnung::$_config['berechne_bis'] = _Berechnung::$berechne_bis->format('U');
|
||||
_Berechnung::$_config['berechne_bis_datum'] = _Berechnung::$berechne_bis->format('Y-m-d');
|
||||
|
||||
self::clearDate();
|
||||
|
||||
_Berechnung::berechnen();
|
||||
|
||||
ListeTree::set_dijit();
|
||||
|
||||
self::addNew();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
public static function all()
|
||||
{
|
||||
// Message::error(__file__,__line__,"TEST ALL");
|
||||
|
||||
ini_set('max_execution_time', 0);
|
||||
|
||||
self::clearAll();
|
||||
|
||||
// TIROL
|
||||
new _Berechnung();
|
||||
_Berechnung::$_config['kammernid'] = 1;
|
||||
_Berechnung::$berechne_bis->setTimestamp(_Berechnung::$_config['liste_start']);
|
||||
while (_Berechnung::$berechne_bis->format('U') < time()) {
|
||||
_Berechnung::berechnen();
|
||||
ListeTree::set_dijit();
|
||||
self::addNew();
|
||||
_Berechnung::moveOneMonthForward();
|
||||
}
|
||||
|
||||
// VORARLBERG
|
||||
new _Berechnung();
|
||||
_Berechnung::$_config['kammernid'] = 2;
|
||||
_Berechnung::$berechne_bis->setTimestamp(_Berechnung::$_config['liste_start']);
|
||||
while (_Berechnung::$berechne_bis->format('U') < time()) {
|
||||
_Berechnung::berechnen();
|
||||
ListeTree::set_dijit();
|
||||
self::addNew();
|
||||
_Berechnung::moveOneMonthForward();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function
|
||||
*/
|
||||
private static function clearDate()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_archive_admin')->createQueryBuilder();
|
||||
$queryBuilder
|
||||
->delete('tx_zuladungsliste_archive_admin')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('kammernid', (int) _Berechnung::$_config['kammernid']),
|
||||
$queryBuilder->expr()->eq('erstellt_am', "'" . _Berechnung::$berechne_bis->format('Y-m-d') . "'")
|
||||
)
|
||||
->execute();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_archive_user')->createQueryBuilder();
|
||||
$queryBuilder
|
||||
->delete('tx_zuladungsliste_archive_user')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('kammernid', (int) _Berechnung::$_config['kammernid']),
|
||||
$queryBuilder->expr()->eq('erstellt_am', "'" . _Berechnung::$berechne_bis->format('Y-m-d') . "'")
|
||||
)
|
||||
->execute();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* empty all json data tables
|
||||
*/
|
||||
private static function clearAll()
|
||||
{
|
||||
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_archive_admin');
|
||||
$connection->truncate('tx_zuladungsliste_archive_admin');
|
||||
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_zuladungsliste_archive_user');
|
||||
$connection->truncate('tx_zuladungsliste_archive_user');
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder->update('fe_users')
|
||||
->set('frauenfoerderpunkt_verfallen', '0000-00-00')
|
||||
->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* add neu entry in json table after calcualtion
|
||||
*/
|
||||
private static function addNew()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_archive_admin')
|
||||
->values([
|
||||
'erstellt_am' => _Berechnung::$berechne_bis->format('Y-m-d'),
|
||||
'liste' => json_encode(Encoding::fixUTF8(_Berechnung::$_return)),
|
||||
'kammernid' => _Berechnung::$_config['kammernid']
|
||||
])
|
||||
->execute();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$uid_archive_admin = $queryBuilder->getConnection()->lastInsertId();
|
||||
|
||||
$userid = 0;
|
||||
$user_arr = [];
|
||||
foreach (_Berechnung::$_return as $key => $value) {
|
||||
if ($value["hasChildren"] == 1) {
|
||||
$insert_array = [];
|
||||
$insert_array["erstellt_am"] = _Berechnung::$berechne_bis->format('Y-m-d');
|
||||
$insert_array["user_id"] = $value["user_id"];
|
||||
$insert_array["archive_admin_uid"] = $uid_archive_admin;
|
||||
$insert_array["company"] = $value["company"];
|
||||
$insert_array["name"] = $value["name"];
|
||||
$insert_array["punkte"] = $value["punkte"];
|
||||
$insert_array["nominiert"] = $value["nominiert"] ?? 0;
|
||||
$insert_array["rang"] = $value["rang"];
|
||||
$insert_array["pos"] = $value["pos"];
|
||||
$insert_array["kammernid"] = _Berechnung::$_config['kammernid'];
|
||||
|
||||
$userid = $value["id"];
|
||||
$user_arr[$userid]["user"] = $insert_array;
|
||||
} else {
|
||||
$user_arr[$userid]["data"][] = $value;
|
||||
}
|
||||
}
|
||||
foreach ($user_arr as $key => $value) {
|
||||
$insert_array = [];
|
||||
$insert_array = $value["user"];
|
||||
$insert_array["auswertung"] = json_encode(Encoding::fixUTF8($value["data"]));
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user');
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_archive_user')
|
||||
->values($insert_array)
|
||||
->execute();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Liste;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _ListeController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'load_liste_admin':
|
||||
ListeAdmin::load();
|
||||
break;
|
||||
case 'load_freischaltungen':
|
||||
Freischaltungen::load();
|
||||
break;
|
||||
case 'freischaltung_aktivieren':
|
||||
Freischaltungen::aktivieren();
|
||||
break;
|
||||
case 'freischaltung_ablehnen':
|
||||
Freischaltungen::ablehnen();
|
||||
break;
|
||||
case "load_einreichungen":
|
||||
EinreichungenAdmin::load();
|
||||
break;
|
||||
case "disable_einreichung":
|
||||
EinreichungenAdmin::disable();
|
||||
break;
|
||||
case "update_einreichung":
|
||||
EinreichungenAdmin::update();
|
||||
break;
|
||||
case 'liste_all':
|
||||
Recalculate::all();
|
||||
echo 1;
|
||||
exit;
|
||||
case 'liste_latest':
|
||||
Recalculate::latest();
|
||||
echo 1;
|
||||
exit;
|
||||
case 'cron_latest':
|
||||
/*
|
||||
https://kammerwest.betaid.info/app/administration?zlcontroller=liste_controller&xaction=liste_all
|
||||
https://kammerwest.betaid.info/app/administration?zlcontroller=liste_controller&xaction=liste_latest
|
||||
*/
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Middleware;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Bootstrap\_BootstrapController;
|
||||
use HermannTelser\Zuladungsliste\Download\_DownloadController;
|
||||
use HermannTelser\Zuladungsliste\Liste\_ListeController;
|
||||
use HermannTelser\Zuladungsliste\Zuteilungen\_ZuteilungenController;
|
||||
use HermannTelser\Zuladungsliste\Zuladungsliste\_ZuladungslisteController;
|
||||
use HermannTelser\Zuladungsliste\PunkteZuweisung\_PunkteZuweisungController;
|
||||
use HermannTelser\Zuladungsliste\Einreichen\_EinreichenController;
|
||||
use HermannTelser\Zuladungsliste\User\_UserController;
|
||||
use HermannTelser\Zuladungsliste\Upload\_UploadController;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use TYPO3\CMS\Core\Http\JsonResponse;
|
||||
|
||||
define("WETTBEWERBE_PID", 38);
|
||||
define("ARCHITEKTEN_PID", 41);
|
||||
setlocale(LC_TIME, 'de_DE.UTF8');
|
||||
|
||||
class Ajax implements MiddlewareInterface
|
||||
{
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$response = $handler->handle($request);
|
||||
if (!isset($request->getQueryParams()['zlcontroller'])) {
|
||||
return $response;
|
||||
}
|
||||
$xaction = $request->getQueryParams()['xaction'];
|
||||
|
||||
// $user = $GLOBALS['TSFE']->fe_user->user;
|
||||
$zlcontroller = $request->getQueryParams()['zlcontroller'];
|
||||
|
||||
switch ($zlcontroller) {
|
||||
case 'bootstrap_controller':
|
||||
new _BootstrapController($xaction);
|
||||
break;
|
||||
case 'liste_controller':
|
||||
new _ListeController($xaction);
|
||||
break;
|
||||
case 'download_controller':
|
||||
new _DownloadController($xaction);
|
||||
break;
|
||||
case 'zuteilungen_controller':
|
||||
new _ZuteilungenController($xaction);
|
||||
break;
|
||||
case 'zuladungsliste_controller':
|
||||
new _ZuladungslisteController($xaction);
|
||||
break;
|
||||
case 'punktezuweisung_controller':
|
||||
new _PunkteZuweisungController($xaction);
|
||||
break;
|
||||
case 'einreichen_controller':
|
||||
new _EinreichenController($xaction);
|
||||
break;
|
||||
case 'user_controller':
|
||||
new _UserController($xaction);
|
||||
break;
|
||||
case 'upload_controller':
|
||||
new _UploadController($xaction);
|
||||
break;
|
||||
default:
|
||||
_Berechnung::$_return = ['error' => __FILE__.': call \''.$zlcontroller.'\' not implemented'];
|
||||
break;
|
||||
}
|
||||
|
||||
return new JsonResponse(_Berechnung::$_return);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\PunkteZuweisung;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*¨
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class Preise
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden()
|
||||
{
|
||||
$kriteriumid = GeneralUtility::_GP('kriteriumid');
|
||||
$wettbewerbid = GeneralUtility::_GP('wettbewerbid');
|
||||
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
// $punktestatus = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid_punkte, tstamp_zuordnung, tstamp_aktivierung", "tx_zuladungsliste_wettbewerbe_architekten_mm",
|
||||
// "uid_wettbewerbe=$wettbewerb_id AND uid_user=$user_id AND uid_punkte>0", "", "", "", "uid_punkte");
|
||||
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder
|
||||
->select('uid_punkte', 'tstamp_zuordnung', 'tstamp_aktivierung')
|
||||
->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid_user', (int) $user['uid']),
|
||||
$queryBuilder->expr()->gt('uid_punkte', 0),
|
||||
$queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid)
|
||||
)
|
||||
->orderBy('uid_punkte');
|
||||
$res = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$punktestatus = [];
|
||||
$closed=false;
|
||||
foreach ($res as $key => $value) {
|
||||
$punktestatus[$value['uid_punkte']] = $value;
|
||||
if ($value["tstamp_aktivierung"]>0) {
|
||||
$closed=true;
|
||||
}
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_domain_model_punkte.uid',
|
||||
'tx_zuladungsliste_domain_model_punkte.bezeichnung',
|
||||
'b.sorting',
|
||||
'b.punkte',
|
||||
'b.uid_punkte'
|
||||
)
|
||||
->from('tx_zuladungsliste_domain_model_punkte')
|
||||
->leftJoin(
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq(
|
||||
'b.uid_punkte',
|
||||
$queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid')
|
||||
)
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('b.uid_kriterien', (int) $kriteriumid)
|
||||
);
|
||||
$_punkte_kriterien = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// echo $queryBuilder->getSQL();
|
||||
$_return = [];
|
||||
foreach ($_punkte_kriterien as $key => $value) {
|
||||
$value["sorting"] = (int)$value["sorting"];
|
||||
$value["status"] = 0;
|
||||
$value["tstamp_zuordnung"] = "";
|
||||
$value["tstamp_aktivierung"] = "";
|
||||
|
||||
$punkteId = $value["uid_punkte"];
|
||||
if (isset($punktestatus[$punkteId])) {
|
||||
$tmp = $punktestatus[$punkteId];
|
||||
|
||||
if ($tmp["tstamp_zuordnung"]>0) {
|
||||
$value["tstamp_zuordnung"] = date("d. M. Y", $tmp["tstamp_zuordnung"]);
|
||||
$value["status"] = 1;
|
||||
}
|
||||
if ($tmp["tstamp_aktivierung"]>0) {
|
||||
$value["tstamp_aktivierung"] = date("d. M. Y", $tmp["tstamp_aktivierung"]);
|
||||
}
|
||||
}
|
||||
if ($closed) {
|
||||
$value["status"] = 2;
|
||||
}
|
||||
$_return[] = $value;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($_return);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\PunkteZuweisung;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*¨
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class PunkteZuweisen
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function setzen()
|
||||
{
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
$debug = 1;
|
||||
|
||||
$kriteriumid = GeneralUtility::_GP('kriteriumid');
|
||||
$wettbewerbid = GeneralUtility::_GP('wettbewerbid');
|
||||
|
||||
$arr = json_decode(GeneralUtility::_GP('data'), true);
|
||||
$zuweisung_uid_punkte = (int) $arr["uid_punkte"];
|
||||
|
||||
if (!is_numeric($zuweisung_uid_punkte)) {
|
||||
if ($debug) {
|
||||
Message::note("zuweisung_uid_punkte fehlt");
|
||||
}
|
||||
exit;
|
||||
}
|
||||
if (!is_numeric($kriteriumid)) {
|
||||
if ($debug) {
|
||||
Message::note("kriteriumid fehlt");
|
||||
}
|
||||
exit;
|
||||
}
|
||||
if (!is_numeric($wettbewerbid)) {
|
||||
if ($debug) {
|
||||
Message::note("wettbewerbid fehlt");
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder
|
||||
->select('uid', 'uid_wettbewerbe', 'uid_user', 'uid_punkte', 'sorting', 'tstamp', 'crdate', 'tstamp_zuordnung', 'tstamp_aktivierung')
|
||||
->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid_user', (int) $user['uid']),
|
||||
$queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid)
|
||||
)
|
||||
->orderBy('uid_punkte');
|
||||
$active_punkte = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// echo $queryBuilder->getSQL();
|
||||
//
|
||||
// print_r($active_punkte);
|
||||
//
|
||||
// exit;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_domain_model_punkte.uid',
|
||||
'tx_zuladungsliste_domain_model_punkte.bezeichnung',
|
||||
'b.sorting',
|
||||
'b.punkte',
|
||||
'b.uid_punkte'
|
||||
)
|
||||
->from('tx_zuladungsliste_domain_model_punkte')
|
||||
->leftJoin(
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq(
|
||||
'b.uid_punkte',
|
||||
$queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid')
|
||||
)
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('b.uid_kriterien', (int) $kriteriumid)
|
||||
);
|
||||
$kriterien = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
//Kontrolle if uid_punkte existiert in den kriterien für diesen wettbewerb
|
||||
$stopping = true;
|
||||
foreach ($kriterien as $key => $value) {
|
||||
if ($value["uid_punkte"] == $zuweisung_uid_punkte) {
|
||||
$stopping = false;
|
||||
}
|
||||
}
|
||||
if ($stopping) {
|
||||
if ($debug) {
|
||||
Message::note("uid_punkte existiert nicht in den kriterien für diesen wettbewerb");
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
if (count($active_punkte)) {
|
||||
if ($active_punkte[0]["uid_punkte"]==$zuweisung_uid_punkte) {
|
||||
|
||||
// PUNKTE ZUWEISUNG VOM BENUTZER GELÖSCHT
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder
|
||||
->delete('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid_user', (int) $user['uid']),
|
||||
$queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid)
|
||||
)
|
||||
->execute();
|
||||
} else {
|
||||
|
||||
// UPDATE PUNKTE
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid_user', (int) $user['uid']),
|
||||
$queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid)
|
||||
)
|
||||
->set('tstamp', (int) time())
|
||||
->set('tstamp_zuordnung', (int) time())
|
||||
->set('uid_punkte', (int) $zuweisung_uid_punkte)
|
||||
->execute();
|
||||
}
|
||||
} else {
|
||||
|
||||
// PUNKTE NEU ZUGETEILT
|
||||
|
||||
$insertArray = array();
|
||||
$insertArray['crdate'] = time();
|
||||
$insertArray['pid'] = WETTBEWERBE_PID;
|
||||
$insertArray['tstamp_zuordnung'] = time();
|
||||
$insertArray['uid_punkte'] = $zuweisung_uid_punkte;
|
||||
$insertArray['uid_wettbewerbe'] = $wettbewerbid;
|
||||
$insertArray['uid_user'] = $user['uid'];
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->values($insertArray)
|
||||
->execute();
|
||||
}
|
||||
|
||||
// echo $queryBuilder->getSQL();
|
||||
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\PunkteZuweisung;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
// use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Resources;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*¨
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class PunkteZuweisungen
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden()
|
||||
{
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
// $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('uid', 'wettbewerb', 'bundesland', 'kriteriumid', 'entscheidungstermin', 'abgabetermin')
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$_wettbewerbe = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm');
|
||||
// $queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('uid_wettbewerbe', 'tstamp_zuordnung', 'tstamp_aktivierung')
|
||||
->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->where($queryBuilder->expr()->eq('uid_user', (int) $user['uid']));
|
||||
$res = $queryBuilder->execute()->fetchAll();
|
||||
$punktestatus = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$punktestatus[$value['uid_wettbewerbe']] = $value;
|
||||
}
|
||||
|
||||
$bundeslaender = Resources::bundeslaender();
|
||||
$bundeslaender = array_flip($bundeslaender);
|
||||
|
||||
$_return = [];
|
||||
foreach ($_wettbewerbe as $key => $value) {
|
||||
$value["bundeslandid"] = $bundeslaender[$value["bundesland"]];
|
||||
$year = date('Y', strtotime($value["entscheidungstermin"]));
|
||||
|
||||
if (strtotime($value["entscheidungstermin"]) > 0) {
|
||||
$value["jahr"] = (int) $year;
|
||||
} else {
|
||||
$value["jahr"] = (int) date('Y', strtotime($value["abgabetermin"]));
|
||||
}
|
||||
|
||||
unset($value["entscheidungstermin"]);
|
||||
unset($value["abgabetermin"]);
|
||||
|
||||
$wettbewerbeId = $value["uid"];
|
||||
|
||||
$value["status"] = 0;
|
||||
if (isset($punktestatus[$wettbewerbeId])) {
|
||||
$tmp = $punktestatus[$wettbewerbeId];
|
||||
|
||||
if ($tmp["tstamp_zuordnung"]>0) {
|
||||
$value["status"] = 1;
|
||||
}
|
||||
|
||||
if ($tmp["tstamp_aktivierung"]>0) {
|
||||
$value["status"] = 2;
|
||||
}
|
||||
}
|
||||
|
||||
$_return[] = $value;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($_return);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\PunkteZuweisung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use ForceUTF8\Encoding;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _PunkteZuweisungController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'lade_punktezuweisungen':
|
||||
PunkteZuweisungen::laden();
|
||||
break;
|
||||
case 'lade_preise':
|
||||
Preise::laden();
|
||||
break;
|
||||
case 'setze_punktezuweisungen':
|
||||
PunkteZuweisen::setzen();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Scheduler;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Scheduler\Task\AbstractTask;
|
||||
use HermannTelser\Zuladungsliste\Liste\Recalculate;
|
||||
|
||||
class RecalculateAll extends AbstractTask
|
||||
{
|
||||
public function execute()
|
||||
{
|
||||
$businessLogic = GeneralUtility::makeInstance(Recalculate::class);
|
||||
$businessLogic->all();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Scheduler;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Scheduler\Task\AbstractTask;
|
||||
use HermannTelser\Zuladungsliste\Liste\Recalculate;
|
||||
|
||||
class RecalculateLatest extends AbstractTask
|
||||
{
|
||||
public function execute()
|
||||
{
|
||||
$businessLogic = GeneralUtility::makeInstance(Recalculate::class);
|
||||
$businessLogic->latest();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Upload;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Core\Environment;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class Upload
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function einreichen()
|
||||
{
|
||||
/*** UPLOAD FILE start ***/
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
$user_id = $user['uid'];
|
||||
$upload_dir = Environment::getPublicPath() . "/uploads/tx_zuladungsliste/$user_id";
|
||||
if (!is_dir($upload_dir)) {
|
||||
GeneralUtility::mkdir($upload_dir);
|
||||
}
|
||||
$insert_array = [];
|
||||
$insert_array['dokument_orig_name'] = "";
|
||||
$insert_array['dokument_size'] = "";
|
||||
$insert_array['dokument_type'] = "";
|
||||
if (isset($_FILES['uploadedfile'])) {
|
||||
$dokument_size = $_FILES['uploadedfile']['size'];
|
||||
$dokument_orig_name = $_FILES['uploadedfile']['name'];
|
||||
$dokument_orig_type = $_FILES['uploadedfile']['type'];
|
||||
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $upload_dir . '/' . $dokument_orig_name);
|
||||
}
|
||||
foreach ($_POST as $nm => $val) {
|
||||
$postdata[$nm] = $val; // array for html
|
||||
}
|
||||
$data = ["Bitte Wählen","Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"];
|
||||
$insert_array = [];
|
||||
$insert_array['crdate'] = time();
|
||||
$insert_array['tstamp'] = time();
|
||||
$insert_array['cruser_id'] = $user_id;
|
||||
$insert_array['wettbewerb'] = htmlspecialchars($postdata['formwettbewerb']);
|
||||
$insert_array['beschreibung'] = htmlspecialchars($postdata["formbeschreibung"]);
|
||||
$insert_array['entscheidungstermin'] = htmlspecialchars($postdata["formentscheidungstermin"]);
|
||||
$insert_array['verfahrensort'] = htmlspecialchars($postdata["formverfahrensort"]);
|
||||
$insert_array['bundesland'] = $data[$postdata["formbundesland"]];
|
||||
$insert_array['dokument_orig_name'] = $dokument_orig_name;
|
||||
$insert_array['dokument_size'] = round($dokument_size/1024, 2) . "k";
|
||||
$insert_array['dokument_type'] = "pdf";
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->values($insert_array)
|
||||
->execute();
|
||||
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function aktualisieren()
|
||||
{
|
||||
/*** UPLOAD FILE start ***/
|
||||
$uid = GeneralUtility::_GP("uid");
|
||||
if (!is_numeric($uid)) {
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
$user_id = $user['uid'];
|
||||
$upload_dir = Environment::getPublicPath() . "/uploads/tx_zuladungsliste/$user_id";
|
||||
if (!is_dir($upload_dir)) {
|
||||
GeneralUtility::mkdir($upload_dir);
|
||||
}
|
||||
if (isset($_FILES['uploadedfile'])) {
|
||||
$dokument_size = $_FILES['uploadedfile']['size'];
|
||||
$dokument_orig_name = $_FILES['uploadedfile']['name'];
|
||||
$dokument_orig_type = $_FILES['uploadedfile']['type'];
|
||||
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $upload_dir . '/' . $dokument_orig_name);
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen');
|
||||
$queryBuilder
|
||||
->update('tx_zuladungsliste_domain_model_wettbewerbe_einreichungen')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $uid)
|
||||
)
|
||||
->set('tstamp', time())
|
||||
->set('dokument_orig_name', (string) $dokument_orig_name)
|
||||
->set('dokument_size', (string) round($dokument_size/1024, 2) . "k")
|
||||
->execute();
|
||||
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Upload;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _UploadController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'dokument_einreichen':
|
||||
Upload::einreichen();
|
||||
break;
|
||||
case 'dokument_aktualisieren':
|
||||
Upload::aktualisieren();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\User;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class UserKonto
|
||||
{
|
||||
|
||||
public static function sichern(){
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
$data = GeneralUtility::_GP('data');
|
||||
$data = json_decode($data, true);
|
||||
|
||||
$update_array = [];
|
||||
foreach ($data as $key => $value)
|
||||
{
|
||||
switch ($value["fieldname"]) {
|
||||
case "address":
|
||||
$update_array["address"] = $value["value"];
|
||||
break;
|
||||
case "zip":
|
||||
$update_array["zip"] = $value["value"];
|
||||
break;
|
||||
case "city":
|
||||
$update_array["city"] = $value["value"];
|
||||
break;
|
||||
case "title":
|
||||
$update_array["title"] = $value["value"];
|
||||
break;
|
||||
case "first_name":
|
||||
$update_array["first_name"] = $value["value"];
|
||||
break;
|
||||
case "last_name":
|
||||
$update_array["last_name"] = $value["value"];
|
||||
break;
|
||||
case "telephone":
|
||||
$update_array["telephone"] = $value["value"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
if(\count($update_array) == 7){
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
$queryBuilder->update('fe_users')
|
||||
->where($queryBuilder->expr()->eq('uid', (int) $user['uid']))
|
||||
->set('address', (string) $update_array['address'])
|
||||
->set('zip', (string) $update_array['zip'])
|
||||
->set('city', (string) $update_array['city'])
|
||||
->set('title', (string) $update_array['title'])
|
||||
->set('first_name', (string) $update_array['first_name'])
|
||||
->set('last_name', (string) $update_array['last_name'])
|
||||
->set('telephone', (string) $update_array['telephone'])
|
||||
->execute();
|
||||
}
|
||||
// echo $queryBuilder->getSQL();
|
||||
|
||||
echo 1;
|
||||
exit;
|
||||
}
|
||||
|
||||
public static function laden()
|
||||
{
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
$return = [];
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 0;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['title'] = 1;
|
||||
$tmp['beschreibung'] = "Architektur";
|
||||
$tmp['value'] = 'Büro';
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 1;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['fieldname'] = 'company';
|
||||
$tmp['beschreibung'] = "Büroname:";
|
||||
$tmp['value'] = $user['company'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 2;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['fieldname'] = 'email';
|
||||
$tmp['beschreibung'] = "E-Mail:";
|
||||
$tmp['value'] = $user['email'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 3;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'address';
|
||||
$tmp['beschreibung'] = "Büroanschrift:";
|
||||
$tmp['value'] = $user['address'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 4;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'zip';
|
||||
$tmp['beschreibung'] = "PLZ:";
|
||||
$tmp['value'] = $user['zip'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 5;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'city';
|
||||
$tmp['beschreibung'] = "Ort:";
|
||||
$tmp['value'] = $user['city'];
|
||||
$return[] = $tmp;
|
||||
|
||||
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 6;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['title'] = 1;
|
||||
$tmp['beschreibung'] = "Verantwortliche";
|
||||
$tmp['value'] = 'Person';
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 7;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'title';
|
||||
$tmp['beschreibung'] = "Titel:";
|
||||
$tmp['value'] = $user['title'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 8;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'first_name';
|
||||
$tmp['beschreibung'] = "Vorname:";
|
||||
$tmp['value'] = $user['first_name'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 9;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'last_name';
|
||||
$tmp['beschreibung'] = "Nachname:";
|
||||
$tmp['value'] = $user['last_name'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 10;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['fieldname'] = 'vereidigung';
|
||||
$tmp['beschreibung'] = "Tag der Vereidigung:";
|
||||
$tmp['value'] = $user['vereidigung'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 11;
|
||||
$tmp['editable'] = 0;
|
||||
$tmp['fieldname'] = 'kammermitgliedsnummer';
|
||||
$tmp['beschreibung'] = "Mitgliedsnummer:";
|
||||
$tmp['value'] = $user['kammermitgliedsnummer'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$tmp = [];
|
||||
$tmp['id'] = 12;
|
||||
$tmp['editable'] = 1;
|
||||
$tmp['fieldname'] = 'telephone';
|
||||
$tmp['beschreibung'] = "Telefon:";
|
||||
$tmp['value'] = $user['telephone'];
|
||||
$return[] = $tmp;
|
||||
|
||||
$return = json_encode($return);
|
||||
header('Content-Type: application/json');
|
||||
echo $return;
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\User;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _UserController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'lade_konto':
|
||||
return UserKonto::laden();
|
||||
break;
|
||||
case 'sichern_konto':
|
||||
return UserKonto::sichern();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Utilities;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Utility\PathUtility;
|
||||
|
||||
/**
|
||||
* Class FileUtility
|
||||
*/
|
||||
class FileUtility extends AbstractUtility
|
||||
{
|
||||
/**
|
||||
* @param string $path Absolute path
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function createFolderIfNotExists(string $path)
|
||||
{
|
||||
if (!is_dir($path) && !GeneralUtility::mkdir($path)) {
|
||||
throw new \UnexpectedValueException(
|
||||
'Folder ' . self::getRelativeFolderFromAbsolutePath($path) . ' does not exists and can not be created!',
|
||||
1516373962125
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get relative path from absolute path, but don't touch if it's already a relative path
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public static function getRelativeFolderFromAbsolutePath(string $path): string
|
||||
{
|
||||
if (PathUtility::isAbsolutePath($path)) {
|
||||
$path = PathUtility::getRelativePathTo($path);
|
||||
}
|
||||
return $path;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Utilities;
|
||||
|
||||
class Message
|
||||
{
|
||||
public static function error($filename, $linenumber, $message)
|
||||
{
|
||||
die(PHP_EOL.PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.
|
||||
'DOKUMENT: '.$filename.PHP_EOL.
|
||||
'ZEILE: '.$linenumber.PHP_EOL.
|
||||
'FEHLER: '.$message.PHP_EOL.
|
||||
"\nVerarbeitung gestoppt !".PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.
|
||||
PHP_EOL);
|
||||
}
|
||||
|
||||
public static function debug($filename, $linenumber, $message)
|
||||
{
|
||||
echo PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.
|
||||
'file: '.$filename.PHP_EOL.
|
||||
'line: '.$linenumber.PHP_EOL.
|
||||
'note: '.$message.PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.PHP_EOL;
|
||||
}
|
||||
|
||||
public static function note($message)
|
||||
{
|
||||
echo PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.
|
||||
$message.PHP_EOL.
|
||||
'-----------------------------------------------------------'.PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Utilities;
|
||||
|
||||
class Resources
|
||||
{
|
||||
public static function displaymenu()
|
||||
{
|
||||
return [
|
||||
['label' => 'Begründungen', 'id' => 'begruendung', 'ckecked' => false],
|
||||
['label' => 'Titel', 'id' => 'titel', 'ckecked' => false],
|
||||
['label' => 'Name', 'id' => 'name', 'ckecked' => true],
|
||||
['label' => 'Geburtsdatum', 'id' => 'geburtsdatum', 'ckecked' => true],
|
||||
['label' => 'Vereidigung', 'id' => 'vereidigung', 'ckecked' => true],
|
||||
['label' => 'Ältest Projekt in Wertung', 'id' => 'aeltesterEntscheidungstermin', 'ckecked' => false],
|
||||
['label' => 'Punkte', 'id' => 'punkte', 'ckecked' => true],
|
||||
['label' => 'Sperre', 'id' => 'sperre', 'ckecked' => true],
|
||||
['label' => 'Id', 'id' => 'id', 'ckecked' => false]
|
||||
];
|
||||
}
|
||||
|
||||
public static function sperren()
|
||||
{
|
||||
return [
|
||||
['id' => '1', 'label' => 'Default', 'value' => '0', 'selected' => true],
|
||||
['id' => '2', 'label' => '3 Monare', 'value' => '3'],
|
||||
['id' => '3', 'label' => '4 Monare', 'value' => '4'],
|
||||
['id' => '4', 'label' => '5 Monare', 'value' => '5'],
|
||||
['id' => '5', 'label' => '6 Monare', 'value' => '6'],
|
||||
['id' => '6', 'label' => '8 Monare', 'value' => '8'],
|
||||
['id' => '7', 'label' => '10 Monare', 'value' => '10'],
|
||||
['id' => '8', 'label' => '12 Monare', 'value' => '12'],
|
||||
['id' => '9', 'label' => '18 Monare', 'value' => '18'],
|
||||
['id' => '10', 'label' => '24 Monare', 'value' => '24'],
|
||||
];
|
||||
}
|
||||
|
||||
public static function bundeslaender()
|
||||
{
|
||||
return [
|
||||
'Burgenland',
|
||||
'Kärnten',
|
||||
'Niederösterreich',
|
||||
'Oberösterreich',
|
||||
'Salzburg',
|
||||
'Steiermark',
|
||||
'Tirol',
|
||||
'Vorarlberg',
|
||||
'Wien'
|
||||
];
|
||||
}
|
||||
|
||||
public static function years()
|
||||
{
|
||||
$arr = range(2012, date('Y'));
|
||||
rsort($arr);
|
||||
return $arr;
|
||||
}
|
||||
|
||||
|
||||
public static function next()
|
||||
{
|
||||
return[
|
||||
['id' => '1', 'label' => 'Nächste(r)'],
|
||||
['id' => '2', 'label' => 'Nächsten Zwei'] ,
|
||||
['id' => '3', 'label' => 'Nächsten Drei'] ,
|
||||
['id' => '4', 'label' => 'Nächsten Vier'] ,
|
||||
['id' => '5', 'label' => 'Nächsten Fünf'] ,
|
||||
['id' => '6', 'label' => 'Nächsten Sechs']
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Utilities;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
|
||||
/**
|
||||
* Class FileUtility
|
||||
*/
|
||||
class zeit
|
||||
{
|
||||
/**
|
||||
* Schnittmenge zweier Zeitspannen in Tage
|
||||
*/
|
||||
public static function diffZeitSpannen($von1, $bis1, $von2, $bis2, $debug = 0)
|
||||
{
|
||||
if ($debug) {
|
||||
Message::note(
|
||||
"Von 1 " . $von1->format("Y-m-d") . PHP_EOL .
|
||||
"Bis 1 " . $bis1->format("Y-m-d") . PHP_EOL .
|
||||
"Von 2 " . $von2->format("Y-m-d") . PHP_EOL .
|
||||
"Bis 2 " . $bis2->format("Y-m-d")
|
||||
);
|
||||
}
|
||||
|
||||
if ($bis1 > $von2 && $von1 < $bis2) {
|
||||
$von = Max($von1, $von2);
|
||||
$bis = Min($bis1, $bis2);
|
||||
$differenz = $von->diff($bis);
|
||||
|
||||
if ($debug) {
|
||||
Message::note(
|
||||
"Von " . $von->format("Y-m-d") . PHP_EOL .
|
||||
"Bis " . $bis->format("Y-m-d")
|
||||
);
|
||||
Message::note(" TAGE: " . $differenz->days);
|
||||
}
|
||||
|
||||
return $differenz->days;
|
||||
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schnittmenge zweier Zeitspannen in Tage
|
||||
*/
|
||||
public static function mehrTage($von, $bis, $gue, $debug = 0)
|
||||
{
|
||||
if ($debug) {
|
||||
Message::note(
|
||||
"Ruhe von " . $von->format("Y-m-d") . PHP_EOL .
|
||||
"Ruhe bis " . $bis->format("Y-m-d") . PHP_EOL .
|
||||
"Gültig bis " . $gue->format("Y-m-d")
|
||||
);
|
||||
}
|
||||
|
||||
if ($bis > $gue && $von < $gue) {
|
||||
|
||||
$differenz = $gue->diff($bis);
|
||||
|
||||
if ($debug) {
|
||||
Message::note(
|
||||
"Von " . $von->format("Y-m-d") . PHP_EOL .
|
||||
"Bis " . $bis->format("Y-m-d")
|
||||
);
|
||||
Message::note(" TAGE: " . $differenz->days);
|
||||
}
|
||||
|
||||
return $differenz->days;
|
||||
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuladungsliste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class PositionArchitekt
|
||||
{
|
||||
public static function laden()
|
||||
{
|
||||
//LOAD POSITION TREE Menu
|
||||
// echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC");
|
||||
// exit;
|
||||
$uid = preg_replace("'\D'", "", $_GET['uid']);
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user');
|
||||
$queryBuilder
|
||||
->select('auswertung')
|
||||
->from('tx_zuladungsliste_archive_user')
|
||||
->where($queryBuilder->expr()->eq('uid', (int) $uid));
|
||||
$tmp = $queryBuilder->execute()->fetchAll();
|
||||
// echo $queryBuilder->getSQL();
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo $tmp[0]["auswertung"];
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuladungsliste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
// class PositionArchitekt
|
||||
// {
|
||||
// public static function laden()
|
||||
// {
|
||||
// //LOAD POSITION TREE Menu
|
||||
// // echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC");
|
||||
// // exit;
|
||||
// $uid = preg_replace("'\D'", "", $_GET['uid']);
|
||||
// $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user');
|
||||
// $queryBuilder
|
||||
// ->select('auswertung')
|
||||
// ->from('tx_zuladungsliste_archive_user')
|
||||
// ->where($queryBuilder->expr()->eq('uid', (int) $uid));
|
||||
// $tmp = $queryBuilder->execute()->fetchAll();
|
||||
// // echo $queryBuilder->getSQL();
|
||||
//
|
||||
// // ----------
|
||||
//
|
||||
// $arr2 = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid id, wettbewerb, kriteriumid, bundesland, EXTRACT(YEAR FROM entscheidungstermin) entyear, EXTRACT(YEAR FROM abgabetermin) abgyear", "tx_zuladungsliste_domain_model_wettbewerbe", "deleted=0 AND hidden=0");
|
||||
//
|
||||
// $punktestatus = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("uid_wettbewerbe, tstamp_zuordnung, tstamp_aktivierung", "tx_zuladungsliste_wettbewerbe_architekten_mm", "uid_user=$user_id AND uid_punkte>0", "", "", "", "uid_wettbewerbe");
|
||||
//
|
||||
// $arr = array();
|
||||
// foreach ($arr2 as $key => $value) {
|
||||
// $value["status"] = 0;
|
||||
//
|
||||
// if ($value["entyear"]!=0) {
|
||||
// $value["jahr"] = $value["entyear"];
|
||||
// } else {
|
||||
// $value["jahr"] = $value["abgyear"];
|
||||
// }
|
||||
// unset($value["entyear"]);
|
||||
// unset($value["abgyear"]);
|
||||
//
|
||||
// $wettbewerbeId = $value["id"];
|
||||
// if (isset($punktestatus[$wettbewerbeId])) {
|
||||
// $tmp = $punktestatus[$wettbewerbeId];
|
||||
//
|
||||
// if ($tmp["tstamp_zuordnung"]>0) {
|
||||
// $value["status"] = 1;
|
||||
// }
|
||||
//
|
||||
// if ($tmp["tstamp_aktivierung"]>0) {
|
||||
// $value["status"] = 2;
|
||||
// }
|
||||
// }
|
||||
// $arr[] = $value;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// header('Content-Type: application/json');
|
||||
// echo $tmp[0]["auswertung"];
|
||||
// exit();
|
||||
// }
|
||||
// }
|
||||
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuladungsliste;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class TreemenuPosition
|
||||
{
|
||||
public static function laden()
|
||||
{
|
||||
//LOAD POSITION TREE Menu
|
||||
// echo $GLOBALS['TYPO3_DB']->SELECTquery("uid, tstamp, punkte, rang, nominiert", "tx_zuladungsliste_archive_user", "user_id=$user_id AND hidden=0", "", "tstamp DESC");
|
||||
// exit;
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
|
||||
// $queryBuilder
|
||||
// ->getRestrictions()
|
||||
// ->removeByType(StartTimeRestriction::class)
|
||||
// ->removeByType(EndTimeRestriction::class);
|
||||
// $queryBuilder->getRestrictions()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('uid', 'tstamp', 'punkte', 'rang', 'nominiert')
|
||||
->from('tx_zuladungsliste_archive_user')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('user_id', (int) $user['uid']),
|
||||
)->orderBy('tstamp', 'DESC');
|
||||
$tmp = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// echo $queryBuilder->getSQL();
|
||||
// debug($queryBuilder->getSQL());
|
||||
|
||||
// $tmp = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid, tstamp, punkte, rang, nominiert', 'tx_zuladungsliste_archive_user', "user_id=$user_id AND hidden=0", '', 'tstamp DESC');
|
||||
$arr = [];
|
||||
$i = 1;
|
||||
$tmp2 = [];
|
||||
$p_year = 0;
|
||||
foreach ($tmp as $key => $value) {
|
||||
//print_r($value);
|
||||
$year = date('Y', $value['tstamp']);
|
||||
if ($p_year != $year) {
|
||||
$p_year = $year;
|
||||
$arr[] = [
|
||||
'title' => $year,
|
||||
'id' => (int) $i,
|
||||
'hasChildren' => (int) 1,
|
||||
'type' => 'year',
|
||||
'parent' => null,
|
||||
];
|
||||
$parentid = $i;
|
||||
++$i;
|
||||
}
|
||||
$value["tstamp"] += 3600*12;
|
||||
$arr[] = [
|
||||
'title' => strftime("%e. %b. %G", $value["tstamp"]),
|
||||
'hasChildren' => 0,
|
||||
'parent' => $parentid,
|
||||
'type' => 'month',
|
||||
'punkte' => $value['punkte'],
|
||||
'rang' => $value['rang'],
|
||||
'nominiert' => $value['nominiert'],
|
||||
'id' => $i,
|
||||
'uid' => $value['uid'],
|
||||
];
|
||||
++$i;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($arr);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuladungsliste;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _ZuladungslisteController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'lade_treemenu_position':
|
||||
return TreemenuPosition::laden();
|
||||
break;
|
||||
case 'lade_position_architekt':
|
||||
return PositionArchitekt::laden();
|
||||
break;
|
||||
case 'lade_punktezuweisung':
|
||||
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class Zuteilung
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden()
|
||||
{
|
||||
// load for prit zuteilungen
|
||||
$zuteilung_uid = preg_replace("'\D'", "", $_GET['zuladungid']);
|
||||
if (!is_numeric($zuteilung_uid)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// $arr = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("a.uid id, a.tstamp, b.wettbewerb, a.anzahl_architekten",
|
||||
// "tx_zuladungsliste_zuteilungen a, tx_zuladungsliste_domain_model_wettbewerbe b",
|
||||
// "a.hidden=0 AND a.uid_wettbewerbe=b.uid AND a.uid=$zuteilung_uid");
|
||||
|
||||
|
||||
$limitSelection=date('Y-m-d', strtotime('-1 year'));
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('tx_zuladungsliste_zuteilungen.uid', 'tx_zuladungsliste_zuteilungen.tstamp', 'b.wettbewerb', 'tx_zuladungsliste_zuteilungen.anzahl_architekten')
|
||||
->from('tx_zuladungsliste_zuteilungen')
|
||||
->join(
|
||||
'tx_zuladungsliste_zuteilungen',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen.uid_wettbewerbe')),
|
||||
)
|
||||
->where($queryBuilder->expr()->eq('tx_zuladungsliste_zuteilungen.uid', $zuteilung_uid));
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// Message::note($queryBuilder->getSQL());
|
||||
|
||||
$$print = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
|
||||
<title>Print Zuladungsliste</title></head><body>';
|
||||
|
||||
if (isset($_GET['print'])) {
|
||||
$print .= '<image style="width:300px;" src="/typo3conf/ext/zuladungsliste/Resources/Public/Images/ztkammer-logo-adler.png"><br>';
|
||||
} else {
|
||||
$print .= '<div id="print_header"></div>';
|
||||
}
|
||||
$print .= '<br><br><h3 class="text-subheader center">'.$statement[0]["wettbewerb"].'<br> vom '.date("d. M. y", (int)$statement[0]["tstamp"]).'</h3>';
|
||||
|
||||
$limitSelection=date('Y-m-d', strtotime('-1 year'));
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_zuteilungen_user.uid',
|
||||
'tx_zuladungsliste_zuteilungen_user.tstamp',
|
||||
'tx_zuladungsliste_zuteilungen_user.position',
|
||||
'tx_zuladungsliste_zuteilungen_user.ersatz',
|
||||
'b.company',
|
||||
'b.name'
|
||||
)
|
||||
->from('tx_zuladungsliste_zuteilungen_user')
|
||||
->join(
|
||||
'tx_zuladungsliste_zuteilungen_user',
|
||||
'fe_users',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen_user.user_id')),
|
||||
)
|
||||
->where($queryBuilder->expr()->eq('tx_zuladungsliste_zuteilungen_user.uid_zuteilungen_user', $zuteilung_uid))
|
||||
->orderBy('ersatz')->addOrderBy('position');
|
||||
|
||||
// Message::note($queryBuilder->getSQL());
|
||||
|
||||
|
||||
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
$nomiert = '<h3 class="center">Nominierungen</h3>';
|
||||
$nomiert .= '<table class="print_zladungen" width="95%" border="0" cellspacing="5" cellpadding="5">';
|
||||
$ersatz = '<h3 class="center">Ersatz Nominierungen</h3>';
|
||||
$ersatz .= '<table class="print_zladungen" width="95%" border="0" cellspacing="5" cellpadding="5">';
|
||||
|
||||
// if (count($statement)/2==$key) {
|
||||
// $print .= '<tr><td> </td></tr>';
|
||||
// }
|
||||
|
||||
foreach ($statement as $key => $value) {
|
||||
$colorclass = $value["ersatz"] ? "ersatz" : "gewaehlt";
|
||||
|
||||
if ($value["ersatz"]) {
|
||||
$ersatz .= '<tr>';
|
||||
$ersatz .= '<td class="position '.$colorclass.'">'.$value["position"].'</td>';
|
||||
$ersatz .= '<td class="company '.$colorclass.'">'.$value["company"].'</td>';
|
||||
$ersatz .= '<td class="name '.$colorclass.'">'.$value["name"].'</td>';
|
||||
$ersatz .= '<td class="'.$colorclass.'">Ersatz</td>';
|
||||
$ersatz .= '</tr>';
|
||||
} else {
|
||||
$nomiert .= '<tr>';
|
||||
$nomiert .= '<td class="position '.$colorclass.'">'.$value["position"].'</td>';
|
||||
$nomiert .= '<td class="company '.$colorclass.'">'.$value["company"].'</td>';
|
||||
$nomiert .= '<td class="name '.$colorclass.'">'.$value["name"].'</td>';
|
||||
$nomiert .= '<td class="'.$colorclass.'">Ausgewählt</td>';
|
||||
$nomiert .= '</tr>';
|
||||
}
|
||||
}
|
||||
$nomiert .= '</table></div>';
|
||||
$ersatz .= '</table></div>';
|
||||
|
||||
$print .= $nomiert;
|
||||
$print .= $ersatz;
|
||||
|
||||
if (isset($_GET['print'])) {
|
||||
$print .= '<script>this.focus(); this.print();</script>';
|
||||
}
|
||||
echo $print;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class ZuteilungNeu
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function zuteilen()
|
||||
{
|
||||
$user = $GLOBALS['TSFE']->fe_user->user;
|
||||
|
||||
/********************************************************
|
||||
* VARS
|
||||
********************************************************/
|
||||
$kammernid = GeneralUtility::_GP("kammernid");
|
||||
if (!is_numeric($kammernid)) {
|
||||
exit;
|
||||
}
|
||||
$wettbewerb_uid = GeneralUtility::_GP("wettbewerb_uid");
|
||||
if (!is_numeric($wettbewerb_uid)) {
|
||||
exit;
|
||||
}
|
||||
$next = GeneralUtility::_GP("next");
|
||||
if (!is_numeric($next)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
* NEXT
|
||||
********************************************************/
|
||||
$arr = Zuteilungen::laden($returnAsArray = true);
|
||||
$next_array = Zuteilungen::filterNaechsten($arr, $next);
|
||||
|
||||
/********************************************************
|
||||
* punkte uid with 0 punkte
|
||||
* Platzhalter für Zuteilung
|
||||
* bei gewinn erden punkte später zugeteilt
|
||||
********************************************************/
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'a.uid',
|
||||
'a.bezeichnung',
|
||||
)->from('tx_zuladungsliste_punkte_kriterien_mm')
|
||||
->join(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_punkte'))
|
||||
)
|
||||
->where($queryBuilder->expr()->eq('tx_zuladungsliste_punkte_kriterien_mm.punkte', 0));
|
||||
// Message::note($queryBuilder->getSQL());
|
||||
$zuweisung_uid_punkte = $queryBuilder->execute()->fetchOne();
|
||||
|
||||
$insert_array = [];
|
||||
$insert_array['tstamp'] = time();
|
||||
$insert_array['crdate'] = time();
|
||||
$insert_array['pid'] = WETTBEWERBE_PID;
|
||||
$insert_array['uid_user'] = $user['uid']; // Ersteller
|
||||
$insert_array['uid_wettbewerbe'] = $wettbewerb_uid;
|
||||
$insert_array['anzahl_architekten'] = $next;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen');
|
||||
$queryBuilder->insert('tx_zuladungsliste_zuteilungen')->values($insert_array)->execute();
|
||||
$uid_zuteilungen_user = $queryBuilder->getConnection()->lastInsertId();
|
||||
|
||||
foreach ($next_array as $key => $value) {
|
||||
if ($value["ersatz"]==0) {
|
||||
$insert_array = array();
|
||||
$insert_array['crdate'] = time();
|
||||
$insert_array['pid'] = WETTBEWERBE_PID;
|
||||
$insert_array['tstamp_zuordnung'] = time();
|
||||
$insert_array['tstamp_aktivierung'] = time();
|
||||
$insert_array['uid_punkte'] = $zuweisung_uid_punkte;
|
||||
$insert_array['uid_wettbewerbe'] = $wettbewerb_uid;
|
||||
$insert_array['uid_user'] = $value["user_id"]; // Architekten
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->values($insert_array)
|
||||
->execute();
|
||||
}
|
||||
$insert_array = array();
|
||||
$insert_array['tstamp'] = time();
|
||||
$insert_array['crdate'] = time();
|
||||
$insert_array['pid'] = WETTBEWERBE_PID;
|
||||
$insert_array['uid_zuteilungen_user'] = $uid_zuteilungen_user;
|
||||
$insert_array['user_id'] = $value["user_id"]; // Architekten
|
||||
$insert_array['position'] = $key+1;
|
||||
$insert_array['ersatz'] = $value["ersatz"];
|
||||
$queryBuilder
|
||||
->insert('tx_zuladungsliste_zuteilungen_user')
|
||||
->values($insert_array)
|
||||
->execute();
|
||||
}
|
||||
sleep(1);
|
||||
echo $uid_zuteilungen_user;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class ZuteilungWettbewerbe
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden()
|
||||
{
|
||||
$limitSelection=date('Y-m-d', strtotime('-1 year'));
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('tx_zuladungsliste_domain_model_wettbewerbe.uid', 'tx_zuladungsliste_domain_model_wettbewerbe.wettbewerb', 'tx_zuladungsliste_domain_model_wettbewerbe.sperre_deaktiviert')
|
||||
->from('tx_zuladungsliste_domain_model_wettbewerbe')
|
||||
->join(
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'tx_zuladungsliste_domain_model_kriterien',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid'))
|
||||
)
|
||||
->where(
|
||||
$queryBuilder->expr()->gt('tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin', $queryBuilder->createNamedParameter($limitSelection)),
|
||||
// $queryBuilder->expr()->eq('b.sperrung', (int) 1)
|
||||
);
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// Message::note($queryBuilder->getSQL());
|
||||
|
||||
// select wettbewerb für zuteilung
|
||||
// $limitSelection=date('Y-m-d', strtotime('-1 year'));
|
||||
// // echo $GLOBALS['TYPO3_DB']->SELECTquery("a.uid id, a.wettbewerb name", "tx_zuladungsliste_domain_model_wettbewerbe a, tx_zuladungsliste_domain_model_kriterien b", "a.deleted=0 AND a.hidden=0 AND a.entscheidungstermin>'".$limitSelection."' AND a.kriteriumid=b.uid AND b.sperrung=1","","a.sperre_deaktiviert ASC, a.entscheidungstermin ASC");
|
||||
// $tmp = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
|
||||
// "a.uid id, a.wettbewerb name, a.sperre_deaktiviert",
|
||||
// "tx_zuladungsliste_domain_model_wettbewerbe a, tx_zuladungsliste_domain_model_kriterien b",
|
||||
// "a.deleted=0 AND a.hidden=0 AND a.entscheidungstermin>'".$limitSelection."' AND a.kriteriumid=b.uid AND b.sperrung=1",
|
||||
// "",
|
||||
// "a.uid DESC"
|
||||
// );
|
||||
// $arr=[];
|
||||
// while (list($key, $value) = each($tmp)) {
|
||||
// if ($value["sperre_deaktiviert"]==1) {
|
||||
// $value["label"] = '<div style="width:500px; display:block;overflow:hidden;">' . $value["name"] . '</div> <span class="rot">(Sperre deaktiviert).</span>';
|
||||
// } else {
|
||||
// $value["label"] = '<b>' . $value["name"] . "</b>";
|
||||
// }
|
||||
// $arr[] = $value;
|
||||
// }
|
||||
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($statement);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class Zuteilungen
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden($return_array = false)
|
||||
{
|
||||
$liste = new _Berechnung();
|
||||
$liste::berechnen();
|
||||
|
||||
$_p = ['n2','n3','n4','n5','n6','e2','e3','e4','e5','e6'];
|
||||
|
||||
$_arr = [];
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $value) {
|
||||
$door = false;
|
||||
foreach ($_p as $k => $v) {
|
||||
if (isset($value[$v]) and $value[$v] == 1) {
|
||||
$value[$v] = (int) $value[$v];
|
||||
$door = true;
|
||||
}
|
||||
}
|
||||
if ($door) {
|
||||
unset($value['auswertung']);
|
||||
$_arr[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
if ($return_array) {
|
||||
return $_arr;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($_arr);
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function filterNaechsten($_arr, $dienaechsten)
|
||||
{
|
||||
$f1 = "n".$dienaechsten;
|
||||
$f2 = "e".$dienaechsten;
|
||||
// echo "\nf1: " . $f1;
|
||||
// echo "\nf2: " . $f2;
|
||||
// echo "\n";
|
||||
$next = [];
|
||||
foreach ($_arr as $key => $value) {
|
||||
if ((isset($value[$f1]) and $value[$f1]==1) || (isset($value[$f2]) and $value[$f2]==1)) {
|
||||
$tmp = [];
|
||||
$tmp['user_id'] = $value['user_id'];
|
||||
$tmp['pos'] = $value['pos'];
|
||||
$tmp['rang'] = $value['rang'];
|
||||
$tmp["ersatz"] = $value[$f2] ? $value[$f2] : 0;
|
||||
$tmp[$f1] = $value[$f1];
|
||||
$tmp[$f2] = $value[$f2];
|
||||
$next[] = $tmp;
|
||||
}
|
||||
}
|
||||
return $next;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class ZuteilungenErteilt
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function laden()
|
||||
{
|
||||
$limitSelection=date('Y-m-d', strtotime('-1 year'));
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_zuteilungen');
|
||||
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
|
||||
$queryBuilder
|
||||
->select('tx_zuladungsliste_zuteilungen.uid', 'tx_zuladungsliste_zuteilungen.tstamp', 'b.wettbewerb', 'tx_zuladungsliste_zuteilungen.anzahl_architekten')
|
||||
->from('tx_zuladungsliste_zuteilungen')
|
||||
->join(
|
||||
'tx_zuladungsliste_zuteilungen',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_zuteilungen.uid_wettbewerbe'))
|
||||
);
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
|
||||
// Message::note($queryBuilder->getSQL());
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($statement);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Zuteilungen;
|
||||
|
||||
use ForceUTF8\Encoding;
|
||||
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "NuhOdds Comparatore" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
*
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2017 - 2022 Hermann Telser <hermann.telser@gmail.com>
|
||||
*
|
||||
* All rights reserved
|
||||
* ************************************************************* */
|
||||
|
||||
class _ZuteilungenController
|
||||
{
|
||||
public function __construct($xaction)
|
||||
{
|
||||
switch ($xaction) {
|
||||
case 'lade_zuteilungen':
|
||||
Zuteilungen::laden();
|
||||
break;
|
||||
case 'zuteilungen_wettbewerbe':
|
||||
ZuteilungWettbewerbe::laden();
|
||||
break;
|
||||
case 'zuteilungen_erteilt':
|
||||
ZuteilungenErteilt::laden();
|
||||
break;
|
||||
case 'zuteilung_laden':
|
||||
Zuteilung::laden();
|
||||
break;
|
||||
case 'neu_zuteilen':
|
||||
ZuteilungNeu::zuteilen();
|
||||
break;
|
||||
default:
|
||||
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
return [
|
||||
\HermannTelser\Zuladungsliste\Domain\Model\Architekten::class => [
|
||||
'tableName' => 'fe_users',
|
||||
'recordType' => 'Tx_Zuladungsliste_Architekten',
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
// config.tx_extbase{
|
||||
// persistence{
|
||||
// classes{
|
||||
// HermannTelser\Zuladungsliste\Domain\Model\Architekten {
|
||||
// mapping {
|
||||
// tableName = fe_users
|
||||
// recordType = Tx_Zuladungsliste_Architekten
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -0,0 +1,37 @@
|
||||
<T3DataStructure>
|
||||
<meta>
|
||||
<langDisable>1</langDisable>
|
||||
</meta>
|
||||
<sheets>
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<TCEforms>
|
||||
<sheetTitle>Zuladungsliste Konfiguration</sheetTitle>
|
||||
</TCEforms>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<settings.zuladungsliste_modus>
|
||||
<TCEforms>
|
||||
<label>Select Arbeitsmodus</label>
|
||||
<onChange>reload</onChange>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<items type="array">
|
||||
<numIndex index="0" type="array">
|
||||
<numIndex index="0">Administration</numIndex>
|
||||
<numIndex index="1">1</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1" type="array">
|
||||
<numIndex index="0">Zuladungsliste</numIndex>
|
||||
<numIndex index="1">2</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
<default>0</default>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.zuladungsliste_modus>
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'frontend' => [
|
||||
'HermannTelser/zuladungsliste/ajaxzuladungsliste' => [
|
||||
'target' => \HermannTelser\Zuladungsliste\Middleware\Ajax::class,
|
||||
'after' => [
|
||||
'typo3/cms-frontend/prepare-tsfe-rendering'
|
||||
]
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,345 @@
|
||||
<?php
|
||||
|
||||
if (!isset($GLOBALS['TCA']['fe_users']['ctrl']['type'])) {
|
||||
if (file_exists($GLOBALS['TCA']['fe_users']['ctrl']['dynamicConfigFile'])) {
|
||||
require_once($GLOBALS['TCA']['fe_users']['ctrl']['dynamicConfigFile']);
|
||||
}
|
||||
// no type field defined, so we define it here. This will only happen the first time the extension is installed!!
|
||||
$GLOBALS['TCA']['fe_users']['ctrl']['type'] = 'tx_extbase_type';
|
||||
$GLOBALS['TCA']['fe_users']['ctrl']['searchFields'] = 'last_name, company, teilhaber';
|
||||
|
||||
$tempColumnstx_zuladungsliste_fe_users = array();
|
||||
$tempColumnstx_zuladungsliste_fe_users[$GLOBALS['TCA']['fe_users']['ctrl']['label']] = 'company';
|
||||
$tempColumnstx_zuladungsliste_fe_users[$GLOBALS['TCA']['fe_users']['ctrl']['type']] = array(
|
||||
'exclude' => 0,
|
||||
'label' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste.tx_extbase_type',
|
||||
'config' => array(
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => array(
|
||||
array('Architekten', 'Tx_Zuladungsliste_Architekten')
|
||||
),
|
||||
'default' => 'Tx_Zuladungsliste_Architekten',
|
||||
'size' => 1,
|
||||
'maxitems' => 1,
|
||||
)
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tempColumnstx_zuladungsliste_fe_users, 1);
|
||||
}
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
|
||||
'fe_users',
|
||||
$GLOBALS['TCA']['fe_users']['ctrl']['type'],
|
||||
'',
|
||||
'after:' . $GLOBALS['TCA']['fe_users']['ctrl']['label']
|
||||
);
|
||||
// Cukrowicz
|
||||
$GLOBALS['TCA']['fe_users']['ctrl']['label_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadArchitekten';
|
||||
$GLOBALS['TCA']['fe_users']['feInterface']['fe_admin_fieldList'] .= ',kammermitgliedsnummer, punktestand, istpartner';
|
||||
$GLOBALS['TCA']['fe_users']['ctrl']['searchFields'] = 'username, email, last_name, company, teilhaber';
|
||||
|
||||
$tmp_zuladungsliste_columns = array(
|
||||
'istpartner' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Status',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'readOnly' => true,
|
||||
'items' => [
|
||||
['Architekt Alleine', '0', 'EXT:zuladungsliste/Resources/Public/Icons/user.svg'],
|
||||
['Partner:in einer Gemeinschaft', '1', 'EXT:zuladungsliste/Resources/Public/Icons/users.svg'],
|
||||
['Bürogemeinschaft', '2', 'EXT:zuladungsliste/Resources/Public/Icons/handshake.svg']
|
||||
],
|
||||
],
|
||||
],
|
||||
'punktestand' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Punktestand',
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 12,
|
||||
'readOnly' => true,
|
||||
],
|
||||
],
|
||||
'company' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Firma / Bürogemeinschaft / Partner:innen',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 120,
|
||||
'eval' => 'trim,required',
|
||||
],
|
||||
],
|
||||
'first_name' => [
|
||||
'exclude' => 1,
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'label' => 'Vorname',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 120,
|
||||
'eval' => 'trim',
|
||||
],
|
||||
],
|
||||
'last_name' => [
|
||||
'exclude' => 1,
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'label' => 'Nachname',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 120,
|
||||
'eval' => 'trim',
|
||||
],
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Titel',
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 20,
|
||||
'eval' => 'trim',
|
||||
'max' => 40,
|
||||
],
|
||||
],
|
||||
'gender' => [
|
||||
'exclude' => 0,
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'label' => 'Hr./Fr.:',
|
||||
'config' => [
|
||||
'type' => 'radio',
|
||||
'items' => [
|
||||
[
|
||||
'None',
|
||||
'0'
|
||||
],
|
||||
[
|
||||
'Herr',
|
||||
'1'
|
||||
],
|
||||
[
|
||||
'Frau',
|
||||
'2'
|
||||
]
|
||||
],
|
||||
]
|
||||
],
|
||||
'kammermitgliedsnummer' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Kammer Mitgliedsnummer',
|
||||
'config' => array(
|
||||
'type' => 'input',
|
||||
'size' => 10,
|
||||
'eval' => 'unique'
|
||||
)
|
||||
),
|
||||
'inliste' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'In Zuladungsliste',
|
||||
'config' => array(
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
)
|
||||
),
|
||||
'vereidigung' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Vereidigung',
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'config' => array(
|
||||
'dbType' => 'date',
|
||||
'renderType' => 'inputDateTime',
|
||||
'type' => 'input',
|
||||
'size' => 10,
|
||||
'eval' => 'date',
|
||||
'checkbox' => 0,
|
||||
'default' => '0000-00-00'
|
||||
),
|
||||
),
|
||||
'frauenfoerderpunkt' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Frauenförderpunkt',
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:false',
|
||||
'config' => array(
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
)
|
||||
),
|
||||
'frauenfoerderpunkt_verfallen' => array(
|
||||
'exclude' => 0,
|
||||
'displayCond' => 'FIELD:frauenfoerderpunkt:REQ:true',
|
||||
'readOnly' => true,
|
||||
'label' => 'Status Frauenförderpunkt',
|
||||
'description' => 'Wird ein gültiges Datum angezeigten so ist der Frauenförderpunkt ab diesem Zeitpunkt verfallen.',
|
||||
'config' => array(
|
||||
'type' => 'input',
|
||||
'size' => 7,
|
||||
'readOnly' => true
|
||||
),
|
||||
),
|
||||
'solidaritaetserklaerung' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Solidaritätserklärung',
|
||||
'config' => array(
|
||||
'type' => 'check',
|
||||
'default' => 0
|
||||
)
|
||||
),
|
||||
'kontoaufloesung_active' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Kontoauflösung',
|
||||
'description' => 'Aktiv nur mit Stichtag',
|
||||
'config' => array(
|
||||
'dbType' => 'date',
|
||||
'renderType' => 'inputDateTime',
|
||||
'type' => 'input',
|
||||
'size' => 7,
|
||||
'eval' => 'date',
|
||||
'checkbox' => 0,
|
||||
'default' => '0000-00-00'
|
||||
),
|
||||
),
|
||||
'kontoaufloesung_begruendung' => [
|
||||
'label' => 'Begründung der Auslistung',
|
||||
'description' => 'z.B.: Pension, Abmeldung, Zusammenlegung..',
|
||||
'config' => array(
|
||||
'type' => 'text',
|
||||
'cols' => 30,
|
||||
'rows' => 5,
|
||||
'eval' => 'trim',
|
||||
'max' => 255
|
||||
),
|
||||
],
|
||||
'extrasperrung' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Sperrungen',
|
||||
'config' => array(
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'tx_zuladungsliste_extrasperrung_user_mm',
|
||||
'foreign_field' => 'uid_user',
|
||||
'foreign_label' => 'uid_extrasperrung',
|
||||
),
|
||||
),
|
||||
'wettbewerbe' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Wettbewerbe',
|
||||
'config' => array(
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'tx_zuladungsliste_wettbewerbe_architekten_mm',
|
||||
'foreign_field' => 'uid_user',
|
||||
'foreign_label' => 'uid_wettbewerbe',
|
||||
'appearance' => array(
|
||||
'expandSingle' => 1,
|
||||
'newRecordLinkAddTitle' => 0,
|
||||
'levelLinksPosition' => 'both',
|
||||
),
|
||||
),
|
||||
),
|
||||
'kammernid' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Kammer Zuordnung',
|
||||
'config' => array(
|
||||
'type' => 'select',
|
||||
'size' => 1,
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => array(
|
||||
array(' --- Bitte wählen --- ', 0)
|
||||
),
|
||||
'foreign_table' => 'tx_zuladungsliste_domain_model_kammern',
|
||||
)
|
||||
),
|
||||
'kontoaufloesung' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Punkte Verteilung (optional)',
|
||||
'description' => 'Gültige Punkte können anderen Architekte:innen übertragen werden. Bei Auflösung einer Bürogemeinschaft das ist nur mit den gemeinsam erlangten Punkte möglich. Die eingebrachten Punkte gehen zurück an den/die jeweilige/n Architekten:in.',
|
||||
'config' => array(
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'tx_zuladungsliste_konto_aufloesung_mm',
|
||||
'foreign_field' => 'uid_geber',
|
||||
'foreign_label' => 'uid_empfaenger',
|
||||
),
|
||||
),
|
||||
'burogemeinschaft_start' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Begin der Bürogemeinschaft',
|
||||
'description' => 'Aktiv nur mit Stichtag, zum Beenden Tab "Konto Auflösung" verwenden.',
|
||||
'config' => array(
|
||||
'dbType' => 'date',
|
||||
'renderType' => 'inputDateTime',
|
||||
'type' => 'input',
|
||||
'size' => 7,
|
||||
'eval' => 'date',
|
||||
'checkbox' => 0,
|
||||
'default' => '0000-00-00'
|
||||
),
|
||||
),
|
||||
'burogemeinschaft' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Partner:innen der Bürogemeinschaft',
|
||||
'description' => 'Architekten:innen können gleichzeitig nur jeweils einer aktiven Bürogemeinschaft angehören. Bei Mitgliedschaft zu einer Bürogemeinschaft scheint die Einzelwertung nicht mehr auf.',
|
||||
'config' => array(
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'tx_zuladungsliste_buro_gemeinschaft_mm',
|
||||
'foreign_field' => 'uid_gemeinschaft',
|
||||
'foreign_label' => 'uid_user',
|
||||
),
|
||||
),
|
||||
'teilhaber' => [
|
||||
'exclude' => 1,
|
||||
'displayCond' => 'FIELD:burogemeinschaft:REQ:true',
|
||||
'label' => 'Teilhaber',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 255,
|
||||
'eval' => 'trim',
|
||||
],
|
||||
],
|
||||
'ruhestellungen' => array(
|
||||
'exclude' => 0,
|
||||
'label' => 'Ruhestellungen',
|
||||
'description' => 'Mitglieder können ihre Punkte ruhend stellen. Die Verfallsfrist der Punkte wird gehemmt, eine Zuladung erfolgt in dieser Zeit nicht.',
|
||||
'config' => array(
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'tx_zuladungsliste_domain_model_ruhestellung',
|
||||
'foreign_table_where' => 'AND pid = 63',
|
||||
'foreign_field' => 'uid_ruhestellung',
|
||||
'foreign_label' => 'ruhestellung_start',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tmp_zuladungsliste_columns, true);
|
||||
|
||||
|
||||
/* inherit and extend the show items from the parent class */
|
||||
|
||||
// debug($GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']);
|
||||
|
||||
// if (isset($GLOBALS['TCA']['fe_users']['types']['0']['showitem'])) {
|
||||
// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = $GLOBALS['TCA']['fe_users']['types']['0']['showitem'];
|
||||
// } elseif (is_array($GLOBALS['TCA']['fe_users']['types'])) {
|
||||
// // use first entry in types array
|
||||
// $fe_users_type_definition = reset($GLOBALS['TCA']['fe_users']['types']);
|
||||
// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = $fe_users_type_definition['showitem'];
|
||||
// } else {
|
||||
// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = '';
|
||||
// }
|
||||
|
||||
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] = '--div--;Allgemein,username,password,usergroup';
|
||||
// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Persönliche Daten,company,title,gender,first_name,last_name,address,zip,city,static_info_country,telephone,email,comments';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Teilnehmer,istpartner,company,teilhaber,gender,title,first_name,last_name';
|
||||
// $GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Hinweise,description';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Zuladungsliste, kammernid, kammermitgliedsnummer, punktestand, vereidigung, geburtsdatum, frauenfoerderpunkt, frauenfoerderpunkt_verfallen';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Wettbewerbe,wettbewerbe';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Besondere Sperrungen,extrasperrung';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Ruhestellungen,ruhestellungen';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Bürogemeinschaft,burogemeinschaft_start,burogemeinschaft';
|
||||
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Konto Auflösung,kontoaufloesung_active,kontoaufloesung,kontoaufloesung_begruendung';
|
||||
|
||||
$GLOBALS['TCA']['fe_users']['columns'][$GLOBALS['TCA']['fe_users']['ctrl']['type']]['config']['items'][] = array('LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type.Tx_Zuladungsliste_Architekten', 'Tx_Zuladungsliste_Architekten');
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
|
||||
'Zuladungsliste',
|
||||
'EXT:/Resources/Private/Language/locallang_csh_.xlf'
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') || die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('zuladungsliste', 'Configuration/TypoScript', 'Zuladungsliste ZT Kammer');
|
||||
Loaded 100 of 2443 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user