예제 #1
0
        public List <Ressource> LoadProfil()
        {
            DataTable rs;
            DataTable rs2;
            DataTable rs3;
            DataTable rs4;


            int i = 0;

            rs = proc.getAllProfil();

            while (i < rs.Rows.Count)
            {
                if (rs.Rows[i]["prenom"].ToString() != "")
                {
                    Profil newprof = new Profil(Convert.ToInt32(rs.Rows[i]["idProfil"].ToString()), rs.Rows[i]["prenom"].ToString(), rs.Rows[i]["nom"].ToString(), rs.Rows[i]["email"].ToString(), rs.Rows[i]["phoneNumber"].ToString(), Convert.ToInt32(rs.Rows[i]["seniority"].ToString()), Convert.ToInt32(rs.Rows[i]["quotaHeureMax"].ToString()));


                    if (posteCharge.Count != 0)
                    {
                        rs2 = proc.getProfilPoste(newprof.getId());

                        for (int j = 0; j < rs2.Rows.Count; j++)
                        {
                            int k = 0;
                            // MessageBox.Show(Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) + "" + posteCharge[k].getId());
                            while (k < posteCharge.Count && Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) != posteCharge[k++].getId())
                            { //MessageBox.Show(Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) +""+ posteCharge[k].getId());
                            }

                            newprof.setPoste((Poste)posteCharge[--k]);
                        }
                    }

                    rs3 = proc.getProfilDispo(newprof.getId());
                    rs4 = proc.getProfilPreference(newprof.getId());
                    Console.WriteLine(rs4.Rows.Count + "");
                    for (int j = 0; j < rs3.Rows.Count; j++)
                    {
                        Bloc newBloc = new Bloc(DateTime.ParseExact(rs3.Rows[j]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rs3.Rows[j]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), 0, Convert.ToInt32(rs3.Rows[j]["idPlage"].ToString()));



                        newprof.addDispo(newBloc);
                    }

                    for (int j = 0; j < rs4.Rows.Count; j++)
                    {
                        Bloc newBloc = new Bloc(DateTime.ParseExact(rs4.Rows[j]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rs4.Rows[j]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), 0, Convert.ToInt32(rs4.Rows[j]["idPlage"].ToString()), Convert.ToInt32(rs4.Rows[j]["idPlage"].ToString()));
                        newprof.addPref(newBloc);
                    }

                    profilCharge.Add(newprof);
                }
                i++;
            }

            return(profilCharge);
        }
예제 #2
0
        public void createBlock(int x, int heureDebut, DateTime debut, DateTime fin)
        {
            string hDebut = heureDebut + "";
            string hFin   = (heureDebut + 1) + "";

            CreationBloc creationbloc = new CreationBloc(hDebut, hFin);

            creationbloc.ShowDialog();

            if (creationbloc.isValide())
            {
                //Compute Nouvelle Date ** Ajouter validation **
                int  dateDebut = int.Parse(creationbloc.getHd());
                int  dateFin   = int.Parse(creationbloc.getHf());
                bool isPreset  = creationbloc.getPreset();



                DateTime tempDebut = new DateTime(debut.Year, debut.Month, debut.Day, dateDebut, debut.Minute, debut.Second);
                DateTime tempFin   = new DateTime(fin.Year, fin.Month, fin.Day, dateFin, fin.Minute, fin.Second) - new TimeSpan(0, 0, 0, 1);


                //Affecte le bloc



                Bloc tempBloc = new Bloc(tempDebut, tempFin, 0, 0, isPreset);



                if (placementValide(tempBloc))
                {
                    if (profil != null)
                    {
                        if (loader == null && laGrille.isPref)
                        {
                            profil.addPref(tempBloc);
                        }
                        else
                        if (loader == null && !laGrille.isPref)
                        {
                            profil.addDispo(tempBloc);
                        }
                        tempBloc.draw(width, grfx);
                    }
                    else
                    {
                        //Ajout du block valide
                        tempBloc.draw(width, grfx);
                        loader.bloc.Add(tempBloc);
                    }
                }
                else
                {
                    MessageBox.Show("Placement invalide");
                }
            }

            creationbloc.Dispose();
        }
예제 #3
0
        public void addPreset(Bloc bloc, int x)
        {
            TimeSpan dateDebut = new TimeSpan(bloc.getDebut().Hour, bloc.getDebut().Minute, bloc.getDebut().Second);
            TimeSpan dateFin   = new TimeSpan(bloc.getFin().Hour, bloc.getFin().Minute, bloc.getFin().Second);



            DateTime tempDebut = new DateTime(this.dateDuJour.Year, this.dateDuJour.Month, this.dateDuJour.Day) + dateDebut;
            DateTime tempFin   = new DateTime(this.dateFin.Year, this.dateFin.Month, this.dateFin.Day) + dateFin;


            Bloc tempBloc = new Bloc(tempDebut, tempFin, 0, 0, true);

            tempBloc.setRessourceAffectes(bloc.getRessourceAffectes());
            tempBloc.setRessourceVoulus(bloc.getListRessourceVoulus());
            tempBloc.setId(bloc.getId());



            if (placementValide(tempBloc))
            {
                //Ajout du block valide
                tempBloc.draw(width, grfx);
                loader.bloc.Add(tempBloc);
                tempBloc.save(true);
            }
            else
            {
                MessageBox.Show("Placement invalide");
            }
        }
예제 #4
0
        public bool modifierBloc(Bloc leBloc, Bloc leBloc2, bool isPref)
        {
            int         nbBloc;
            bool        blocTrouve = false;
            List <Bloc> blocs      = null;

            if (isPref)
            {
                blocs = getPref();
            }
            else
            {
                blocs = getDispo();
            }

            nbBloc = blocs.Count;
            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (blocs[i].getDebut() == leBloc.getDebut())
                {
                    blocs[i]   = leBloc2;
                    blocTrouve = true;
                    break;
                }
            }

            return(blocTrouve);
        }
