package Model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Date;

public class Start implements Serializable
{
	private static final long serialVersionUID = -7467161425770557630L;
	
	static ArrayList<Article> article = new ArrayList<Article>();
	static ArrayList<Client> client = new ArrayList<Client>();
	static ArrayList<Fournisseur> fournisseur = new ArrayList<Fournisseur>();
	static ArrayList<Machine> machine = new ArrayList<Machine>();
	static ArrayList<Employe> employe = new ArrayList<Employe>();
	static ArrayList<PDC> pdc = new ArrayList<PDC>();
	static ArrayList<Nomenclature> nomenclature = new ArrayList<Nomenclature>();
	static ArrayList<Commande> commande = new ArrayList<Commande>();
	static Stock stock;

	@SuppressWarnings("deprecation")
	public static void main(String[] args) 
	{
		stock = new Stock(new Date(1,1,2012));
		afficherMenu();
	}
	
	public static void afficherMenu()
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		boolean quitte = false;
	while(quitte == false)
	{
			System.out.println("       GL2");
			System.out.println("");
			System.out.println("De quoi avez vous besoin?");
			System.out.println("");
			System.out.println("1) Des Articles");
			System.out.println("2) Des Fournisseurs");
			System.out.println("3) Des Clients");
			System.out.println("4) Des Stocks");
			System.out.println("5) Des Employes ou des machines");
			System.out.println("6) Des Postes de Charges");
			System.out.println("7) Sauvegarder");
			System.out.println("0) Quitter");
			System.out.println("");
			
			menu = sc.nextInt();
			sc.nextLine();
			
			switch(menu)
			{
				case(0): quitte = true;break;
				case(1): afficherMenuArticle();break;
				case(2): afficherMenuFournisseurs();break;
				case(3): afficherMenuClients();break;
				case(4): afficherMenuStocks();break;
				case(5): afficherMenuProducteurs();break;
				case(6): afficherMenuPDC();break;
				case(7): save();break;
			}
		}
	}
	private static void save() 
	{
		
	}

	private static void afficherMenuPDC() 
	{
		Scanner sc = new Scanner(System.in);
		int menu = -1;
		
		System.out.println("De quoi avez vous besoin?");
		System.out.println("1) Creer un nouveau Poste de charge");
		System.out.println("2) Voir un Poste de charge");
		System.out.println("3) Modifier un Poste de charge");
		System.out.println("4) Supprimer un Poste de charge");
		System.out.println("5) Quitter");
		System.out.println("");
		
		menu = sc.nextInt();
		sc.nextLine();
		
		switch(menu)
		{
			case(1): System.out.println("Veuillez entrer le nom de votre poste de charge: ");
					 String nom = sc.nextLine();
					 pdc.add(new PDC(nom));
					 break;
					 
			case(2): System.out.println("Veuillez entrer le nom de votre poste de charge: ");
					 String nom2 = sc.nextLine();
					 int i = -1;
					 boolean trouve = false;
					 
					 while(trouve == false)
					 {
						 i++;
						 if(nom2.equals(pdc.get(i).getNom())) trouve = true;
					 }
					 if(trouve == true) pdc.get(i).afficherPDC();
					 else System.out.println("Poste de charge non trouvé veuillez recommencer votre recherche.");
					 break;
					 
			case(3): System.out.println("Veuillez entrer le nom de votre poste de charge: ");
			 		 String modif = sc.nextLine();
			 		 
			 		 int m = -1;
					 boolean trouvem = false;
					 
					 while(trouvem == false)
					 {
						 m++;
						 if(modif.equals(pdc.get(m).getNom())) trouve = true;
					 }
					 if(trouvem == true)
					 {
						 int menuu = -1;
						 
						 System.out.println("Que voulez vous modifier?");
						 System.out.println("1) Ajouter une machine");
						 System.out.println("2) Ajouter un employe");
						 System.out.println("3) Supprimer une machine");
						 System.out.println("4) Supprimer un employe");
						 
						 switch(menuu)
						 {
						 	case(1): System.out.println("Veuillez entrer le nom de votre machine");
				 			 		 String nom1 = sc.nextLine();
				 			 		 boolean trouveMachine = false;
				 			 		 int mach = -1;
				 			 		 
				 			 		 while(trouveMachine == false)
				 			 		 {
				 			 			 if(mach < machine.size()) mach++;
				 			 			 if(nom1.equals(machine.get(mach).getNom()))
				 			 			 {
				 			 				 trouve = true;
				 			 				 pdc.get(m).ajouterM(machine.get(mach));
				 			 			 }
				 			 			 
				 			 		 }
				 			 		 if(trouveMachine == false) System.out.println("Veuillez recommencer votre recherche machine non trouvée");
				 			 		 break;
						 	case(2): System.out.println("Veuillez entrer le nom de votre employe");
		 			 		 		 String emplo = sc.nextLine();
		 			 		 		 boolean trouveEmploye = false;
		 			 		 		 int em = -1;
		 			 		 		 
		 			 		 		 while(trouveEmploye == false)
		 			 		 		 {
		 			 		 			 if(em < employe.size()) em++;
		 			 		 			 if(emplo.equals(employe.get(em).getNom()))
		 			 		 			 {
		 			 					 trouve = true;
		 			 					 pdc.get(m).ajouterE(employe.get(em));
		 			 		 			 }
		 			 			 
		 			 		 		 }
		 			 		 		 if(trouveEmploye == false) System.out.println("Veuillez recommencer votre recherche employe non trouvé");
		 			 		 		 break;
		 			 		 		 
						 	case(3): System.out.println("Veuillez entrer le nom de votre machine");
		 			 		 		 String mach2 = sc.nextLine();
		 			 		 		 boolean trouveMachine1 = false;
		 			 		 		 int mach1 = -1;
		 			 		 		 
		 			 		 		 while(trouveMachine1 == false)
		 			 		 		 {
		 			 		 			 if(mach1 < machine.size()) mach1++;
		 			 		 			 if(mach2.equals(machine.get(mach1).getNom()))
		 			 		 			 {
		 			 		 				 trouve = true;
		 			 		 				 pdc.get(m).supprimerM(machine.get(mach1));
		 			 		 			 }
		 			 		 			 
		 			 		 		 }
		 			 		 		 if(trouveMachine1 == false) System.out.println("Veuillez recommencer votre recherche machine non trouvée");
		 			 		 		 break;
						 	case(4): System.out.println("Veuillez entrer le nom de votre machine");
						 			 String emp2 = sc.nextLine();
						 			 boolean trouveEmploye1 = false;
						 			 int empl1 = -1;
						 			 
						 			 while(trouveEmploye1 == false)
						 			 {
						 				 if(empl1 < employe.size()) empl1++;
						 				 if(emp2.equals(employe.get(empl1).getNom()))
						 				 {
						 					 trouve = true;
						 					 pdc.get(m).supprimerE(employe.get(empl1));
						 				 }
			 		 			 
						 			 }
						 			 if(trouveEmploye1 == false) System.out.println("Veuillez recommencer votre recherche employe non trouvé");
						 			 break;
						 }
					 }
					 else System.out.println("Poste de charge non trouvé veuillez recommencer votre recherche.");
					 break;
					 
			case(4): System.out.println("Veuillez entrer le nom du poste de charge que vous voulez supprimer: ");
					 String sup = sc.nextLine();
					 int j = -1;
					 boolean trouvee = false;
					 
					 while(trouvee == false)
					 {
						 j++;
						 if(sup.equals(pdc.get(j).getNom())) trouvee = true;
					 }
					 if(trouvee == true) pdc.remove(j);
					 else System.out.println("Poste de charge non trouvé veuillez recommencer votre recherche.");
					 break;
			case(5): break;
		}
	}

	private static void afficherMenuProducteurs() 
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		
		System.out.println("De quel moyen de production voulez vous vous occuper?\n1) Les machines\n2) Les employes");
		menu = sc.nextInt();
		sc.nextLine();
		
		switch(menu)
		{
			case(1): 
				int menu2 = -1;
				
				System.out.println("De quoi avez vous besoin?");
				System.out.println("1) Creer une nouvelle Machine");
				System.out.println("2) Voir une Machine");
				System.out.println("3) Modifier une Machine");
				System.out.println("4) Supprimer une Machine");
				System.out.println("5) Quitter");
				System.out.println("");
			
				menu2 = sc.nextInt();
				sc.nextLine();
				switch(menu2)
				{
					case(1):
					 String nom;
					 System.out.println("Entrez le nom de la machine: "); 
					 nom = sc.nextLine();
					 double production;
					 System.out.println("Entrez la production par heure de la machine: ");
					 production = sc.nextDouble();
					 sc.nextLine();
					 Machine m = new Machine(nom,production);
					 machine.add(m);
					 break;
					 
					 case(2):
					 System.out.println("Voulez vous chercher votre machine par nom(1) ou par identifiant(2) ?");
					 int menu4 = sc.nextInt();
					 sc.nextLine();
					 boolean trouve = false;
					 int i = -1;
					 
					 switch(menu4)
					 {
					 	case(1): System.out.println("Veuillez entrer le nom de votre machine");
					 			 String nom1 = sc.nextLine();
					 			 while(trouve == false)
					 			 {
					 				if(i < machine.size()) i++;
					 			 	if(nom1.equals(machine.get(i).getNom()))
					 			 	{
					 			 		trouve = true;
					 			 		System.out.println("Voici votre machine: " + machine.get(i).toString());
					 			 	}
					 			 }
					 			if(trouve == false) System.out.println("Veuillez recommencer votre recherche machine non trouvée");
					 			 break;
					 			 
					 	case(2): System.out.println("Veuillez entrer l'identifiant de votre machine");
			 			 		 String id = sc.nextLine();
			 			 		 while(trouve == false)
			 			 		 {
			 			 			if(i < machine.size()) i++;
			 			 			 if(id.equals(machine.get(i).getIdentifiant()))
			 			 			 {
			 			 				 trouve = true;
			 			 				 System.out.println("Voici votre machine: " + machine.get(i).toString());
			 			 			 }
			 			 		 }
			 			 		 if(trouve == false) System.out.println("Veuillez recommencer votre recherche machine non trouvée");
			 			 		 break;
					 }
					 break;
					 
					 case(3):
					 System.out.println("Quel machine voulez vous modifier? Veuillez entrer son identifiant: ");
					 String id = sc.nextLine();
					 boolean trouve1 = false;
					 int i1 = 0;
					 int menu3;
					 
					 while(trouve1 == false)
			 		 {
			 			 if(id.equals(machine.get(i1).getIdentifiant()))
			 			 {
			 				 trouve1 = true;
			 				 
			 				 System.out.println("Que voulez vous modifier: Le nom(1)\nLa production(2)\n ?\n");
			 				 menu3 = sc.nextInt();
			 				 sc.nextLine();
			 				 
			 				 switch(menu3)
			 				 {
			 				 	case(1): System.out.println("Veuillez entrer le nouveau nom de votre machine: ");
			 				 			 machine.get(i1).setNom(sc.nextLine());
			 				 			 break;
			 				 	case(2): System.out.println("Veuillez entrer la nouvelle production de la machine: ");
	 				 			 		 machine.get(i1).setProduction(sc.nextDouble());
	 				 			 		 break;
			 				 } 
			 			 }
			 			 if(i1 < machine.size()) i1++;
			 			 else if(trouve1 == false) System.out.println("Veuillez recommencer votre recherche, machine non trouvée");
			 		 }
					 break;
					 
					 case(4): System.out.println("Veuillez entrer l'identifiant de votre machine");
	 		 		 String id1 = sc.nextLine();
	 		 		 boolean trouve2 = false;
	 		 		 int i2 = 0;
	 		 		 
	 		 		 while(trouve2 == false)
	 		 		 {
	 		 		 if(id1.equals(machine.get(i2).getIdentifiant()))
	 		 		 {
	 		 			 trouve2 = true;
	 		 			 machine.remove(i2);
	 		 		 }
	 		 		 if(i2 < machine.size()) i2++;
	 		 		 else if(trouve2 == false) System.out.println("Veuillez recommencer votre recherche, machine non trouvée");
	 		 		 }
	 		 		 break;
				}
			case(2): 
				int menu3 = -1;
				
				System.out.println("De quoi avez vous besoin?");
				System.out.println("1) Creer une nouvel Employe");
				System.out.println("2) Voir un Employe");
				System.out.println("3) Modifier un Employe");
				System.out.println("4) Supprimer un Employe");
				System.out.println("5) Quitter");
				System.out.println("");
			
				menu3 = sc.nextInt();
				sc.nextLine();
				switch(menu3)
				{
					 case(1):
					 String nom;
					 System.out.println("Entrez le nom de l'employe: "); 
					 nom = sc.nextLine();
					 double production;
					 System.out.println("Entrez la production par heure de l'employe: ");
					 production = sc.nextDouble();
					 int heure;
					 System.out.println("Entrez le nombre d'heure travaillé par jour par l'employe");
					 heure = sc.nextInt();
					 sc.nextLine();
					 Employe e = new Employe(nom,heure,production);
					 employe.add(e);
					 break;
					 
					 case(2):
					 System.out.println("Voulez vous chercher votre employe par nom(1) ou par identifiant(2) ?");
					 int menu4 = sc.nextInt();
					 sc.nextLine();
					 boolean trouve = false;
					 int i = 0;
					 
					 switch(menu4)
					 {
					 	case(1): System.out.println("Veuillez entrer le nom de votre employe");
					 			 String nom1 = sc.nextLine();
					 			 while(!trouve)
					 			 {
					 			 	if(nom1.equals(employe.get(i).getNom()))
					 			 	{
					 			 		trouve = true;
					 			 		System.out.println("Voici votre employe: " + employe.get(i).toString());
					 			 	}
					 			 	if(i < employe.size()) i++;
					 			 	else if(trouve == false) System.out.println("Veuillez recommencer votre recherche employe non trouvé");
					 			 }
					 			 break;
					 			 
					 	case(2): System.out.println("Veuillez entrer l'identifiant de votre employe");
			 			 		 String id = sc.nextLine();
			 			 		 while(trouve == false)
			 			 		 {
			 			 			 if(id.equals(employe.get(i).getIdentifiant()))
			 			 			 {
			 			 				 trouve = true;
			 			 				 System.out.println("Voici votre employe: " + employe.get(i).toString());
			 			 			 }
			 			 			 if(i < employe.size()) i++;
			 			 			 else if(trouve == false)System.out.println("Veuillez recommencer votre recherche, employe non trouvé");
			 			 		 }
			 			 		 break;
					 }
					 break;
				}
				
			 	 case(3):
				 System.out.println("Quel employe voulez vous modifier? Veuillez entrer son identifiant: ");
				 String id = sc.nextLine();
				 boolean trouve1 = false;
				 int i1 = 0;
				 int menu5;
				 
				 while(trouve1 == false)
		 		 {
		 			 if(id.equals(employe.get(i1).getIdentifiant()))
		 			 {
		 				 trouve1 = true;
		 				 
		 				 System.out.println("Que voulez vous modifier: Le nom(1)\nLa production(2)\nSon temps de travail par jour(3)  ?\n");
		 				 menu5 = sc.nextInt();
		 				 sc.nextLine();
		 				 
		 				 switch(menu5)
		 				 {
		 				 	case(1): System.out.println("Veuillez entrer le nouveau nom de votre employe: ");
		 				 			 employe.get(i1).setNom(sc.nextLine());
		 				 			 break;
		 				 	case(2): System.out.println("Veuillez entrer la nouvelle production de la employe: ");
 				 			 		 employe.get(i1).setProduction(sc.nextDouble());
 				 			 		 break;
		 				 	case(3): System.out.println("Veuillez entrer le nouveau temps de travail de l'employe: ");
				 			 		 employe.get(i1).setHeure(sc.nextInt());
				 			 		sc.nextLine();
				 			 		 break;
		 				 } 
		 			 }
		 			 if(i1 < employe.size()) i1++;
		 			 else if(trouve1 == false) System.out.println("Veuillez recommencer votre recherche, employe non trouvé");
		 		 }
				 break;
				 
			 	 case(4): System.out.println("Veuillez entrer l'identifiant de votre employe");
		 		 String id1 = sc.nextLine();
		 		 boolean trouve2 = false;
		 		 int i2 = 0;
		 		 
		 		 while(trouve2 == false)
		 		 {
		 		 if(id1.equals(employe.get(i2).getIdentifiant()))
		 		 {
		 			 trouve2 = true;
		 			 employe.remove(i2);
		 		 }
		 		 if(i2 < employe.size()) i2++;
		 		 else if(trouve2 == false) System.out.println("Veuillez recommencer votre recherche, employe non trouvé");
		 		 }
		 		 break;
			 	 case(5): break;
		}
	}

	private static void afficherMenuStocks() 
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		
		System.out.println("De quoi avez vous besoin?");
		System.out.println("1) Ajouter un article au stock");
		System.out.println("2) Voir le stock");
		System.out.println("3) Supprimer un article du stock");
		System.out.println("4) Voir la date du dernier inventaire");
		System.out.println("5) Quitter");
		System.out.println("");
		
		menu = sc.nextInt();
		sc.nextLine();
		switch(menu)
		{
			case(1): System.out.println("Votre article est il deja present dans le stock? Oui(1)\nNon(2)");
					 int menu2 = sc.nextInt();
					 sc.nextLine();
					 switch(menu2)
					 {
					 	case(1): System.out.println("Voulez vous chercher votre article par nom(1) ou par code(2) ?");
						 int menu3 = sc.nextInt();
						 sc.nextLine();
						 boolean trouve = false;
						 int i = 0;
						 
						 switch(menu3)
						 {
						 	case(1): System.out.println("Veuillez entrer la quantite a ajouter pour votre article");
						 			 int quantit = sc.nextInt();
						 			 sc.nextLine();
						 			 System.out.println("Veuillez entrer la designation de votre article");
						 			 String nom = sc.nextLine();
						 			 while(trouve == false)
						 			 {
						 			 	if(nom.equals(article.get(i).getDescription()))
						 			 	{
						 			 		trouve = true;
						 			 		stock.ajouter(article.get(i), quantit);
						 			 		
						 			 	}
						 			 	if(i < article.size()) i++;
						 			 	else if(trouve == false) System.out.println("Veuillez recommencer votre recherche article non trouvé");
						 			 }
						 			 break;
						 			 
						 	case(2): System.out.println("Veuillez entrer la quantite a ajouter pour votre article");
				 			 		 int quantit2 = sc.nextInt();
				 			 		 sc.nextLine();
						 			 System.out.println("Veuillez entrer le code de votre article");
				 			 		 String code = sc.nextLine();
				 			 		 while(trouve == false)
				 			 		 {
				 			 			 if(code.equals(article.get(i).getCode()))
				 			 			 {
				 			 				 trouve = true;
				 			 				stock.ajouter(article.get(i), quantit2);
				 			 			 }
				 			 			 if(i < article.size()) i++;
				 			 			 else if(trouve == false) System.out.println("Veuillez recommencer votre recherche, article non trouvé");
				 			 		 }
				 			 		 break;
				 			 		 
						 }
						 break;
					 	case(2): String type;
						 		 System.out.println("S'agit il d'une matiere premiere (1) ou d'un produit fini (2) ?"); 
						 		 if(sc.nextInt() == 1) type = "MP";
						 		 else type = "Produit fini";
						 		sc.nextLine();
						 		 String description;
						 		 System.out.println("Entrez la description de votre article: ");
						 		 description = sc.nextLine();
						 		 float prix;
						 		 System.out.println("Entrez le prix de votre article");
						 		 prix = sc.nextFloat();
						 		 sc.nextLine();
						 		 System.out.println("Veuillez entrer la quantite a ajouter pour votre article: ");
						 		 int quantit = sc.nextInt();
						 		sc.nextLine();
						 		 Article a = new Article(type,description,prix);
						 		 article.add(a);
						 		 stock.ajouter(a,quantit);
						 		 break;
					 }
			case(2): stock.voirStock();
					 break;
					 
			case(3): System.out.println("Voulez vous chercher votre article par nom(1) ou par code(2) ?");
			 		 int menu3 = sc.nextInt();
			 		sc.nextLine();
			 		 boolean trouve = false;
			 		 int i = 0;
			 		 
				 switch(menu3)
				 {
				 	case(1): System.out.println("Veuillez entrer la quantite a supprimer pour votre article");
				 			 int quantit = sc.nextInt();
				 			 sc.nextLine();
				 			 System.out.println("Veuillez entrer la designation de votre article");
				 			 String nom = sc.nextLine();
				 			 while(trouve == false)
				 			 {
				 				 if(nom.equals(article.get(i).getDescription()))
				 				 {
				 					 trouve = true;
				 					 stock.supprimer(article.get(i), quantit);
			 			 		
				 				 }
				 				 if(i < article.size()) i++;
				 				 else if(trouve == false) System.out.println("Veuillez recommencer votre recherche article non trouvé");
				 			 }
				 			 break;
			 			 
			 	case(2): System.out.println("Veuillez entrer la quantite a supprimer pour votre article");
	 			 		 int quantit2 = sc.nextInt();
	 			 		 sc.nextLine();
			 			 System.out.println("Veuillez entrer le code de votre article");
	 			 		 String code = sc.nextLine();
	 			 		 while(trouve == false)
	 			 		 {
	 			 			 if(code.equals(article.get(i).getCode()))
	 			 			 {
	 			 				 trouve = true;
	 			 				stock.supprimer(article.get(i), quantit2);
	 			 			 }
	 			 			 if(i < article.size()) i++;
	 			 			 else if(trouve == false)System.out.println("Veuillez recommencer votre recherche, article non trouvé");
	 			 		 }
	 			 		 break;
				 }
			case(4):System.out.println(stock.getDate().toString());
					break;
			case(5): break;
		}
	}

	private static void afficherMenuClients() 
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		
		System.out.println("De quoi avez vous besoin?");
		System.out.println("1) Creer un nouveau Client");
		System.out.println("2) Voir un Client");
		System.out.println("3) Modifier un Client");
		System.out.println("4) Supprimer un Client");
		System.out.println("5) Entrer une Commande");
		System.out.println("6) Quitter");
		System.out.println("");
		
		menu = sc.nextInt();
		sc.nextLine();
		switch(menu)
		{
			case(1): String nom;
					 System.out.println("Entrez le nom du client: "); 
					 nom = sc.nextLine();
					 String tel;
					 System.out.println("Entrez le numero de telephone du client: ");
					 tel = sc.nextLine();
					 Client c = new Client(nom,tel);
					 client.add(c);
					 break;
						 
			case(2): System.out.println("Voulez vous chercher votre client par nom(1) ou par identifiant(2) ?");
					 int menu2 = sc.nextInt();
					 sc.nextLine();
					 boolean trouve = false;
					 int i = 0;
					 
					 switch(menu2)
					 {
					 	case(1): System.out.println("Veuillez entrer le nom de votre client");
					 			 String nom1 = sc.nextLine();
					 			 while(trouve == false)
					 			 {
					 			 	if(nom1.equals(client.get(i).getNom()))
					 			 	{
					 			 		trouve = true;
					 			 		System.out.println("Voici votre client: " + client.get(i).toString());
					 			 	}
					 			 	if(i < client.size()) i++;
					 			 	else if(trouve == false) System.out.println("Veuillez recommencer votre recherche client non trouvé");
					 			 }
					 			 break;
					 			 
					 	case(2): System.out.println("Veuillez entrer l'identifiant de votre client");
			 			 		 String id = sc.nextLine();
			 			 		 while(trouve == false)
			 			 		 {
			 			 			 if(id.equals(client.get(i).getIdentifiant()))
			 			 			 {
			 			 				 trouve = true;
			 			 				 System.out.println("Voici votre client: " + client.get(i).toString());
			 			 			 }
			 			 			 if(i < client.size()) i++;
			 			 			 else if(trouve == false) System.out.println("Veuillez recommencer votre recherche, client non trouvé");
			 			 		 }
			 			 		 break;
			 			 		 
					 }
					 break;
			case(3): System.out.println("Quel client voulez vous modifier? Veuilez entrer son identifiant: ");
					 String id = sc.nextLine();
					 boolean trouve1 = false;
					 int i1 = 0;
					 int menu3;
					 
					 while(trouve1 == false)
 			 		 {
 			 			 if(id.equals(client.get(i1).getIdentifiant()))
 			 			 {
 			 				 trouve1 = true;
 			 				 
 			 				 System.out.println("Que voulez vous modifier: Le nom(1)\nLe numero de telephone(2)\n ?\n");
 			 				 menu3 = sc.nextInt();
 			 				 sc.nextLine();
 			 				 
 			 				 switch(menu3)
 			 				 {
 			 				 	case(1): System.out.println("Veuillez entrer le nouveau nom de votre client: ");
 			 				 			 client.get(i1).setNom(sc.nextLine());
 			 				 			 break;
 			 				 	case(2): System.out.println("Veuillez entrer le nouveau numero de telephone de votre client: ");
	 				 			 		 client.get(i1).setTel(sc.nextLine());
	 				 			 		 break;
 			 				 } 
 			 			 }
 			 			 if(i1 < client.size()) i1++;
 			 			 else if(trouve1 == false) System.out.println("Veuillez recommencer votre recherche, client non trouvé");
 			 		 }
					 break;
			case(4): System.out.println("Veuillez entrer l'identifiant de votre client");
	 		 		 String id1 = sc.nextLine();
	 		 		 boolean trouve2 = false;
	 		 		 int i2 = 0;
	 		 		 
	 		 		 while(trouve2 == false)
	 		 		 {
	 		 		 if(id1.equals(client.get(i2).getIdentifiant()))
	 		 		 {
	 		 			 trouve2 = true;
	 		 			 client.remove(i2);
	 		 		 }
	 		 		 if(i2 < client.size()) i2++;
	 		 		 else if(trouve2 == false) System.out.println("Veuillez recommencer votre recherche, client non trouvé");
	 		 		 }
	 		 		 break;
	 		 		 
			case(5): System.out.println("Veuillez entrer le nom de l'article commande");
					 String nom2 = sc.nextLine();
					 boolean trouv = false;
					 int s = 0;
					 
					 while(trouv == false)
					 {
						 if(nom2.equals(article.get(s).getDescription()))
						 {
							 trouv = true;
							 Article com = article.get(s);
							 System.out.println("En quelle quantite voulez vous le commander?");
							 int quantit = sc.nextInt();
							 sc.nextLine();
							 System.out.println("Pour quel client est la commande? (Son nom)");
							 String cli = sc.nextLine();
							 boolean t = false;
							 int c1 = 0;
							 
							 while(t == false)
				 			 {
				 			 	if(cli.equals(client.get(c1).getNom()))
				 			 	{
				 			 		t = true;
				 			 		commande.add(new Commande(com,quantit,client.get(c1)));
				 			 		System.out.println("A quel poste de charge voulez vous confier cette commande?");
				 			 		String nom21 = sc.nextLine();
									 int i11 = -1;
									 boolean trouve11 = false;
									 
									 while(trouve11 == false)
									 {
										 i11++;
										 if(nom21.equals(pdc.get(i11).getNom())) trouve11 = true;
									 }
									 if(trouve11 == true)
									 {
										 if(pdc.get(i11).getBusy() == false)
										 {
											 System.out.println("Votre commande sera finie dans: " + commande.get(commande.size()-1).delai(pdc.get(i11)));
											 pdc.get(i11).setBusy(true);
										 }
									 }
									 else if(trouve11 == false)System.out.println("Poste de charge non trouvé veuillez recommencer votre recherche.");
				 			 	}
				 			 	if(c1 < client.size()) c1++;
				 			 	else if(t == false) System.out.println("Veuillez recommencer votre recherche client non trouvé");
				 			 }
						 }
						 if(s < article.size()) s++;
						 else if(trouv == false) System.out.println("Veuillez recommencer votre recherche article non trouvé");
					 }
					 break;
			case(6): break;
		}
	}

	private static void afficherMenuFournisseurs() 
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		
		System.out.println("De quoi avez vous besoin?");
		System.out.println("1) Creer un nouveau Fournisseur");
		System.out.println("2) Voir un Fournisseur");
		System.out.println("3) Modifier un Fournisseur");
		System.out.println("4) Supprimer un Fournisseur");
		System.out.println("5) Quitter");
		System.out.println("");
		
		menu = sc.nextInt();
		sc.nextLine();
		switch(menu)
		{
			case(1): String nom;
					 System.out.println("Veuillez entrer le nom de votre Fournisseur: "); 
					 nom = sc.nextLine();
					 String tel;
					 System.out.println("Veuillez entrer le numero de telephone de votre Fournisseur: ");
					 tel = sc.nextLine();
					 Fournisseur f = new Fournisseur(nom,tel);
					 fournisseur.add(f);
					 afficherMenuFournisseurs();
					 break;
						 
			 case(2): System.out.println("Voulez vous chercher votre fournisseur par nom(1) ou par identifiant(2) ?");
			 int menu2 = sc.nextInt();
			 sc.nextLine();
			 boolean trouve = false;
			 int i = 0;
			 
			 switch(menu2)
			 {
			 	case(1): System.out.println("Veuillez entrer le nom de votre fournisseur");
			 			 String nom1 = sc.nextLine();
			 			 while(trouve == false)
			 			 {
			 			 	if(nom1.equals(fournisseur.get(i).getNom()))
			 			 	{
			 			 		trouve = true;
			 			 		System.out.println("Voici votre fournisseur: " + fournisseur.get(i).toString());
			 			 	}
			 			 	if(i < fournisseur.size()) i++;
			 			 	else if(trouve == false) System.out.println("Veuillez recommencer votre recherche fournisseur non trouvé");
			 			 }
			 			 break;
			 			 
			 	case(2): System.out.println("Veuillez entrer l'identifiant de votre fournisseur");
	 			 		 String id = sc.nextLine();
	 			 		 while(trouve == false)
	 			 		 {
	 			 			 if(id.equals(fournisseur.get(i).getIdentifiant()))
	 			 			 {
	 			 				 trouve = true;
	 			 				 System.out.println("Voici votre fournisseur: " + fournisseur.get(i).toString());
	 			 			 }
	 			 			 if(i < fournisseur.size()) i++;
	 			 			 else if(trouve == false)System.out.println("Veuillez recommencer votre recherche, fournisseur non trouvé");
	 			 		 }
	 			 		 break;
			 }
			 break;
			 case(3): System.out.println("Quel fournisseur voulez vous modifier? Veuilez entrer son identifiant: ");
			 		  String id = sc.nextLine();
			 		  boolean trouve1 = false;
			 int i1 = 0;
			 int menu3;
			 
			 while(trouve1 == false)
	 		 {
	 			 if(id.equals(fournisseur.get(i1).getIdentifiant()))
	 			 {
	 				 trouve1 = true;
	 				 
	 				 System.out.println("Que voulez vous modifier: Le nom(1)\nLe numero de telephone(2)\n ?\n");
	 				 menu3 = sc.nextInt();
	 				sc.nextLine();
	 				 
	 				 switch(menu3)
	 				 {
	 				 	case(1): System.out.println("Veuillez entrer le nouveau nom de votre fournisseur: ");
	 				 			 fournisseur.get(i1).setNom(sc.nextLine());
	 				 			 break;
	 				 	case(2): System.out.println("Veuillez entrer le nouveau numero de telephone de votre fournisseur: ");
	 				 			 fournisseur.get(i1).setTel(sc.nextLine());
			 			 		 break;
	 				 } 
	 			 }
	 			 if(i1 < fournisseur.size()) i1++;
	 			 else if(trouve1 == false)System.out.println("Veuillez recommencer votre recherche, fournisseur non trouvé");
	 		 }
			 break;
	case(4): System.out.println("Veuillez entrer l'identifiant de votre fournisseur");
	 		 String id1 = sc.nextLine();
	 		 boolean trouve2 = false;
	 		 int i2 = 0;
	 		 
	 		 while(trouve2 == false)
	 		 {
	 		 if(id1.equals(fournisseur.get(i2).getIdentifiant()))
	 		 {
	 			 trouve2 = true;
	 			fournisseur.remove(i2);
	 		 }
	 		 if(i2 < fournisseur.size()) i2++;
	 		 else if(trouve2) System.out.println("Veuillez recommencer votre recherche, fournisseur non trouvé");
	 		 }
	 		 break;
			case(5): break;
		}
	}

	private static void afficherMenuArticle() 
	{
		Scanner sc = new Scanner(System.in); 
		int menu = -1;
		
		System.out.println("De quoi avez vous besoin?");
		System.out.println("1) Creer un nouvel Article");
		System.out.println("2) Voir un Article");
		System.out.println("3) Modifier un Article");
		System.out.println("4) Supprimer un Article");
		System.out.println("5) Quitter");
		System.out.println("");
		
		menu = sc.nextInt();
		sc.nextLine();
		switch(menu)
		{
			case(1): String type;
					 System.out.println("S'agit il d'une matiere premiere (1) ou d'un produit fini (2) ?"); 
					 if(sc.nextInt() == 1) type = "MP";
					 else type = "Produit fini";
					 sc.nextLine();
					 System.out.println("Entrez la description de votre article: ");
					 String description = sc.nextLine();
					 float prix;
					 System.out.println("Entrez le prix de votre article");
					 prix = sc.nextFloat();
					 Article a = new Article(type,description,prix);
					 article.add(a);
					 break;
						 
			case(2): System.out.println("Voulez vous chercher votre article par nom(1) ou par code(2) ?");
					 int menu2 = sc.nextInt();
					 sc.nextLine();
					 boolean trouve = false;
					 int i = 0;
					 
					 switch(menu2)
					 {
					 	case(1): System.out.println("Veuillez entrer la designation de votre article");
					 			 String nom = sc.nextLine();
					 			 while(trouve == false)
					 			 {
					 			 	if(nom.equals(article.get(i).getDescription()))
					 			 	{
					 			 		trouve = true;
					 			 		System.out.println("Voici votre article: " + article.get(i).toString());
					 			 	}
					 			 	if(i < article.size()) i++;
					 			 	else if(trouve == false) System.out.println("Veuillez recommencer votre recherche article non trouvé");
					 			 }
					 			 break;
					 			 
					 	case(2): System.out.println("Veuillez entrer le code de votre article");
			 			 		 String code = sc.nextLine();
			 			 		 while(trouve == false)
			 			 		 {
			 			 			 if(code.equals(article.get(i).getCode()))
			 			 			 {
			 			 				 trouve = true;
			 			 				 System.out.println("Voici votre article: " + article.get(i).toString());
			 			 			 }
			 			 			 if(i < article.size()) i++;
			 			 			 else if(trouve == false) System.out.println("Veuillez recommencer votre recherche, article non trouvé");
			 			 		 }
			 			 		 break;
					 }
					 break;
			case(3): System.out.println("Quel article voulez vous modifier? Veuilez entrer son code: ");
					 String code = sc.nextLine();
					 boolean trouve1 = false;
					 int i1 = 0;
					 int menu3;
					 
					 while(trouve1 == false)
 			 		 {
 			 			 if(code.equals(article.get(i1).getCode()))
 			 			 {
 			 				 trouve1 = true;
 			 				 
 			 				 System.out.println("Que voulez vous modifier: Le type(1)\nLe nom(2)\nLe prix(4) ?\n");
 			 				 menu3 = sc.nextInt();
 			 				sc.nextLine();
 			 				 
 			 				 switch(menu3)
 			 				 {
 			 				 	case(1): System.out.println("Veuillez entrer le nouveau type de votre article: ");
 			 				 			 article.get(i1).setType(sc.nextLine());		
 			 				 			 break;
 			 				 	case(2): System.out.println("Veuillez entrer la nouvelle description de votre article: ");
	 				 			 		 article.get(i1).setDescription(sc.nextLine());
	 				 			 		 break;
 			 				 	case(4): System.out.println("Veuillez entrer le nouveau prix de votre article: ");
 			 				 			 article.get(i1).setPrix(sc.nextFloat());
 			 				 			 break;
 			 				 }
 			 			 }
 			 			 if(i1 < article.size()) i1++;
 			 			 else if(trouve1 == false)System.out.println("Veuillez recommencer votre recherche, article non trouvé");
 			 		 }
					 break;
			case(4): System.out.println("Veuillez entrer le code de votre article");
	 		 		 String code1 = sc.nextLine();
	 		 		 boolean trouve2 = false;
	 		 		 int i2 = 0;
	 		 		 
	 		 		 while(trouve2 == false)
	 		 		 {
	 		 		 if(code1.equals(article.get(i2).getCode()))
	 		 		 {
	 		 			 trouve2 = true;
	 		 			 article.remove(i2);
	 		 		 }
	 		 		 if(i2 < article.size()) i2++;
	 		 		 else if(trouve2 == false)System.out.println("Veuillez recommencer votre recherche, article non trouvé");
	 		 		 }
	 		 		 break;
			case(5): break;
		}
	}
}
