On se propose de développer le service métier permettant de gérer les commandes pour un site de vente en ligne. Les spécifications précises du service à développer sont explicitées dans le javadoc des méthodes de la classe CommandeService. Les tests unitaires fournis vérifient que les règles métier sont bien respectées.
L'application utlise une base de données relationnelle dont le modèle conceptuel est le suivant :
Notes :
- Dans la table
Produit, le champunitesCommandéesreprésente le nombre d'unités "en commande", c'est à dire présentes dans des commandes qui n'ont pas encore été envoyées. - Dans la table
Produit, le champunitesEnStockreprésente le nombre d'unités "en stock". Contrainte métier : la quantité en stock ne doit jamais être inférieure à la quantité en commande. - Dans la table
Commande, le champenvoyeeleindique si la commande a été envoyée ou non (null si pas envoyée). Quand une commande est envoyée, la date d'envoi est enregistrée dans ce champ, les produits commandés ne sont plus "en stock" ni "en commande".
- dans
ClientRepository, trouver la requête qui calcule le nombre d'articles commandés pour un client dont le code est passé en paramètre. - Implementer les méthodes de la classe
CommandeServicede manière à ce que les tests unitaires passent tous.
