/** 
 * Vérifie si une chaîne fournie est bien une date valide, au format JJ/MM/AAAA.                     
 * 
 * Retrourne true si la chaîne $date est une date valide, au format JJ/MM/AAAA, false sinon.
 * @param string date à vérifier
 * @return boolean succès ou échec
 */
function estDate($date)
{
    $tabDate = explode('/', $date);
    if (count($tabDate) != 3) {
        $dateOK = false;
    } elseif (!verifierEntiersPositifs($tabDate)) {
        $dateOK = false;
    } elseif (!checkdate($tabDate[1], $tabDate[0], $tabDate[2])) {
        $dateOK = false;
    } else {
        $dateOK = true;
    }
    return $dateOK;
}
}
// acquisition des données entrées
// acquisition de l'étape du traitement
$etape = lireDonnee("etape", "demanderSaisie");
// acquisition des quantités des éléments forfaitisés
$tabQteEltsForfait = lireDonneePost("txtEltsForfait", "");
// acquisition des données d'une nouvelle ligne hors forfait
$idLigneHF = lireDonnee("idLigneHF", "");
$dateHF = lireDonnee("txtDateHF", "");
$libelleHF = lireDonnee("txtLibelleHF", "");
$montantHF = lireDonnee("txtMontantHF", "");
// structure de décision sur les différentes étapes du cas d'utilisation
if ($etape == "validerSaisie") {
    // l'utilisateur valide les éléments forfaitisés
    // vérification des quantités des éléments forfaitisés
    $ok = verifierEntiersPositifs($tabQteEltsForfait);
    if (!$ok) {
        ajouterErreur($tabErreurs, "Chaque quantité doit être renseignée et numérique positive.");
    } else {
        // mise à jour des quantités des éléments forfaitisés
        modifierEltsForfait($idConnexion, $_GET['date'], $_GET['i'], $tabQteEltsForfait);
    }
} elseif ($etape == "validerSuppressionLigneHF") {
    supprimerLigneHF($idConnexion, $idLigneHF);
} elseif ($etape == "validerAjoutLigneHF") {
    verifierLigneFraisHF($dateHF, $libelleHF, $montantHF, $tabErreurs);
    if (nbErreurs($tabErreurs) == 0) {
        // la nouvelle ligne ligne doit être ajoutée dans la base de données
        ajouterLigneHF($idConnexion, $_GET['date'], $_GET['i'], $dateHF, $libelleHF, $montantHF);
    }
} else {