예제 #5
0
        public List <Bloc> loadBloc()
        {
            DataTable rsBloc;
            DataTable rsRessource;

            rsBloc = proc.getAllBlock();
            int k = 0;

            for (int i = 0; i < rsBloc.Rows.Count; i++)
            {
                bool isPreset = false;



                if (Convert.ToInt32(rsBloc.Rows[i]["preset"]) == 1)
                {
                    isPreset = true;
                }



                Bloc newBloc = new Bloc(DateTime.ParseExact(rsBloc.Rows[i]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rsBloc.Rows[i]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), Convert.ToInt32(rsBloc.Rows[i]["idType"].ToString()), Convert.ToInt32(rsBloc.Rows[i]["idBlock"].ToString()), isPreset);



                bloc.Add(newBloc);
                rsRessource = proc.getRessource(bloc[i].getId());
                for (int j = 0; j < rsRessource.Rows.Count; j++)
                {
                    if (rsRessource.Rows[j]["idPoste"] != null)
                    {
                        int id = Convert.ToInt32(rsRessource.Rows[j]["idPoste"].ToString());
                        k = 0;
                        while (k < posteCharge.Count && id != posteCharge[k++].getId())
                        {
                            ;
                        }
                        bloc[i].addRessourceVoulue(Convert.ToInt32(rsRessource.Rows[j]["number"]), posteCharge[--k]);
                    }
                    else
                    {
                        int id = Convert.ToInt32(rsRessource.Rows[j]["idTeam"].ToString());
                        k = 0;
                        while (k < equipe.Count && id != equipe[k++].getId())
                        {
                            ;
                        }
                        bloc[i].addRessourceVoulue(Convert.ToInt32(rsRessource.Rows[j]["number"]), equipe[--k]);
                    }
                }
            }

            return(bloc);
        }
예제 #6
0
        public void draw(Bloc bloc, int i, Graphics gfx)
        {
            Font laFont = new Font("Arial", 16);
            SolidBrush brush = new SolidBrush(Color.Red);

            int x = bloc.getX();
            int y = bloc.getY() + (i * 20) + 20;

            Point coin = new Point(x, y);

            gfx.DrawString(nom, laFont, brush, coin);
        }
예제 #7
0
        public void draw(Bloc bloc, int i, Graphics gfx)
        {
            Font       laFont = new Font("Arial", 16);
            SolidBrush brush  = new SolidBrush(Color.Red);


            int x = bloc.getX();
            int y = bloc.getY() + (i * 20) + 20;

            Point coin = new Point(x, y);

            gfx.DrawString(nom, laFont, brush, coin);
        }
예제 #8
0
        //Retourne vrai si le placement est valide
        public bool placementValide(Bloc leBloc)
        {
            //Variables
            //Retirer lui-même du tableau
            int indexBloc = -1;
            int heureTempDebut;

            // MessageBox.Show("Heure temp "+tempHd);
            try
            {
                heureTempDebut = Int16.Parse(tempHd);
            }
            catch (Exception)
            {
                // MessageBox.Show("Erreur de parse");
                throw;
            }

            //Trouve son index
            for (int i = 0; i < listBloc.Count; i++)
            {
                //  MessageBox.Show("Heure de départ : " + listBloc[i].getDebut().Hour);
                if (listBloc[i].getDebut().Hour.Equals(heureTempDebut))
                {
                    indexBloc = i;
                    //  MessageBox.Show("Index du bloc :" + indexBloc);
                    break;
                }
            }
            //  MessageBox.Show("Début : " + leBloc.getDebut().Hour + " Fin : " + leBloc.getFin().Hour);

            for (int i = 0; i < listBloc.Count; i++)
            {/*
              * //Sois le bloc ajouté enpiète sur la fin du bloc existant ou sur le debut du bloc existant
              * if (((( leBloc.getDebut().Hour < listBloc[i].getFin().Hour && leBloc.getFin().Hour > listBloc[i].getFin().Hour)
              || (leBloc.getFin().Hour > listBloc[i].getDebut().Hour && leBloc.getDebut().Hour < listBloc[i].getDebut().Hour)
              || (leBloc.getDebut().Hour < listBloc[i].getDebut().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour)))
              ||    && (indexBloc != i))//Différent de lui-même*/
             //MessageBox.Show("Première condition : " + (leBloc.getDebut().Hour < listBloc[i].getFin().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour) + " \nDeuxième condition : " + (leBloc.getFin().Hour > listBloc[i].getDebut().Hour && leBloc.getDebut().Hour < listBloc[i].getDebut().Hour) + " \n Troisième condition : " + (leBloc.getDebut().Hour < listBloc[i].getDebut().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour) + " \n Index : " + (indexBloc != i));


                if (((leBloc.getDebut().Hour < listBloc[i].getFin().Hour&& leBloc.getFin().Hour > listBloc[i].getDebut().Hour) ||
                     (leBloc.getFin().Hour > listBloc[i].getDebut().Hour&& leBloc.getDebut().Hour < listBloc[i].getDebut().Hour) ||
                     (leBloc.getDebut().Hour <listBloc[i].getDebut().Hour&& leBloc.getFin().Hour> listBloc[i].getDebut().Hour)) &&
                    (indexBloc != i)) //Différent de lui-même*/
                {
                    return(false);    //Bloc existant
                }
            }
            return(true); //Aucun accros
        }
