107 lines
4.9 KiB
PHP
107 lines
4.9 KiB
PHP
<?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,
|
|
];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|