first commit

This commit is contained in:
salam committed 2026-10-06 19:40:28 +02:00
commit e81864e683
2984 files changed
+267797

No files matched your search

+63
View File
@@ -0,0 +1,63 @@
{
"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": {
"allow-plugins": {
"typo3/class-alias-loader": true,
"typo3/cms-composer-installers": true
}
},
"require": {
"typo3/cms-adminpanel": "^11.5",
"typo3/cms-belog": "^11.5",
"typo3/cms-beuser": "^11.5",
"typo3/cms-felogin": "^11.5",
"typo3/cms-fluid-styled-content": "^11.5",
"typo3/cms-form": "^11.5",
"typo3/cms-impexp": "^11.5",
"typo3/cms-info": "^11.5",
"typo3/cms-redirects": "^11.5",
"typo3/cms-reports": "^11.5",
"typo3/cms-rte-ckeditor": "^11.5",
"typo3/cms-setup": "^11.5",
"typo3/cms-sys-note": "^11.5",
"typo3/cms-t3editor": "^11.5",
"typo3/cms-tstemplate": "^11.5",
"typo3/cms-viewpage": "^11.5",
"mpdf/mpdf": "^8.0",
"bk2k/bootstrap-package": "^12.0",
"catfan/medoo": "v2.1.12",
"typo3/cms-backend": "^11.5",
"typo3/cms-core": "^11.5",
"typo3/cms-extbase": "^11.5",
"typo3/cms-extensionmanager": "^11.5",
"typo3/cms-filelist": "^11.5",
"typo3/cms-fluid": "^11.5",
"typo3/cms-frontend": "^11.5",
"typo3/cms-install": "^11.5",
"typo3/cms-recordlist": "^11.5",
"typo3/cms-scheduler": "^11.5",
"neitanod/forceutf8": "^2.0",
"typo3/cms-about": "^11.5",
"typo3/cms-dashboard": "^11.5",
"typo3/cms-lowlevel": "^11.5",
"typo3/cms-opendocs": "^11.5",
"typo3/cms-recycler": "^11.5",
"typo3/cms-seo": "^11.5",
"typo3/minimal": "^11.5",
"hermanntelser/zuladungsliste": "dev-main",
"sjbr/sr-freecap": "^11.5",
"in2code/femanager": "^7.0"
}
}
Generated
+8218
View File
File diff suppressed because it is too large. Load diff
+26
View File
@@ -0,0 +1,26 @@
base: 'https://steiermark.test/app'
errorHandling:
-
errorCode: 404
errorHandler: Page
errorContentSource: 't3://page?uid=1'
-
errorCode: 403
errorHandler: Page
errorContentSource: 't3://page?uid=1'
languages:
-
title: Deutsch
enabled: true
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
websiteTitle: ''
navigationTitle: ''
hreflang: de_DE
direction: ''
flag: global
languageId: 0
rootPageId: 50
websiteTitle: ''
+26
View File
@@ -0,0 +1,26 @@
base: 'https://steiermark.test'
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: ''
+5
View File
@@ -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
+22
View File
@@ -0,0 +1,22 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#fa1b49",
"activityBar.background": "#fa1b49",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#155e02",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#fa1b49",
"statusBar.background": "#dd0531",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#fa1b49",
"statusBarItem.remoteBackground": "#dd0531",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#dd0531",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#dd053199",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.remoteColor": "#dd0531"
}
@@ -0,0 +1,45 @@
<?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 FixUser
{
public function set()
{
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
$statement = $queryBuilder
->select('*')
->from('fe_users')
->where(
$queryBuilder->expr()->neq('date_of_birth', (int) 0)
)->execute()
->fetchAll();
foreach ($statement as $key => $row) {
$queryBuilder
->update('fe_users')
->where(
$queryBuilder->expr()->eq('uid', (int) $row['uid'])
)
->set('tx_extbase_type', (string) 'Tx_Zuladungsliste_Architekten')
->set('vereidigung', (string) date("Y-m-d", $row['date_of_birth']))
->set('name', (string) $row['first_name'] . " " . $row['last_name'])
->set('date_of_birth', (int) 0)
->execute();
}
}
}
+251
View File
@@ -0,0 +1,251 @@
<?php
namespace HermannTelser\Zuladungsliste\Backend;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Database\ConnectionPool;
use HermannTelser\Zuladungsliste\Backend\FixUser;
use TYPO3\CMS\Core\Utility\DebugUtility;
/**
* 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
{
public function loadTeilnehmer(&$parameters, $parentObject)
{
// DebugUtility::debug($parameters['row']['uid_empfaenger'], 'parameters');
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('fe_users', $parameters['row']['uid_empfaenger'][0], "company,title,name");
$parameters['title'] = $record['company'];
$parameters['title'] .= " (" . $record['title'];
$parameters['title'] .= " " . $record['name'] . ")";
}
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['sektinstagid'], "rwcode,bezeichnung,stichtag,kammernid");
$parameters['title'] = $record['rwcode'] . ': ' . $newTitle;
// $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'];
$newTitle .= ' (vom ' . date("d. M. y", strtotime($record['stichtag'])) . ')';
$parameters['title'] = $newTitle;
}
public function loadArchitekten(&$parameters, $parentObject)
{
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $parameters['row']['uid']);
$uid = $parameters["row"]['uid'];
$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', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT))
)->execute()
->fetchColumn(0);
$company = $record['company'] != " " ? $record['company'] : '';
if ($count) {
$parameters['title'] = $company . ' [EMPFÄNGER]';
} elseif ($record["kontoaufloesung_active"] > 0) {
$parameters['title'] = $company . "\n [" . $record["kontoaufloesung_active"] . " AUFGELÖST]";
} else {
$parameters['title'] = $company;
}
FixUser::set();
}
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_id = $parameters['row']['uid_kriterien'];
$record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('tx_zuladungsliste_domain_model_kriterien', $kriterien_id);
$kriterien_label = $record['bezeichnung'];
$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]);
if ($parameters['row']['punkte'] == 1) {
$kriterien_label .= '<br><span style="color:#3399ff; font-weight:bold;">' . $parameters['row']['punkte'] . ' Punkt';
} else {
$kriterien_label .= '<br><span style="color:#3399ff; font-weight:bold;">' . $parameters['row']['punkte'] . ' Punkte';
}
} 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 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']['tstamp_zuordnung'])) {
$tstamp_zuordnung = (int) $parameters['row']['tstamp_zuordnung'][0];
} else {
$tstamp_zuordnung = (int) $parameters['row']['tstamp_zuordnung'];
}
if (is_array($parameters['row']['tstamp_aktivierung'])) {
$tstamp_aktivierung = (int) $parameters['row']['tstamp_aktivierung'][0];
} else {
$tstamp_aktivierung = (int) $parameters['row']['tstamp_aktivierung'];
}
if (is_array($parameters['row']['tstamp_ablehnen'])) {
$tstamp_ablehnen = (int) $parameters['row']['tstamp_ablehnen'][0];
} else {
$tstamp_ablehnen = (int) $parameters['row']['tstamp_ablehnen'];
}
if (is_array($parameters['row']['ist_befangen'])) {
$ist_befangen = (int) $parameters['row']['ist_befangen'][0];
} else {
$ist_befangen = (int) $parameters['row']['ist_befangen'];
}
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'];
}
// 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,$punkte_id);
if (isset($wettbewerbe_id)) {
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
$record = $queryBuilder
->select('kriteriumid', 'wettbewerb')
->from('tx_zuladungsliste_domain_model_wettbewerbe')
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($wettbewerbe_id, \PDO::PARAM_INT))
)->execute();
while ($row = $record->fetch()) {
$kriterien_id = $row['kriteriumid'];
$wettbewerb_label = $row['wettbewerb'];
}
// $wettbewerb_label .= '<span class="small">' . $wettbewerbe_id . '<span>';
// \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 style="color:#3399ff; font-weight:bold;">' . $record['company'] . '</span>';
}
if ($tstamp_ablehnen || $ist_befangen) {
$tstamp_ablehnen = $tstamp_ablehnen ? date("d. M. Y", $tstamp_ablehnen) : false;
$label_abge = $ist_befangen ? 'Befangen' : 'Abgelehnt am:';
$wettbewerb_label .= '<br><span class="be_punktestatus" style="font-weight:normal;"><span style="color:#f00;">' . $label_abge . '</span>' . $tstamp_ablehnen . '</span>';
}
if ($punkte_id) {
$tstamp_zuordnung = $tstamp_zuordnung ? date("d. M. Y", $tstamp_zuordnung) : false;
$tstamp_aktivierung = $tstamp_aktivierung ? date("d. M. Y", $tstamp_aktivierung) : false;
$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'];
}
$wettbewerb_label .= '</b><br><span style="color:#800; font-weight:bold;">' . $bezeichnung . ' (' . $punkte;
$wettbewerb_label .= $punkte == 1 ? ' Punkt)</span>' : ' Punkte)</span>';
if ($punkte != 0) {
if ($tstamp_zuordnung) {
$wettbewerb_label .= '<br><span class="be_punktestatus"><span>Zugeordnet am:</span>' . $tstamp_zuordnung . '</span>';
}
if ($tstamp_aktivierung) {
$wettbewerb_label .= '<br><span class="be_punktestatus"><span>Freigeschaltet am:</span>' . $tstamp_aktivierung . '</span>';
}
}
}
}
} else {
$wettbewerb_label = '[Fehler!]';
}
$parameters['title'] = '<b>' . $wettbewerb_label . '</b>';
// $parameters['title'] = '<b>' . $wettbewerb_label . '</b><br><span style="color:#3399ff; font-weight:bold;">' . $kriterium_label . '</span>';
}
}
@@ -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('Bitte zuordnen','');
$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,72 @@
<?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 "Zuladungsliste Steiermark" 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 = 1;
if (_Berechnung::$debug) {
Message::debug(__FILE__, __LINE__, 'Load Architekten');
}
// 2 usergroup => Ordentliche Registrierung zur Zuladungsliste
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
$queryBuilder
->select('uid', 'disable', 'email', 'name', 'last_name', 'company', 'vereidigung', 'frauenfoerderpunkt', 'solidaritaetserklaerung', 'extrasperrung', 'kontoaufloesung', 'kontoaufloesung_active', 'wettbewerbe', 'kammernid', 'kammermitgliedsnummer', 'gender', 'date_of_birth')
->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']),
);
if (is_array($uid)) {
$queryBuilder->andWhere($queryBuilder->expr()->in('uid', $uid));
} elseif (0 != $uid) {
$queryBuilder->andWhere($queryBuilder->expr()->eq('uid', (int) $uid));
}
if (0 != _Berechnung::$_config['berechne_bis']) {
$queryBuilder->andWhere('crdate <= ' . _Berechnung::$_config['berechne_bis']);
$date = date('Y-m-d', _Berechnung::$_config['berechne_bis']);
$queryBuilder->andWhere("vereidigung < '$date' or vereidigung IS NULL");
}
$statement = $queryBuilder->execute()->fetchAll();
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
foreach ($statement as $value) {
_Berechnung::$_data['architekten_uids'][] = $value['uid'];
}
_Berechnung::$_data['architekten'] = $statement;
}
}
@@ -0,0 +1,164 @@
<?php
namespace HermannTelser\Zuladungsliste\Berechnung;
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 "Zuladungsliste Steiermark" 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 AufloesungPunkteVerteilung
{
/**
* @return void
*/
public static function manage()
{
if (_Berechnung::$debug) {
Message::debug(__FILE__, __LINE__, 'Manage Auflösung Punkte Verteilung');
}
// 2 usergroup => Ordentliche Registrierung zur Zuladungsliste
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users');
$queryBuilder->getRestrictions()->removeAll()->add(GeneralUtility::makeInstance(DeletedRestriction::class));
$queryBuilder->select('uid')->from('fe_users')
->where($queryBuilder->expr()->isNotNull('kontoaufloesung_active'));
if(_Berechnung::$_config['berechne_bis'] != 0)
{
$date = date('Y-m-d', _Berechnung::$_config['berechne_bis']);
$queryBuilder->andWhere("kontoaufloesung_active < '$date'");
}
$statement = $queryBuilder->execute()->fetchAll();
// Message::note($queryBuilder->getSQL());
// exit;
$_geber = [];
if(count($statement)){
foreach ($statement as $value) {
$_geber[] = $value['uid'];
}
}
if(count($_geber) == 0){
return;
}
$_geber_list = implode($_geber, ",");
// echo $_geber_list;
// exit;
$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),
$queryBuilder->expr()->in('uid_geber', $_geber_list)
)->execute()->fetchAll();
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
$verteiler_arr = [];
foreach ($statement as $key => $value) {
$uid = $value['uid_geber'];
$verteiler_arr[$uid][] = $value;
}
foreach ($verteiler_arr as $uid_geber => $empfaener_arr) {
$frauenpunkt_abgezogen = '';
$neueinsteigerpunkt_abgezogen = '';
$solidaritaetserklaerung_abgezogen = '';
foreach (_Berechnung::$_data['liste'] as $key_geber => $_value_liste) {
if ($_value_liste['user_id'] == $uid_geber) {
$geber_punkte = $_value_liste['punkte'];
if ($geber_punkte > 0) {
$geber_company = $_value_liste['company'];
_Berechnung::$_data['liste'][$key_geber]['company'] .= ' ( Kontoauflösung '._Berechnung::$_data['liste'][$key_geber]['kontoaufloesung_active'].')';
_Berechnung::$_data['liste'][$key_geber]['punkte'] = 0;
_Berechnung::$_data['liste'][$key_geber]['nominiert'] = 0;
_Berechnung::$_data['liste'][$key_geber]['auswertung']['wettbewerbe']['punkte'] = 0;
_Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['frauenfoerderpunkt']['punkte']) {
$frauenpunkt_abgezogen = ', Frauenförderpunkt wurde abgezogen';
--$geber_punkte;
_Berechnung::$_data['liste'][$key_geber]['auswertung']['frauenfoerderpunkt']['punkte'] = 0;
}
if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte']) {
$neueinsteigerpunkt_abgezogen = ', Neueinsteigerpunkt wurde abgezogen';
--$geber_punkte;
_Berechnung::$_data['liste'][$key_geber]['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
}
if (1 == _Berechnung::$_data['liste'][$key_geber]['auswertung']['solidaritaetserklaerung']['punkte']) {
$solidaritaetserklaerung_abgezogen = ', Solidaritätserklärungspunkt wurde abgezogen';
--$geber_punkte;
_Berechnung::$_data['liste'][$key_geber]['auswertung']['solidaritaetserklaerung']['punkte'] = 0;
}
foreach ($empfaener_arr as $key => $_empfaenger) {
$uid_empfaenger = $_empfaenger['uid_empfaenger'];
$prozente = $_empfaenger['prozente'];
// SET EMPFÄNGER
foreach (_Berechnung::$_data['liste'] as $key => $value) {
if ($value['user_id'] == $uid_empfaenger) {
// if($uid_empfaenger==326){
// print_r(_Berechnung::$_data['liste'][$key]);
// exit;
// }
$punkte_empf_anteil = round($geber_punkte * ($prozente / 100), 2);
if(_Berechnung::$_data['liste'][$key]['gesperrt'] == 0)
{
_Berechnung::$_data['liste'][$key]['nominiert'] = 1;
}
_Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] + $punkte_empf_anteil;
_Berechnung::$_data['liste'][$key]['istempfaenger'] = '1';
_Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe']['punkte'] += $punkte_empf_anteil;
_Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe'][] = [
'wettbewerb' => "$prozente% von Kontoauflösung " . $frauenpunkt_abgezogen . $neueinsteigerpunkt_abgezogen . $solidaritaetserklaerung_abgezogen,
'verfahrensid' => '',
'verfahrensort' => '',
'entscheidungstermin' => '',
'mit_sperrung' => '',
'punkte' => $punkte_empf_anteil,
'bezeichnung' => '',
'bezeichnung_punkte' => '',
'regelwerk' => '',
'monate_seit_entscheidungstermin' => '',
'punkte_aktive' => '',
'gueltig_bis' => '',
'von_transfer' => $geber_company,
];
}
}
}
// unset geber punkte
unset(_Berechnung::$_data['liste'][$key_geber]);
}
}
}
}
// print_r(_Berechnung::$_data['liste']);
// exit;
}
}
@@ -0,0 +1,214 @@
<?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 "Zuladungsliste Steiermark" 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 function load_user($_liste, $user_objekt)
{
// _Berechnung::$debug = 1;
if (_Berechnung::$debug) {
Message::debug(
__FILE__,
__LINE__,
"Erfolgspunkte"
);
}
if (!isset(_Berechnung::$_data['sektionstage'])) {
Sektionstage::load();
}
// _Berechnung::$_config['berechne_bis'] = mktime(0, 0, 0, 7, 15, 2021);
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
$queryBuilder
->select(
'tx_zuladungsliste_domain_model_wettbewerbe.uid',
'tx_zuladungsliste_domain_model_wettbewerbe.wettbewerb',
'tx_zuladungsliste_domain_model_wettbewerbe.verfahrensid',
'tx_zuladungsliste_domain_model_wettbewerbe.verfahrensort',
'tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin',
'tx_zuladungsliste_domain_model_wettbewerbe.abgabetermin',
'tx_zuladungsliste_domain_model_wettbewerbe.sperre_deaktiviert',
'b.ladung_durch_auslober',
'c.punkte',
'd.sperrung AS mit_sperrung',
'd.bezeichnung',
'e.bezeichnung AS bezeichnung_punkte'
)
->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')
)
)
->leftJoin(
'b',
'tx_zuladungsliste_punkte_kriterien_mm',
'c',
$queryBuilder->expr()->eq(
'c.uid_punkte',
$queryBuilder->quoteIdentifier('b.uid_punkte')
)
)->leftJoin(
'tx_zuladungsliste_domain_model_wettbewerbe',
'tx_zuladungsliste_domain_model_kriterien',
'd',
$queryBuilder->expr()->eq(
'd.uid',
$queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid')
)
)->leftJoin(
'c',
'tx_zuladungsliste_domain_model_punkte',
'e',
$queryBuilder->expr()->eq(
'e.uid',
$queryBuilder->quoteIdentifier('c.uid_punkte')
)
)
->where(
$queryBuilder->expr()->eq('c.uid_kriterien', 'tx_zuladungsliste_domain_model_wettbewerbe.kriteriumid'),
$queryBuilder->expr()->eq('b.tstamp_ablehnen', 0),
$queryBuilder->expr()->gt('b.tstamp_aktivierung', 0),
$queryBuilder->expr()->eq('b.uid_user', (int) $user_objekt['uid'])
)
->groupBy('tx_zuladungsliste_domain_model_wettbewerbe.verfahrensid')
->orderBy('tx_zuladungsliste_domain_model_wettbewerbe.uid','DESC');
if (_Berechnung::$_config['berechne_bis'] != 0) {
$date = date("Y-m-d", _Berechnung::$_config['berechne_bis']);
$queryBuilder->andWhere("b.tstamp_aktivierung <= " . _Berechnung::$_config['berechne_bis']);
$queryBuilder->andWhere("tx_zuladungsliste_domain_model_wettbewerbe.entscheidungstermin < '$date'");
}
$statement = $queryBuilder->execute()->fetchAll();
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
$_liste["gesperrt_bis"] = 0;
$_liste["kommentar"] = 0;
$_liste["gesperrt"] = 0;
$_liste["nominiert"] = 1;
$_return_sort = [];
foreach ($statement as $key => $row) {
if ((int) $row["entscheidungstermin"] > 0) {
$entscheidungstermin = strtotime($row["entscheidungstermin"]);
$datetime2 = new \DateTime($row["entscheidungstermin"]);
} else {
$entscheidungstermin = strtotime($row["abgabetermin"]);
$datetime2 = new \DateTime($row["abgabetermin"]);
}
// Message::note($row['wettbewerb']);
$_sektionstag = Sektionstage::filter($entscheidungstermin);
$datetime1 = new \DateTime();
if (_Berechnung::$_config['berechne_bis'] != 0) {
$datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']);
}
$interval = $datetime1->diff($datetime2);
$monate_seit_entscheidungstermin = $interval->m + ($interval->y * 12);
$row["regelwerk"] = $_sektionstag["bezeichnung"];
$row["monate_seit_entscheidungstermin"] = $monate_seit_entscheidungstermin;
// PUNKTE GÜLTIGKEIT
$row["punkte_aktive"] = $monate_seit_entscheidungstermin <= $_sektionstag["punktezeit"] ? 1 : 0;
if ($row["punkte_aktive"] == 1) {
$_liste["punkte"] = $_liste["punkte"] + $row["punkte"];
}
$datetime3 = clone $datetime2;
$datetime3->modify("+" . $_sektionstag["punktezeit"] . " months");
$row["gueltig_bis"] = date("d.m.Y", $datetime3->format("U"));
$row["wettbewerb_sort"] = $datetime3->format("U");
// SPERRZEIT
if ($row["mit_sperrung"] and $row["sperre_deaktiviert"] == 0) {
if ($row['ladung_durch_auslober'] == 1) {
// Active Sperrzeit wird auf 9 Monate verkürzt
$_sektionstag["sperrzeit"] = 9;
}
$row["sperrung_aktive"] = $monate_seit_entscheidungstermin <= $_sektionstag["sperrzeit"] ? 1 : 0;
$datetime2->modify("+" . $_sektionstag["sperrzeit"] . " months");
$row["gesperrt_bis"] = date("d.m.Y", $datetime2->format("U"));
$_liste['controll']['gesperrt_bis'] = $row["gesperrt_bis"];
$_liste['controll']['sperrung_aktive'] = $datetime2->format("U");
$_liste['controll']['berechne_bis'] = _Berechnung::$_config['berechne_bis'];
// salam 28.4.2022
$sperreZeitLimit = (_Berechnung::$_config['berechne_bis'] != 0) ? _Berechnung::$_config['berechne_bis'] : time();
if ($row["sperrung_aktive"] and $datetime2->format("U") > $sperreZeitLimit) {
// echo "\n";
// echo $row["gesperrt_bis"];
// echo "\n";
// echo $_liste["gesperrt_bis"];
// echo "\n";
// exit;
if ($_liste["gesperrt_bis"] != "" and $row["gesperrt_bis"] != "") {
$tmp1 = new \DateTime($row["gesperrt_bis"]);
$tmp2 = new \DateTime($_liste["gesperrt_bis"]);
if ($tmp1 > $tmp2)
$_liste["gesperrt_bis"] = $row["gesperrt_bis"];
} else {
$_liste["gesperrt_bis"] = $row["gesperrt_bis"];
}
if ($row['ladung_durch_auslober'] == 1) {
$_liste["kommentar"] = $row["wettbewerb"] . ' (Ladung durch Auslober/in, Sperrzeit wird auf 9 Monate verkürzt)';
} else {
$_liste["kommentar"] = $row["wettbewerb"];
}
$_liste["gesperrt"] = 1;
$_liste["nominiert"] = 0;
}
}
$_return_sort[] = $row;
}
if ($_return_sort) {
$wettbewerb_sort = array_column($_return_sort, 'wettbewerb_sort');
array_multisort($wettbewerb_sort, SORT_DESC, $_return_sort);
}
// WETTBEWERBE ERFOLGSPUNKTE
$_liste["auswertung"]["wettbewerbe"] = $_return_sort;
return $_liste;
}
}
@@ -0,0 +1,78 @@
<?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 "Zuladungsliste Steiermark" 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 Frauen
{
/**
* @return void
*/
public static function load($_liste, $user_objekt)
{
if (_Berechnung::$debug) {
Message::debug(__file__, __line__, "Load Frauen Förderungs Punkt");
}
// FRAUEN FÖRDERUNGS PUNKT
// $_liste["auswertung"]["frauenfoerderpunkt"] = Frauen::load($_liste, $user_objekt, $_liste["punkte"]);
// $_liste["punkte"] += $_liste["auswertung"]["frauenfoerderpunkt"]["punkte"];
if ($user_objekt["frauenfoerderpunkt"]==0) {
$_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 0;
$_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Kein Anspruch";
return $_liste;
} else {
// Frauenförderung ohne Punkte immer Gültig
if ($_liste["punkte"] > 0) {
$_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 1;
$_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Punktestand > 0; Punkt gültig";
$_liste["punkte"]++;
return $_liste;
}
$vereidigung = strtotime($user_objekt["vereidigung"]);
$sektionstag = Sektionstage::filter($vereidigung);
$frauenfoerderung_monate = $sektionstag["frauenfoerderung"];
$datetime1 = new \DateTime();
if (_Berechnung::$_config['berechne_bis'] != 0) {
$datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']);
}
$datetime2 = new \DateTime($user_objekt["vereidigung"]);
$interval = $datetime1->diff($datetime2);
$monate_seit_vereidigung = $interval->m + ($interval->y * 12);
if ($monate_seit_vereidigung < $frauenfoerderung_monate) {
$monate = $frauenfoerderung_monate-$monate_seit_vereidigung;
$_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 1;
$_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Frauenförderung ohne Punkte noch $monate Monate gültig";
$_liste["punkte"]++;
} else {
$_liste["auswertung"]["frauenfoerderpunkt"]['punkte'] = 0;
$_liste["auswertung"]["frauenfoerderpunkt"]['kommentar'] = "Keine Einreichungen, Zeitspanne seit Vereidigung größer als 5 Jahre, Punkt ist verfallen";
}
return $_liste;
}
}
}
@@ -0,0 +1,75 @@
<?php
namespace HermannTelser\Zuladungsliste\Berechnung;
use HermannTelser\Zuladungsliste\Utilities\Message;
/***
*
* This file is part of the "Zuladungsliste Steiermark" 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)
{
if (_Berechnung::$debug) {
Message::debug(__FILE__, __LINE__, 'Load NeueinsteigerPunkt');
}
if ($user_objekt['vereidigung'] == "") {
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Kein Vereidigungsdatum verfügbar';
return $_liste;
}
$vereidigung = strtotime($user_objekt['vereidigung']);
$_sektionstag = Sektionstage::filter($vereidigung);
$datetime1 = new \DateTime();
if (0 != _Berechnung::$_config['berechne_bis']) {
$datetime1->setTimestamp(_Berechnung::$_config['berechne_bis']);
}
$datetime2 = new \DateTime($user_objekt['vereidigung']);
$interval = $datetime1->diff($datetime2);
$monate_seit_vereidigung = $interval->m + ($interval->y * 12);
if ($monate_seit_vereidigung > $_sektionstag['neueinsteiger']) {
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt ist verfallen. Vereidigung '.$user_objekt['vereidigung'];
return $_liste;
}
$jahre_seit_vereidigung = $interval->y;
if ($jahre_seit_vereidigung < 5) {
$neueinsteigerpunkt = 5 - $jahre_seit_vereidigung;
$datetime2->modify('+5 year');
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = $neueinsteigerpunkt;
$_liste['punkte'] = $_liste['punkte'] + $neueinsteigerpunkt;
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt Vereidigung '.$user_objekt['vereidigung'];
$_liste['auswertung']['neueinsteigerpunkt']['gueltig_bis'] = $datetime2->format('Y-m-d');
} else {
$_liste['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
$_liste['auswertung']['neueinsteigerpunkt']['kommentar'] = 'Neueinsteigerpunkt ist verfallen. Vereidigung '.$user_objekt['vereidigung'];
}
return $_liste;
}
}
@@ -0,0 +1,62 @@
<?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 "Zuladungsliste Steiermark" 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
{
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['uid_kriterien']] = $value;
}
return $return;
}
}
@@ -0,0 +1,168 @@
<?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 "Zuladungsliste Steiermark" 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 PunkteVerschiebung
{
/**
* @return array
*/
public static function load()
{
// _Berechnung::$debug = 1;
if (_Berechnung::$debug) {
Message::debug(__FILE__, __LINE__, "Punkte Verschiebung");
}
// 2 usergroup => Ordentliche Registrierung zur Zuladungsliste
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_verschiebung_mm');
$statement = $queryBuilder
->select("a.company", "tx_zuladungsliste_punkte_verschiebung_mm.uid_geber", "tx_zuladungsliste_punkte_verschiebung_mm.uid_empfaenger", "tx_zuladungsliste_punkte_verschiebung_mm.verschiebung_ab", "tx_zuladungsliste_punkte_verschiebung_mm.verschiebung_stichtag", "tx_zuladungsliste_punkte_verschiebung_mm.prozente")
->from('tx_zuladungsliste_punkte_verschiebung_mm')
->join(
'tx_zuladungsliste_punkte_verschiebung_mm',
'fe_users',
'a',
$queryBuilder->expr()->eq('a.uid', 'tx_zuladungsliste_punkte_verschiebung_mm.uid_empfaenger')
)
->orderBy('verschiebung_stichtag');
$statement = $queryBuilder->execute()->fetchAll();
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
return $statement;
}
/**
* @return void
*/
public static function manage()
{
if (_Berechnung::$debug) {
Message::debug(__FILE__, __LINE__, 'Manage Auflösung Punkte Verteilung');
}
$_punkte_geber = self::load();
if (!$_punkte_geber) {
return;
}
foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) {
foreach ($_punkte_geber as $geber) {
if ($_value_liste['user_id'] == $geber['uid_geber']) {
if($geber['verschiebung_ab'] <= _Berechnung::$_config['berechne_bis_datum']){
// echo "\n" . _Berechnung::$_data['liste'][$key]['punkte'];
$punkte_zu_verschieben = self::collectPunkte($geber, $_value_liste);
// nur aufführen wenn noch Punkte übrig sind und der Emfänger schon existiert (für berechnung des Archieves)
if ($punkte_zu_verschieben > 0 and in_array($geber['uid_empfaenger'], _Berechnung::$_data['architekten_uids'])) {
// GEBER
_Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] - $punkte_zu_verschieben;
$tmp = [];
$tmp['punkte'] = $punkte_zu_verschieben;
$tmp['kommentar'] = $geber['company'];
$tmp['prozente'] = $geber['prozente'];
$tmp['verschiebung_stichtag'] = $geber['verschiebung_stichtag'];
$tmp['verschiebung_ab'] = $geber['verschiebung_ab'];
_Berechnung::$_data['liste'][$key]['auswertung']['verschiebung_gegeben'][] = $tmp;
// EMPFÄNGER
$tmp = [];
$tmp['punkte'] = $punkte_zu_verschieben;
$tmp['kommentar'] = $_value_liste['company'];
$tmp['prozente'] = $geber['prozente'];
$tmp['verschiebung_stichtag'] = $geber['verschiebung_stichtag'];
$tmp['verschiebung_ab'] = $geber['verschiebung_ab'];
self::addToEmpfaenger($geber, $tmp);
}
}
}
}
}
}
/**
* @return void
* "id": 61,
*/
public static function addToEmpfaenger(&$geber, $tmp)
{
foreach (_Berechnung::$_data['liste'] as $key => $_value_liste) {
if ($_value_liste['user_id'] == $geber['uid_empfaenger']) {
if(_Berechnung::$_data['liste'][$key]['gesperrt'] == 0){
_Berechnung::$_data['liste'][$key]['nominiert'] = 1;
}
_Berechnung::$_data['liste'][$key]['auswertung']['verschiebung_empfangen'][] = $tmp;
_Berechnung::$_data['liste'][$key]['punkte'] = _Berechnung::$_data['liste'][$key]['punkte'] + $tmp['punkte'];
}
}
}
/**
* @return int
*/
public static function collectPunkte(&$geber, &$_value_liste)
{
$debug = 0;
// print_r($_value_liste['auswertung']['wettbewerbe']);
if($debug){
// print_r($geber);
echo PHP_EOL;
echo _Berechnung::$_config['berechne_bis_datum'];
echo PHP_EOL;
$punkte2 = 0;
$punkte = 0;
}
foreach ($_value_liste['auswertung']['wettbewerbe'] as $value) {
// print_r($value);
if ($value["punkte_aktive"] == 1){
$punkte2 += $value['punkte'];
}
if ($value["punkte_aktive"] == 1 and $value['entscheidungstermin'] < $geber['verschiebung_stichtag']) {
if($debug){
echo "\n" . '"' . $value['wettbewerb'] . '","' . $value['entscheidungstermin'] . '","' . $value['gueltig_bis'] . '","' . number_format($value['punkte'], 2, ',','.') . '"';
}
$punkte += $value['punkte'];
}
}
if($debug){
// echo "\n";
// echo "\n";
echo "\n";
echo "\n";
echo "Punkte zum Verschieben: " . $punkte . "\n";
echo "\n";
echo "Punkte aktuell: " . $punkte2 . "\n";
echo "\n";
echo "Punkte prozentueller Anteil: " . round($punkte * ($geber['prozente'] / 100), 2);
exit;
}
return round($punkte * ($geber['prozente'] / 100), 2);
}
}
@@ -0,0 +1,105 @@
<?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 "Zuladungsliste Steiermark" 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", "stichtag", "sperrzeit", "sperrzeitstart", "punktezeit", "punktezeitstart", "neueinsteiger", "neueinsteigerstart", "frauenfoerderung", "frauenfoerderungstart", "frauenfoerderungsonderstart", "kammernid")
->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 . "'");
}
$statement = $queryBuilder->execute()->fetchAll();
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
$_arr = [];
foreach ($statement as $key => $value) {
$stichtag = strtotime(trim($value['stichtag']));
$_arr[$stichtag] = $value;
}
ksort($_arr);
_Berechnung::$_data['sektionstage'] = $_arr;
}
/**
* @return array
*/
public static function filter($entscheidungstermin)
{
// echo "\nEntscheidungstermin: " . date("d. m. Y", $entscheidungstermin) , "\n";
$_sektionstage = _Berechnung::$_data['sektionstage'];
foreach ($_sektionstage as $stichtag => $_stichtagdetails) {
if ($entscheidungstermin <= $stichtag) {
// print_r($_stichtagdetails);
return $_stichtagdetails;
}
}
// print_r($_stichtagdetails);
return $_stichtagdetails;
}
// public static function filter($stichtag)
// {
// // krsort(_Berechnung::$_data['sektionstage'], SORT_NUMERIC);
// echo "\nSTICHTAG: " . date("d. m. Y", $stichtag);
// echo "\n";
// $_stichtagdetails = [];
// foreach (_Berechnung::$_data['sektionstage'] as $entscheidungstermin => $_stichtagdetails) {
// // echo "\nENTSCHEIDUNGSTERMIN: " . date("d. m. Y", $entscheidungstermin);
// if ($stichtag < $entscheidungstermin) {
// return $_stichtagdetails;
// }
// }
// // echo "\nHERE";
// // echo "\nENTSCHEIDUNGSTERMIN: " . date("d. m. Y", $entscheidungstermin);
// print_r($_stichtagdetails);
// return $_stichtagdetails;
// }
// public static function filter($stichtag)
// {
// $_stichtagdetails = [];
// $entscheidungstermin = 0;
// foreach (_Berechnung::$_data['sektionstage'] as $stichtag => $_stichtagdetails) {
// if ($entscheidungstermin >= $stichtag) {
// return $_stichtagdetails;
// }
// }
// return array_shift(array_slice(_Berechnung::$_data['sektionstage'], 0, 1));
// }
}
@@ -0,0 +1,43 @@
<?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 "Zuladungsliste Steiermark" 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)
{
if (_Berechnung::$debug) {
Message::debug(__file__, __line__, "Filter Solidaritaetserklaerung");
}
// Datum Start SOLIDARITÄTSERKLÄRUNG ab 15. Juni "2021"
if (_Berechnung::$_config['berechne_bis'] == 0 or _Berechnung::$_config['berechne_bis'] > mktime(0, 0, 0, 6, 15, 2021)) {
if ($user_objekt["solidaritaetserklaerung"]==0) {
$_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Solidaritätserklärung nicht zugestimmt";
$_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 0;
} else {
$_liste["auswertung"]["solidaritaetserklaerung"]["kommentar"] = "Solidaritätserklärung zugestimmt";
$_liste["auswertung"]["solidaritaetserklaerung"]["punkte"] = 1;
$_liste["punkte"]++;
}
}
return $_liste;
}
}
@@ -0,0 +1,98 @@
<?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 "Zuladungsliste Steiermark" 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__,
"Load ListeBerechnung"
);
}
$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) {
$uid_user = $value['uid_user'];
$value['sperrzeitbis_timestamp'] = strtotime($value['sperrzeitbis']);
$_sondersperrungen[$uid_user][] = $value;
}
_Berechnung::$_data['sondersperrungen'] = $_sondersperrungen;
}
/**
* @return void
*/
public static function filter($_liste, $user_objekt)
{
$sperrzeitbis = 0;
$user_id = $user_objekt["uid"];
if (isset(_Berechnung::$_data['sondersperrungen'][$user_id])) {
foreach (_Berechnung::$_data['sondersperrungen'][$user_id] as $key => $value_sperrung) {
$brechnen_bis = _Berechnung::$_config['berechne_bis'];
$brechnen_bis = !$brechnen_bis ? time() : $brechnen_bis;
if ($brechnen_bis < $value_sperrung["sperrzeitbis_timestamp"]
and $data["gesperrt_bis"] < $value_sperrung["sperrzeitbis"]
and $value_sperrung["sperrzeitbis"] > $sperrzeitbis) {
// $return["gesperrt_bis"] = $value_sperrung["sperrzeitbis_timestamp"];
$sperrzeitbis = $value_sperrung["sperrzeitbis"];
$data = [];
$data["gesperrt"] = 1;
$data["gesperrt_bis"] = $value_sperrung["sperrzeitbis"];
$data["kommentar"] = $value_sperrung["begruendung"];
$_liste["auswertung"]['sondersperrungen']['data'] = $data;
$_liste["gesperrt_bis"] = $value_sperrung["sperrzeitbis"];
$_liste["nominiert"] = 0;
}
}
}
return $_liste;
}
}
@@ -0,0 +1,63 @@
<?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 "Zuladungsliste Steiermark" 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',
'a.kriteriumid'
)
->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),
// $queryBuilder->expr()->eq('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe', 729)
);
if (_Berechnung::$debug) {
Message::note($queryBuilder->getSQL());
}
return $queryBuilder->execute()->fetchAll();
}
}
@@ -0,0 +1,287 @@
<?php
namespace HermannTelser\Zuladungsliste\Berechnung;
set_time_limit(0);
ini_set('max_execution_time', '600'); //600 seconds = 10 minutes
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\Utility\EidUtility;
use HermannTelser\Zuladungsliste\Utilities\Message;
use HermannTelser\Zuladungsliste\Kammer\KammerById;
/***
*
* This file is part of the "Zuladungsliste Steiermark" 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 $debug = 0;
/**
* @return string
*/
public function __construct($berechne_bis = 0)
{
self::$debug = 0;
// $berechne_bis = mktime(0, 0, 0, 6, 15, 2023);
self::$_data = [];
$user = $GLOBALS['TSFE']->fe_user->user;
self::$_config['pid'] = 41; // Ordner ID der gültigen Architeken
self::$_config['kammernid'] = 1; // Kammer ID is fixed to Steiermarkfor now
self::$_config['userid'] = $user['uid'];
self::$_config['usergroup'] = 2; // 2 => Ordentliche Registrierung zur Zuladungsliste
self::$_config['liste_start'] = mktime(0, 0, 0, 6, 15, 2017); // 15 July 2017 12:00:00 AM CEST
if ($berechne_bis) {
self::$_config['berechne_bis'] = $berechne_bis;
} else {
self::$_config['berechne_bis'] = 0;
}
// self::$_config['berechne_bis'] = 1707748093;
if(self::$_config['berechne_bis'])
_Berechnung::$_config['berechne_bis_datum'] = date('Y-m-d', _Berechnung::$_config['berechne_bis']);
else
_Berechnung::$_config['berechne_bis_datum'] = date('Y-m-d');
}
/**
* @return string
*/
public static function berechnen()
{
self::$_data = [];
self::$debug = 0;
Sondersperrungen::load();
// controllo = 0 => all
$architekt_uid = 0;
// $architekt_uid = [326,259];
// $architekt_uid = [280,244];
// $architekt_uid = [132, 366];
Architekten::load($architekt_uid);
// print_r(self::$_data); exit;
Sektionstage::load();
foreach (self::$_data['architekten'] as $key => $user_objekt) {
$_liste = [];
$_liste["id"] = $user_objekt["uid"];
$_liste["disable"] = $user_objekt["disable"];
$_liste["user_id"] = $user_objekt["uid"];
$_liste["company"] = $user_objekt["company"];
$_liste["name"] = $user_objekt["name"];
// $_liste["last_name"] = $user_objekt["last_name"];
// $_liste["vereidigung"] = $user_objekt["vereidigung"];
$_liste["kontoaufloesung"] = $user_objekt["kontoaufloesung"];
$_liste["kontoaufloesung_active"] = $user_objekt["kontoaufloesung_active"];
// $_liste["nameorder"] = $_liste["last_name"]!="" ? $_liste["last_name"] : $_liste["company"];
$_liste["punkte"] = 0;
$_liste["auswertung"] = [];
// WETTBEWERBE ERFOLGSPUNKTE
$_liste = Erfolgspunkte::load_user($_liste, $user_objekt);
// SONDER SPERRUNGEN
$_liste = Sondersperrungen::filter($_liste, $user_objekt);
// NEUEINSTEIGERPUNKT
$_liste = Neueinsteiger::load($_liste, $user_objekt);
// FRAUEN FÖRDERUNGS PUNKT
$_liste = Frauen::load($_liste, $user_objekt);
// SOLIDARITÄTSERKLÄRUNG
$_liste = Solidaritaetserklaerung::filter($_liste, $user_objekt);
$_liste["aeltestes_entscheidungs_datum"] = isset($_liste["auswertung"]["wettbewerbe"][0]) ? $_liste["auswertung"]["wettbewerbe"][0]["entscheidungstermin"] : 0;
if ($user_objekt["vereidigung"]) {
$vereidigung = strtotime($user_objekt["vereidigung"]);
}
if ($_liste["aeltestes_entscheidungs_datum"] != 0) {
$aeltestes_entscheidungs_datum = strtotime($_liste["aeltestes_entscheidungs_datum"]);
}
if ($_liste["punkte"] == 0) {
$_liste["nominiert"] = 0;
}
if ($_liste["punkte"] == 0) {
$_liste["sortdatum"] = 100000000;
} elseif (isset($vereidigung) and isset($aeltestes_entscheidungs_datum)) {
$_liste["sortdatum"] = $aeltestes_entscheidungs_datum < $vereidigung ? $aeltestes_entscheidungs_datum : $vereidigung;
} elseif (isset($vereidigung)) {
$_liste["sortdatum"] = $vereidigung;
} elseif (isset($aeltestes_entscheidungs_datum)) {
$_liste["sortdatum"] = $aeltestes_entscheidungs_datum;
} else {
$_liste["sortdatum"] = 100000000;
}
// if($user_objekt["uid"]==353){
// print_r($_liste['punkte']);
// exit;
// }
self::$_data['liste'][] = $_liste;
}
if (is_array(self::$_data['liste'])) {
AufloesungPunkteVerteilung::manage();
// 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
*/
PunkteVerschiebung::manage();
$punkte = array_column(self::$_data['liste'], 'punkte');
$sortdatum = array_column(self::$_data['liste'], 'sortdatum');
$nameorder = array_column(self::$_data['liste'], 'company');
foreach ($nameorder as $key => $value) {
$nameorder[$key] = strtolower($value);
}
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $sortdatum, SORT_NUMERIC, SORT_DESC, $nameorder, SORT_ASC, SORT_STRING, self::$_data['liste']);
// 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 = 1;
$rang = 1;
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"]['data']["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;
$pos++;
} else {
$value["pos"] = 0;
}
// unset($value["auswertung"]);
unset($value["nameorder"]);
unset($value["aeltestes_entscheidungs_datum"]);
unset($value["last_name"]);
unset($value["vereidigung"]);
$arr[] = $value;
}
}
// print_r(self::$_data['liste']);
// exit;
$eins = $pos;
$zwei = floor($pos / 2);
$drei = floor($pos / 3);
$vier = floor($pos / 4);
$fuenf = floor($pos / 5);
$sechs = floor($pos / 6);
// echo "\neins: " . $eins;
// echo "\nzwei: " . $zwei;
// echo "\ndrei: " . $drei;
// echo "\nvier: " . $vier;
// echo "\nfünf: " . $fuenf;
// echo "\nsechs: " . $sechs;
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 == 2 || $pos == $drei || $pos == $drei * 2) ? 1 : 0;
$value["n5"] = ($pos == 2 || $pos == $drei || $pos == $drei + 1 || $pos == $drei * 2) ? 1 : 0;
$value["n6"] = ($pos == 2 || $pos == $drei || $pos == $drei + 1 || $pos == $drei * 2 || $pos == $drei * 2 + 1) ? 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;
}
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 == 4 || $pos == $drei + 1 || $pos == $drei * 2 + 1) ? 1 : 0;
$value["e5"] = ($pos == 4 || $pos == $drei + 2 || $pos == $drei + 3 || $pos == $drei * 2 + 1) ? 1 : 0;
$value["e6"] = ($pos == 4 || $pos == $drei + 2 || $pos == $drei + 3 || $pos == $drei * 2 + 2 || $pos == $drei * 2 + 3) ? 1 : 0;
// e6 condition needs controll todo
}
self::$_data['liste'][] = $value;
}
}
// print_r(self::$_data['liste']);
// exit;
}
}
@@ -0,0 +1,41 @@
<?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 "Zuladungsliste Steiermark" 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 KammerById
{
/**
* @param mixed $kammerid
*
* @return string
*/
public static function load($kammerid = 0)
{
if ($kammerid == 0) {
Message::warning(__file__, __line__, "KammerID 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'];
}
}
}
@@ -0,0 +1,71 @@
<?php
namespace HermannTelser\Zuladungsliste\Bootstrap;
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
/***
*
* 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 UserSettings
{
/**
*
* @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' => 'fullname', 'value' => $user['title'] . " " . $user['first_name'] . " " . $user['last_name']],
['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' => KammerById::load($user['kammernid'])],
['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 "Zuladungsliste Steiermark" 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':
UserSettings::load();
break;
case 'start_liste':
UserSettings::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,20 @@
<?php
namespace HermannTelser\Zuladungsliste\Controller;
use In2code\Femanager\Controller\EditController as FemanagerEditController;
class EditController extends FemanagerEditController
{
/**
* action update
*
* @param HermannTelser\Zuladungsliste\Domain\Model\User $user
* @TYPO3\CMS\Extbase\Annotation\Validate("In2code\Femanager\Domain\Validator\ServersideValidator", param="user")
* @TYPO3\CMS\Extbase\Annotation\Validate("In2code\Femanager\Domain\Validator\PasswordValidator", param="user")
*/
public function updateAction($user): void
{
parent::updateAction($user);
}
}
@@ -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,20 @@
<?php
namespace HermannTelser\Zuladungsliste\Controller;
use In2code\Femanager\Controller\NewController as FemanagerNewController;
class NewController extends FemanagerNewController
{
/**
* action create
*
* @param HermannTelser\Zuladungsliste\Domain\Model\User $user
* @TYPO3\CMS\Extbase\Annotation\Validate("In2code\Femanager\Domain\Validator\ServersideValidator", param="user")
* @TYPO3\CMS\Extbase\Annotation\Validate("In2code\Femanager\Domain\Validator\PasswordValidator", param="user")
*/
public function createAction($user): void
{
parent::createAction($user);
}
}
@@ -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,119 @@
<?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 = '';
/**
* preisartid
*
* @var \HermannTelser\Zuladungsliste\Domain\Model\Preisart
*/
protected $preisartid = null;
/**
* sektinstagid
*
* @var \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage
*/
protected $sektinstagid = 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 preisartid
*
* @return \HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid
*/
public function getPreisartid()
{
return $this->preisartid;
}
/**
* Sets the preisartid
*
* @param \HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid
* @return void
*/
public function setPreisartid(\HermannTelser\Zuladungsliste\Domain\Model\Preisart $preisartid)
{
$this->preisartid = $preisartid;
}
/**
* Returns the sektinstagid
*
* @return \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid
*/
public function getSektinstagid()
{
return $this->sektinstagid;
}
/**
* Sets the sektinstagid
*
* @param \HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid
* @return void
*/
public function setSektinstagid(\HermannTelser\Zuladungsliste\Domain\Model\Sektionstage $sektinstagid)
{
$this->sektinstagid = $sektinstagid;
}
}
@@ -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!
***************************************************************/
/**
* Preisart
*/
class Preisart extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
/**
* preisart
*
* @var string
*/
protected $preisart = '';
/**
* Returns the preisart
*
* @return string $preisart
*/
public function getPreisart()
{
return $this->preisart;
}
/**
* Sets the preisart
*
* @param string $preisart
* @return void
*/
public function setPreisart($preisart)
{
$this->preisart = $preisart;
}
}
@@ -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,371 @@
<?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;
/**
* sperrzeitstart
*
* @var \DateTime
*/
protected $sperrzeitstart = null;
/**
* punktezeit
*
* @var int
*/
protected $punktezeit = 0;
/**
* punktezeitstart
*
* @var \DateTime
*/
protected $punktezeitstart = null;
/**
* neueinsteiger
*
* @var int
*/
protected $neueinsteiger = 0;
/**
* neueinsteigerstart
*
* @var \DateTime
*/
protected $neueinsteigerstart = null;
/**
* frauenfoerderung
*
* @var int
*/
protected $frauenfoerderung = 0;
/**
* frauenfoerderungstart
*
* @var \DateTime
*/
protected $frauenfoerderungstart = null;
/**
* frauenfoerderungsonderstart
*
* @var \DateTime
*/
protected $frauenfoerderungsonderstart = null;
/**
* kammernid
*
* @var \HermannTelser\Zuladungsliste\Domain\Model\Kammern
*/
protected $kammernid = 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 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 sperrzeitstart
*
* @return \DateTime $sperrzeitstart
*/
public function getSperrzeitstart()
{
return $this->sperrzeitstart;
}
/**
* Sets the sperrzeitstart
*
* @param \DateTime $sperrzeitstart
* @return void
*/
public function setSperrzeitstart(\DateTime $sperrzeitstart)
{
$this->sperrzeitstart = $sperrzeitstart;
}
/**
* 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 punktezeitstart
*
* @return \DateTime $punktezeitstart
*/
public function getPunktezeitstart()
{
return $this->punktezeitstart;
}
/**
* Sets the punktezeitstart
*
* @param \DateTime $punktezeitstart
* @return void
*/
public function setPunktezeitstart(\DateTime $punktezeitstart)
{
$this->punktezeitstart = $punktezeitstart;
}
/**
* 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 neueinsteigerstart
*
* @return \DateTime $neueinsteigerstart
*/
public function getNeueinsteigerstart()
{
return $this->neueinsteigerstart;
}
/**
* Sets the neueinsteigerstart
*
* @param \DateTime $neueinsteigerstart
* @return void
*/
public function setNeueinsteigerstart(\DateTime $neueinsteigerstart)
{
$this->neueinsteigerstart = $neueinsteigerstart;
}
/**
* 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 frauenfoerderungstart
*
* @return \DateTime $frauenfoerderungstart
*/
public function getFrauenfoerderungstart()
{
return $this->frauenfoerderungstart;
}
/**
* Sets the frauenfoerderungstart
*
* @param \DateTime $frauenfoerderungstart
* @return void
*/
public function setFrauenfoerderungstart(\DateTime $frauenfoerderungstart)
{
$this->frauenfoerderungstart = $frauenfoerderungstart;
}
/**
* Returns the frauenfoerderungsonderstart
*
* @return \DateTime $frauenfoerderungsonderstart
*/
public function getFrauenfoerderungsonderstart()
{
return $this->frauenfoerderungsonderstart;
}
/**
* Sets the frauenfoerderungsonderstart
*
* @param \DateTime $frauenfoerderungsonderstart
* @return void
*/
public function setFrauenfoerderungsonderstart(\DateTime $frauenfoerderungsonderstart)
{
$this->frauenfoerderungsonderstart = $frauenfoerderungsonderstart;
}
/**
* 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,90 @@
<?php
namespace HermannTelser\Zuladungsliste\Domain\Model;
class User extends \In2code\Femanager\Domain\Model\User
{
/**
* kammermitgliedsnummer
*
* @var string
*/
protected $kammermitgliedsnummer;
/**
* frauenfoerderpunkt
*
* @var bool
*/
protected $frauenfoerderpunkt;
/**
* vereidigung
*
* @var string
*/
protected $vereidigung;
/**
* 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;
}
/**
* @return bool
*/
public function getFrauenfoerderpunkt()
{
return $this->frauenfoerderpunkt;
}
/**
* Sets the frauenfoerderpunkt
*
* @param bool $frauenfoerderpunkt
* @return void
*/
public function setFrauenfoerderpunkt($frauenfoerderpunkt)
{
$this->frauenfoerderpunkt = $frauenfoerderpunkt;
}
/**
* @return string
*/
public function getVereidigung()
{
return $this->vereidigung;
}
/**
* Sets the Vereidigung
*
* @param string $vereidigung
* @return void
*/
public function setVereidigung($vereidigung)
{
$this->vereidigung = $vereidigung;
}
}
@@ -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
*
* 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");
// $pdfname = 'Preisgerichtsitzung_1+2.Stufe_CvH 162 Granit_18.07.2023.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,105 @@
<?php
namespace HermannTelser\Zuladungsliste\Download;
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
use HermannTelser\Zuladungsliste\Berechnung\Sektionstage;
use HermannTelser\Zuladungsliste\Liste\ListeTree;
use Mpdf;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class PdfListe
{
public static $Mpdf;
/**
* @return array
*/
public static function download()
{
$berechnene = new _Berechnung();
Sektionstage::load();
$pdf_archive_id = GeneralUtility::_GP('pdf_archive_id');
$extPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('zuladungsliste');
if ($pdf_archive_id) {
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
$statement = $queryBuilder
->select('liste', 'crdate')
->from('tx_zuladungsliste_archive_admin')
->where(
$queryBuilder->expr()->eq('uid', (int) $pdf_archive_id)
)
->execute()->fetchAll();
$_liste = json_decode($statement[0]['liste'], true);
$timestamp = $statement[0]['crdate'];
$timestamp_formattet = (strftime('%A %d. %B %Y', $statement[0]['crdate']));
$timestamp_titel = (strftime('%d. %b. %Y', $statement[0]['crdate']));
} else {
$berechnene::berechnen();
ListeTree::set_dijit();
$_liste = $berechnene::$_return;
$timestamp = time();
$timestamp_formattet = strftime('%A %d. %B %Y', time());
$timestamp_titel = strftime('%d. %b. %Y', time());
}
self::$Mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'format' => 'A4-P',
'margin_left' => 7,
'margin_right' => 7,
'margin_top' => 12,
'margin_bottom' => 12,
'margin_header' => 0,
'margin_footer' => 0,
]);
self::$Mpdf->SetTitle("ZL vom " . $timestamp_titel);
$stylesheet = file_get_contents($extPath.'Classes/Download/style.css');
self::$Mpdf->WriteHTML($stylesheet, \Mpdf\HTMLParserMode::HEADER_CSS);
// logo
$html = '<div>';
$image = $extPath.'Resources/Public/Images/ztkammer-logo.png';
$html .= '<img src="'.$image.'" style="width:60mm; height:auto">';
// header
$html .= '<div class="liste-titel">Zuladungsliste Wettbewerbe Steiermark</div>';
// sub header
$sektionstag = Sektionstage::filter($timestamp);
$html .= '<p>Stand '.$timestamp_formattet.', auf Basis des Sektionstages vom '.$sektionstag['stichtag'].', '.$sektionstag['bezeichnung'].'</p>';
// tabelle
$html .= '<table class="pure-table pure-table-striped liste">';
$html .= '<tr><th>Rang</th><th>Pos</th><th>Büro</th><th>Punkte</th><th>Sperrung bis</th><tr>';
foreach ($_liste as $key => $value) {
if (isset($value['user_id'])) {
if (0 == $value['pos']) {
$value['pos'] = '';
$color = "rot";
} else {
$value['gesperrt_bis'] = 'Frei';
$color = "gruen";
}
$html .= '<tr>';
$html .= "<td class=\"center\">".$value['rang'].'</td>';
$html .= "<td class=\"center \">".$value['pos'].'</td>';
$html .= "<td>".$value['company'].'</td>';
$html .= "<td class=\"center\">".number_format($value['punkte'], 2).'</td>';
$html .= "<td class=\"center $color\">".$value['gesperrt_bis'].'</td>';
$html .= '</tr>';
}
}
$html .= '</table>';
self::$Mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY);
self::$Mpdf->Output('Standard.pdf', Mpdf\Output\Destination::INLINE);
exit;
}
}
@@ -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 "Zuladungsliste Steiermark" 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,121 @@
body {
font-family: sans-serif;
font-size: 1em;
line-height: 18pt;
margin: 0;
padding: 0;
}
.liste-titel {
font-family: sans-serif;
padding: 15mm 0 0;
font-size: 1.5em;
text-align: center;
}
table.liste {
width: 100%;
font-size: .9em;
margin-top: 15mm;
}
.rot {
color: #800;
}
.gruen {
color: green;
}
.center {
text-align: center;
}
.right {
text-align: right;
}
/* 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-noborder {
/* Remove spacing between table cells (from Normalize.css) */
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
}
.pure-table caption {
color: #000;
font: italic 85%/1 arial, sans-serif;
padding: 1em 0;
text-align: center;
}
.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 thead {
background-color: #e0e0e0;
color: #000;
text-align: left;
vertical-align: bottom;
}
/*
striping:
even - #fff (white)
odd - #f2f2f2 (light gray)
*/
.pure-table td {
background-color: transparent;
}
.pure-table-odd td {
background-color: #f2f2f2;
}
/* nth-child selector for modern browsers */
.pure-table-striped tr:nth-child(2n-1) td {
background-color: #f2f2f2;
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,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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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,41 @@
<?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();
header('Content-Type: application/json');
echo $statement[0]['liste'];
exit();
}
}
@@ -0,0 +1,55 @@
<?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 "Zuladungsliste Steiermark" 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()
{
$queryBuilder = GeneralUtility::makeInstance(
ConnectionPool::class
)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
$statement = $queryBuilder
->select('uid', 'crdate')
->from('tx_zuladungsliste_archive_admin')
->addOrderBy('uid', 'DESC')
->execute();
$tmp=[];
foreach ($statement as $key => $value) {
$year = date("Y", $value["crdate"]);
$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"] = strftime("%e. %b. %G", $val["crdate"]);
$t["subdata"][] = $t2;
}
_Berechnung::$_return[] = $t;
}
}
}
@@ -0,0 +1,149 @@
<?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,175 @@
<?php
namespace HermannTelser\Zuladungsliste\Liste;
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
use HermannTelser\Zuladungsliste\Berechnung\Architekten;
use HermannTelser\Zuladungsliste\Berechnung\PunkteKriterien;
use HermannTelser\Zuladungsliste\Berechnung\WettbewerbeArchitekten;
use HermannTelser\Zuladungsliste\Utilities\Resources;
use HermannTelser\Zuladungsliste\Utilities\Message;
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'];
$kriteriumid = $_row['kriteriumid'];
if (!$PunkteKriterien[$uid_punkte][$kriteriumid]) {
print_r($_row);
exit;
}
$_row = array_merge($_row, $PunkteKriterien[$uid_punkte][$kriteriumid]);
$_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 "Zuladungsliste Steiermark" 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();
header('Content-Type: application/json');
echo json_encode(_Berechnung::$_return);
exit();
}
}
@@ -0,0 +1,214 @@
<?php
namespace HermannTelser\Zuladungsliste\Liste;
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
class ListeTree
{
/**
* @return void
*/
public static function set_dijit()
{
_Berechnung::$_return = [];
$i = 1;
foreach (_Berechnung::$_data['liste'] as $key => $value) {
//if($value["user_id"]==140){
// print_r($value);
// _Berechnung::$_return = array();
//}
$wettbewerbe = $value["auswertung"]["wettbewerbe"];
$neueinsteigerpunkt = $value["auswertung"]["neueinsteigerpunkt"];
$frauenfoerderpunkt = $value["auswertung"]["frauenfoerderpunkt"];
$solidaritaetserklaerung = $value["auswertung"]["solidaritaetserklaerung"];
$sondersperrungen = $value["auswertung"]["sondersperrungen"];
$verschiebung_gegeben = $value["auswertung"]["verschiebung_gegeben"];
$verschiebung_empfangen = $value["auswertung"]["verschiebung_empfangen"];
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["gesperrt_bis_sort"] = strtotime($value["gesperrt_bis"]);
_Berechnung::$_return[] = $value;
$i++;
// neueinsteigerpunkt
if ($neueinsteigerpunkt) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>Neueinsteigerpunkt<span class="floatright">' . $neueinsteigerpunkt["kommentar"] . '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = (float) $neueinsteigerpunkt["punkte"];
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "neueinsteiger";
$tmp["gesperrt_bis"] = '';
_Berechnung::$_return[] = $tmp;
}
// frauenfoerderpunkt
if ($frauenfoerderpunkt) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>Frauenförderpunkt<span class="floatright">' . $frauenfoerderpunkt["kommentar"] . '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = (float) $frauenfoerderpunkt["punkte"];
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "frauenfoerderpunkt";
$tmp["gesperrt_bis"] = '';
_Berechnung::$_return[] = $tmp;
}
// solidaritaetserklaerung
if ($solidaritaetserklaerung) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>Solidaritätserklärung<span class="floatright">' . $solidaritaetserklaerung["kommentar"] . '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = (float) $solidaritaetserklaerung["punkte"];
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "solidaritaetserklaerung";
$tmp["gesperrt_bis"] = '';
_Berechnung::$_return[] = $tmp;
}
// sondersperrungen
if (isset($sondersperrungen)) {
foreach ($sondersperrungen as $key => $sperre) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>Sondersperrung<span class="floatright">' . $sperre["kommentar"] . '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = 0;
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "sondersperrung";
$tmp["gesperrt_bis"] = $sperre["gesperrt_bis"];
$tmp["gesperrt_bis_sort"] = strtotime($sperre["gesperrt_bis"]);
_Berechnung::$_return[] = $tmp;
}
}
// verschiebung_gegeben
if (isset($verschiebung_gegeben)) {
foreach ($verschiebung_gegeben as $key => $gegeben) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>'. $gegeben['prozente'] . '% der Punkte wurden übertragen zu ' . $gegeben["kommentar"] . ' <span class="floatright">Zeitraum bis zum ' . $gegeben['verschiebung_stichtag'] . '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = "-" . $gegeben['punkte'];
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "verschiebung_gegeben";
$tmp["gesperrt_bis"] = '';
_Berechnung::$_return[] = $tmp;
}
}
// verschiebung_empfangen
if (isset($verschiebung_empfangen)) {
foreach ($verschiebung_empfangen as $key => $empfangen) {
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["company"] = '<span class="vfid">&nbsp;</span>Punkte empfangen von ' . $empfangen["kommentar"] . '<span class="floatright">Zeitraum bis zum ' . $empfangen['verschiebung_stichtag'] .'</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = $empfangen['punkte'];
$tmp["nominiert"] = (int) 2;
$tmp["type"] = "verschiebung_empfangen";
$tmp["gesperrt_bis"] = '';
_Berechnung::$_return[] = $tmp;
}
}
// $wettbewerbe = array_reverse($wettbewerbe);
foreach ($wettbewerbe as $key => $value2) {
if (is_array($value2)) {
/***
[wettbewerb] => Bebauung Conrad v. Hötzendorfstr./Fröhlichgasse Graz
[verfahrensid] => 1628
[verfahrensort] => Graz
[entscheidungstermin] =>
[punkte] => 1.00
[bezeichnung] => Regional beschränkt offener WB (1- oder mehrstufig) - Zulassungsgebiet Befugnis AT oder Stmk./Ktn.
[regelwerk] => Regelwerk V1 02/2016
[monate_seit_entscheidungstermin] => 24208
[punkte_aktive] => 0
[gueltig_bis] => 30. Nov. 0004.
[sperrung_aktive] => 0
[gesperrt_bis] => 30. May. 0001.
*/
// print_r($value2);
// exit;
$tmp = [];
$tmp["id"] = (int) $i;
$i++;
$tmp["info"] = $value2["bezeichnung"] . '<div class="spacer"></div>' . $value2["bezeichnung_punkte"];
if ($value2["mit_sperrung"] == 0) {
$tmp["info"] .= '<div class="spacer"></div>Preis ohne Sperrung';
} elseif (isset($value2["sperre_deaktiviert"]) and $value2["sperre_deaktiviert"] == 1) {
$tmp["info"] .= '<div class="spacer"></div>Wettbewerb mit Sperrung, Sperrung deaktiviert';
} else {
$tmp["info"] .= '<div class="spacer"></div>Wettbewerb mit Sperrung';
}
$tmp["company"] = '<span class="vfid">' . $value2["verfahrensid"] . '</span>';
if ($value2["mit_sperrung"] == 1) {
$tmp["company"] .= ' <span class="geladen">Geladen</span>';
}
$tmp["company"] .= $value2["wettbewerb"];
$tmp["gesperrt_bis"] = '';
if (isset($value2["sperrung_aktive"]) and $value2["sperrung_aktive"] == 1) {
$tmp["gesperrt_bis"] = $value2["gesperrt_bis"];
$tmp["gesperrt_bis_sort"] = strtotime($value2["gesperrt_bis"]);
}
// $tmp["company"] .= '<span class="floatright">';
// if (isset($value2["sperrung_aktive"]) and $value2["sperrung_aktive"]==1) {
// $tmp["company"] .= '<span class="rot">Sperrung bis: '.$value2["gesperrt_bis"].'</span>';
// }
//
// if (isset($value2["von_transfer"])) {
// $tmp["company"] .= $value2["von_transfer"];
// $tmp["info"] = "";
// } else {
// $tmp["company"] .= '<span class="width125">Gültig bis:</span>';
// }
// $tmp["company"] .= '</span>';
$tmp["hasChildren"] = (int) 0;
$tmp["parent"] = (int) $value["id"];
$tmp["punkte"] = (float) $value2["punkte"];
if ((float) $value2["punkte"]) {
$tmp["valid"] = $value2["gueltig_bis"];
}
$tmp["nominiert"] = (int) 2;
// $tmp["sortdatum"] = (int)$value2["sortdatum"]+$key;
$tmp["punkte_aktive"] = $value2["punkte_aktive"];
$tmp["geladen"] = $value2["mit_sperrung"];
$tmp["type"] = "wettbewerb";
_Berechnung::$_return[] = $tmp;
}
}
//if($value["user_id"]==140){
// print_r(_Berechnung::$_return);
// exit;
//}
}
}
}
@@ -0,0 +1,101 @@
<?php
namespace HermannTelser\Zuladungsliste\Liste;
use Doctrine\DBAL\DBALException;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use HermannTelser\Zuladungsliste\Utilities\Message;
use HermannTelser\Zuladungsliste\Berechnung\_Berechnung;
use ForceUTF8\Encoding;
class Recalculate
{
public static function run()
{
// Message::note("recalculaton admin & user");
// exit;
$berechnen = new _Berechnung();
$berechnen::$debug = 0;
$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');
$month = 6;
$timestamp = 0;
while ($timestamp < time()) {
++$month;
// fixed to 15
$timestamp = mktime(0, 0, 0, $month, 15, 2017);
// $timestamp = mktime(0, 0, 0, $month, 15, 2023);
if ($timestamp >= time()) {
echo 1;
exit;
}
$berechnen::$_config['berechne_bis'] = $timestamp;
$berechnen::berechnen();
if (isset($berechnen::$_data['liste'])) {
ListeTree::set_dijit();
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_admin');
$connection
->insert('tx_zuladungsliste_archive_admin')
->values([
'tstamp' => time(),
'crdate' => $timestamp,
'liste' => json_encode(Encoding::fixUTF8($berechnen::$_return)),
])
->execute();
$uid_archive_admin = $connection->getConnection()->lastInsertId();
$userid = 0;
$user_arr = [];
foreach ($berechnen::$_return as $key => $value) {
if ($value["hasChildren"] == 1) {
$insert_array = [];
$insert_array["tstamp"] = $timestamp;
$insert_array["crdate"] = $timestamp;
$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"];
$insert_array["rang"] = $value["rang"];
$insert_array["pos"] = $value["pos"];
$insert_array["gesperrt_bis"] = $value["gesperrt_bis"];
$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"];
if (is_array($value["data"]) and count($value["data"]) > 0) {
$insert_array["auswertung"] = json_encode(Encoding::fixUTF8($value["data"]));
$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_archive_user');
$connection
->insert('tx_zuladungsliste_archive_user')
->values($insert_array)
->execute();
}
}
}
}
echo 1;
exit;
}
}
@@ -0,0 +1,61 @@
<?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 "Zuladungsliste Steiermark" 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_alles_neu':
Recalculate::run();
break;
case 'cron_latest':
// https://zuladungsliste.nuhodds.com/app/administration?zlcontroller=liste_controller&xaction=liste_alles_neu
break;
default:
Message::error(__FILE__, __LINE__, 'no xaction switch defined');
}
}
}
@@ -0,0 +1,74 @@
<?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);
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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 = 0;
$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();
if ($debug) {
Message::note($queryBuilder->getSQL());
}
//Kontrolle if uid_punkte existiert in den kriterien für diesen wettbewerb
$_uid_punkte = array_column($kriterien, 'uid_punkte');
if (!in_array($zuweisung_uid_punkte, $_uid_punkte)) {
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();
}
if ($debug) {
Message::note($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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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,17 @@
<?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 CronTask extends AbstractTask {
public function execute() {
$businessLogic = GeneralUtility::makeInstance(Recalculate::class);
$businessLogic->run();
}
}
@@ -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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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.PHP_EOL.
$message.PHP_EOL.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,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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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,97 @@
<?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;
use DateTime;
use IntlDateFormatter;
/***
*
* This file is part of the "Zuladungsliste Steiermark" 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', 'gesperrt_bis')
->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;
$p_year = 0;
foreach ($tmp as $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;
$date = new DateTime();
$date->setTimestamp($value["tstamp"]);
$formatter = new IntlDateFormatter('de_DE', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
$formatter->setPattern('dd. MMMM YYYY');
$arr[] = [
'title' => $formatter->format($date),
'hasChildren' => 0,
'parent' => $parentid,
'type' => 'month',
'punkte' => $value['punkte'],
'rang' => $value['rang'],
'nominiert' => $value['nominiert'],
'gesperrt_bis' => $value['gesperrt_bis'],
'id' => $i,
'uid' => $value['uid'],
];
++$i;
}
header('Content-Type: application/json');
echo json_encode($arr);
exit();
}
}
@@ -0,0 +1,40 @@
<?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 "Zuladungsliste Steiermark" 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();
case 'lade_position_architekt':
return PositionArchitekt::laden();
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 "Zuladungsliste Steiermark" 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>&nbsp;</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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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 "Zuladungsliste Steiermark" 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,21 @@
<?php
declare(strict_types=1);
return [
\In2code\Femanager\Domain\Model\User::class => [
'tableName' => 'fe_users',
'recordType' => 'Tx_Zuladungsliste_Architekten',
'subclasses' => [
\HermannTelser\Zuladungsliste\Domain\Model\User::class
]
],
\HermannTelser\Zuladungsliste\Domain\Model\User::class => [
'tableName' => 'fe_users',
'recordType' => 'Tx_Zuladungsliste_Architekten',
],
\HermannTelser\Zuladungsliste\Domain\Model\Architekten::class => [
'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,206 @@
<?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, vereidigung';
$tempColumnstx_zuladungsliste_fe_users = array();
$tempColumnstx_zuladungsliste_fe_users[$GLOBALS['TCA']['fe_users']['ctrl']['label']] = 'name';
$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']
);
$GLOBALS['TCA']['fe_users']['ctrl']['formattedLabel_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadArchitekten';
$GLOBALS['TCA']['fe_users']['feInterface']['fe_admin_fieldList'] .= ',kammermitgliedsnummer';
$GLOBALS['TCA']['fe_users']['ctrl']['label'] = 'company';
$tmp_zuladungsliste_columns = array(
'kammermitgliedsnummer' => array(
'exclude' => 0,
'label' => 'ZT 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' => 'Tag der Vereidigung',
'config' => array(
'renderType' => 'inputDateTime',
'dbType' => 'date',
'type' => 'input',
'size' => 7,
'format' => 'date',
'eval' => 'date',
'checkbox' => 1,
'disableAgeDisplay' => 1,
'default' => '0000-00-00'
),
),
'frauenfoerderpunkt' => array(
'exclude' => 0,
'label' => 'Frauenförderpunkt',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'solidaritaetserklaerung' => array(
'exclude' => 0,
'label' => 'Solidaritätserklärung',
'config' => array(
'type' => 'check',
'default' => 0
)
),
'kontoaufloesung_active' => array(
'exclude' => 0,
'label' => 'Kontoauflösung (gültig nur mit Stichtag)',
'config' => array(
'renderType' => 'inputDateTime',
'dbType' => 'date',
'type' => 'input',
'size' => 7,
'format' => 'date',
'eval' => 'date',
'checkbox' => 1,
'disableAgeDisplay' => 1,
'default' => '0000-00-00'
),
),
'kontoaufloesung_begruendung' => [
'label' => 'Begründung der Auslistung, z.B.: Pension, Abmeldung, Zusammenlegung..)',
'config' => array(
'type' => 'text'
),
],
'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',
'appearance' => array(
'expandSingle' => 1,
'newRecordLinkAddTitle' => 0,
'levelLinksPosition' => 'both',
),
),
),
'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)',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tx_zuladungsliste_konto_aufloesung_mm',
'foreign_field' => 'uid_geber',
'foreign_label' => 'uid_empfaenger',
),
),
'punkteverschiebung' => array(
'exclude' => 0,
'label' => 'Punkte verschieben',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tx_zuladungsliste_punkte_verschiebung_mm',
'foreign_field' => 'uid_geber',
'foreign_label' => 'uid_empfaenger',
),
),
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tmp_zuladungsliste_columns);
/* 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,date_of_birth,address,zip,city,static_info_country,telephone,email,comments';
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Hinweise,description';
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Zuladungsliste,kammermitgliedsnummer, kammernid, vereidigung, geburtsdatum, frauenfoerderpunkt, solidaritaetserklaerung';
$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--;Konto Auflösung, kontoaufloesung_active, kontoaufloesung_begruendung, kontoaufloesung';
$GLOBALS['TCA']['fe_users']['types']['Tx_Zuladungsliste_Architekten']['showitem'] .= ',--div--;Punkte Verschiebung,punkteverschiebung';
$GLOBALS['TCA']['fe_users']['columns'][$GLOBALS['TCA']['fe_users']['ctrl']['type']]['config']['items'][] = ['Zuladungsliste ZT Kammer 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');
@@ -0,0 +1,41 @@
<?php
defined('TYPO3_MODE') or die();
/***************
* Plugin
*/
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'HermannTelser.Zuladungsliste',
'Pi1',
'ZT Wettbewerbszuladungsliste Administration',
'EXT:zuladungsliste/Resources/Public/Icons/Extension.png'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'HermannTelser.Zuladungsliste',
'Pi2',
'ZT Wettbewerbszuladungsliste Teilnehmer',
'EXT:zuladungsliste/Resources/Public/Icons/Extension.png'
);
// $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist']['zuladungsliste_pi1'] = 'recursive,select_key,pages,starttime,endtime';
// \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToInsertRecords('tx_zuladungsliste_domain_model_wettbewerbe');
// foreach (['crdate', 'tstamp','starttime','endtime'] as $fakeField) {
// if (!isset($GLOBALS['TCA']['tt_content']['columns'][$fakeField])) {
// $GLOBALS['TCA']['tt_content']['columns'][$fakeField] = [
// 'label' => $fakeField,
// 'config' => [
// 'type' => 'passthrough',
// ]
// ];
// }
// }
// $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['zuladungsliste_pi1'] = 'pi_flexform';
// \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
// 'zuladungsliste_pi1',
// 'FILE:EXT:zuladungsliste/Configuration/FlexForms/flexform_zuladungsliste.xml'
// );
@@ -0,0 +1,10 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_extrasperrung',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_extrasperrung.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_extrasperrung');
@@ -0,0 +1,9 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_kammern',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kammern.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_kammern');
@@ -0,0 +1,11 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_kriterien',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_kriterien.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_kriterien');
$GLOBALS['TCA']['tx_zuladungsliste_domain_model_kriterien']['ctrl']['formattedLabel_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadKriterien';
@@ -0,0 +1,9 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_preisart',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_preisart.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_preisart');
@@ -0,0 +1,9 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_punkte',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_punkte.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_punkte');
@@ -0,0 +1,11 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_sektionstage',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_sektionstage.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_sektionstage');
$GLOBALS['TCA']['tx_zuladungsliste_domain_model_sektionstage']['ctrl']['formattedLabel_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadSektionstag';
@@ -0,0 +1,9 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
'tx_zuladungsliste_domain_model_wettbewerbe',
'EXT:zuladungsliste/Resources/Private/Language/locallang_csh_tx_zuladungsliste_domain_model_wettbewerbe.xlf'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_zuladungsliste_domain_model_wettbewerbe');
@@ -0,0 +1,11 @@
<?php
defined('TYPO3_MODE') || die();
$GLOBALS['TCA']['tx_zuladungsliste_konto_aufloesung_mm']['ctrl']['formattedLabel_userFunc'] ='HermannTelser\\Zuladungsliste\\Backend\\Labels->loadPunkteVerteilungs' ;
$GLOBALS['TCA']['tx_zuladungsliste_konto_aufloesung_mm']['ctrl']['formattedLabel_userFunc_options'] = array(
'tx_zuladungsliste_konto_aufloesung_mm' => array(
'uid_empfaenger',
'prozente'
)
);
@@ -0,0 +1,12 @@
<?php
defined('TYPO3_MODE') || die();
$GLOBALS['TCA']['tx_zuladungsliste_punkte_kriterien_mm']['ctrl']['formattedLabel_userFunc'] = 'HermannTelser\\Zuladungsliste\\Backend\\Labels->loadKriterienPunkte' ;
$GLOBALS['TCA']['tx_zuladungsliste_punkte_kriterien_mm']['ctrl']['formattedLabel_userFunc_options'] = [
'tx_zuladungsliste_punkte_kriterien_mm' => [
'uid_kriterien',
'uid_punkte',
'punkte'
]
];
@@ -0,0 +1,13 @@
<?php
defined('TYPO3_MODE') || die();
$GLOBALS['TCA']['tx_zuladungsliste_punkte_verschiebung_mm']['ctrl']['formattedLabel_userFunc'] ='HermannTelser\\Zuladungsliste\\Backend\\Labels->loadTeilnehmer' ;
$GLOBALS['TCA']['tx_zuladungsliste_punkte_verschiebung_mm']['ctrl']['formattedLabel_userFunc_options'] = array(
'tx_zuladungsliste_wettbewerbe_architekten_mm' => array(
'uid_geber',
'uid_empfaenger',
'prozente',
'wettbewerbe',
)
);
@@ -0,0 +1,15 @@
<?php
defined('TYPO3_MODE') || die();
$GLOBALS['TCA']['tx_zuladungsliste_wettbewerbe_architekten_mm']['ctrl']['formattedLabel_userFunc'] ='HermannTelser\\Zuladungsliste\\Backend\\Labels->loadWettbewerbArchitekten' ;
$GLOBALS['TCA']['tx_zuladungsliste_wettbewerbe_architekten_mm']['ctrl']['formattedLabel_userFunc_options'] = array(
'tx_zuladungsliste_wettbewerbe_architekten_mm' => array(
'uid_wettbewerbe',
'uid_user',
'uid_punkte',
'notizen',
'tstamp_zuordnung',
'tstamp_aktivierung'
)
);
@@ -0,0 +1,174 @@
<?php
return array(
'ctrl' => array(
'title' => 'Besondere Sperrung',
'label' => 'begruendung',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'dividers2tabs' => true,
'versioningWS' => true,
'delete' => 'deleted',
'searchFields' => 'begruendung,sperrzeitbis,extrasperrung_user,',
'iconfile' => 'EXT:zuladungsliste/Resources/Public/Icons/tx_zuladungsliste_domain_model_extrasperrung.svg'
),
'interface' => array(
'showRecordFieldList' => 'begruendung, sperrzeitbis,extrasperrung_user',
),
'types' => array(
'1' => array('showitem' => 'begruendung, sperrzeitbis, extrasperrung_user'),
),
'palettes' => array(
'1' => array('showitem' => ''),
),
'columns' => array(
// 'sys_language_uid' => array(
// 'exclude' => 1,
// 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
// 'config' => array(
// 'type' => 'select',
// 'renderType' => 'selectSingle',
// 'foreign_table' => 'sys_language',
// 'foreign_table_where' => 'ORDER BY sys_language.title',
// 'items' => array(
// array('LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages', -1),
// array('LLL:EXT:lang/locallang_general.xlf:LGL.default_value', 0)
// ),
// ),
// ),
// 'l10n_parent' => array(
// 'displayCond' => 'FIELD:sys_language_uid:>:0',
// 'exclude' => 1,
// 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.l18n_parent',
// 'config' => array(
// 'type' => 'select',
// 'renderType' => 'selectSingle',
// 'items' => array(
// array('', 0),
// ),
// 'foreign_table' => 'tx_zuladungsliste_domain_model_extrasperrung',
// 'foreign_table_where' => 'AND tx_zuladungsliste_domain_model_extrasperrung.pid=###CURRENT_PID### AND tx_zuladungsliste_domain_model_extrasperrung.sys_language_uid IN (-1,0)',
// ),
// ),
// 'l10n_diffsource' => array(
// 'config' => array(
// 'type' => 'passthrough',
// ),
// ),
//
// 't3ver_label' => array(
// 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.versionLabel',
// 'config' => array(
// 'type' => 'input',
// 'size' => 30,
// 'max' => 255,
// )
// ),
'hidden' => array(
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden',
'config' => array(
'type' => 'check',
),
),
'starttime' => array(
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime',
'config' => array(
'type' => 'input',
'renderType' => 'inputDateTime',
'size' => 13,
'eval' => 'datetime',
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true
],
'range' => array(
'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y'))
),
),
),
'endtime' => array(
'exclude' => 1,
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime',
'config' => array(
'type' => 'input',
'renderType' => 'inputDateTime',
'size' => 13,
'eval' => 'datetime',
'checkbox' => 0,
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true
],
'range' => array(
'lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y'))
),
),
),
# TODO
'begruendung' => array(
'exclude' => 1,
'label' => 'Besondere Sperrung',
'formattedLabel_userFunc' => 'HermannTelser\Zuladungsliste\Classes\Utilities\ZuladungslisteLabelHelper->sperrung_user',
'formattedLabel_userFunc_options' => array(
'special' => array(
'begruendung',
'sperrzeitbis'
)
),
'config' => array(
'type' => 'input',
'size' => 30,
'max' => 255,
'eval' => 'trim,required',
)
),
'sperrzeitbis' => array(
'exclude' => 1,
'label' => 'LLL:EXT:zuladungsliste/Resources/Private/Language/locallang_db.xlf:tx_zuladungsliste_domain_model_extrasperrung.sperrzeitbis',
'config' => array(
'dbType' => 'date',
'renderType' => 'inputDateTime',
'type' => 'input',
'size' => 7,
'eval' => 'date',
'checkbox' => 0,
),
),
'extrasperrung_user' => array(
'exclude' => 1,
'label' => 'Sperrungen Architekten',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tx_zuladungsliste_extrasperrung_user_mm',
'foreign_field' => 'uid_extrasperrung',
// 'foreign_label' => 'uid_user',
// 'foreign_selector' => 'uid_user',
// 'foreign_unique' => 'uid_user',
'foreign_sortby' => 'sorting',
'appearance' => array(
'collapseAll' => true,
'expandSingle' => true,
//'newRecordLinkAddTitle' => FALSE,
//'useCombination' => TRUE,
//'useSortable' => TRUE,
'enabledControls' => array(
'info' => false,
'new' => false,
'dragdrop' => false,
'sort' => false,
//'hide' => false,
//'delete' => false,
//'localize' => false,
),
),
),
),
),
);
Loaded 100 of 2984 files, more files were not shown because too many files have changed in this diff. Show more