first commit
This commit is contained in:
commit
e81864e683
2984 files changed
+267797
No files matched your search
@@ -0,0 +1,67 @@
|
||||
<?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 (0 != $uid) {
|
||||
$queryBuilder->andWhere($queryBuilder->expr()->eq('uid', (int) $uid));
|
||||
}
|
||||
if (0 != _Berechnung::$_config['berechne_bis']) {
|
||||
$date = date('Y-m-d', _Berechnung::$_config['berechne_bis']);
|
||||
$queryBuilder->andWhere("vereidigung < '".$date."'");
|
||||
}
|
||||
|
||||
$statement = $queryBuilder->execute()->fetchAll();
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
// print_r($statement);
|
||||
// exit;
|
||||
|
||||
_Berechnung::$_data['architekten'] = $statement;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
<?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 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('tx_zuladungsliste_konto_aufloesung_mm');
|
||||
$statement = $queryBuilder
|
||||
->select('uid_geber', ' uid_empfaenger', ' prozente')
|
||||
->from('tx_zuladungsliste_konto_aufloesung_mm')
|
||||
->where(
|
||||
$queryBuilder->expr()->gt('prozente', (int) 0)
|
||||
)->execute()->fetchAll();
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
|
||||
$verteiler_arr = [];
|
||||
foreach ($statement as $key => $value) {
|
||||
$uid = $value['uid_geber'];
|
||||
$verteiler_arr[$uid][] = $value;
|
||||
}
|
||||
|
||||
foreach ($verteiler_arr as $uid_geber => $empfaener_arr) {
|
||||
$frauenpunkt_abgezogen = '';
|
||||
|
||||
foreach (_Berechnung::$_data['liste'] as $key => $_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]['company'] .= ' ( Kontoauflösung '._Berechnung::$_data['liste'][$key]['kontoaufloesung_active'].')';
|
||||
_Berechnung::$_data['liste'][$key]['punkte'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['nominiert'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['wettbewerbe']['punkte'] = 0;
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['neueinsteigerpunkt']['punkte'] = 0;
|
||||
if (1 == _Berechnung::$_data['liste'][$key]['auswertung']['frauenfoerderpunkt']['punkte']) {
|
||||
$frauenpunkt_abgezogen = ', Frauenförderpunkt wurde abgezogen';
|
||||
--$geber_punkte;
|
||||
}
|
||||
_Berechnung::$_data['liste'][$key]['auswertung']['frauenfoerderpunkt']['punkte'] = 0;
|
||||
|
||||
foreach ($empfaener_arr as $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) {
|
||||
$punkte_empf_anteil = round($geber_punkte * ($prozente / 100), 2);
|
||||
|
||||
_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,
|
||||
'verfahrensid' => '',
|
||||
'verfahrensort' => '',
|
||||
'entscheidungstermin' => '',
|
||||
'mit_sperrung' => '',
|
||||
'punkte' => $punkte_empf_anteil,
|
||||
'bezeichnung' => '',
|
||||
'bezeichnung_punkte' => '',
|
||||
'regelwerk' => '',
|
||||
'monate_seit_entscheidungstermin' => '',
|
||||
'punkte_aktive' => '',
|
||||
'gueltig_bis' => '',
|
||||
'von_transfer' => $geber_company,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Frontend\Utility\EidUtility;
|
||||
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();
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_wettbewerbe');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'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.entscheidungstermin');
|
||||
|
||||
|
||||
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"]);
|
||||
}
|
||||
|
||||
$_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.0.42022
|
||||
$sperreZeitLimit = (_Berechnung::$_config['berechne_bis']!= 0) ? _Berechnung::$_config['berechne_bis'] : time();
|
||||
|
||||
if ($row["sperrung_aktive"] and $datetime2->format("U") > $sperreZeitLimit) {
|
||||
$_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_ASC, $_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("pruefePunkteverfallFrauenFoerderungsPunkt", $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 ('0000-00-00' == $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,65 @@
|
||||
<?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
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function load()
|
||||
{
|
||||
if (_Berechnung::$debug) {
|
||||
Message::debug(__FILE__, __LINE__, 'Load Punkte Kriterien');
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_punkte_kriterien_mm');
|
||||
$queryBuilder
|
||||
->select(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid_punkte',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien',
|
||||
'tx_zuladungsliste_punkte_kriterien_mm.punkte',
|
||||
'a.bezeichnung AS bezeichnung_punkte',
|
||||
'b.bezeichnung AS bezeichnung_kritierien'
|
||||
)->from('tx_zuladungsliste_punkte_kriterien_mm')
|
||||
->join(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'tx_zuladungsliste_domain_model_punkte',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_punkte'))
|
||||
)
|
||||
->join(
|
||||
'tx_zuladungsliste_punkte_kriterien_mm',
|
||||
'tx_zuladungsliste_domain_model_kriterien',
|
||||
'b',
|
||||
$queryBuilder->expr()->eq('b.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_punkte_kriterien_mm.uid_kriterien'))
|
||||
);
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
$tmp = $queryBuilder->execute()->fetchAll();
|
||||
$return = [];
|
||||
foreach ($tmp as $key => $value)
|
||||
{
|
||||
$return[$value['uid_punkte']] = $value;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?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($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,95 @@
|
||||
<?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)
|
||||
{
|
||||
|
||||
$_liste["auswertung"]["sondersperrungen"]["gesperrt"]=0;
|
||||
$_liste["auswertung"]["sondersperrungen"]["gesperrt_bis"]=0;
|
||||
$user_id = $user_objekt["uid"];
|
||||
if (isset(_Berechnung::$_data['sondersperrungen'][$user_id])) {
|
||||
foreach (_Berechnung::$_data['sondersperrungen'][$user_id] as $key => $value_sperrung) {
|
||||
if (_Berechnung::$_config['berechne_bis'] < $value_sperrung["sperrzeitbis_timestamp"]) {
|
||||
$return["gesperrt_bis"] = $value_sperrung["sperrzeitbis_timestamp"];
|
||||
}
|
||||
$_liste["auswertung"]["sondersperrungen"]["gesperrt"] = 1;
|
||||
$_liste["auswertung"]["sondersperrungen"]["gesperrt_bis"] = $value_sperrung["sperrzeitbis"];
|
||||
$_liste["auswertung"]["sondersperrungen"]["kommentar"] = $value_sperrung["begruendung"];
|
||||
|
||||
$_liste["gesperrt_bis"] = $value_sperrung["sperrzeitbis"];
|
||||
$_liste["nominiert"] = 0;
|
||||
}
|
||||
}
|
||||
return $_liste;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Zuladungsliste\Berechnung;
|
||||
|
||||
use HermannTelser\Zuladungsliste\Utilities\Message;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "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'
|
||||
)
|
||||
->from('tx_zuladungsliste_wettbewerbe_architekten_mm')
|
||||
->join(
|
||||
'tx_zuladungsliste_wettbewerbe_architekten_mm',
|
||||
'tx_zuladungsliste_domain_model_wettbewerbe',
|
||||
'a',
|
||||
$queryBuilder->expr()->eq('a.uid', $queryBuilder->quoteIdentifier('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_wettbewerbe'))
|
||||
)->where(
|
||||
$queryBuilder->expr()->gt('tx_zuladungsliste_wettbewerbe_architekten_mm.uid_punkte', 0)
|
||||
);
|
||||
|
||||
if (_Berechnung::$debug) {
|
||||
Message::note($queryBuilder->getSQL());
|
||||
}
|
||||
return $queryBuilder->execute()->fetchAll();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,277 @@
|
||||
<?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;
|
||||
|
||||
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, 7, 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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function berechnen()
|
||||
{
|
||||
self::$_data = [];
|
||||
|
||||
Sondersperrungen::load();
|
||||
|
||||
// controllo = 0 => all
|
||||
$architekt_uid = 0;
|
||||
|
||||
Architekten::load($architekt_uid);
|
||||
|
||||
// print_r(self::$_data['architekten']);
|
||||
// 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"]!="0000-00-00") {
|
||||
$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"]==$architekt_uid){
|
||||
// print_r($_liste['punkte']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
self::$_data['liste'][] = $_liste;
|
||||
}
|
||||
|
||||
// $tmp = self::$_data['liste'];
|
||||
// print_r($tmp);
|
||||
// exit;
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
$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)
|
||||
*/
|
||||
//print_r($data);
|
||||
//exit;
|
||||
|
||||
$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"]["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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user