Files
2026-10-06 19:40:28 +02:00

123 lines
4.7 KiB
PHP

<?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;
}
}