/// <summary> /// renvoie la liste principales categories d'objets en stock (le nombre de categories à afficher est saisi par l'utilisateur) /// </summary> public List <string> CategoriesPrincipales(int nombre) { List <Objet_volumineux> Liste1 = listes.List_Objet_volumineux(GardeMeuble); List <Objet_volumineux> Liste2 = listes.List_Objet_volumineux(DepotVente); List <Objet_volumineux> Liste3 = listes.List_Objet_volumineux(Association); List <List <Objet_volumineux> > Listes = new List <List <Objet_volumineux> >(); Listes.Add(Liste1); Listes.Add(Liste2); Listes.Add(Liste3); List <Objet_volumineux> Liste = listes.Addition(Listes); List <string> Categories = new List <string>(); foreach (Objet_volumineux objet in Liste) { if (!Doublon(objet.Type_materiel, Categories)) { Categories.Add(objet.Type_materiel); } } List <int> CoeffCategories = new List <int>(); for (int i = 0; i < Categories.Count; i++) { CoeffCategories.Add(0); foreach (Objet_volumineux objet in Liste) { if (objet.Type_materiel == Categories[i]) { CoeffCategories[i]++; } } } int indiceMin = -1; while (Categories.Count > nombre) { indiceMin = IndideMin(CoeffCategories); CoeffCategories.RemoveAt(indiceMin); Categories.RemoveAt(indiceMin); } return(Categories); }
/// <summary> /// permet à un adhérent de transférer un don à un bénéficiaire, cela enregistre alors le don dans les archives /// </summary> public void TransfertDonBeneficiaire() { Adherent user = Utilisateur(); Console.WriteLine("où se trouve le don à transférer ?"); int reponse = 0; while (reponse != 1 && reponse != 2 && reponse != 3) { Console.WriteLine("tapez 1 pour le garde-meuble"); Console.WriteLine("tapez 2 pour le depot-vente"); Console.WriteLine("tapez 3 pour l'association"); reponse = Convert.ToInt32(Console.ReadLine()); } if (reponse == 1) { List <Objet_volumineux> Liste = listes.List_Objet_volumineux(GardeMeuble); Liste.ForEach(x => Console.WriteLine(x.Tostring1())); //affiche la liste des dons Console.WriteLine("Saisissez le numéro de référence du don que vous voulez récupérer"); //création d'une liste contenant uniquement les identifiants des objets List <int> NumListe = new List <int>(); foreach (Objet_volumineux obj in Liste) { NumListe.Add(obj.Ref_objet); } int numero = Convert.ToInt32(Console.ReadLine()); int indice = NumListe.IndexOf(numero); //la fonction Indexof permet de vérifier si un élément existe et renvoie dans ce cas son indice dans la liste (renvoie -1 sinon) while (indice == -1) { Console.WriteLine("objet introuvable, ressaisissez son numéro de référence"); numero = Convert.ToInt32(Console.ReadLine()); indice = NumListe.IndexOf(numero); } string objet = ExtraireString(Convert.ToString(numero), GardeMeuble); string[] mots = objet.Split(";"); mots[mots.Length - 1] = Convert.ToString(DateTime.Now); objet = ""; for (int i = 0; i < mots.Length - 1; i++) { objet += mots[i] + ";"; } objet += mots[mots.Length - 1]; int NumLigne = chercher(Convert.ToString(numero), GardeMeuble); Ecrire(objet, archive); SupprimerLigne(GardeMeuble, NumLigne); } if (reponse == 2) { //stockage de tous les dépots ventes dans une liste Liste_Depots_Vente.ForEach(x => Console.WriteLine(x.Tostring2())); List <int> NumListe_Depots_Vente = new List <int>(); foreach (Depot_vente dpv in Liste_Depots_Vente) { NumListe_Depots_Vente.Add(dpv.Identifiant); } //recherche du dépot vente Console.WriteLine("saisissez l'identifiant du dépot de vente où se trouve l'objet que vous souhaitez acheter"); int numero = Convert.ToInt32(Console.ReadLine()); int indice = NumListe_Depots_Vente.IndexOf(numero); while (indice == -1) { Console.WriteLine("depot introuvable, ressaisissez son identifiant"); numero = Convert.ToInt32(Console.ReadLine()); indice = NumListe_Depots_Vente.IndexOf(numero); } //stockage de tous les objets du dépot vente sélectionné dans une liste List <Objet_volumineux> Liste = listes.List_Objet_volumineux(DepotVente); for (int i = 0; i < Liste.Count; i++) { Console.WriteLine("ID : " + Liste[i].LieuStockage.Identifiant); if (Liste[i].LieuStockage.Identifiant != numero) { Liste.RemoveAt(i); i--; } } List <int> NumListe = new List <int>(); foreach (Objet_volumineux obj in Liste) { NumListe.Add(obj.Ref_objet); } //recherche de l'objet à acheter Console.WriteLine("voici les objets disponibles :"); Liste.ForEach(x => Console.WriteLine(x.Tostring1())); Console.WriteLine("saisissez l'identifiant de l'objet que vous souhaitez acheter"); int ID = Convert.ToInt32(Console.ReadLine()); indice = NumListe.IndexOf(ID); while (indice == -1) { Console.WriteLine("objet introuvable, ressaisissez son numéro de référence"); ID = Convert.ToInt32(Console.ReadLine()); indice = NumListe.IndexOf(ID); } //actualisation de la date de vente et archivage string objet = ExtraireString(Convert.ToString(ID), DepotVente); string[] mots = objet.Split(";"); mots[16] = Convert.ToString(DateTime.Now); string objet2 = ""; for (int i = 0; i < mots.Length - 1; i++) { objet2 += mots[i]; objet2 += ";"; } objet2 += mots[mots.Length - 1]; Ecrire(objet2, archive); int Numligne = chercher(Convert.ToString(ID), DepotVente); SupprimerLigne(DepotVente, Numligne); //il faut maintenant actualiser le solde du dépot vente Numligne = chercher(Convert.ToString(numero), ListeDepotsVente); string ligne = ExtraireString(Convert.ToString(numero), ListeDepotsVente); mots = ligne.Split(";"); double solde = Convert.ToDouble(mots[4]) + Liste[indice].Montant; mots[4] = Convert.ToString(solde); ligne = ""; for (int i = 0; i < mots.Length - 1; i++) { ligne += mots[i] + ";"; } ligne += mots[4]; ModifierLigne(ListeDepotsVente, Numligne, ligne); } if (reponse == 3) { List <Objet_volumineux> Liste = listes.List_Objet_volumineux(Association); Liste.ForEach(x => Console.WriteLine(x.Tostring1())); //affiche la liste des dons Console.WriteLine("Saisissez le numéro de référence du don que vous voulez récupérer"); //création d'une liste contenant uniquement les identifiants des objets List <int> NumListe = new List <int>(); foreach (Objet_volumineux obj in Liste) { NumListe.Add(obj.Ref_objet); } int numero = Convert.ToInt32(Console.ReadLine()); int indice = NumListe.IndexOf(numero); //la fonction Indexof permet de vérifier si un élément existe et renvoie dans ce cas son indice dans la liste (renvoie -1 sinon) while (indice == -1) { Console.WriteLine("objet introuvable, ressaisissez son numéro de référence"); numero = Convert.ToInt32(Console.ReadLine()); indice = NumListe.IndexOf(numero); } Couper_coller(Association, archive, Convert.ToString(numero)); } //afficher le fichier des dons non traités de l'association }
public List <Objet_volumineux> List_Objet_volumineux(string fichier) { return(listes.List_Objet_volumineux(fichier)); }