HEX
Server: Apache
System: Linux clpupre 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64
User: undanet (1000)
PHP: 7.4.3
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/undanet/www/PortalEmpleo/src/Repository/DBUtilRepository.php
<?php

namespace PortalEmpleo\Repository;

require __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../bootstrap.php';

use Dotenv\Dotenv;
use PortalEmpleo\Entity\DboCombobox;
use Doctrine\Common\Collections\Criteria;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class DBUtilRepository extends AbstractController
{
    private $dotenv;
    private $entityManager;

    public function __construct()
    {
    }

    private function loadEnv()
    {
        try{
            $dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
            $dotenv->load();

            $em = getEntityManager();
            
            return $em;
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }

    public function cargaComboBox($nombreCombo, $lang)
    {
        try{
            $entityManager = $this->loadEnv();

            $lcombobox = $entityManager->getRepository(DboCombobox::class)
                ->createQueryBuilder('u')
                ->where('u.nombrecombo = :nombre')
                    ->andWhere('u.baja = false')
                ->setParameter('nombre', $nombreCombo)
                ->getQuery()
                ->execute();
             
            if (!$lcombobox) {
                return ;
            }

            $lcombobox = reset($lcombobox);

            $lvalores = $this->obtenerListaValoresCombo($entityManager, $lcombobox->getNombretabla(), $lcombobox->getColumnavalue(), $lcombobox->getColumnaoption(), $lcombobox->getNombretablatraduccion(), $lcombobox->getColumnavaluetraduccion(), $lang);
            
            $result = array("NombreCombo" => $lcombobox->getNombreCombo(),"Valores" => $lvalores, "ValorSelected" => $lcombobox->getValorselected());
            
			$entityManager->getConnection()->close();
			
            return $result; 
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }

    private function obtenerListaValoresCombo($em, $nombretabla, $columnavalue, $columnaoption, $nombretablatraduccion, $columnavaluetraduccion, $language)
    {
        try{

            if($nombretablatraduccion && $columnavaluetraduccion && $language){
                $sql = "SELECT T." . $columnavalue . " , TT." . $columnaoption . " , TT.CodigoIdioma , T." . $columnaoption . " AS Original FROM " . $nombretabla . " T INNER JOIN " . $nombretablatraduccion . " TT ON T." . $columnavalue . " = TT." . $columnavaluetraduccion . " WHERE CodigoIdioma = '" . $language . "'";
            }
            else {
                $sql = "SELECT " . $columnavalue . " , " . $columnaoption . " FROM " . $nombretabla;
            }

            $rs = $em->getConnection()->query($sql)->fetchAll();

            return $rs; 
        }
        catch (Exception $ex){
            echo $exception->getMessage();
            return null;
        }
    }
}

?>