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/dvpis2025/dvpis.kaunokolegija.lt/src/Repository/FinalProjectHistoryRepository.php
<?php

namespace App\Repository;

use App\Entity\Lecturer;
use Doctrine\ORM\EntityRepository;

/**
 * FinalProjectHistoryRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class FinalProjectHistoryRepository extends EntityRepository
{
    public function getLecturerFinalProjectHoursGroupByLecturer($filter = null)
    {

        $query = $this->createQueryBuilder('fp')
                ->join('fp.lecturer', 'l')
                ->groupBy('fp.lecturer')
                ->select('SUM('
                . 'COALESCE(fp.hours,0) + '
                . 'COALESCE(fp.departmentCommision,0) + '
                . 'COALESCE(fp.finalCommisionHead,0) +'
                . 'COALESCE(fp.finalCommision,0) '
                . ') as sumProject, '
                . 'l.id as lecturerId');

        $results = $query->getQuery()->getResult();

        $return = [];
        foreach ($results as $result) {
            $return[$result['lecturerId']] = $result;
        }

        return $return;
    }

    public function getLecturerFinalProjectHoursActivityPlan(Lecturer $lecturer)
    {

        $query = $this->createQueryBuilder('fp')
            ->join('fp.lecturer', 'l')
            ->join('fp.studiesProgramPlan', 'spp')
            ->join('spp.studiesForm', 'sf')
            ->join('spp.studiesProgram', 'sp')
            ->join('sp.department', 'd')
            ->where('fp.lecturer = :lecturer')
            ->setParameter(':lecturer', $lecturer)
            ->select(
                'sp.shortName as studiesProgram,'
                . 'sf.shortName as studiesForm, '
                . 'spp.semester as semester, '
                . 'COALESCE(fp.countWorks,0) as countWorks, '
                . 'COALESCE(fp.hours,0) as hours, '
                . 'COALESCE(fp.departmentCommision,0) as departmentCommision, '
                . 'COALESCE(fp.finalCommisionHead,0) as finalCommisionHead,'
                . 'COALESCE(fp.finalCommision,0) as finalCommision'
            );



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

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