vendredi 19 octobre 2012

Premier exercie de synthèse avec 4D



Vendredi 19 octobre 2012 : Exercice de développement avec 4D

Objectif de l'exercice avec 4D
-       L’objectif est de mettre en pratique et retenir les différents concepts 4D vus pendant les premiers jours de cours

Contexte
Vous êtes développeur junior dans une SSII proposant ses services pour des développements spécifiques basés sur l’environnement de développement 4D.
Un petit projet vient d’être lancé et il vous est demandé de prendre une journée pour faire un premier maquettage avec 4D.
Il s’agit d’un projet de gestion de l’activité d’un dresseur d’animaux.

Expression du besoin
Le dresseur a de nombreux clients avec lesquels il désire communiquer. Par exemple, pour les prévenir qu’un cours est annulé à cause du mauvais temps. Cela nécessite au minimum les informations suivantes (titre [M., Mme, Mlle], nom, prénom, adresse, code postal, ville, téléphone fixe, téléphone portable, téléphone professionnel, e.mail).

Chaque jour sauf le dimanche, il propose plusieurs types de cours (dressage débutant, dressage avancé, agility, recherche) à différents horaires. Les horaires sont identiques pour tous les jours. Chaque cours est réservé à un type d’animal et ne peut accueillir qu’un nombre maximum d’animaux. Lorsqu’il change son planning de cours, il veut pouvoir archiver les cours qui disparaissent et créer de nouveaux cours.
Les cours archivés ne doivent pas être visible dans la liste des cours sauf en désactivant le filtre par défaut.
Cours
Horaire
Type animal
Maximum
Dressage débutant
10h à 11h
Petit chien
10
Dressage avancé
11h à 12h
Tout chien
6
Agility
12h à 13h
Tout chien
4
Dressage débutant
14h à 15h
Grand chien
8
Dressage débutant
15h à 16h
Lapin
15
Dressage débutant
16h à 17h
Petit chien
10
Recherche
17h à 19h
Tout chien
4

Un client peut avoir un ou plusieurs animaux en dressage à chacun des cours.

Pour chaque animal, le dresseur a besoin de connaître son nom, sa date de naissance, le type d’animal, sa taille (petit, moyen ou grand), sa race et son score.
Le score est une note de 1 à 50 qui représente pour les chiens qui font de l’agility le meilleur score obtenu sur un parcours d’agility et permet de connaitre son meilleur niveau.

Actuellement ayant beaucoup de petits chiens à dresser, ils gèrent deux groupes (petit chien = taille petit et grand chien = taille moyen + taille grand).

Un animal peut être inscrit à plusieurs cours s’il correspond au type animal du cours.
Pour chaque animal inscrit à un cours, le dresseur a besoin de savoir la date de début d’inscription et la date de fin. La date de fin est vide tant que l’animal suit le cours.

A chaque cours, le dresseur note pour chaque animal présent un petit commentaire sur ses progrès. Cela lui permet également de comptabiliser les présences, chaque séance étant facturée 10 euros avec une facturation groupée de l’ensemble des séances de tous ses animaux  à chaque client en fin de mois. Le dresseur doit pouvoir utiliser le programme pour calculer et suivre son chiffre d’affaire mensuel et annuel.

Maquettage à réaliser avec 4D
Créer la structure 4D nécessaire pour répondre aux exigences de gestion du dresseur (n’oublier pas une clé primaire / identifiant pour chaque table avec une numérotation automatique)

Pour chaque table, créer un article de menu permettant d’afficher la liste des enregistrements de la table et saisir des enregistrements. Chaque formulaire entrée et sortie doit comporter les boutons fonctionnels habituels.

Pour le formulaire de saisie, faciliter la saisie. Le dresseur aime bien la saisie par clic sur des boutons radio. Implémenter ce type de saisie lorsque c’est possible.
Ajouter des contrôles sur chaque bouton valider pour obliger la saisie de certaines informations nécessaires

Pour la liste des animaux, faire une recherche simplifiée sur le type d’animal.

Pour la liste des cours, il vous est rappelé que par défaut seul les cours actifs (non archivés) doivent être listés.
Ce serait un plus que lors de la création d’une fiche de participation d’un animal à un cours, la date du jour soit automatiquement attribuée au champ date du cours (commande 4D : date du jour).

Dans la fiche d’inscription d’un animal à un cours, le dresseur a besoin de savoir :
* pendant combien de jours l’animal a été inscrit à ce cours (date fin d’inscription – date de début d’inscription
* Combien de fois il a participé à ce cours

Évidemment, il y a plein d’autres fonctionnalités et règles qui resteront à implémenter. Par exemple, on ne devrait pas pouvoir inscrire à un cours plus d’animaux que le maximum prévu…
La suite du cours permettra d'apprendre à répondre à ces autres besoins. et contraintes.