2018-02-27 13:46:38 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Created by PhpStorm.
|
|
|
|
* User: lucas
|
|
|
|
* Date: 20/02/18
|
|
|
|
* Time: 21:35
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace database\repo;
|
|
|
|
|
|
|
|
|
|
|
|
use database\core\Repo_i;
|
|
|
|
|
|
|
|
class formation extends Repo_i {
|
|
|
|
|
|
|
|
public function create(string $label, bool $isInternal) : int{
|
|
|
|
$st = $this->pdo->prepare("INSERT INTO Formation (labelFormation, isInternal) VALUE (:label,:isInternal);");
|
|
|
|
|
|
|
|
$st->execute([
|
|
|
|
"label" => $label,
|
|
|
|
"isInternal" => $isInternal? 1 : 0
|
|
|
|
]);
|
|
|
|
|
|
|
|
return $this->pdo->lastInsertId();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function exists(string $label) : int{
|
|
|
|
$st = $this->pdo->prepare("SELECT idFormation FROM Formation WHERE labelFormation = :label");
|
|
|
|
|
|
|
|
$st->execute([
|
|
|
|
"label" => $label
|
|
|
|
]);
|
|
|
|
|
|
|
|
return $st->fetch()["idFormation"]?: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function delete(int $id) : bool{
|
|
|
|
$st = $this->pdo->prepare("DELETE FROM Formation WHERE idFormation = :id");
|
|
|
|
|
|
|
|
return $st->execute([
|
|
|
|
"id" => $id
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
2018-03-01 15:57:44 +00:00
|
|
|
public function getStats(?int $id) :array{
|
|
|
|
$st = $this->pdo->prepare("SELECT IFNULL(VHCours,0) VHCours, IFNULL(VHTd,0) VHTd, IFNULL(VHTp,0) VHTp, (IFNULL(VHCours,0) + IFNULL(VHTd,0) + IFNULL(VHTp,0)) VHTotal, Form.isInternal isInternal, Form.idFormation idForm, Form.labelFormation labelForm
|
|
|
|
FROM Formation Form
|
|
|
|
LEFT JOIN (SELECT IFNULL(SUM(C.volume),0) VHCours, GC.Formation_idFormation idForm FROM GroupeCours GC LEFT JOIN Cours C ON GC.Cours_idCours = C.idCours GROUP BY GC.Formation_idFormation) VHCours ON VHCours.idForm = Form.idFormation
|
|
|
|
LEFT JOIN (SELECT IFNULL(SUM(T.volume),0) VHTd, GTD.Formation_idFormation idForm FROM GroupeTD GTD LEFT JOIN TD T ON GTD.TD_idTD = T.idTD GROUP BY GTD.Formation_idFormation) VHTd ON VHTd.idForm = Form.idFormation
|
|
|
|
LEFT JOIN (SELECT IFNULL(SUM(T2.volume),0) VHTp, GTP.Formation_idFormation idForm FROM GroupeTP GTP LEFT JOIN TP T2 ON GTP.TP_idTP = T2.idTP GROUP BY GTP.Formation_idFormation) VHTp ON VHTp.idForm = Form.idFormation
|
|
|
|
".($id ? " WHERE Form.idFormation = :idForm" : "")."
|
2018-03-01 14:57:25 +00:00
|
|
|
");
|
|
|
|
|
2018-03-01 15:57:44 +00:00
|
|
|
$st->execute($id ? ["idForm" => $id] : []);
|
2018-03-01 14:57:25 +00:00
|
|
|
|
2018-03-01 15:57:44 +00:00
|
|
|
if($id){
|
|
|
|
return $st->fetch() ?: [];
|
|
|
|
}else{
|
|
|
|
return $st->fetchAll();
|
|
|
|
}
|
2018-03-01 14:57:25 +00:00
|
|
|
}
|
|
|
|
|
2018-02-27 13:46:38 +00:00
|
|
|
}
|