예제 #9
0
        //Retourne vrai si le placement est valide
        public bool placementValide(Bloc leBloc)
        {
            //Variables
            //Retirer lui-même du tableau
            int indexBloc = -1;
            int heureTempDebut;

               // MessageBox.Show("Heure temp "+tempHd);
            try
                {
                heureTempDebut = Int16.Parse(tempHd);
                }
            catch (Exception)
                {
               // MessageBox.Show("Erreur de parse");
                throw;
                }

            //Trouve son index
            for (int i = 0; i < listBloc.Count; i++)
                {
                  //  MessageBox.Show("Heure de départ : " + listBloc[i].getDebut().Hour);
                if (listBloc[i].getDebut().Hour.Equals(heureTempDebut))
                    {
                    indexBloc = i;
                  //  MessageBox.Show("Index du bloc :" + indexBloc);
                    break;
                    }
                }
              //  MessageBox.Show("Début : " + leBloc.getDebut().Hour + " Fin : " + leBloc.getFin().Hour);

            for (int i = 0; i < listBloc.Count; i++)
            {/*
                //Sois le bloc ajouté enpiète sur la fin du bloc existant ou sur le debut du bloc existant
                if (((( leBloc.getDebut().Hour < listBloc[i].getFin().Hour && leBloc.getFin().Hour > listBloc[i].getFin().Hour)
                    || (leBloc.getFin().Hour > listBloc[i].getDebut().Hour && leBloc.getDebut().Hour < listBloc[i].getDebut().Hour)
                    || (leBloc.getDebut().Hour < listBloc[i].getDebut().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour)))
                    && (indexBloc != i))//Différent de lui-même*/
                //MessageBox.Show("Première condition : " + (leBloc.getDebut().Hour < listBloc[i].getFin().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour) + " \nDeuxième condition : " + (leBloc.getFin().Hour > listBloc[i].getDebut().Hour && leBloc.getDebut().Hour < listBloc[i].getDebut().Hour) + " \n Troisième condition : " + (leBloc.getDebut().Hour < listBloc[i].getDebut().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour) + " \n Index : " + (indexBloc != i));

                if (((leBloc.getDebut().Hour < listBloc[i].getFin().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour)
                    || (leBloc.getFin().Hour > listBloc[i].getDebut().Hour && leBloc.getDebut().Hour < listBloc[i].getDebut().Hour)
                    || (leBloc.getDebut().Hour < listBloc[i].getDebut().Hour && leBloc.getFin().Hour > listBloc[i].getDebut().Hour))
                    && (indexBloc != i))//Différent de lui-même*/
                    {
                    return false; //Bloc existant
                    }

            }
            return true; //Aucun accros
        }
예제 #10
0
        public void passeClique(MouseEventArgs e, String mouse)
        {
            if (mouse == "MouseDown")
            {
                if ((e.X >= posX) && (e.X < (posX + 100)))
                {
                    //Vérifis si le clique touche un bloc
                    // blocs = loader.getBlocFromDate(dateDuJour);
                    if (blocs != null)
                    {
                        for (int i = 0; i < blocs.Count; i++)
                        {
                            //Vérifis les Y des blocs
                            if ((e.Y >= blocs.ElementAt(i).getY()) && (e.Y <= blocs.ElementAt(i).getYFin()))
                            {
                                //Si je sélectionne déjàs un bloc
                                if (selectionEnCours != null)
                                {
                                    selectionEnCours.unSelectIt();
                                }
                                //Affectation du nouveau Bloc
                                blocs.ElementAt(i).selectIt();
                                selectionEnCours = blocs.ElementAt(i);

                                laGrille.refresh();
                            }
                        }
                    }

                    //Détecteur de bloc
                    if ((e.Y > 40) && (e.Y < 60))
                    {
                        // grfx.FillRectangle(myBlueBrush, posX + 1, e.Y, width - 1, heightHeure);

                        dateDuJour = new DateTime(dateDuJour.Year, dateDuJour.Month, dateDuJour.Day, 1, 0, 0);
                        dateFin    = new DateTime(dateDuJour.Year, dateDuJour.Month, dateDuJour.Day, 2, 0, 0);
                        createBlock(posX, 40, dateDuJour, dateFin);
                    }
                }
            }


            if (mouse == "MouseUp")
            {
                if (mousepush)
                {
                }
            }
        }
예제 #11
0
 public bool placementValide(Bloc leBloc)
 {
     //Variables
     for (int i = 0; i < blocs.Count; i++)
     {
         //Sois le bloc ajouté enpiète sur la fin du bloc existant ou sur le debut du bloc existant
         if ((leBloc.getDebut() < blocs[i].getFin() && leBloc.getFin() > blocs[i].getFin()) ||
             (leBloc.getFin() > blocs[i].getDebut() && leBloc.getDebut() < blocs[i].getDebut()) ||
             (leBloc.getFin() == blocs[i].getFin() || leBloc.getDebut() == blocs[i].getDebut()))
         {
             return(false); //Bloc existant
         }
     }
     return(true); //Aucun accros
 }
예제 #12
0
        public void fillEmployeListBox(Bloc bloc)
        {
            listEmploye.Items.Clear();

            List<Ressource> ressources = bloc.getListRessourceAffecte();
            for (int i = 0; i < ressources.Count(); i++)
            {

                // Add the employee name to the listbox.
                if (ressources.ElementAt(i) is Profil)
                {
                    listEmploye.Items.Add(((Profil)ressources.ElementAt(i)).getId() + " - " + ((Profil)ressources.ElementAt(i)).getNom() + " " + ((Profil)ressources.ElementAt(i)).getPrenom());
                }

            }
        }
