HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/dvpis2026/dvpis.kaunokolegija.lt/src/Repository/StudiesProgramPlanRepository.php
<?php

namespace App\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * StudiesProgramPlanRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class StudiesProgramPlanRepository extends EntityRepository
{
    public function findAll(): array
    {
        return $this->getEntityManager()
                        ->createQuery(
                            "SELECT spp 
                                    FROM App:StudiesProgramPlan spp
                                    JOIN spp.studiesProgram sp
                                ORDER BY spp.studiesProgram ASC"
                        )
                        ->getResult();
    }

    public function getAllByHash()
    {
        $results = $this->getEntityManager()
                ->createQuery(
                    "SELECT spp 
                                    FROM App:StudiesProgramPlan spp
                                    JOIN spp.studiesProgram sp
                                ORDER BY spp.studiesProgram ASC"
                )
                ->getResult();
        $return = [];
        foreach ($results as $result) {
            $studiesProgram = $result->getStudiesProgram()->getShortName();
            $studiesForm = $result->getStudiesForm()->getShortName();
            $semester = $result->getSemester();
            $module = $result->getStudiesModule()->getShortName();
            $return[md5($studiesProgram . "_" . $studiesForm . "_" . $semester . "_" . $module)] = $result;
        }

        return $return;
    }

    public function getAllByProgramFormCourse()
    {
        $results = $this->getEntityManager()
                ->createQuery(
                    "SELECT spp, sp
                                    FROM App:StudiesProgramPlan spp
                                    JOIN spp.studiesProgram sp
                                ORDER BY spp.studiesProgram ASC"
                )
                ->getResult();
        $return = [];
        foreach ($results as $result) {
            $studiesProgram = $result->getStudiesProgram()->getShortName();
            $studiesForm = $result->getStudiesForm()->getShortName();
            $semester = $result->getSemester();

            $course = round($semester / 2);

            $return[$studiesProgram . "_" . $studiesForm . "_" . $course][$result->getId()] = $result;
        }

        return $return;
    }

    public function deleteAll()
    {
        return $this->getEntityManager()
                        ->createQuery(
                            "DELETE App:StudiesProgramPlan t"
                        )
                        ->execute();
    }

    public function findAllReport($filter = null)
    {

        $query = $this->createQueryBuilder('spp')
            ->join('spp.studiesProgram', 'sp')
            ->join('sp.department', 'd')
            ->leftJoin('spp.studiesModuleType', 'smt')
            ->leftJoin('spp.studiesForm', 'sf')
            ->leftJoin('spp.studiesModule', 'sm')
            ->leftJoin('spp.teachingLanguage', 'tl')
            ->leftJoin('d.academicUnit', 'au')
            ->leftJoin('spp.finalEgzams', 'fe')
            ->leftJoin('spp.finalProjects', 'fp')
            ->select('spp, sp, d, smt, sf, sm, tl, au, fe, fp')
            ->addOrderBy('spp.id', 'ASC')
        ;

        if (!empty($filter->get('department_id'))) {
            $query
                ->andWhere('d.id = :did')
                ->setParameter(':did', $filter->get('department'));
        }

        if (!empty($filter->get('academicUnit'))) {
            $query
                ->andWhere('au.id = :aid')
                ->setParameter(':aid', $filter->get('academicUnit'));
        }

        return $query->getQuery()->getResult();
    }
}