Mini Shell
<?php
require_once '_framework/Model.php';
class Avis extends Model {
public function getAllAvis() {
$sql = 'select * from v_avis order by statut, date_avis';
$avis = $this->runQuery($sql);
return $avis->fetchAll();
}
public function getAvis($id) {
$sql = 'select * from v_avis where id=?';
$avis = $this->runQuery($sql, array($id));
$rs = $avis->fetchAll();
if ($rs && count($rs)) {
return $rs;
}
else
throw new ErrorException("Aucun avis ne correspond à l'identifiant '$id'",0,E_USER_NOTICE);
}
public function getPrestataireAvis($id) {
$sql = 'select * from v_avis where statut = 2 and prest_id = ?';
return $this->runQuery($sql, array($id));
}
public function updateStatut($values) {
$statut = $values[0];
$avis_id = $values[1];
$sql = 'update avis set statut = ? where id=?';
$this->runQuery($sql, $values);
$sql = 'select prest_id from v_avis where id=?';
$prestataire = $this->runQuery($sql, array($avis_id));
$rs = $prestataire->fetch();
$id = $rs['prest_id'];
if($statut === 2) {
$this->updateNotes($id);
}
}
public function updateNotes($id){
$sql = 'select
(select round(avg(note1),2) from avis where prest_id = p.id and statut = 2 and not na1) as avg_c1,
(select round(avg(note2),2) from avis where prest_id = p.id and statut = 2 and not na2) as avg_c2,
(select round(avg(note3),2) from avis where prest_id = p.id and statut = 2 and not na3) as avg_c3,
(select round(avg(note4),2) from avis where prest_id = p.id and statut = 2 and not na4) as avg_c4,
(select round(avg(note5),2) from avis where prest_id = p.id and statut = 2 and not na5) as avg_c5,
(select round(avg(note6),2) from avis where prest_id = p.id and statut = 2 and not na6) as avg_c6,
(select round(avg(note7),2) from avis where prest_id = p.id and statut = 2 and not na7) as avg_c7,
(select round(avg(note8),2) from avis where prest_id = p.id and statut = 2 and not na8) as avg_c8,
(select round(avg(note9),2) from avis where prest_id = p.id and statut = 2 and not na9) as avg_c9,
(select round(avg(note10),2) from avis where prest_id = p.id and statut = 2 and not na10) as avg_c10,
round(round((select ifnull(sum(note1),0) from avis where prest_id = p.id and statut = 2 and not na1) +
(select ifnull(sum(note2),0) from avis where prest_id = p.id and statut = 2 and not na2) +
(select ifnull(sum(note3),0) from avis where prest_id = p.id and statut = 2 and not na3) +
(select ifnull(sum(note4),0) from avis where prest_id = p.id and statut = 2 and not na4) +
(select ifnull(sum(note5),0) from avis where prest_id = p.id and statut = 2 and not na5) +
(select ifnull(sum(note6),0) from avis where prest_id = p.id and statut = 2 and not na6) +
(select ifnull(sum(note7),0) from avis where prest_id = p.id and statut = 2 and not na7) +
(select ifnull(sum(note8),0) from avis where prest_id = p.id and statut = 2 and not na8) +
(select ifnull(sum(note9),0) from avis where prest_id = p.id and statut = 2 and not na9) +
(select ifnull(sum(note10),0) from avis where prest_id = p.id and statut = 2 and not na10),2) /
(round((select count(note1) from avis where prest_id = p.id and statut = 2 and not na1) +
(select count(note2) from avis where prest_id = p.id and statut = 2 and not na2) +
(select count(note3) from avis where prest_id = p.id and statut = 2 and not na3) +
(select count(note4) from avis where prest_id = p.id and statut = 2 and not na4) +
(select count(note5) from avis where prest_id = p.id and statut = 2 and not na5) +
(select count(note6) from avis where prest_id = p.id and statut = 2 and not na6) +
(select count(note7) from avis where prest_id = p.id and statut = 2 and not na7) +
(select count(note8) from avis where prest_id = p.id and statut = 2 and not na8) +
(select count(note9) from avis where prest_id = p.id and statut = 2 and not na9) +
(select count(note10) from avis where prest_id = p.id and statut = 2 and not na10),2)),2) as avg_g
from prestataires p
where p.id = ?';
$calc = $this->runQuery($sql, array($id));
$rs = $calc->fetch();
$avg_c1 = $rs['avg_c1'];
$avg_c2 = $rs['avg_c2'];
$avg_c3 = $rs['avg_c3'];
$avg_c4 = $rs['avg_c4'];
$avg_c5 = $rs['avg_c5'];
$avg_c6 = $rs['avg_c6'];
$avg_c7 = $rs['avg_c7'];
$avg_c8 = $rs['avg_c8'];
$avg_c9 = $rs['avg_c9'];
$avg_c10 = $rs['avg_c10'];
$avg_g = $rs['avg_g'];
$values = array();
array_push($values,$avg_c1);
array_push($values,$avg_c2);
array_push($values,$avg_c3);
array_push($values,$avg_c4);
array_push($values,$avg_c5);
array_push($values,$avg_c6);
array_push($values,$avg_c7);
array_push($values,$avg_c8);
array_push($values,$avg_c9);
array_push($values,$avg_c10);
array_push($values,$avg_g);
array_push($values,$id);
$sql = 'update prestataires set note1 = ?, note2 = ?, note3 = ?, note4 = ?, note5 = ?, note6 = ?,
note7 = ?, note8 = ?, note9 = ?, note10 = ?, note_g = ?
where id=?';
$this->runQuery($sql, $values);
}
public function submitAvis($values) {
$sql = 'insert into avis (prest_id,note1,note2,note3,note4,note5,note6,note7,note8,note9,note10,
na1,na2,na3,na4,na5,na6,na7,na8,na9,na10,remarque,anonyme,memb_nom,memb_email)
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
$this->runQuery($sql, $values);
}
}