Files
schedule/src/schedule-2.0/src/Repository/ProjectRepository.php
2020-09-22 14:20:47 +02:00

95 lines
3.6 KiB
PHP

<?php
namespace App\Repository;
use App\Entity\Project;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry;
class ProjectRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Project::class);
}
public function sumDuration($id,$validate) {
$hors=0;
if($validate) {
$qb = $this->createQueryBuilder('project')
->select('SUM(task.validate) as somme')
->from('App:Task','task')
->Where('project.id=:id')
->andWhere('task.project=project')
->setParameter('id',$id);
$result=$qb->getQuery()->getOneOrNullResult();
$hors=($result["somme"]?$result["somme"]:0);
$qb = $this->createQueryBuilder('project')
->select('SUM(offer.validate) as somme')
->from('App:Offer','offer')
->Where('project.id=:id')
->andWhere('offer.project=project')
->setParameter('id',$id);
$result=$qb->getQuery()->getOneOrNullResult();
$hors=($result["somme"]?$result["somme"]:0);
}
$qb = $this->createQueryBuilder('project')
->select('SUM(event.duration) as somme')
->from('App:Task','task')
->from('App:Event','event')
->Where('project.id=:id')
->andWhere('task.project=project')
->andWhere('event.task=task')
->andWhere('event.validate=:validate')
->setParameter('id',$id)
->setParameter('validate',$validate);
$result=$qb->getQuery()->getOneOrNullResult();
$event=($result["somme"]?$result["somme"]:0);
$qb = $this->createQueryBuilder('project')
->select('SUM(penalty.duration) as somme')
->from('App:Task','task')
->from('App:Penalty','penalty')
->Where('project.id=:id')
->andWhere('task.project=project')
->andWhere('penalty.task=task')
->andWhere('penalty.validate=:validate')
->setParameter('id',$id)
->setParameter('validate',$validate);
$result=$qb->getQuery()->getOneOrNullResult();
$penalty=($result["somme"]?$result["somme"]:0);
return ($hors+$event+$penalty);
}
public function sumProposed($id) {
$qb = $this->createQueryBuilder('project')
->select('SUM(offer.quantity) as somme')
->from('App:Offer','offer')
->Where('project.id=:id')
->andWhere('offer.project=project')
->setParameter('id',$id);
$result=$qb->getQuery()->getOneOrNullResult();
$proposed=($result["somme"]?$result["somme"]:0);
return $proposed;
}
public function sumEstimate($id) {
$qb = $this->createQueryBuilder('project')
->select('SUM(task.quantity) as somme')
->from('App:Task','task')
->Where('project.id=:id')
->andWhere('task.project=project')
->setParameter('id',$id);
$result=$qb->getQuery()->getOneOrNullResult();
$estimate=($result["somme"]?$result["somme"]:0);
return $estimate;
}
}