*¨ * All rights reserved * ************************************************************* */ class PunkteZuweisen { /** * @return void */ public static function setzen() { $user = $GLOBALS['TSFE']->fe_user->user; $debug = 1; $kriteriumid = GeneralUtility::_GP('kriteriumid'); $wettbewerbid = GeneralUtility::_GP('wettbewerbid'); $arr = json_decode(GeneralUtility::_GP('data'), true); $zuweisung_uid_punkte = (int) $arr["uid_punkte"]; if (!is_numeric($zuweisung_uid_punkte)) { if ($debug) { Message::note("zuweisung_uid_punkte fehlt"); } exit; } if (!is_numeric($kriteriumid)) { if ($debug) { Message::note("kriteriumid fehlt"); } exit; } if (!is_numeric($wettbewerbid)) { if ($debug) { Message::note("wettbewerbid fehlt"); } exit; } $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); $queryBuilder ->select('uid', 'uid_wettbewerbe', 'uid_user', 'uid_punkte', 'sorting', 'tstamp', 'crdate', 'tstamp_zuordnung', 'tstamp_aktivierung') ->from('tx_zuladungsliste_wettbewerbe_architekten_mm') ->where( $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) ) ->orderBy('uid_punkte'); $active_punkte = $queryBuilder->execute()->fetchAll(); // echo $queryBuilder->getSQL(); // // print_r($active_punkte); // // exit; $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_domain_model_punkte'); $queryBuilder ->select( 'tx_zuladungsliste_domain_model_punkte.uid', 'tx_zuladungsliste_domain_model_punkte.bezeichnung', 'b.sorting', 'b.punkte', 'b.uid_punkte' ) ->from('tx_zuladungsliste_domain_model_punkte') ->leftJoin( 'tx_zuladungsliste_domain_model_punkte', 'tx_zuladungsliste_punkte_kriterien_mm', 'b', $queryBuilder->expr()->eq( 'b.uid_punkte', $queryBuilder->quoteIdentifier('tx_zuladungsliste_domain_model_punkte.uid') ) ) ->where( $queryBuilder->expr()->eq('b.uid_kriterien', (int) $kriteriumid) ); $kriterien = $queryBuilder->execute()->fetchAll(); //Kontrolle if uid_punkte existiert in den kriterien für diesen wettbewerb $stopping = true; foreach ($kriterien as $key => $value) { if ($value["uid_punkte"] == $zuweisung_uid_punkte) { $stopping = false; } } if ($stopping) { if ($debug) { Message::note("uid_punkte existiert nicht in den kriterien für diesen wettbewerb"); } exit; } if (count($active_punkte)) { if ($active_punkte[0]["uid_punkte"]==$zuweisung_uid_punkte) { // PUNKTE ZUWEISUNG VOM BENUTZER GELÖSCHT $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); $queryBuilder ->delete('tx_zuladungsliste_wettbewerbe_architekten_mm') ->where( $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) ) ->execute(); } else { // UPDATE PUNKTE $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); $queryBuilder->update('tx_zuladungsliste_wettbewerbe_architekten_mm') ->where( $queryBuilder->expr()->eq('uid_user', (int) $user['uid']), $queryBuilder->expr()->eq('uid_wettbewerbe', (int) $wettbewerbid) ) ->set('tstamp', (int) time()) ->set('tstamp_zuordnung', (int) time()) ->set('uid_punkte', (int) $zuweisung_uid_punkte) ->execute(); } } else { // PUNKTE NEU ZUGETEILT $insertArray = array(); $insertArray['crdate'] = time(); $insertArray['pid'] = WETTBEWERBE_PID; $insertArray['tstamp_zuordnung'] = time(); $insertArray['uid_punkte'] = $zuweisung_uid_punkte; $insertArray['uid_wettbewerbe'] = $wettbewerbid; $insertArray['uid_user'] = $user['uid']; $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_zuladungsliste_wettbewerbe_architekten_mm'); $queryBuilder ->insert('tx_zuladungsliste_wettbewerbe_architekten_mm') ->values($insertArray) ->execute(); } // echo $queryBuilder->getSQL(); echo 1; exit; } }