<?php
namespace App\Controller\userController;
use App\Controller\api\GoogleMapsController;
use App\Controller\basisController\AllgemeineFunktionenController;
use App\Controller\basisController\UserBasisController;
use App\Entity\StatistikSuchbegriffe;
use App\Repository\BranchenKategorienRepository;
use App\Repository\BranchenRepository;
use App\Repository\FirmenBlogRepository;
use App\Repository\FirmenDateienRepository;
use App\Repository\FirmenprofilRepository;
use App\Repository\KonfiguratorThemenRepository;
use App\Repository\SchulungenRepository;
use App\Repository\SchulungsArtRepository;
use App\Repository\SchulungsfilterRepository;
use App\Repository\SchulungsfilterungRepository;
use App\Repository\SchulungsTermineRepository;
use App\Repository\SchulungWerbungRepository;
use App\Repository\StatistikSuchbegriffeRepository;
use App\Repository\UserFavoritenRepository;
use App\Repository\UserProfilRepository;
use App\Repository\UserRepository;
use App\Repository\ZielgruppeRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class StartController extends UserBasisController
{
#[Route('/user/weiterleitung', name: 'user_weiterleitung')]
public function user_weiterleitung(Request $request): Response
{
$user = $this->getUser()?->getId();
if ($user != null) {
if ($request->getSession()->get('appUser')) {
if (in_array("ROLE_FIRMA", $this->getUser()->getRoles())) {
return $this->redirectToRoute('user_firma', ['id' => 0, 'seite' => 'info']);
}
} else {
if (in_array("ROLE_CELSEO_MASTERADMIN", $this->getUser()->getRoles())) {
return $this->redirectToRoute('admin_start');
}
if (in_array("ROLE_FIRMA_ADMIN", $this->getUser()->getRoles())) {
return $this->redirectToRoute('admin_firmenadmin_start');
}
}
if (in_array("ROLE_FIRMA", $this->getUser()->getRoles())) {
return $this->redirectToRoute('user_firma', ['id' => 0, 'seite' => 'info']);
}
}
return $this->redirectToRoute('user_start');
}
#[Route('/', name: 'user_start')]
public function index(FirmenBlogRepository $firmenBlogRepository,
FirmenprofilRepository $firmenprofilRepository,
SchulungsArtRepository $schulungsArtRepository,
ZielgruppeRepository $zielgruppeRepository,
UserFavoritenRepository $userFavoritenRepository,
UserRepository $userRepository,
SchulungsTermineRepository $schulungsTermineRepository,
SchulungWerbungRepository $schulungWerbungRepository): Response
{
$userId = $this->getUser()?->getId();
$sessionId = $this->session->getId();
$meinStatus = 0;
if ($userId == null) {
$favoriten = $userFavoritenRepository->findBy(['session_id' => $sessionId]);
} else {
$favoriten = $userFavoritenRepository->findBy(['user_id' => $userId]);
$meinStatus = 1;
if ($this->getUser()?->getFirmenProfil() != null) {
$meinStatus = 2;
if ($this->getUser()->getFirmenProfil()->getCelseoIntranetId() != null) {
$meinStatus = 3;
}
}
}
$schulungen = [];
$werbungen = $schulungWerbungRepository->findWerbungAktiv(3);
foreach ($werbungen as $werbung) {
$schulungen[] = $werbung->getSchulung();
}
$schulungenRest = $schulungsTermineRepository->findSchlungsTerminNeuste(10, $meinStatus);
foreach ($schulungenRest as $schulungenRestTemp) {
$schulungAdd = true;
foreach ($schulungen as $schulung) {
if ($schulung->getId() == $schulungenRestTemp->getSchulung()->getId()) {
$schulungAdd = false;
}
}
if ($schulungAdd) {
$schulungen[] = $schulungenRestTemp->getSchulung();
}
if (count($schulungen) >= 6) {
break;
}
}
return $this->render('user/start/index.html.twig', [
'dozenten' => $userRepository->findAll(),
'schulungen' => $schulungen,
'schulungsarten' => $schulungsArtRepository->findAll(),
'zielgruppen' => $zielgruppeRepository->findAll(),
'favoriten' => $favoriten,
'firmenprofile' => $firmenprofilRepository->findAll(),
'blogs' => $firmenBlogRepository->findBy(['aktiv' => 1], ['datum' => 'DESC'], 10, 0),
]);
}
#[Route('/user/start/weitere', name: 'user_start_weitere')]
public function user_start_weitere(Request $request,
FirmenprofilRepository $firmenprofilRepository,
UserFavoritenRepository $userFavoritenRepository,
SchulungsTermineRepository $schulungsTermineRepository): Response
{
$meinStatus = 0;
$userId = $this->getUser()?->getId();
$sessionId = $this->session->getId();
if ($userId == null) {
$favoriten = $userFavoritenRepository->findBy(['session_id' => $sessionId]);
} else {
$favoriten = $userFavoritenRepository->findBy(['user_id' => $userId]);
$meinStatus = 1;
if ($this->getUser()?->getFirmenProfil() != null) {
$meinStatus = 2;
if ($this->getUser()->getFirmenProfil()->getCelseoIntranetId() != null) {
$meinStatus = 3;
}
}
}
$termine = [];
$terminIds = [];
$array_termine_vorhanden = $request->get('array_termine_vorhanden');
$neueSeminareCounter = $request->get('neueSeminareCounter');
$anzahlSchulungen = ($neueSeminareCounter * 3) + 10;
$schulungenRest = $schulungsTermineRepository->findSchlungsTerminNeuste($anzahlSchulungen, $meinStatus);
foreach ($schulungenRest as $schulungenRestTemp) {
$schulungAdd = true;
foreach ($array_termine_vorhanden as $vorhanden) {
if ($vorhanden == $schulungenRestTemp->getId()) {
$schulungAdd = false;
}
}
if ($schulungAdd) {
$termine[] = $schulungenRestTemp;
$terminIds[] = $schulungenRestTemp->getId();
}
if (count($termine) >= 3) {
break;
}
}
$ergebnis = [];
$ergebnis["weitere_seminare_gefunden"] = $this->render('user/start/weitere_seminare.html.twig', [
'termine' => $termine,
'favoriten' => $favoriten,
'firmenprofile' => $firmenprofilRepository->findAll(),
])->getContent();
$ergebnis["weitere_termine_ids"] = $terminIds;
$ergebnis["anzahl_termine"] = count($termine);
return new JsonResponse($ergebnis);
}
#[Route('/user/start/seminarfilter', name: 'user_start_seminarfilter')]
public function user_start_seminarfilter(Request $request): Response
{
$filter = json_decode($request->get('filter'), true);
return $this->render('user/start/seminarfilter.html.twig', [
'filter' => $filter,
]);
}
#[Route('/user/start/seminarfilter_plz_suche', name: 'user_start_seminarfilter_plz_suche')]
public function user_start_seminarfilter_plz_suche(Request $request,
GoogleMapsController $googleMapsController,
HttpClientInterface $httpClient): Response
{
$plz = $request->get('plz');
$returnData = [];
$returnData['lat'] = 0;
$returnData['lng'] = 0;
$ergebnis = $googleMapsController->googleMapsKoordinatenSuchen('Deutschland ' . $plz, $httpClient);
if (count($ergebnis) > 0) {
$returnData['lat'] = $ergebnis[0]['geometry']['location']['lat'];
$returnData['lng'] = $ergebnis[0]['geometry']['location']['lng'];
$returnData["error"] = false;
} else {
$returnData["error"] = true;
}
return new JsonResponse($returnData);
}
#[Route('/user/start/seminarergebnisse', name: 'user_start_seminarergebnisse')]
public function user_start_seminarergebnisse(Request $request,
SchulungenRepository $schulungenRepository,
SchulungsTermineRepository $schulungsTermineRepository,
SchulungsfilterungRepository $schulungsfilterungRepository,
SchulungsfilterRepository $schulungsfilterRepository,
StatistikSuchbegriffeRepository $statistikSuchbegriffeRepository,
KonfiguratorThemenRepository $konfiguratorThemenRepository,
SchulungsArtRepository $schulungsArtRepository,
BranchenRepository $branchenRepository,
BranchenKategorienRepository $kategorienRepository,
FirmenprofilRepository $firmenprofilRepository,
ZielgruppeRepository $zielgruppeRepository,
GoogleMapsController $googleMapsController,
EntityManagerInterface $entityManager): Response
{
$schulungen = null;
$schulungstermine = null;
$filter = json_decode($request->get('filter'), true);
$suchkriterien = [];
$userId = $this->getUser()?->getId();
$meinStatus = 0;
$suchkriterien['nur_celsisten'] = [0];
if ($userId != null) {
$meinStatus = 1;
$suchkriterien['nur_celsisten'][] = 1;
if ($this->getUser()?->getFirmenProfil() != null) {
$meinStatus = 2;
$suchkriterien['nur_celsisten'][] = 2;
if ($this->getUser()->getFirmenProfil()->getCelseoIntranetId() != null) {
$meinStatus = 3;
$suchkriterien['nur_celsisten'][] = 3;
}
}
}
if (count($filter['schulungsart']) > 0) {
$suchkriterien['schulungsart'] = [];
foreach ($filter['schulungsart'] as $schulungsart) {
$suchkriterien['schulungsart'][] = $schulungsart;
}
}
if (count($filter['branche']) > 0) {
$suchkriterien['branche'] = [];
foreach ($filter['branche'] as $branche) {
$suchkriterien['branche'][] = $branche;
}
}
if (count($filter['kategorie']) > 0) {
$suchkriterien['kategorie'] = [];
foreach ($filter['kategorie'] as $kategorie) {
$suchkriterien['kategorie'][] = $kategorie;
}
}
if (count($filter['themengebiet']) > 0) {
$suchkriterien['thema'] = [];
foreach ($filter['themengebiet'] as $thema) {
$suchkriterien['thema'][] = $thema;
}
}
if (count($filter['zielgruppe']) > 0) {
$suchkriterien['zielgruppe'] = [];
foreach ($filter['zielgruppe'] as $zielgruppe) {
$suchkriterien['zielgruppe'][] = $zielgruppe;
}
}
if (count($filter['anbieter']) > 0) {
$suchkriterien['anbieter'] = [];
foreach ($filter['anbieter'] as $anbieter) {
$suchkriterien['anbieter'][] = $anbieter;
}
}
$treffer = [];
$restAnzeige = [];
$restAnzeige['schulungsart'] = [];
$restAnzeige['branche'] = [];
$restAnzeige['kategorie'] = [];
$restAnzeige['thema'] = [];
$restAnzeige['zielgruppe'] = [];
$restAnzeige['anbieter'] = [];
$schulungsfilter = $schulungsfilterRepository->findBy($suchkriterien);
$arr_schulung = [];
$arr_schulungsart = [];
$arr_branche = [];
$arr_kategorie = [];
$arr_thema = [];
$arr_zielgruppe = [];
$arr_anbieter = [];
foreach ($schulungsfilter as $sFilter) {
$schulungID = $sFilter->getSchulung()->getId();
$arr_schulung[] = $schulungID;
$arr_schulungsart[] = $sFilter->getSchulungsart();
$arr_branche[] = $sFilter->getBranche();
$arr_kategorie[] = $sFilter->getKategorie();
$arr_thema[] = $sFilter->getThema();
$arr_zielgruppe[] = $sFilter->getZielgruppe();
$arr_anbieter[] = $sFilter->getAnbieter();
$setzeNeueSchulungsfilter = true;
$setzeSchulungsart = true;
$setzeBranche = true;
$setzeKategorie = true;
$setzeThema = true;
$setzeZielgruppe = true;
$setzeAnbieter = true;
for ($i = 0; $i < count($treffer); $i++) {
if ($treffer[$i]['schulungId'] == $schulungID) {
$setzeNeueSchulungsfilter = false;
$fuegeHinzu = true;
foreach ($treffer[$i]['schulungsart'] as $tID) {
if ($tID == $sFilter->getSchulungsart()) {
$fuegeHinzu = false;
$setzeSchulungsart = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['schulungsart'][] = $sFilter->getSchulungsart();
}
$fuegeHinzu = true;
foreach ($treffer[$i]['branche'] as $tID) {
if ($tID == $sFilter->getBranche()) {
$fuegeHinzu = false;
$setzeBranche = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['branche'][] = $sFilter->getBranche();
}
$fuegeHinzu = true;
foreach ($treffer[$i]['kategorie'] as $tID) {
if ($tID == $sFilter->getKategorie()) {
$fuegeHinzu = false;
$setzeKategorie = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['kategorie'][] = $sFilter->getKategorie();
}
$fuegeHinzu = true;
foreach ($treffer[$i]['thema'] as $tID) {
if ($tID == $sFilter->getThema()) {
$fuegeHinzu = false;
$setzeThema = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['thema'][] = $sFilter->getThema();
}
$fuegeHinzu = true;
foreach ($treffer[$i]['zielgruppe'] as $tID) {
if ($tID == $sFilter->getZielgruppe()) {
$fuegeHinzu = false;
$setzeZielgruppe = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['zielgruppe'][] = $sFilter->getZielgruppe();
}
$fuegeHinzu = true;
foreach ($treffer[$i]['anbieter'] as $tID) {
if ($tID == $sFilter->getAnbieter()) {
$fuegeHinzu = false;
$setzeAnbieter = false;
}
}
if ($fuegeHinzu) {
$treffer[$i]['anbieter'][] = $sFilter->getAnbieter();
}
}
}
if ($setzeNeueSchulungsfilter) {
$tmpData = [];
$tmpData['schulungId'] = $schulungID;
$tmpData['schulungsart'] = [];
$tmpData['schulungsart'][] = $sFilter->getSchulungsart();
$tmpData['branche'] = [];
$tmpData['branche'][] = $sFilter->getBranche();
$tmpData['kategorie'] = [];
$tmpData['kategorie'][] = $sFilter->getKategorie();
$tmpData['thema'] = [];
$tmpData['thema'][] = $sFilter->getThema();
$tmpData['zielgruppe'] = [];
$tmpData['zielgruppe'][] = $sFilter->getZielgruppe();
$tmpData['anbieter'] = [];
$tmpData['anbieter'][] = $sFilter->getAnbieter();
$treffer[] = $tmpData;
}
if ($setzeSchulungsart) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['schulungsart']); $i++) {
if ($restAnzeige['schulungsart'][$i]['id'] == $sFilter->getSchulungsart()) {
$restAnzeige['schulungsart'][$i]['anzahl'] = $restAnzeige['schulungsart'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getSchulungsart();
$tmpData['anzahl'] = 1;
$restAnzeige['schulungsart'][] = $tmpData;
}
}
if ($setzeBranche) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['branche']); $i++) {
if ($restAnzeige['branche'][$i]['id'] == $sFilter->getBranche()) {
$restAnzeige['branche'][$i]['anzahl'] = $restAnzeige['branche'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getBranche();
$tmpData['anzahl'] = 1;
$restAnzeige['branche'][] = $tmpData;
}
}
if ($setzeKategorie) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['kategorie']); $i++) {
if ($restAnzeige['kategorie'][$i]['id'] == $sFilter->getKategorie()) {
$restAnzeige['kategorie'][$i]['anzahl'] = $restAnzeige['kategorie'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getKategorie();
$tmpData['anzahl'] = 1;
$restAnzeige['kategorie'][] = $tmpData;
}
}
if ($setzeThema) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['thema']); $i++) {
if ($restAnzeige['thema'][$i]['id'] == $sFilter->getThema()) {
$restAnzeige['thema'][$i]['anzahl'] = $restAnzeige['thema'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getThema();
$tmpData['anzahl'] = 1;
$restAnzeige['thema'][] = $tmpData;
}
}
if ($setzeZielgruppe) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['zielgruppe']); $i++) {
if ($restAnzeige['zielgruppe'][$i]['id'] == $sFilter->getZielgruppe()) {
$restAnzeige['zielgruppe'][$i]['anzahl'] = $restAnzeige['zielgruppe'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getZielgruppe();
$tmpData['anzahl'] = 1;
$restAnzeige['zielgruppe'][] = $tmpData;
}
}
if ($setzeAnbieter) {
$setzeNeu = true;
for ($i = 0; $i < count($restAnzeige['anbieter']); $i++) {
if ($restAnzeige['anbieter'][$i]['id'] == $sFilter->getAnbieter()) {
$restAnzeige['anbieter'][$i]['anzahl'] = $restAnzeige['anbieter'][$i]['anzahl'] + 1;
$setzeNeu = false;
}
}
if ($setzeNeu) {
$tmpData = [];
$tmpData['id'] = $sFilter->getAnbieter();
$tmpData['anzahl'] = 1;
$restAnzeige['anbieter'][] = $tmpData;
}
}
}
$arr_schulung = array_unique($arr_schulung);
$arr_schulungsart = array_unique($arr_schulungsart);
$arr_branche = array_unique($arr_branche);
$arr_kategorie = array_unique($arr_kategorie);
$arr_thema = array_unique($arr_thema);
$arr_zielgruppe = array_unique($arr_zielgruppe);
$arr_anbieter = array_unique($arr_anbieter);
if (strlen($filter['suchbegriff']) > 0) {
if ($meinStatus > 0) {
$suchEingabe = strtolower(trim($filter['suchbegriff']));
$eingabeSuchbegriffe = $statistikSuchbegriffeRepository->findOneBy(['user' => $this->getUser(), 'wort' => $suchEingabe]);
if ($eingabeSuchbegriffe == null) {
$speichernSuchbegriff = new StatistikSuchbegriffe();
$speichernSuchbegriff->setUser($this->getUser());
$speichernSuchbegriff->setWort($suchEingabe);
$speichernSuchbegriff->setDatum(new \DateTime('now', new \DateTimeZone('Europe/Berlin')));
$entityManager->persist($speichernSuchbegriff);
$entityManager->flush();
}
}
$schulungsfilterungen = $schulungsfilterungRepository->findSchlungenNachName($filter, $meinStatus);
$schulungsIDs = [];
foreach ($schulungsfilterungen as $schulungsfilterung) {
$schulungsIDs[] = $schulungsfilterung->getSchulung()->getId();
}
if (count($schulungsIDs) > 0) {
$schulungen = $schulungenRepository->findBy(['id' => $schulungsIDs]);
}
} else {
$schulungen = $schulungenRepository->findBy(['id' => $arr_schulung], ['id' => 'DESC']);
}
$datumJetzt = new \DateTime('now', new \DateTimeZone('Europe/Berlin'));
$jetztUS = $datumJetzt->format("Y-m-d H:i:s");
$termine = null;
if ($schulungen != null) {
$terminIDs = [];
foreach ($schulungen as $schulung) {
$alleTermine = [];
foreach ($schulung->getSchulungstermine() as $termin) {
$tmpTermin['terminId'] = $termin->getId();
if ($termin->getAnmeldeschluss() == null) {
if ($schulung->getSchulungsart()->getId() == 5) {
$tmpTermin['datum'] = $termin->getBis()->format('Y-m-d H:i:s');
} else {
$tmpTermin['datum'] = $termin->getVon()->format('Y-m-d H:i:s');
}
} else {
$tmpTermin['datum'] = $termin->getAnmeldeschluss()->format('Y-m-d H:i:s');
}
$alleTermine[] = $tmpTermin;
}
$key_values = array_column($alleTermine, 'datum');
array_multisort($key_values, SORT_ASC, $alleTermine);
foreach ($alleTermine as $termin) {
if ($schulung->getSchulungsart()->getId() == 1 || $schulung->getSchulungsart()->getId() == 4) {
$terminIDs[] = $termin['terminId'];
break;
} else {
if ($termin['datum'] >= $jetztUS) {
$terminIDs[] = $termin['terminId'];
/*break;*/
}
}
}
}
$termine = $schulungsTermineRepository->findBy(['id' => $terminIDs], ['von' => 'DESC']);
}
$entfernungen = [];
if ($this->getUser()?->getUserProfil() != null && $termine != null) {
foreach ($termine as $termin) {
if ($termin->getGoogleLen() != null) {
$lat = 0;
$len = 0;
if ($this->getUser()->getUserProfil()->getGoogleLat() != null) {
$lat = $this->getUser()->getUserProfil()->getGoogleLat();
$len = $this->getUser()->getUserProfil()->getGoogleLen();
} else {
if ($this->getUser()->getFirmenprofil() != null && $this->getUser()->getFirmenprofil()->getGoogleLat() != null) {
$lat = $this->getUser()->getFirmenprofil()->getGoogleLat();
$len = $this->getUser()->getFirmenprofil()->getGoogleLen();
}
}
if ($lat != 0) {
$entfernungInMeter = $googleMapsController->vincentyGreatCircleDistance($lat, $len, $termin->getGoogleLat(), $termin->getGoogleLen());
$entfernung = [];
$entfernung['terminId'] = $termin->getId();
$entfernung['km'] = round($entfernungInMeter / 1000, 2);
$entfernungen[] = $entfernung;
}
}
}
}
$firmen = $firmenprofilRepository->findBy(['id' => $arr_anbieter]);
$ergebnis = [];
$ergebnis["schulungstermine"] = $this->render('user/start/seminarergebnisse.html.twig', [
'filter' => $filter,
'termine' => $termine,
'entfernungen' => $entfernungen,
'firmen' => $firmen,
])->getContent();
$ergebnis["suchfilter"] = $this->render('user/start/filter.html.twig', [
'filter' => $filter,
'schulungsarten' => $schulungsArtRepository->findBy(['id' => $arr_schulungsart]),
'branchen' => $branchenRepository->findBy(['id' => $arr_branche]),
'kategorien' => $kategorienRepository->findBy(['id' => $arr_kategorie]),
'themen' => $konfiguratorThemenRepository->findBy(['id' => $arr_thema]),
'zielgruppen' => $zielgruppeRepository->findBy(['id' => $arr_zielgruppe]),
'firmen' => $firmen,
'restAnzeige' => $restAnzeige,
])->getContent();
$ergebnis["seminarfilter"] = $filter;
return new JsonResponse($ergebnis);
}
#[
Route('/user/blog/{id}', name: 'user_blog')]
public function user_blog($id, FirmenBlogRepository $firmenBlogRepository): Response
{
$meineFirmenId = $this->getUser()?->getFirmenProfil()?->getId();
$blog = $firmenBlogRepository->findOneBy(['id' => $id]);
if ($blog->getAktiv() == 0 && $blog->getFirma()->getId() != $meineFirmenId) {
return $this->redirectToRoute('user_start');
}
return $this->render('user/start/blog_ansehen.html.twig', [
'blog' => $blog,
]);
}
#[Route('/user/gast_favoriten', name: 'user_gast_favoriten', methods: ['GET'])]
public function user_gast_favoriten(FirmenprofilRepository $firmenprofilRepository,
UserFavoritenRepository $userFavoritenRepository): Response
{
return $this->render('user/start/gast_favoriten.html.twig', [
'favoriten' => $userFavoritenRepository->findBy(['session_id' => $this->session->getId()]),
'firmenprofile' => $firmenprofilRepository->findAll(),
]);
}
// Bild einbinden aus dem var Ordner mit Berechtigungsabfrage
#[Route('/firmenlogo/{id}', name: 'firmenlogo_anzeigen', methods: ['GET'])]
public function firmenlogo($id, FirmenprofilRepository $firmenprofilRepository): Response
{
$firmenprofil = $firmenprofilRepository->findOneBy(['id' => $id]);
$filePath = $this->getParameter('admin_ordner') . '/logo/' . $id . '/' . $firmenprofil->getLogo();
//return new JsonResponse("", 403);
return new BinaryFileResponse($filePath);
}
// Bild einbinden aus dem var Ordner mit Berechtigungsabfrage
#[Route('user/profilbild/laden/{id}', name: 'user_profilbild_laden', methods: ['GET'])]
public function meinProfilbild($id, UserProfilRepository $userProfilRepository): Response
{
if ($id == 0) {
$filePath = $this->getParameter('user_ordner') . '/0/profilbild/kein_user.png';
} else {
$userProfil = $userProfilRepository->findOneBy(['user' => $id]);
$filePath = $this->getParameter('user_ordner') . '/' . $id . '/profilbild/' . $userProfil->getProfilbild();
}
//return new JsonResponse("", 403);
return new BinaryFileResponse($filePath);
}
#[Route('/dateien/{firmaId}/{dateiname}', name: 'oeffentliche_dateien_anzeigen', methods: ['GET'])]
public function oeffentliche_dateien_anzeigen($firmaId, $dateiname,
FirmenDateienRepository $firmenDateienRepository): Response
{
$datei = $firmenDateienRepository->findOneBy(['firma' => $firmaId, 'speichername' => $dateiname]);
$filePath = $this->getParameter('admin_ordner') . '/dateimanager/' . $datei->getFirma()->getId() . '/' . $datei->getSpeichername();
//return new JsonResponse("", 403);
return new BinaryFileResponse($filePath);
}
#[Route('/campus_online_statistik', name: 'campus_online_statistik')]
public function campus_online_statistik(AllgemeineFunktionenController $allgemeineFunktionenController): Response
{
return $allgemeineFunktionenController->getOnlineStatistik();
}
}