예제 #13
0
        public void fillEquipeListBox(Bloc bloc)
        {
            listEquipe.Items.Clear();
            List<Ressource> ressources = bloc.getListRessourceAffecte();

            // MessageBox.Show(bloc.getListRessourceAffecte().Count.ToString());

            for (int i = 0; i < ressources.Count(); i++)
            {
                if (ressources.ElementAt(i) is Equipe)
                {
                    // Add the employee name to the listbox.
                    listEquipe.Items.Add(((Equipe)ressources.ElementAt(i)).getNom());
                }

            }
        }
예제 #14
0
        //Modifis le bloc correspondant a celui fournis
        public bool modifierBloc(Bloc leBloc, Bloc leBloc2)
        {
            int  nbBloc     = bloc.Count;
            bool blocTrouve = false;

            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (bloc[i].getDebut() == leBloc.getDebut())
                {
                    bloc[i]    = leBloc2;
                    blocTrouve = true;
                    break;
                }
            }

            return(blocTrouve);
        }
예제 #15
0
        //Supprime le bloc correspondant a celui fournis
        public bool supprimerBloc(Bloc leBloc)
        {
            bool supConf = false;
            int  nbBloc  = bloc.Count;

            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (bloc[i].getDebut() == leBloc.getDebut())
                {
                    // bloc.Remove(bloc.ElementAt(i));
                    bloc.RemoveAt(i);
                    supConf = true;
                    break;
                }
            }

            return(supConf);
        }
예제 #16
0
        public void modifierBlock(Bloc leBloc)
        {
            string hDebut = leBloc.getDebut().Hour + "";
            string hFin = (leBloc.getFin().Hour + 1) + "";
            bool preset = leBloc.getPreset();

            DateTime debut = leBloc.getDebut();
            DateTime fin = leBloc.getFin();

            ModificationBloc modifbloc = new ModificationBloc(hDebut, hFin, preset, blocs);
            modifbloc.ShowDialog();

            if (modifbloc.isValide())
            {
                if (modifbloc.getCommande() == 0)
                {
                    //Modification d'un bloc
                    //Compute Nouvelle Date ** Ajouter validation **

                    int dateDebut = int.Parse(modifbloc.getHd());
                    int dateFin = int.Parse(modifbloc.getHf());

                    DateTime tempDebut = new DateTime(debut.Year, debut.Month, debut.Day, dateDebut, debut.Minute, debut.Second);
                    DateTime tempFin = new DateTime(fin.Year, fin.Month, fin.Day, dateFin - 1, fin.Minute, fin.Second);

                    Bloc leBloc2 = leBloc;
                    leBloc2.setDebut(tempDebut);
                    leBloc2.setFin(tempFin);
                    leBloc2.setPreset(modifbloc.getPreset());

                    if (modifbloc.placementValide(leBloc2))
                    {

                        if (loader != null && loader.modifierBloc(leBloc, leBloc2))
                        { //Ajout du bloc confirmé

                        } //
                        else
                        {
                            if (loader != null)
                                MessageBox.Show("Bloc introuvable");
                            else
                            {

                                if (profil != null && laGrille.isPref && profil.modifierBloc(leBloc, leBloc2, true))
                                { //lolnigger

                                }
                                else
                                {
                                    if (profil != null && !laGrille.isPref && profil.modifierBloc(leBloc, leBloc2, false))
                                    { //lolnigger

                                    }
                                }

                            }

                        }
                    }
                    else
                    {

                    }
                }

                else
                //Suppression d'un Bloc
                {
                    if (profil == null)
                        loader.supprimerBloc(leBloc);
                    else
                    {
                        if (loader == null && laGrille.isPref)
                            profil.getPref().Remove(leBloc);
                        else
                        {
                            if (loader == null && !laGrille.isPref)
                                profil.getDispo().Remove(leBloc);
                        }

                    }

                DBConnect uneConnect = new DBConnect();
                uneConnect.deleteBlock(leBloc.getId());
                }

            }
            modifbloc.Dispose();
        }
예제 #17
0
 private void UnlinkBlocToRessource(Ressource res, Bloc bloc)
 {
     for (int i = 0; i < bloc.getListRessourceAffecte().Count; i++)
     {
         if (res == bloc.getListRessourceAffecte()[i])
             bloc.getListRessourceAffecte().Remove(res);
     }
 }
예제 #18
0
        private Boolean LinkBlocToRessource(Ressource res, Bloc bloc)
        {
            bool retourne = true;
            NbPoste showPosteDialog;
            if (res is Profil)
                bloc.addProfil((Profil)res);
            else
                if (res is Equipe)
                    bloc.addRessource((Equipe)res);
                else
                    if (res is Poste)
                    {
                        if (bloc.estVoulue(res))
                            showPosteDialog = new NbPoste(res.getNom(), bloc.getRessourceVoulus(res).nbVoulue);
                        else
                            showPosteDialog = new NbPoste();

                        showPosteDialog.ShowDialog();
                        if (showPosteDialog.confirm)
                        {

                            if (!bloc.estVoulue(res))
                            {
                                if (Convert.ToInt32(showPosteDialog.nb) > 0)
                                bloc.addRessourceVoulue(Convert.ToInt32(showPosteDialog.nb), (Poste)res);
                            }
                            else
                            {
                                if (Convert.ToInt32(showPosteDialog.nb) <= 0)
                                {
                                    bloc.removeRessourceVoulu(bloc.getRessourceVoulus(res));
                                    retourne = false;
                                }
                                else
                                {
                                    RessourceEntree holy = bloc.getRessourceVoulus(res);
                                    holy.nbVoulue = Convert.ToInt32(showPosteDialog.nb);
                                    bloc.getRessourceVoulus().RemoveAt(bloc.getiRessourceVoulus(res));
                                    bloc.addRessourceVoulue(holy);
                                }

                            }
                            //grille.refresh();
                            //FillInterface();
                            fillPosteListBox(bloc);
                           // FillTree();
                            //todo eille fadrait que ca edit un moment donné ca
                            //faut passer un int a nbposte, pis savoir que t'es en mode édit qq part
                        }
                        showPosteDialog.Dispose();
                    }
                    else
                    {
                        String nb = "";
                        int position;
                        bool existe = false;

                        for (position = 0; position < bloc.getRessourceVoulus().Count; position++)
                        {

                            if (((Poste)bloc.getRessourceVoulus(position).voulue).getNom().Equals(((Poste)res).getNom()))
                            {
                                nb = bloc.getRessourceVoulus(position).nbVoulue.ToString();
                                // MessageBox.Show(nb);
                                existe = true;
                                break;
                            }
                        }
                    }
            return retourne;
        }
