diff --git a/src/errorHandling.c b/src/errorHandling.c index 41c3940..4841ac5 100644 --- a/src/errorHandling.c +++ b/src/errorHandling.c @@ -52,6 +52,11 @@ void errorHandling(int error) } } +/** + * La fonction `debugHandling` aide au debug en écrivant du texte selon l'entrée. + * + * @param code Entier qui représente l'entrée. + */ void debugHandling(int code) { switch(code) diff --git a/src/menu.c b/src/menu.c index bd1b444..166b191 100644 --- a/src/menu.c +++ b/src/menu.c @@ -5,6 +5,23 @@ #include "main.h" +/** + * @brief La fonction `clientMenu` affiche un menu au client et lui laisse choisir d'effectuer + * des actions sur son panier. + * + * @param weight Pointeur float qui stocke la charge maximale (en Kg) du véicule. + * @param volume Pointeur float qui stocke le volume maximal (en metres cube) du véicule. + * @param price Pointeur float qui permet de stocker le budget maximum du client. + * @param tabItemRef Tableau int qui stocke les références des articles. + * @param unitPrice Tableau float qui stocke le prix des articles. + * @param cagnottePointeur Pointeur float qui stocke la cagnotte du client. + * @param basket_tab_ref Tableau contenant les références des articles dans le panier. + * @param basket_tab_qte Tableau stockant la quantité commandée des articles dans le panier. + * @param tabWeight Tableau float qui stocke le poids des articles. + * @param tabVolume Tableau float qui stocke le volume des articles. + * @param tlogItem Taille logique du tableau `tabItemRef`. + * @param tlogBasket Taille logique du tableau `tabBasketRef`. + */ void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], float tabWeight[], float tabVolume[], int tlogItem, int *tlogBasket) { int choice = 0, constraint; @@ -51,6 +68,37 @@ void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], fl } } +/** + * The adminMenu function displays a menu for the admin user to perform various actions such as + * adding/modifying/deleting clients and items, and displaying client/item data. + * + * @param clientID An array that stores the IDs of the clients. + * @param clientPassword The parameter `clientPassword` is an array that stores the passwords of the + * clients. It is used to authenticate the clients when they log in to the system. + * @param cagnotte An array that stores the balance of each client's account. + * @param suspended The "suspended" parameter is an array that stores the suspension status of each + * client. It is used to keep track of whether a client's account is suspended or not. The value of 0 + * indicates that the client's account is not suspended, while the value of 1 indicates that the client + * @param isAdmin An array of integers indicating whether each client is an admin or not. If the value + * at index i is 1, it means that the client with ID clientID[i] is an admin. If the value is 0, it + * means that the client is not an admin. + * @param tabReference An array that stores the reference numbers of the items. + * @param tabWeight tabWeight is an array that stores the weight of each item in the inventory. + * @param tabVolume The parameter "tabVolume" is an array that stores the volume of each item in the + * inventory. It is used in various functions to perform operations related to the items, such as + * adding a new item, deleting an item, or displaying the data of an item. + * @param unitPrice The parameter `unitPrice` is an array of type `float` that stores the unit price of + * each item. It is used in various functions to perform calculations or display information related to + * the price of items. + * @param tlogItem The parameter "tlogItem" is a pointer to an integer variable that keeps track of the + * total number of items in the system. It is used to determine the size of the arrays that store + * information about the items, such as tabReference, tabWeight, tabVolume, and unitPrice. + * @param tlogClient The parameter "tlogClient" is a pointer to an integer variable that keeps track of + * the total number of clients in the system. It is used to determine the size of the arrays that store + * client information, such as clientID, clientPassword, cagnotte, suspended, and isAdmin. + * + * @return The function does not return any value. It is a void function. + */ void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlogItem, int *tlogClient) { int choice = 0; diff --git a/src/panier.c b/src/panier.c index aca3cdf..046058b 100644 --- a/src/panier.c +++ b/src/panier.c @@ -5,6 +5,15 @@ #include "main.h" + +/** + * @brief La fonction `clientConstraint` demmande à l'utilisateur d'entrer la charge limite et le volume maximal + * du véicule. + * @param weight Pointeur float qui stocke la charge maximale (en Kg) du véicule. + * @param volume Pointeur float qui stocke le volume maximal (en metres cube) du véicule. + * @param price Pointeur float qui permet de stocker le budget maximum du client. + */ + void clientConstraint(float *weight, float *volume, float *price) { // Saisie des contraintes du client. @@ -33,6 +42,27 @@ void clientConstraint(float *weight, float *volume, float *price) } } + + +/** + * @brief constraintExceeded permet de regarder si la charge maximale, le volume maximal, et le prix maximal sont + * dépassés à partir des articles dans le panier + * + * @param weightConstraint Float qui stocke la charge maximale (en Kg) du véicule. + * @param volumeConstraint Float qui stocke le volume maximal (en metres cube) du véicule. + * @param priceConstraint Pointeur float qui permet de stocker le budget maximum du client. + * @param cagnotte Pointeur float qui stocke la cagnotte du client. + * @param tabWeight Tableau float qui stocke le poids des articles. + * @param tabVolume Tableau float qui stocke le volume des articles. + * @param tabPrice Tableau float qui stocke le prix des articles. + * @param tabItemRef Tableau int qui stocke les références des articles. + * @param tabBasketRef Tableau contenant les références des articles dans le panier. + * @param tabBasketQuantity Tableau stockant la quantité commandée des articles dans le panier. + * @param tlogItem Taille logique du tableau `tabItemRef`. + * @param tlogBasket Taille logique du tableau `tabBasketRef`. + * @return Renvoie 0 si tout ce passe sans erreur, renvoie -1 en cas d'erreur. + */ + int constraintExceeded(float weightConstraint, float volumeConstraint, float *priceConstraint, float *cagnotte, float tabWeight[], float tabVolume[], float tabPrice[], int tabItemRef[], int tabBasketRef[], int tabBasketQuantity[], int tlogItem, int tlogBasket) { int index, found, i; @@ -91,17 +121,17 @@ int constraintExceeded(float weightConstraint, float volumeConstraint, float *pr } /** - * @brief Ajoute un article au panier et calcule les différents attributs pour la fonction `display_basket` - * @param tab_reference: tableau des références des articles - * @param weight: tableau des poids des articles - * @param volume: tableau du volume des articles - * @param unitPrice: tableau du prix unitaire des articles - * @param cagnotte: pointeur indiquant la valeur de la cagnotte - * @param basket_tab_ref: tableau des références du panier - * @param basket_tab_qte: tableau de la quantité de l'article du panier - * @param tlog: taille logique du tableau `tab_reference` - * @param tlog_basket: taille logique du panier - * @return taille logique du panier + * @brief Ajoute un article au panier et calcule les différents attributs pour la fonction `display_basket`. + * @param tab_reference: tableau des références des articles. + * @param weight: tableau des poids des articles. + * @param volume: tableau du volume des articles. + * @param unitPrice: tableau du prix unitaire des articles. + * @param cagnotte: pointeur indiquant la valeur de la cagnotte. + * @param basket_tab_ref: tableau des références du panier. + * @param basket_tab_qte: tableau de la quantité de l'article du panier. + * @param tlog: taille logique du tableau `tab_reference`. + * @param tlog_basket: taille logique du panier. + * @return taille logique du panier. */ void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], int tlogItem, int *tlog_basket) { @@ -131,9 +161,9 @@ void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int ba } /** - * @brief Supprime le panier en lui donnant sa taille_logique à 0 - * @param tlog_basket: taille logique du panier - * @return taille logique du panier + * @brief Supprime le panier en lui donnant sa taille_logique à 0. + * @param tlog_basket: taille logique du panier. + * @return taille logique du panier. */ void reinit_basket(int *tlog_basket) { @@ -144,11 +174,11 @@ void reinit_basket(int *tlog_basket) } /** - * @brief Supprime un article au panier ou modifie sa quantité si la quantité est supérieure à 1 - * @param basket_tab_ref: tableau des références du panier - * @param basket_tab_qte: tableau de la quantité de l'article du panier - * @param tlog_basket: taille logique du panier - * @return taille logique du panier + * @brief Supprime un article au panier ou modifie sa quantité si la quantité est supérieure à 1. + * @param basket_tab_ref: tableau des références du panier. + * @param basket_tab_qte: tableau de la quantité de l'article du panier. + * @param tlog_basket: taille logique du panier. + * @return taille logique du panier. */ void basket_del_article(int basket_tab_ref[], int basket_tab_qte[], int *tlog_basket) {