Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
71.43% covered (warning)
71.43%
5 / 7
CRAP
96.88% covered (success)
96.88%
62 / 64
PatientRepo
0.00% covered (danger)
0.00%
0 / 1
71.43% covered (warning)
71.43%
5 / 7
39
96.88% covered (success)
96.88%
62 / 64
 getById
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 add
0.00% covered (danger)
0.00%
0 / 1
14
95.65% covered (success)
95.65%
22 / 23
 update
0.00% covered (danger)
0.00%
0 / 1
14
96.00% covered (success)
96.00%
24 / 25
 delete
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 updateMedecinTraitant
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
3 / 3
 search
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
4 / 4
 getAll
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
<?php
/**
 * Created by PhpStorm.
 * User: seekdasky
 * Date: 02/12/15
 * Time: 12:36
 */
class PatientRepo
{
    public static function getById($id){
        if(!StaticRepo::checkParam($id,'Integer')){return false;}
        $req = StaticRepo::getConnexion()->prepare('SELECT * FROM Patient WHERE Id = :id');
        $req->execute(['id' => $id]);
        return StaticRepo::delNumeric( $req->fetch(), true );
    }
    public static function add($civilite,$prenom,$nom,$adresse,$adresse2,$ville,$codePostal,$dateNaissance,$lieuNaissance,$numSecu,$medecinTraitant = null){
        if(!StaticRepo::checkParam($civilite,'Civilite') && !StaticRepo::checkParam($prenom,'String45') && !StaticRepo::checkParam($nom,'String45')
            && !StaticRepo::checkParam($adresse,'String255') && !StaticRepo::checkParam($adresse2,'String255')&& !StaticRepo::checkParam($ville,'String50')
            && !StaticRepo::checkParam($codePostal,'String5') && !StaticRepo::checkParam($dateNaissance,'Date') && !StaticRepo::checkParam($lieuNaissance,'String50')
            && !StaticRepo::checkParam($numSecu,'String15')){return false;}
        if($medecinTraitant != null && !StaticRepo::checkParam($medecinTraitant,'Integer')){return false;}
        $dateNaissance = strtotime($dateNaissance);
        $dateNaissance = Date('o-m-d',$dateNaissance);
        $req = StaticRepo::getConnexion()->prepare('INSERT INTO Patient VALUES (DEFAULT,:civilite,:nom,:prenom,:adresse,:adresse2,:ville,:codePostal,:dateNaissance,:lieuNaissance,:numSecu,:medecin)');
        $result = $req->execute(['civilite' => $civilite,
            'nom' => $nom,
            'prenom' => $prenom,
            'adresse' => $adresse,
            'adresse2' => $adresse2,
            'ville' => $ville,
            'codePostal' => $codePostal,
            'dateNaissance' => $dateNaissance,
            'lieuNaissance' => $lieuNaissance,
            'numSecu' => $numSecu,
            'medecin' => $medecinTraitant ]);
        //PDO renvoie un ID sous forme de char, on transtype
        $id = StaticRepo::getConnexion()->lastInsertId();
        settype($id,'integer');
        if($result){return $id;}
        else{return false;}
    }
    public static function update($id,$civilite,$prenom,$nom,$adresse,$adresse2,$ville,$codePostal,$dateNaissance,$lieuNaissance,$numSecu,$medecinTraitant){
        if(!StaticRepo::checkParam($civilite,'Civilite') && !StaticRepo::checkParam($prenom,'String45') && !StaticRepo::checkParam($nom,'String45')
            && !StaticRepo::checkParam($adresse,'String255') && !StaticRepo::checkParam($adresse2,'String255')&& !StaticRepo::checkParam($ville,'String50')
            && !StaticRepo::checkParam($codePostal,'String5') && !StaticRepo::checkParam($dateNaissance,'Date') && !StaticRepo::checkParam($lieuNaissance,'String50')
            && !StaticRepo::checkParam($numSecu,'String15')){return false;}
        if($medecinTraitant != null && !StaticRepo::checkParam($medecinTraitant,'Integer')){return false;}
        $dateNaissance = strtotime($dateNaissance);
        $dateNaissance = Date('o-m-d',$dateNaissance);
        $req = StaticRepo::getConnexion()->prepare('UPDATE Patient SET Civilite=:civilite,Nom=:nom,Prenom=:prenom,Adresse=:adresse,Adresse2=:adresse2,Ville=:ville,
        CodePostal=:codePostal,DateNaissance=:dateNaissance,LieuNaissance=:lieuNaissance,NumSecuriteSociale=:numSecu,MedecinTraitant=:medecin WHERE Id=:id;');
        $result = $req->execute(['civilite' => $civilite,
            'nom' => $nom,
            'prenom' => $prenom,
            'adresse' => $adresse,
            'adresse2' => $adresse2,
            'ville' => $ville,
            'codePostal' => $codePostal,
            'dateNaissance' => $dateNaissance,
            'lieuNaissance' => $lieuNaissance,
            'numSecu' => $numSecu,
            'medecin' => $medecinTraitant,
            'id' => $id]);
        //PDO renvoie un ID sous forme de char, on transtype
        $id = StaticRepo::getConnexion()->lastInsertId();
        settype($id,'integer');
        if($result){return $id;}
        else{return false;}
    }
    public static function delete($idPatient){
        if(!StaticRepo::checkParam($idPatient,'Integer')){ return false;}
        $req = StaticRepo::getConnexion()->prepare('DELETE FROM Patient WHERE Patient.Id = :id');
        return $req->execute(['id' => $idPatient]);
    }
    public static function updateMedecinTraitant($idPatient,$idMedecin){
        if(!StaticRepo::checkParam($idPatient,'Integer') && !StaticRepo::checkParam($idMedecin,'Integer')){return false;}
        $req = StaticRepo::getConnexion()->prepare('UPDATE Patient SET MedecinTraitant = :medecin WHERE Id = :id');
        return $req->execute(['medecin' => $idMedecin, 'id' => $idPatient]);
    }
    public static function search($nom,$prenom){
        if(!StaticRepo::checkParam($prenom,'String45') && !StaticRepo::checkParam($nom,'String45')){return false;}
        $req = StaticRepo::getConnexion()->prepare('SELECT * FROM Patient WHERE Nom LIKE :nom AND Prenom LIKE :prenom');
        $req->execute(['nom' => $nom, 'prenom' => $prenom]);
        return StaticRepo::delNumeric($req->fetchAll());
    }
    public static function getAll(){
        $req = StaticRepo::getConnexion()->query('SELECT * FROM Patient ORDER BY nom, prenom ASC');
        return StaticRepo::delNumeric( $req->fetchAll() );
    }
}