예제 #19
0
        public List<Ressource> LoadProfil()
        {
            DataTable rs;
            DataTable rs2;
            DataTable rs3;
            DataTable rs4;

            int i = 0;
            rs = proc.getAllProfil();

            while (i < rs.Rows.Count)
            {

                if (rs.Rows[i]["prenom"].ToString() != "")
                {
                    Profil newprof = new Profil(Convert.ToInt32(rs.Rows[i]["idProfil"].ToString()), rs.Rows[i]["prenom"].ToString(), rs.Rows[i]["nom"].ToString(), rs.Rows[i]["email"].ToString(), rs.Rows[i]["phoneNumber"].ToString(), Convert.ToInt32(rs.Rows[i]["seniority"].ToString()), Convert.ToInt32(rs.Rows[i]["quotaHeureMax"].ToString()));

                    if (posteCharge.Count != 0)
                    {

                        rs2 = proc.getProfilPoste(newprof.getId());

                        for (int j = 0; j < rs2.Rows.Count; j++)
                        {
                            int k = 0;
                           // MessageBox.Show(Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) + "" + posteCharge[k].getId());
                            while (k<posteCharge.Count && Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) != posteCharge[k++].getId())
                            { //MessageBox.Show(Convert.ToInt32(rs2.Rows[j]["idPoste"].ToString()) +""+ posteCharge[k].getId());
                            }

                            newprof.setPoste((Poste)posteCharge[--k]);
                        }

                    }

                    rs3 = proc.getProfilDispo(newprof.getId());
                    rs4 = proc.getProfilPreference(newprof.getId());
                    Console.WriteLine(rs4.Rows.Count+"");
                    for (int j = 0; j < rs3.Rows.Count; j++)
                    {

                        Bloc newBloc = new Bloc(DateTime.ParseExact(rs3.Rows[j]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rs3.Rows[j]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), 0, Convert.ToInt32(rs3.Rows[j]["idPlage"].ToString() ));

                        newprof.addDispo(newBloc);

                    }

                    for (int j = 0; j < rs4.Rows.Count; j++)
                    {
                        Bloc newBloc = new Bloc(DateTime.ParseExact(rs4.Rows[j]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rs4.Rows[j]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), 0, Convert.ToInt32(rs4.Rows[j]["idPlage"].ToString()), Convert.ToInt32(rs4.Rows[j]["idPlage"].ToString()));
                        newprof.addPref(newBloc);
                    }

                    profilCharge.Add(newprof);

                }
                i++;

            }

            return (profilCharge);
        }
예제 #20
0
 public void addDispo(Bloc dispo)
 {
     disponibilite.Add(dispo);
 }
예제 #21
0
 private void pCentral_Horaire_OnMouseDown(object sender, MouseEventArgs e)
 {
     switch (e.Button)
         {
         case MouseButtons.Left:
                 grille.passeClique(e, "MouseDown", presetSelected);
                 listPoste.Items.Clear();
                 listEmploye.Items.Clear();
                 listEquipe.Items.Clear();
             break;
         case MouseButtons.Right:
                 presetSelected = null;
                 listPreset.ClearSelected();
             break;
         }
 }
예제 #22
0
        public void addPreset(Bloc bloc, int x)
        {
            TimeSpan dateDebut = new TimeSpan(bloc.getDebut().Hour, bloc.getDebut().Minute, bloc.getDebut().Second);
                TimeSpan dateFin = new TimeSpan(bloc.getFin().Hour, bloc.getFin().Minute, bloc.getFin().Second);

                DateTime tempDebut = new DateTime(this.dateDuJour.Year, this.dateDuJour.Month, this.dateDuJour.Day)+dateDebut;
                DateTime tempFin = new DateTime(this.dateFin.Year, this.dateFin.Month, this.dateFin.Day) +dateFin;

                Bloc tempBloc = new Bloc(tempDebut, tempFin, 0, 0, true);

                tempBloc.setRessourceAffectes(bloc.getRessourceAffectes());
                tempBloc.setRessourceVoulus(bloc.getListRessourceVoulus());
                tempBloc.setId(bloc.getId());

                if (placementValide(tempBloc))
                {
                    //Ajout du block valide
                    tempBloc.draw(width, grfx);
                    loader.bloc.Add(tempBloc);
                    tempBloc.save(true);
                }
                else
                    MessageBox.Show("Placement invalide");
        }
예제 #23
0
 public void draw(Bloc bloc, int i, Graphics gfx)
 {
 }
예제 #24
0
 public void addDispo(Bloc dispo)
 {
     disponibilite.Add(dispo);
 }
