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();
}
}