<?php
namespace App\Controller;
use App\Legacy\Database;
use App\Legacy\GetHelper;
use App\Legacy\SecurityHelper;
use App\Legacy\UrlHelper;
use App\Service\NavigationService;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Security\Core\Security;
class LegacyController extends AbstractController
{
/**
* @Route("/{url}", name="app_legacy", priority=-1)
* @param $url
* @param Security $security
* @param NavigationService $navigationService
* @return Response
*/
public function index(
$url,
Security $security,
NavigationService $navigationService
): Response {
if (!$this->isGranted('ROLE_USER')) {
return $this->redirect('/login');
}
//set security for legacy checks
SecurityHelper::setSecurity($security);
global $db;
$db = Database::getInstance();
define("NAME", "Functielab");
define("PROJECTCODE", "fl3_acc");
define("Q", trim($url, "/"));
define("MINIMUMLOON", 1507.80); // ook in overige.js
define("CLIENT_MAX_VRAGEN", 70);
define("FMLCAT1", "Persoonlijk functioneren");
define("FMLCAT2", "Sociaal functioneren");
define("FMLCAT3", "Fysieke omgevingseisen");
define("FMLCAT4", "Dynamische handelingen");
define("FMLCAT5", "Statische houdingen");
define("FMLCAT6", "Werktijden");
define("OPLEIDINGSRICHTING1", "Algemeen");
define("OPLEIDINGSRICHTING2", "Agrarisch");
define("OPLEIDINGSRICHTING3", "Technisch");
define("OPLEIDINGSRICHTING4", "Diensten");
define("OPLEIDINGSRICHTING5", "Gezondheidszorg");
define("OPLEIDINGSRICHTING6", "Commercieel");
define("OPLEIDINGSRICHTING7", "Administratief");
define("OPLEIDINGSRICHTING8", "Kunst & Cultuur");
define("OPLEIDINGSNIVEAU1", "Elementair");
define("OPLEIDINGSNIVEAU2", "Lager");
define("OPLEIDINGSNIVEAU3", "Lager + voortgezet");
define("OPLEIDINGSNIVEAU4", "Middelbaar");
define("OPLEIDINGSNIVEAU5", "Middelbaar + voortgezet");
define("OPLEIDINGSNIVEAU6", "Hoger");
define("OPLEIDINGSNIVEAU7", "Wetenschappelijk");
define("ZELFSTANDIGHEID1", "Geen zelfstandige taakuitvoering");
define("ZELFSTANDIGHEID2", "Minimale zelfstandige taakuitvoering");
define("ZELFSTANDIGHEID3", "Beperkte zelfstandige taakuitvoering");
define("ZELFSTANDIGHEID4", "Voor een gering deel zelf verantwoordelijk");
define("ZELFSTANDIGHEID5", "Voor een redelijk deel zelf verantwoordelijk");
define("ZELFSTANDIGHEID6", "Voor een groot deel zelf verantwoordelijk");
define("ZELFSTANDIGHEID7", "Volledig verantwoordelijk");
define("PROBLEEMOPLOSSEN1", "Komt vrijwel nooit voor");
define("PROBLEEMOPLOSSEN2", "Kan sporadisch voorkomen");
define("PROBLEEMOPLOSSEN3", "Kan soms voorkomen");
define("PROBLEEMOPLOSSEN4", "Kan regelmatig voorkomen");
define("PROBLEEMOPLOSSEN5", "Komt regelmatig voor, inventiviteit vereist");
define("PROBLEEMOPLOSSEN6", "Komt veelvuldig voor, inventiviteit vereist");
define("PROBLEEMOPLOSSEN7", "Komt veelvuldig voor en heeft hoog abstractieniveau");
define("COMPETENTIE1", "Kwantitatief");
define("COMPETENTIE2", "Technisch");
define("COMPETENTIE3", "Organisatorisch");
define("COMPETENTIE4", "Verbaal");
define("COMPETENTIE5", "Service gericht");
define("COMPETENTIE6", "Persuasief");
define("COMPETENTIE7", "Ruimtelijk voorstellingsvermogen");
define("COMPETENTIE8", "Waakzaamheid");
define("COMPETENTIETEKST1", "De mate waarin in een functie gerekend wordt");
define("COMPETENTIETEKST2", "De mate waarin gewerkt wordt met machines en gereedschappen");
define("COMPETENTIETEKST3", "De mate waarin het voor het functioneren noodzakelijk is het werkproces te sturen door inzet van mensen, middelen en materieel");
define("COMPETENTIETEKST4", "De mate waarin de resultaten van werkzaamheden zich uitdrukken in mondelinge of schriftelijke presentaties");
define("COMPETENTIETEKST5", "De mate waarin dienstverlening gericht op de personen in de functie voorkomt");
define("COMPETENTIETEKST6", "De mate waarin de functionaris in direct contact mensen dient te beïnvloeden");
define("COMPETENTIETEKST7", "De mate waarin het van belang is attent te zijn op, voor het functioneren betekenis hebbende, details");
define("COMPETENTIETEKST8", "De mate waarin het van belang is attent te zijn op, voor het functioneren betekenis hebbende, details");
$urlObject = UrlHelper::decode($url);
GetHelper::set($urlObject->get);
$_GET = array_merge($_GET, $urlObject->get);
// 404 if JobPort Not Implemented and restructured yet
$urlParts = explode("/", trim($urlObject->url, "/"));
if ($urlParts[0] === 'jobport') {
throw new NotFoundHttpException("Page not found");
}
$q = explode("/", trim($urlObject->url, "/"));
$module = implode("_", $q);
$r = new $module();
$data = $r->get_html();
$data['navigation'] = $navigationService->getJson();
$data['url'] = $urlObject;
if(!isset($data['html'])) {
print_r($data);
die();
}
return $this->render('legacy.html.twig', $data);
}
}