95 lines
3.6 KiB
PHP
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;
|
|
}
|
|
}
|