/// <summary> /// Fonction qui supprime l'emprunt de la liste des emprunts de la mediatheuqe quand le membre vient rendre le Livre /// Le nombre d'emprunts en cours du membre est décrémenté /// le code etat du livre repasse à D comme Disponible /// Il y a vérification du dépassement de la date limite ou non, dans ce cas une pénalité est exigée de 0,5 euros par jour de retard /// </summary> /// <param name="refLivreE">reférence du livre qui est rendu</param> /// <param name="codeM">code du membre qui rapporte le livre</param> /// <returns>retourne True si la suppression a ete réalisée , false sinon</returns> public bool RendreEmprunt(string refLivreE, string codeM) { bool sup = false; int i, posLivre; double penalites; posLivre = -1; TimeSpan ts; Emprunt E = new Emprunt(refLivreE, codeM); if (lesEmprunts.Contains(E)) { if (DateTime.Today > E.CalculDateLimite()) { ts = DateTime.Now - E.CalculDateLimite(); penalites = ts.Days * 0.5; Console.WriteLine(" Merci de rendre le livre mais vous etes en retard de " + ts.Days + "jours"); Console.WriteLine(" Vous aurez un pénalité de 0,5 euros par jour de retard, soit " + penalites + " euros"); } lesEmprunts.Remove(E); sup = true; // recherche de la position du Livre for (i = 0; i < lesLivres.Count; i++) { if (lesLivres[i].GetRefLivre() == refLivreE) { posLivre = i; } } lesLivres[posLivre].setEtat("D"); int j, pos; pos = -1; // recherche de la position du membre for (j = 0; j < lesMembres.Count; j++) { if (lesMembres[j].CodeMembre == codeM) { lesMembres[j].NbEmpruntsEnCours = lesMembres[j].NbEmpruntsEnCours - 1; pos = j; } } } else { Console.WriteLine(" cet emprunt n 'est pas présent"); sup = false; } return(sup); }
/// <summary> /// fonction qui ajoute un emprunt pour un membre s'il na pas dépassé le nb maximun d'emprunts /// Le code etat du livre est passé à E /// Le nombre d'emprunt en cours du membre est incrementé de 1 /// </summary> /// <param name="refLivreE">la reférence du livre à emprunter</param> /// <param name="codeM">le code du membre</param> /// <returns>retourne True si l'emprunt a ete effectué, false sinon</returns> public bool AjouterEmprunt(string refLivreE, string codeM) { bool ajoutPossible = false; int i, posLivre; posLivre = -1; // recherche de la position du Livre for (i = 0; i < lesLivres.Count; i++) { if (lesLivres[i].GetRefLivre() == refLivreE) { posLivre = i; } } int j, pos; pos = -1; // recherche de la position du membre for (j = 0; j < lesMembres.Count; j++) { if (lesMembres[j].CodeMembre == codeM) { if (lesMembres[j].NbEmpruntsEnCours < lesMembres[j].NbEmpruntsMaxi) { pos = j; ajoutPossible = true; } else { lesMembres[j].AfficherMembre(); Console.WriteLine("vous etes au maximum "); } } } if (ajoutPossible) { Emprunt E = new Emprunt(refLivreE, codeM); lesEmprunts.Add(E); lesMembres[pos].NbEmpruntsEnCours = lesMembres[pos].NbEmpruntsEnCours + 1; lesLivres[posLivre].setEtat("E"); } return(ajoutPossible); }