Compte rendu PPE: APPLIS-FRAIS(suite)

1. T1: Script SQL

Nous avons dans un premier temps réalisé le script de clôture, permettant de passer une demande de remboursement de frais en clôturé.

UPDATE fichefrais
SET idEtat='CL'
WHERE idEtat='CR'

Dans un second temps, nous avons automatisé la requête, afin qu'elle soit lancé automatiquement le 10 de chaque mois, à 01h (am).

CREATE EVENT AUTOMATISATION_TEMPORELLE 
ON SCHEDULE EVERY 1 MONTH STARTS '2013-10-10 01:00:00' 
DO UPDATE fichefrais SET idEtat='CL' WHERE idEtat='CR' 

2. T2: Réaliser le formulaire de validations des frais

Modifications du sommaire

Afin de différencier les comptables des visiteurs, il a été nécessaire d'ajouter un champ comptable de type booléen à la table visiteur, avec pour valeur par défaut 0. Une modification a alors été apportée à la fonction obtenirdetailVisiteur() afin qu'elle renvoie aussi cette valeur.

function obtenirdetailVisiteur($idCnx, $unId) 
{
    $id = filtrerChainePourBD($unId);
    $requete = "select id, nom, prenom, comptable from visiteur where id='" . $unId . "'";
    $idJeuRes = mysql_query($requete, $idCnx);  
    $ligne = false;     
    if ( $idJeuRes ) {
        $ligne = mysql_fetch_assoc($idJeuRes);
        mysql_free_result($idJeuRes);
    }
    return $ligne ;
}

Plus précisément, c'est la requête qui a été modifiée. En plus de l'id, du nom et du prénom de la personne, on lui demande aussi s'il s'agit d'un comptable ou non.

Comme un visiteur et un comptable n'ont pas accès aux mêmes fonctionnalités, il a fallu adapter le sommaire en conséquence. Les modifications suivantes ont donc été appliquées à _sommaire.inc.php :

if (estVisiteurConnecte())
{
	$idUser = obtenirIduserConnecte() ;
	$lgUser = obtenirdetailVisiteur($idConnexion, $idUser);
	$nom = $lgUser['nom'];
	$prenom = $lgUser['prenom'];
	$cpt = $lgUser['comptable']; // récupération de la valeur du champ comptable du visiteur en question
// [...]

Avec cette modification, il suffit alors de tester la valeur de la variable $cpt.

<h3><?php echo $cpt ? 'Comptable' : 'Visiteur médical'; ?></h3>
<?php
if(!$cpt)
{
?>
<li class="smenu">
	<a href="cSaisieFicheFrais.php" title="Saisie fiche de frais du mois courant">Saisie fiche de frais</a>
</li>
<?php
}
?>
<?php
if($cpt)
{
?>
<li class="smenu">
	<a href="cValiderFicheFrais.php">Valider fiche frais</a>
</li>
<?php
}
?>

Création de la page cValiderFicheFrais.php

Nous considérons ici que la fiche de frais à valider est toujours celle du dernier mois.

// récupération des différents visiteurs
$req = mysql_query('SELECT id, nom, prenom, comptable FROM VISITEUR, FICHEFRAIS
		WHERE comptable = 0
		AND FICHEFRAIS.idVisiteur = VISITEUR.id
		AND idEtat=\'CR\'', $idConnexion);
$lst = mysql_fetch_assoc($req);
 
// affichage des visiteurs dans une liste déroulante
// (note : $v vaut true si un visiteur a déjà été choisi et que le formulaire a donc été validé)
while(is_array($lst))
{
	echo '<option value="' . $lst['id'] . '" ' . ($v == true && $_POST['lstVisiteur'] == $lst['id'] ? 'selected' : '') . '>' . $lst['prenom'] . ' ' . $lst['nom'] . '</option>';
	$lst = mysql_fetch_assoc($req);
}
 
mysql_free_result($req);

3. T3: Visualiser toutes les fiches de frais