Le script de clôture a été réalisé de cette manière, elle permet de modifier manuellement l'état d'une fiche de frais:
function modifierEtatFicheFrais($idCnx, $unMois, $unIdVisiteur, $unEtat)
{
$requete = "update FicheFrais set idEtat = '" . $unEtat .
"', dateModif = now() where idVisiteur ='" .
$unIdVisiteur . "' and mois = '". $unMois . "'";
mysql_query($requete, $idCnx);
Il est possible de l'automatiser avec le code suivant (à rentrer sur PHPMyAdmin):
CREATE EVENT Cloture ON SCHEDULE EVERY 1 MONTH STARTS '2013-10-10 01:00:00' DO UPDATE fichefrais SET idEtat='CL' WHERE RIGHT(mois , 2) = MONTH(DATE_SUB(NOW(), INTERVAL 1 MONTH))
function refuseLigneHF($idCnx, $unIdLigneHF)
{
$requete = "update lignefraishorsforfait set libelle = CONCAT('[REFUSE] ', libelle) where id =".$unIdLigneHF;
mysql_query($requete, $idCnx);
}
Cette fonction ajoute simplement le mot [REFUSE] à la fiche de frais choisi.
function modifierEltsForfait($idCnx, $unMois, $unIdVisiteur, $desEltsForfait)
{
$unMois=filtrerChainePourBD($unMois);
$unIdVisiteur=filtrerChainePourBD{{:slam:ws:2013:ppe3.2:equipe6:applifrais.zip|}}($unIdVisiteur);
foreach ($desEltsForfait as $idFraisForfait => $quantite) {
$requete = "update LigneFraisForfait set quantite = " . $quantite
. " where idVisiteur = '" . $unIdVisiteur . "' and mois = '"
. $unMois . "' and idFraisForfait='" . $idFraisForfait . "'";
mysql_query($requete, $idCnx);
}
}
Le comptable entrera ensuite les nouvelles coordonnées de la fiche de frais sur un tableau prévu à cet effet et valider.
Lien partie: applifrais.zip