예제 #25
0
        public bool placementValide(Bloc leBloc)
        {
            //Variables
            for (int i = 0; i < blocs.Count; i++)
                {
                //Sois le bloc ajouté enpiète sur la fin du bloc existant ou sur le debut du bloc existant
                if ( (leBloc.getDebut() < blocs[i].getFin() && leBloc.getFin() > blocs[i].getFin())
                    || (leBloc.getFin() > blocs[i].getDebut() && leBloc.getDebut() < blocs[i].getDebut())
                    || (leBloc.getFin() == blocs[i].getFin() || leBloc.getDebut() == blocs[i].getDebut()))
                    {
                    return false; //Bloc existant
                    }

                }
            return true; //Aucun accros
        }
예제 #26
0
        public void passeClique(MouseEventArgs e, String mouse, Bloc preset = null)
        {
            if (mouse == "MouseDown")
            {
                if (preset != null)
                {
                    for (int i = 0; i < 7; i++)
                    {
                        //Sélection du bon jours
                        if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                        {
                            //Jour cliquer
                            jourCliquer = jours[i];

                            //DateTime 1 heure plus tard
                            DateTime tempDateFin = jourCliquer.getDate();

                            if (jourCliquer.getHeureClique(e.Y) >= 0)
                            {
                                if (jourCliquer.getHeureClique(e.Y) >= 0)
                                {
                                    //Création du bloc
                                    //  refresh();
                                    jourCliquer.addPreset(preset, jourCliquer.getX());
                                    refresh();
                                }
                            }

                        }
                    }

                }
                else
                {
                    Boolean blocUnselected = false;

                    for (int i = 0; i < 7; i++)
                    {
                        //Sélection du bon jours
                        if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                        {
                            //Jour cliquer
                            jourCliquer = jours[i];
                        }
                    }

                            //Sélection d'un bloc existant
                            if (selectionEnCours != null)
                            {
                                selectionEnCours.unSelectIt();
                                blocUnselected = true;
                                refresh();
                            }
                            selectionEnCours = jourCliquer.selectionneUnBloc(e.Y);
                            if (selectionEnCours != null)
                            {
                                selectionEnCours.selectIt();
                                refresh();

                            }
                            //Si appuis dans le vide
                            else
                            {

                                    if (!blocUnselected)
                                    {
                                        {
                                            //DateTime 1 heure plus tard
                                            DateTime tempDateFin = jourCliquer.getDate();

                                            if (jourCliquer.getHeureClique(e.Y) >= 0)
                                            {
                                                if (jourCliquer.getHeureClique(e.Y) >= 0)
                                                {
                                                    //Création du bloc
                                                    //  refresh();
                                                    jourCliquer.createBlock(jourCliquer.getX(), jourCliquer.getHeureClique(e.Y),
                                                        jourCliquer.getDate(), tempDateFin);
                                                    refresh();
                                                }
                                            }

                                        }
                                    }

                    }
                }

            }//Fin du MouseUp
            if (mouse == "MouseUp")
            {

            }

            if (mouse == "DoubleClick")
            {
                for (int i = 0; i < 7; i++)
                {
                    //Sélection du bon jours
                    if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                    {
                        //Jour cliquer
                        jourCliquer = jours[i];

                        //Sélection d'un bloc existant
                        if (selectionEnCours != null)
                        {
                            jourCliquer.modifierBlock(selectionEnCours);
                            refresh();

                        }

                    }

                }

            }
        }
예제 #27
0
        public bool modifierBloc(Bloc leBloc, Bloc leBloc2, bool isPref)
        {
            int nbBloc;
            bool blocTrouve = false;
            List<Bloc> blocs = null;

            if (isPref)
                blocs = getPref();
            else
                {
                blocs = getDispo();
                }

            nbBloc = blocs.Count;
            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (blocs[i].getDebut() == leBloc.getDebut())
                {
                    blocs[i] = leBloc2;
                    blocTrouve = true;
                    break;
                }

            }

            return blocTrouve;
        }
예제 #28
0
        //Supprime le bloc correspondant a celui fournis
        public bool supprimerBloc(Bloc leBloc)
        {
            bool supConf = false;
            int nbBloc = bloc.Count;
            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (bloc[i].getDebut() == leBloc.getDebut())
                {
                   // bloc.Remove(bloc.ElementAt(i));
                    bloc.RemoveAt(i);
                    supConf = true;
                    break;
                }

            }

            return supConf;
        }
예제 #29
0
        //Modifis le bloc correspondant a celui fournis
        public bool modifierBloc(Bloc leBloc, Bloc leBloc2)
        {
            int nbBloc = bloc.Count;
            bool blocTrouve = false;

            //Les conditions a modifier devront être unique a chaque blocs
            for (int i = 0; i < nbBloc; i++)
            {
                if (bloc[i].getDebut() == leBloc.getDebut())
                {
                    bloc[i] = leBloc2;
                    blocTrouve = true;
                    break;
                }

            }

            return blocTrouve;
        }
예제 #30
0
        private void listPreset_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                int index = listPreset.IndexFromPoint(e.Location.X, e.Location.Y);
                if (listPreset.Items[index] != null)
                {
                    //MessageBox.Show(listPreset.GetItemText(listPreset.Items[index]));
                    if (loader.findBloc(Convert.ToInt32(listPreset.GetItemText(listPreset.Items[index])), loader.bloc) != null)
                    {
                        presetSelected = loader.findBloc(Convert.ToInt32(listPreset.GetItemText(listPreset.Items[index])), loader.bloc);
                    }

                }
            }
            catch (Exception ex)
            {

            }
        }
