, 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, ]; } } } } } } } } }