//Id des blocs en mémoires public GrilleHoraire(Graphics grfx, Loader loader, DateTime date) { gfx = grfx; this.loader = loader; //DateTime renvoyer par la fonction getweekrange() laDate = date; //DateTime et une addition de timespan DateTime lundi = laDate; DateTime mardi = laDate.Add(new TimeSpan(24, 0, 0)); DateTime mercredi = laDate.Add(new TimeSpan(48, 0, 0)); DateTime jeudi = laDate.Add(new TimeSpan(72, 0, 0)); DateTime vendredi = laDate.Add(new TimeSpan(96, 0, 0)); DateTime samedi = laDate.Add(new TimeSpan(120, 0, 0)); DateTime dimanche = laDate.Subtract(new TimeSpan(24, 0, 0)); //Création des jours - ajouter les blocs existants jours[0] = new GrilleJour("Dimanche", dimanche, 1, 40, 20, grfx, loader, this); jours[1] = new GrilleJour("Lundi", lundi, 2, 140, 20, grfx, loader, this); jours[2] = new GrilleJour("Mardi", mardi, 3, 240, 20, grfx, loader, this); jours[3] = new GrilleJour("Mercredi", mercredi, 4, 340, 20, grfx, loader, this); jours[4] = new GrilleJour("Jeudi", jeudi, 5, 440, 20, grfx, loader, this); jours[5] = new GrilleJour("Vendredi", vendredi, 6, 540, 20, grfx, loader, this); jours[6] = new GrilleJour("Samedi", samedi, 7, 640, 20, grfx, loader, this); }
static void Main() { /* Loader loader = new Loader(); loader.loadPoste(); loader.LoadProfil(); loader.LoadEquipe(); loader.loadBloc(); CreateXml.CreateProfileXml(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new HoraireBeta(loader));*/ Loader l = new Loader(); l.loadPoste(); l.LoadProfil(); l.LoadEquipe(); l.loadBloc(); l.loadErreurs(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new HoraireBeta(l)); // TabSchedule t = new TabSchedule(); //t.generate(l.bloc, l.profilCharge); }
public HoraireBeta(Loader loader) { this.loader = loader; InitializeComponent(); FillInterface(); Graphics grfx = this.panelCentral_Horaire.CreateGraphics(); grille = new GrilleHoraire(grfx, loader, getDebutSemaine()); }
//Constructeur public GrilleJour(String jourText, DateTime laDate, int jour, int posx, int posy, Graphics grfx, Loader loader, GrilleHoraire grilleH) { this.jourText = jourText; this.jour = jour; dateDuJour = laDate; posX = posx; posY = posy; width = 100; height = 500; this.loader = loader; this.grfx = grfx; laGrille = grilleH; //Petit rectangle heightHeure = ((height - 20) / nbHeures); }
public int generate(List<Bloc> blocs, List<Ressource> employee) { int valide = 0; bool breakthefuck = false; for (int j = 0; j < employee.Count; j++) { //MessageBox.Show("Han? -4 : " + ((Profil)employee[j]).getHeuresMax() + " 2em Han :" + ((Profil)employee[j]).getHeuresTravaillees()); if (((Profil)employee[j]).getHeuresMax() > ((Profil)employee[j]).getHeuresTravaillees()) { for (int i = 0; i < blocs.Count; i++) { // MessageBox.Show("Han? -3"); if (!blocs[i].checkCompletion()) { Console.WriteLine(blocs[i].getId() + " " + blocs[i].getDebut() + " " + blocs[i].getFin()); for (int k = 0; k < ((Profil)employee.ElementAt(j)).getPref().Count; k++) { Console.WriteLine(" " + ((Profil)employee[j]).getNom() + " " + (((Profil)employee[j]).getPref()[k].getDebut()) + " " + (((Profil)employee[j]).getPref()[k].getFin()) + " " + ((Profil)employee[j]).getHeuresMax() + " " + ((Profil)employee[j]).getHeuresTravaillees() + " "); //MessageBox.Show("Han? -2"); //si l'heure de début et avant le début du bloc, et l'heure de fin est après la fin du bloc, et le jour de la semaine est le même et que l'employé n'as pas dépassé son quota d'heure if (Convert.ToInt32(((Profil)employee[j]).getPref()[k].getDebut().ToString("HHmm")) <= Convert.ToInt32(blocs[i].getDebut().ToString("HHmm")) && Convert.ToInt32(((Profil)employee[j]).getPref()[k].getFin().ToString("HHmm")) >= Convert.ToInt32(blocs[i].getFin().ToString("HHmm")) && ((Profil)employee[j]).getHeuresMax() > ((Profil)employee[j]).getHeuresTravaillees() && ((Profil)employee[j]).getPref()[k].getDebut().DayOfWeek.Equals(blocs[i].getDebut().DayOfWeek) && !blocs[i].estDejaPresent(employee[j])) { for (int l = 0; l < ((Profil)employee[j]).getPoste().Count; l++) { //MessageBox.Show("Han? -1"); if (blocs[i].estVoulue(((Profil)employee[j]).getPoste(l)) && !blocs[i].estDejaPresent(employee[j])) { blocs[i].addRessource(((Profil)employee[j]), ((Profil)employee[j]).getPoste(l)); //MessageBox.Show("han?"); //pour sortir des boucles useless; l = ((Profil)employee[j]).getPoste().Count; k = ((Profil)employee.ElementAt(j)).getPref().Count; if (((Profil)employee[j]).getHeuresMax() > ((Profil)employee[j]).getHeuresTravaillees()) i = blocs.Count; } coun++; } } } } } } } for (int j = 0; j < employee.Count; j++) { if (((Profil)employee[j]).getHeuresMax() > ((Profil)employee[j]).getHeuresTravaillees()) { for (int i = 0; i < blocs.Count; i++) { if (!blocs[i].checkCompletion()) { Console.WriteLine(blocs[i].getId() + " " + blocs[i].getDebut() + " " + blocs[i].getFin()); for (int k = 0; k < ((Profil)employee.ElementAt(j)).getDispo().Count; k++) { //si l'heure de début et avant le début du bloc, et l'heure de fin est après la fin du bloc, et le jour de la semaine est le même et que l'employé n'as pas dépassé son quota d'heure if (Convert.ToInt32(((Profil)employee[j]).getDispo()[k].getDebut().ToString("HHmm")) <= Convert.ToInt32(blocs[i].getDebut().ToString("HHmm")) && Convert.ToInt32(((Profil)employee[j]).getDispo()[k].getFin().ToString("HHmm")) >= Convert.ToInt32(blocs[i].getFin().ToString("HHmm")) && ((Profil)employee[j]).getHeuresMax() > ((Profil)employee[j]).getHeuresTravaillees() && ((Profil)employee[j]).getDispo()[k].getDebut().DayOfWeek.Equals(blocs[i].getDebut().DayOfWeek) && !blocs[i].estDejaPresent(employee[j])) { for (int l = 0; l < ((Profil)employee[j]).getPoste().Count; l++) { Console.WriteLine(" " + ((Profil)employee[j]).getNom() + " " + (((Profil)employee[j]).getDispo()[k].getDebut()) + " " + (((Profil)employee[j]).getDispo()[k].getFin()) + " " + ((Profil)employee[j]).getHeuresMax() + " " + ((Profil)employee[j]).getHeuresTravaillees() + " "); if (blocs[i].estVoulue(((Profil)employee[j]).getPoste(l)) && !blocs[i].estDejaPresent(employee[j])) { blocs[i].addRessource(((Profil)employee[j]), ((Profil)employee[j]).getPoste(l)); MessageBox.Show("han?"); //pour sortir des boucles useless; l = ((Profil)employee[j]).getPoste().Count; k = ((Profil)employee.ElementAt(j)).getDispo().Count; } coun++; } } } } } } } for (int i = 0; i < blocs.Count; i++) { if (!(blocs[i].checkCompletion()) && l.erreur.Count > 1) { l.returnErreur(1); } coun++; } for (int i = 0; i < blocs.Count; i++) { for (int j = 0; j < blocs[i].getRessourceVoulus().Count; j++) { if (blocs[i].getRessourceVoulus(j).nbAffectee == 0 && l.erreur.Count > 2) { l.returnErreur(2); } coun++; } } foreach (Bloc bloc in blocs) { bloc.save(); } MessageBox.Show(coun+""); return valide; }