[repo.ue] now GET returns the field 'formations' that is a JSON array (shitty SQL) [module.ue] converts to real array data
This commit is contained in:
parent
76ade95c18
commit
7d2d59402b
|
@ -36,6 +36,10 @@ class ueController{
|
||||||
/* (1) Get All ues or 1 by its code (if set) */
|
/* (1) Get All ues or 1 by its code (if set) */
|
||||||
$fetched = $ue_repo->get($code);
|
$fetched = $ue_repo->get($code);
|
||||||
|
|
||||||
|
/* (2) Parse 'formations' from json array */
|
||||||
|
foreach($fetched as $f=>$v)
|
||||||
|
$fetched[$f]['formations'] = \json_decode($v['formations']);
|
||||||
|
|
||||||
/* (3) Return data */
|
/* (3) Return data */
|
||||||
return ['ues' => $fetched];
|
return ['ues' => $fetched];
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ class ue extends Repo_i {
|
||||||
public function get(?String $code=null) : array{
|
public function get(?String $code=null) : array{
|
||||||
|
|
||||||
/* (1) Manage if no id given */
|
/* (1) Manage if no id given */
|
||||||
$cond = is_null($code) ? '' : 'WHERE `code` = :code';
|
$cond = is_null($code) ? '' : 'AND `ue.`code` = :code';
|
||||||
$parm = is_null($code) ? [] : [':code' => $code];
|
$parm = is_null($code) ? [] : [':code' => $code];
|
||||||
|
|
||||||
/* (2) Prepare Statement */
|
/* (2) Prepare Statement */
|
||||||
|
@ -188,15 +188,33 @@ class ue extends Repo_i {
|
||||||
ue.volumeTD,
|
ue.volumeTD,
|
||||||
ue.volumeTP,
|
ue.volumeTP,
|
||||||
IFNULL(ue.Formation_idFormation, -1) idForm,
|
IFNULL(ue.Formation_idFormation, -1) idForm,
|
||||||
f.labelFormation labelForm,
|
fdef.labelFormation labelForm,
|
||||||
IFNULL(CONCAT('[', GROUP_CONCAT(fc.idForm, ',', ftd.idForm, ',', ftp.idForm), ']'), '[]') formations
|
IFNULL(formlist.formations, '[]') formations
|
||||||
FROM `UE` ue
|
FROM UE ue
|
||||||
LEFT JOIN Formation f ON ue.Formation_idFormation = f.idFormation
|
LEFT JOIN Formation fdef ON ue.Formation_idFormation = fdef.idFormation
|
||||||
LEFT JOIN ( SELECT DISTINCT gc.Formation_idFormation idForm, c.UE_code as code FROM GroupeCours gc, Cours c WHERE gc.Cours_idCours = c.idCours GROUP BY gc.Formation_idFormation ) fc ON fc.code = ue.code
|
LEFT JOIN (
|
||||||
LEFT JOIN ( SELECT DISTINCT gtd.Formation_idFormation idForm, td.UE_code as code FROM GroupeTD gtd, TD td WHERE gtd.TD_idTD = td.idTD GROUP BY gtd.Formation_idFormation ) ftd ON ftd.code = ue.code
|
SELECT ue2.code code, CONCAT('[',GROUP_CONCAT(fform.idFormation), ']') formations
|
||||||
LEFT JOIN ( SELECT DISTINCT gtp.Formation_idFormation idForm, tp.UE_code as code FROM GroupeTP gtp, TP tp WHERE gtp.TP_idTP = tp.idTP GROUP BY gtp.Formation_idFormation ) ftp ON ftp.code = ue.code
|
FROM UE ue2, Formation fform
|
||||||
|
WHERE ( fform.idFormation IN (
|
||||||
|
SELECT DISTINCT Formation_idFormation as idForm
|
||||||
|
FROM GroupeCours
|
||||||
|
WHERE Cours_idCours IN ( SELECT idCours FROM Cours WHERE UE_code = ue2.code GROUP BY idForm )
|
||||||
|
)
|
||||||
|
OR fform.idFormation IN (
|
||||||
|
SELECT DISTINCT Formation_idFormation as idForm
|
||||||
|
FROM GroupeTD
|
||||||
|
WHERE TD_idTD IN ( SELECT idTD FROM TD WHERE UE_code = ue2.code GROUP BY idForm )
|
||||||
|
)
|
||||||
|
OR fform.idFormation IN (
|
||||||
|
SELECT DISTINCT Formation_idFormation as idForm
|
||||||
|
FROM GroupeTP
|
||||||
|
WHERE TP_idTP IN ( SELECT idTP FROM TP WHERE UE_code = ue2.code GROUP BY idForm )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
GROUP BY `ue2`.`code`
|
||||||
|
) formlist ON formlist.code = ue.code
|
||||||
$cond
|
$cond
|
||||||
GROUP BY ue.code
|
GROUP BY `ue`.`code`
|
||||||
ORDER BY `ue`.`label` ASC");
|
ORDER BY `ue`.`label` ASC");
|
||||||
|
|
||||||
/* (3) Bind params and execute statement */
|
/* (3) Bind params and execute statement */
|
||||||
|
|
Loading…
Reference in New Issue