예제 #31
0
        public void modifierBlock(Bloc leBloc)
        {
            string hDebut = leBloc.getDebut().Hour + "";
            string hFin   = (leBloc.getFin().Hour + 1) + "";
            bool   preset = leBloc.getPreset();

            DateTime debut = leBloc.getDebut();
            DateTime fin   = leBloc.getFin();

            ModificationBloc modifbloc = new ModificationBloc(hDebut, hFin, preset, blocs);

            modifbloc.ShowDialog();

            if (modifbloc.isValide())
            {
                if (modifbloc.getCommande() == 0)
                {
                    //Modification d'un bloc
                    //Compute Nouvelle Date ** Ajouter validation **

                    int dateDebut = int.Parse(modifbloc.getHd());
                    int dateFin   = int.Parse(modifbloc.getHf());

                    DateTime tempDebut = new DateTime(debut.Year, debut.Month, debut.Day, dateDebut, debut.Minute, debut.Second);
                    DateTime tempFin   = new DateTime(fin.Year, fin.Month, fin.Day, dateFin - 1, fin.Minute, fin.Second);


                    Bloc leBloc2 = leBloc;
                    leBloc2.setDebut(tempDebut);
                    leBloc2.setFin(tempFin);
                    leBloc2.setPreset(modifbloc.getPreset());

                    if (modifbloc.placementValide(leBloc2))
                    {
                        if (loader != null && loader.modifierBloc(leBloc, leBloc2))
                        { //Ajout du bloc confirmé
                        } //
                        else
                        {
                            if (loader != null)
                            {
                                MessageBox.Show("Bloc introuvable");
                            }
                            else
                            {
                                if (profil != null && laGrille.isPref && profil.modifierBloc(leBloc, leBloc2, true))
                                { //lolnigger
                                }
                                else
                                {
                                    if (profil != null && !laGrille.isPref && profil.modifierBloc(leBloc, leBloc2, false))
                                    { //lolnigger
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                    }
                }


                else
                //Suppression d'un Bloc
                {
                    if (profil == null)
                    {
                        loader.supprimerBloc(leBloc);
                    }
                    else
                    {
                        if (loader == null && laGrille.isPref)
                        {
                            profil.getPref().Remove(leBloc);
                        }
                        else
                        {
                            if (loader == null && !laGrille.isPref)
                            {
                                profil.getDispo().Remove(leBloc);
                            }
                        }
                    }

                    DBConnect uneConnect = new DBConnect();
                    uneConnect.deleteBlock(leBloc.getId());
                }
            }
            modifbloc.Dispose();
        }
예제 #32
0
        public void createBlock(int x, int heureDebut, DateTime debut, DateTime fin)
        {
            string hDebut = heureDebut + "";
            string hFin = (heureDebut + 1) + "";

            CreationBloc creationbloc = new CreationBloc(hDebut, hFin);
            creationbloc.ShowDialog();

            if (creationbloc.isValide())
            {

            //Compute Nouvelle Date ** Ajouter validation **
            int dateDebut = int.Parse(creationbloc.getHd());
            int dateFin = int.Parse(creationbloc.getHf());
            bool isPreset = creationbloc.getPreset();

            DateTime tempDebut = new DateTime(debut.Year, debut.Month, debut.Day, dateDebut, debut.Minute, debut.Second);
            DateTime tempFin = new DateTime(fin.Year, fin.Month, fin.Day, dateFin, fin.Minute, fin.Second) - new TimeSpan(0, 0, 0, 1);

            //Affecte le bloc

            Bloc tempBloc = new Bloc(tempDebut, tempFin, 0, 0, isPreset);

            if (placementValide(tempBloc))
            {
                if (profil != null)
                {
                    if (loader == null && laGrille.isPref)
                        profil.addPref(tempBloc);
                    else
                        if (loader == null && !laGrille.isPref)
                            profil.addDispo(tempBloc);
                    tempBloc.draw(width, grfx);
                }
                else
                {
                    //Ajout du block valide
                    tempBloc.draw(width, grfx);
                    loader.bloc.Add(tempBloc);
                }
            }
            else
                MessageBox.Show("Placement invalide");

            }

            creationbloc.Dispose();
        }
예제 #33
0
 public void addPref(Bloc pref)
 {
     preference.Add(pref);
 }
예제 #34
0
        public void fillPosteListBox(Bloc bloc)
        {
            listPoste.Items.Clear();

            List<RessourceEntree> ressources = bloc.getRessourceVoulus();

               // MessageBox.Show(bloc.getListRessourceAffecte().Count.ToString());

            for (int i = 0; i < ressources.Count(); i++)
            {
                if (ressources.ElementAt(i).voulue is Poste)
                {
                    // Add the employee name to the listbox.
                    listPoste.Items.Add(((Poste)ressources.ElementAt(i).voulue).getNom()+" ("+ressources.ElementAt(i).nbAffectee+"/"+ressources.ElementAt(i).nbVoulue+")");
                }

            }
        }
예제 #35
0
        public void passeClique(MouseEventArgs e, String mouse)
        {
            if (mouse == "MouseDown")
            {
                if ((e.X >= posX) && (e.X < (posX + 100)))
                {

                    //Vérifis si le clique touche un bloc
                   // blocs = loader.getBlocFromDate(dateDuJour);
                    if (blocs != null)
                    {
                        for (int i = 0; i < blocs.Count; i++)
                        {
                            //Vérifis les Y des blocs
                            if((e.Y >= blocs.ElementAt(i).getY()) && (e.Y <= blocs.ElementAt(i).getYFin()))
                                {
                                //Si je sélectionne déjàs un bloc
                                if (selectionEnCours != null)
                                    {
                                    selectionEnCours.unSelectIt();
                                    }
                                //Affectation du nouveau Bloc
                                blocs.ElementAt(i).selectIt();
                                selectionEnCours = blocs.ElementAt(i);

                                laGrille.refresh();
                                }
                        }

                    }

                    //Détecteur de bloc
                    if ((e.Y > 40) && (e.Y < 60))
                    {
                    // grfx.FillRectangle(myBlueBrush, posX + 1, e.Y, width - 1, heightHeure);

                    dateDuJour = new DateTime(dateDuJour.Year, dateDuJour.Month, dateDuJour.Day, 1, 0, 0);
                    dateFin = new DateTime(dateDuJour.Year, dateDuJour.Month, dateDuJour.Day, 2, 0, 0);
                    createBlock(posX, 40,dateDuJour,dateFin);
                    }

                }
            }

            if (mouse == "MouseUp")
            {
                if (mousepush)
                {

                }

            }
        }
예제 #36
0
        public void passeClique(MouseEventArgs e, String mouse, Bloc preset = null)
        {
            if (mouse == "MouseDown")
            {
                if (preset != null)
                {
                    for (int i = 0; i < 7; i++)
                    {
                        //Sélection du bon jours
                        if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                        {
                            //Jour cliquer
                            jourCliquer = jours[i];

                            //DateTime 1 heure plus tard
                            DateTime tempDateFin = jourCliquer.getDate();

                            if (jourCliquer.getHeureClique(e.Y) >= 0)
                            {
                                if (jourCliquer.getHeureClique(e.Y) >= 0)
                                {
                                    //Création du bloc
                                    //  refresh();
                                    jourCliquer.addPreset(preset, jourCliquer.getX());
                                    refresh();
                                }
                            }
                        }
                    }
                }
                else
                {
                    Boolean blocUnselected = false;

                    for (int i = 0; i < 7; i++)
                    {
                        //Sélection du bon jours
                        if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                        {
                            //Jour cliquer
                            jourCliquer = jours[i];
                        }
                    }


                    //Sélection d'un bloc existant
                    if (selectionEnCours != null)
                    {
                        selectionEnCours.unSelectIt();
                        blocUnselected = true;
                        refresh();
                    }
                    selectionEnCours = jourCliquer.selectionneUnBloc(e.Y);
                    if (selectionEnCours != null)
                    {
                        selectionEnCours.selectIt();
                        refresh();
                    }
                    //Si appuis dans le vide
                    else
                    {
                        if (!blocUnselected)
                        {
                            {
                                //DateTime 1 heure plus tard
                                DateTime tempDateFin = jourCliquer.getDate();

                                if (jourCliquer.getHeureClique(e.Y) >= 0)
                                {
                                    if (jourCliquer.getHeureClique(e.Y) >= 0)
                                    {
                                        //Création du bloc
                                        //  refresh();
                                        jourCliquer.createBlock(jourCliquer.getX(), jourCliquer.getHeureClique(e.Y),
                                                                jourCliquer.getDate(), tempDateFin);
                                        refresh();
                                    }
                                }
                            }
                        }
                    }
                }
            }//Fin du MouseUp
            if (mouse == "MouseUp")
            {
            }

            if (mouse == "DoubleClick")
            {
                for (int i = 0; i < 7; i++)
                {
                    //Sélection du bon jours
                    if (e.X > jours[i].getX() && e.X < jours[i].getXFin())
                    {
                        //Jour cliquer
                        jourCliquer = jours[i];

                        //Sélection d'un bloc existant
                        if (selectionEnCours != null)
                        {
                            jourCliquer.modifierBlock(selectionEnCours);
                            refresh();
                        }
                    }
                }
            }
        }
예제 #37
0
        public List<Bloc> loadBloc()
        {
            DataTable rsBloc;
            DataTable rsRessource;
            rsBloc = proc.getAllBlock();
            int k = 0;

            for (int i = 0; i < rsBloc.Rows.Count; i++)
            {

                bool isPreset = false;

                if (Convert.ToInt32(rsBloc.Rows[i]["preset"]) == 1)
                    isPreset = true;

                Bloc newBloc = new Bloc(DateTime.ParseExact(rsBloc.Rows[i]["debut"].ToString(), "yyyy-MM-dd HH:mm:ss", null), DateTime.ParseExact(rsBloc.Rows[i]["fin"].ToString(), "yyyy-MM-dd HH:mm:ss", null), Convert.ToInt32(rsBloc.Rows[i]["idType"].ToString()), Convert.ToInt32(rsBloc.Rows[i]["idBlock"].ToString()), isPreset);

                bloc.Add(newBloc);
                rsRessource = proc.getRessource(bloc[i].getId());
                for (int j = 0; j < rsRessource.Rows.Count; j++)
                {
                    if (rsRessource.Rows[j]["idPoste"] != null)
                    {

                        int id = Convert.ToInt32(rsRessource.Rows[j]["idPoste"].ToString());
                        k = 0;
                        while (k < posteCharge.Count && id != posteCharge[k++].getId()) ;
                        bloc[i].addRessourceVoulue(Convert.ToInt32(rsRessource.Rows[j]["number"]), posteCharge[--k]);
                    }
                    else
                    {
                        int id = Convert.ToInt32(rsRessource.Rows[j]["idTeam"].ToString());
                        k = 0;
                        while (k < equipe.Count && id != equipe[k++].getId()) ;
                        bloc[i].addRessourceVoulue(Convert.ToInt32(rsRessource.Rows[j]["number"]), equipe[--k]);
                    }

                }
            }

            return (bloc);
        }
예제 #38
0
 public void draw(Bloc bloc, int i, Graphics gfx)
 {
 }
예제 #39
0
 public void addPref(Bloc pref)
 {
     preference.Add(pref);
 }