Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 780 → Rev 781

/trunk/services/modules/0.1/observations/ListeObservations.php
54,7 → 54,6
$observations = $this->chargerObservations($liaisons);
$observations = $this->chargerImages($observations);
$observations = $this->chargerDeterminations($observations);
$observations = $this->chargerNombreCommentaire($observations);
// Mettre en forme le résultat et l'envoyer pour affichage
$resultat = new ResultatService();
286,28 → 285,52
$requetePropositions = 'SELECT * FROM '.$this->gestionBdd->formaterTable('del_commentaire', 'dc').
'WHERE dc.nom_sel IS NOT NULL AND ce_observation = '.$observation['id_observation'];
$propositions = $this->bdd->recupererTous($requetePropositions);
$observations[$id]['propositions'] = $propositions;
$observations[$id]['propositions'] = $this->formaterDeterminations($propositions);
}
return $observations;
}
private function formaterDeterminations($propositions) {
$propositions_format = array();
if ($propositions != array()) {
foreach ($propositions as $id => $proposition) {
$propositions_format[$proposition['id_commentaire']] = $proposition;
$ids_proposition[] = $proposition['id_commentaire'];
}
$propositions_format = $this->chargerVotes($ids_proposition, $propositions_format);
$propositions_format = $this->chargerNombreCommentaire($ids_proposition, $propositions_format);
}
return $propositions_format;
}
/**
* Charger les votes sur les déterminations
* @param Array $observations le tableau des observatins à mettre à jour
* */
private function chargerVotes($ids_proposition, $propositions) {
$requeteVotes = 'SELECT * FROM '.
$this->gestionBdd->formaterTable('del_commentaire_vote').
'WHERE ce_proposition IN ('.implode(', ', $ids_proposition).')';
$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
foreach ($resultatsVotes as $vote) {
$propositions[$vote['ce_proposition']]['votes'][] = $vote;
}
return $propositions;
}
/**
* Charger le nombre de commentaires (sans détermination) associé à l'observation
* @param Array $observations le tableau des observatins à mettre à jour
* */
private function chargerNombreCommentaire($observations) {
foreach ($observations as $id => $observation) {
$requeteNbCommentaires = 'SELECT COUNT('.$this->proteger('id_commentaire').') as nb '.
'FROM '.$this->gestionBdd->formaterTable('del_commentaire').
'WHERE ce_observation = '.$observation['id_observation'].' '.
'AND nom_sel IS NULL';
$nbCommentaires = $this->bdd->recuperer($requeteNbCommentaires);
$observations[$id]['commentaires'] = (int) $nbCommentaires['nb'];
private function chargerNombreCommentaire($ids_proposition, $propositions) {
$requeteNbCommentaires = 'SELECT ce_proposition, COUNT('.$this->proteger('id_commentaire').') as nb '.
'FROM '.$this->gestionBdd->formaterTable('del_commentaire').
'WHERE ce_proposition IN ('.implode(', ', $ids_proposition).')';
$nbCommentaires = $this->bdd->recuperer($requeteNbCommentaires);
foreach ($nbCommentaires as $vote) {
$propositions[$vote['ce_proposition']]['commentaires']= $vote;
}
return $observations;
return $propositions;
}
/*-------------------------------------------------------------------------------