示例#1
0
        private void lstObjectif_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest == nodSrc)
            {
                return;
            }                                 //Système anti-bouclage

            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            if (!(nodSrc.Tag is null))
            {
                Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);
                Acces.Supprimer_Lien(k);
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces
            };

            p.Element1_Type = Acces.type_OBJECTIF.ID;
            p.Element1_ID   = int.Parse(NodDest.Name);
            p.Element1_Code = ((Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF, p.Element1_ID)).Code;
            p.Element2_Type = Acces.type_OBJECTIF.ID;
            p.Element2_ID   = int.Parse(nodSrc.Name);
            p.Element2_Code = ((Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF, p.Element2_ID)).Code;
            p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
            p.Element0_ID   = 1;                  //SYSTEME
            p.Element0_Code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            p.Ajouter();
            Acces.Ajouter_Lien(p);

            TreeNode nd = new TreeNode();

            nd = (TreeNode)nodSrc.Clone();
            NodDest.Nodes.Add(nd);
            lstObjectif.SelectedNode = nd;

            TreeNode[] Nods = lstObjectif.Nodes.Find(nodSrc.Name.ToString(), true);

            try { Nods[0].Remove(); } catch { }
        }
示例#2
0
        void Valider()
        {
            var LibObjectif  = lblLibelleObjectif.Text.Trim();
            var CodeObjectif = lblCodeObjectif.Text.Trim().ToUpper();
            var OptActive    = OptActiveObjectif.Checked;
            var TypeObjectif = (TypeObjectif)lstTypeObjectif.SelectedIndex;

            string Statut    = lstStatut.Text;
            int    Statut_ID = Acces.Trouver_TableValeur_ID("STATUT", Statut);

            var Meteo = (Meteo)lstMeteo.SelectedIndex;
            var Tx    = (TxAvancement)lstTx.SelectedIndex;

            int Pilote = -1;

            try { Pilote = ListePilote[lstPilote.SelectedIndex].ID; } catch { }
            var DDeb = lblDateDebut.Value;
            var DFin = lblDateFin.Value;

            var Description = lblDescription.Text;
            var Analyse     = lblAnalyseQualitative.Text;

            if (LibObjectif.Length == 0)
            {
                MessageBox.Show("Libellé de l'objectif obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            if (CodeObjectif.Length == 0)
            {
                MessageBox.Show("Code du plan d'actions obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            //Vérifie si un utiilisateur n'a pas plusieurs profils
            List <int> ListeChoix = new List <int>();

            foreach (int i in ChoixRole6PO_Copilote.ListeSelectionId)
            {
                ListeChoix.Add(i);
            }
            foreach (int i in ChoixRole6PO_Manager.ListeSelectionId)
            {
                ListeChoix.Add(i);
            }
            foreach (int i in ChoixRole6PO_Consultation.ListeSelectionId)
            {
                ListeChoix.Add(i);
            }

            List <int> distinct = ListeChoix.Distinct().ToList();

            if (ListeChoix.Count() != distinct.Count())
            {
                MessageBox.Show("Un utilisateur ne peut pas posséder 2 rôles dans 6PO pour cet objectif.", "Erreur");
                return;
            }

            objectif.Libelle      = LibObjectif;
            objectif.Code         = CodeObjectif;
            objectif.TypeObjectif = TypeObjectif;
            objectif.Actif        = OptActive;

            objectif.Pilote       = Acces.Trouver_Utilisateur(Pilote);
            objectif.Statut       = Statut_ID;
            objectif.Meteo        = Meteo;
            objectif.TxAvancement = Tx;
            objectif.DateDebut    = DDeb;
            objectif.DateFin      = DFin;

            objectif.Description        = Description;
            objectif.AnalyseQualitative = Analyse;

            objectif.Role_6PO_CoPilote     = ChoixRole6PO_Copilote.ListeSelectionId;
            objectif.Role_6PO_Manager      = ChoixRole6PO_Manager.ListeSelectionId;
            objectif.Role_6PO_Consultation = ChoixRole6PO_Consultation.ListeSelectionId;

            objectif._codeplan = lblPlan.Text;
            if (lblAxe.Text.Length > 0)
            {
                objectif._axe = string.Format("{0:00}", int.Parse(lblAxe.Text));
            }
            if (lblOS.Text.Length > 0)
            {
                objectif._os = string.Format("{0:00}", int.Parse(lblOS.Text));
            }
            if (lblOG.Text.Length > 0)
            {
                objectif._og = string.Format("{0:00}", int.Parse(lblOG.Text));
            }
            if (lblOP.Text.Length > 0)
            {
                objectif._op = string.Format("{0:00}", int.Parse(lblOP.Text));
            }
            objectif._cpl = lblAutre.Text;

            if (Creation)
            {
                if (!(Acces.Existe_Element(Acces.type_OBJECTIF, "CODE", CodeObjectif)))
                {
                    objectif.ID = Acces.Ajouter_Element(Acces.type_OBJECTIF, objectif);

                    //Création du lien avec le parent
                    if (!(objectifParent is null))
                    {
                        Lien l = new Lien()
                        {
                            Acces = Acces,
                        };

                        l.element0_type = Acces.type_PLAN.id;
                        l.element0_id   = 1;
                        l.element0_code = "SYSTEME";
                        l.element1_type = Acces.type_OBJECTIF.id;
                        l.element1_id   = objectifParent.ID;
                        l.element1_code = objectifParent.Code;
                        l.element2_type = Acces.type_OBJECTIF.id;
                        l.element2_id   = objectif.ID;
                        l.element2_code = objectif.Code;
                        l.Ajouter();
                        Acces.Ajouter_Lien(l);
                        Creation = false;
                    }
                }
                else
                {
                    MessageBox.Show("L'objectif existe déjà (code identique).", "Erreur"); return;
                }
            }
            else
            {
                Acces.Enregistrer(Acces.type_OBJECTIF, objectif);
            }

            //Test du changement de code --> Impact sur les liens
            if (lblCodeObjectif.Text != lblCodeObjectif.Tag.ToString())
            {
                Lien l = new Lien();
                l.Acces = Acces;
                l.MettreAJourCode(Acces.type_OBJECTIF, objectif.ID, objectif.Code);
            }

            OnRaise_Evt_Enregistrer(new evt_Enregistrer(this.Tag.ToString()));
            Creation            = false;
            lblEnregistrer.Text = "Enregistré " + string.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now);
        }
示例#3
0
        private void lstUser_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            // Add a child node.
            //node.Nodes.Add((TreeNode)e.Data.GetData(typeof(TreeNode)));

            // Show the newly added node if it is not already visible.
            //node.Expand();

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest.Name == nodSrc.Name)
            {
                return;
            }

            //Vérification du type de destination
            if (!(Acces.Trouver_Utilisateur(int.Parse(NodDest.Name.ToString())).TypeUtilisateur == TypeUtilisateur.DOSSIER))
            {
                MessageBox.Show("Un utilisateur (hors type DOSSIER) ne peut contenir d'autres utilisateurs", "Erreur", MessageBoxButtons.OK);
                return;
            }
            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);

            if (!(k is null)) //Suppression des liens existants pour le Prop 0 (SYSTEME)
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien();

            p.element1_type = Acces.type_UTILISATEUR.id;
            p.element1_id   = int.Parse(NodDest.Name);
            p.element1_code = Acces.Trouver_Utilisateur(p.element1_id).Code;
            p.element2_type = Acces.type_UTILISATEUR.id;
            p.element1_id   = int.Parse(nodSrc.Name);
            p.element2_code = Acces.Trouver_Utilisateur(p.element2_id).Code;
            p.element0_type = Acces.type_PLAN.id;
            p.element0_id   = 1; //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            if (p.element1_id == p.element2_id)
            {
                return;
            }                                               //Système anti-bouclage

            p.Ajouter();

            Acces.Ajouter_Lien(p);
            Afficher_ListeUser();

            TreeNode[] Nods = lstUser.Nodes.Find(nodSrc.Name.ToString(), true);

            lstUser.SelectedNode = Nods[0];
            Nods[0].EnsureVisible();
        }
        private void lstIndicateur_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest == nodSrc)
            {
                return;
            }

            //Vérification du type de destination
            if (!(((Indicateur)Acces.Trouver_Element(Acces.type_BUDGET_ENVELOPPE, int.Parse(NodDest.Name.ToString()))).TypeIndicateur == TypeIndicateur.DOSSIER))
            {
                MessageBox.Show("Un indicateur (hors type DOSSIER) ne peut contenir d'autres indicateurs", "Erreur", MessageBoxButtons.OK);
                return;
            }
            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(int.Parse(nodSrc.Tag.ToString()));

            if (!(k is null))
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces,
            };

            p.Element1_Type = Acces.type_INDICATEUR.ID;
            p.Element1_ID   = int.Parse(NodDest.Name);
            p.Element1_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element1_ID)).Code;
            p.Element2_Type = Acces.type_INDICATEUR.ID;
            p.Element2_ID   = int.Parse(nodSrc.Name);
            p.Element2_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element2_ID)).Code;
            p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
            p.Element0_ID   = 1;                  //SYSTEME
            p.Element0_Code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            p.Ajouter();

            Acces.Ajouter_Lien(p);

            TreeNode nd = new TreeNode();

            nd = (TreeNode)nodSrc.Clone();
            NodDest.Nodes.Add(nd);
            lstIndicateur.SelectedNode = nd;

            TreeNode[] Nods = lstIndicateur.Nodes.Find(nodSrc.Name.ToString(), true);

            try { Nods[0].Remove(); } catch { }
        }
示例#5
0
        void Valider()
        {
            if (action == null)
            {
                MessageBox.Show("Action ?"); return;
            }
            if (lstTypeProjet.SelectedIndex < 0)
            {
                MessageBox.Show("Type de projet ?"); return;
            }
            if (lstPilote.SelectedIndex < 0)
            {
                MessageBox.Show("Pilote du projet ?"); return;
            }
            if (lstStatut.SelectedIndex < 0)
            {
                MessageBox.Show("Statut du projet ?"); return;
            }

            var LibProjet    = lblLibelleProjet.Text.Trim();
            var EnteteProjet = lblEntete.Text.Trim().ToUpper();
            var CodeProjet   = lblCodeProjet.Text;
            var OptActive    = OptActiveProjet.Checked;
            var TypeProjet   = ListeTypeProjet[lstTypeProjet.SelectedIndex].ID;
            var Statut       = ListeStatut[lstStatut.SelectedIndex].ID;

            int Pilote = -1;

            try { Pilote = ListePilote[lstPilote.SelectedIndex].ID; } catch { }

            if (CodeProjet.Length == 0)
            {
                MessageBox.Show("Code du projet obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            projet.Acces           = Acces;
            projet.Libelle         = LibProjet;
            projet.Code            = CodeProjet;
            projet.TypeProjet      = TypeProjet;
            projet.Statut          = Statut;
            projet.Actif           = OptActive;
            projet.EnveloppeBudget = ChoixEnveloppe.ListeSelectionId;

            projet.Pilote = Acces.Trouver_Utilisateur(Pilote);

            TypeElement type = Acces.type_PROJET;

            if (Creation)
            {
                if (!(Acces.Existe_Element(type, "CODE", projet.Code)))
                {
                    projet.ID = Acces.Ajouter_Element(type, projet);

                    //Création du lien
                    if (action != null)
                    {
                        //Création du lien avec le parent
                        Lien l = new Lien()
                        {
                            Acces = Acces,
                        };
                        l.Element0_Type = Acces.type_PLAN.ID;
                        l.Element0_ID   = 1;
                        l.Element0_Code = "SYSTEME";
                        l.Element1_Type = Acces.type_ACTION.ID;
                        l.Element1_ID   = action.ID;
                        l.Element1_Code = action.Code;
                        l.Element2_Type = Acces.type_PROJET.ID;
                        l.Element2_ID   = projet.ID;
                        l.Element2_Code = projet.Code;
                        l.Ajouter();
                        Acces.Ajouter_Lien(l);
                        Creation = false;
                    }

                    Acces.Enregistrer(Acces.type_ACTION, action);
                }
                else
                {
                    MessageBox.Show("Projet existant (Code)", "Erreur"); return;
                }
            }
            else
            {
                Acces.Enregistrer(type, projet);
            }

            //Test du changement de code --> Impact sur les liens

            /*if (lblCodePlan.Text != lblCodePlan.Tag.ToString())
             * {
             *  Lien l = new Lien() { Acces = Acces, };
             *  l.MettreAJourCode(Acces.type_PLAN, plan.ID, plan.Code);
             * }*/

            this.DialogResult = DialogResult.OK;
        }
示例#6
0
        private void lstGroupe_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            // Add a child node.
            //node.Nodes.Add((TreeNode)e.Data.GetData(typeof(TreeNode)));

            // Show the newly added node if it is not already visible.
            //node.Expand();

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest.Name == nodSrc.Name)
            {
                return;
            }

            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);

            if (!(k is null)) //Suppression des liens existants pour le Prop 0 (SYSTEME)
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces
            };

            p.Element1_Type = Acces.type_GROUPE.ID;
            p.Element1_ID   = int.Parse(NodDest.Name);
            p.Element1_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element1_ID)).Code;
            p.Element2_Type = Acces.type_GROUPE.ID;
            p.Element2_ID   = int.Parse(nodSrc.Name);
            p.Element2_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element2_ID)).Code;
            p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
            p.Element0_ID   = 1;                  //SYSTEME
            p.Element0_Code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            if (p.Element1_ID == p.Element2_ID)
            {
                return;
            }                                               //Système anti-bouclage

            p.Ajouter();
            Acces.Ajouter_Lien(p);

            AfficheListeGroupe();

            TreeNode[] Nods = lstGroupe.Nodes.Find(nodSrc.Name.ToString(), true);

            lstGroupe.SelectedNode = Nods[0];
            Nods[0].EnsureVisible();
        }
示例#7
0
        void ExtraitLien(XElement element)
        {
            listeplan       = (List <Plan>)Acces.Remplir_ListeElement(Acces.type_PLAN, "");
            listeobjectif   = (List <Objectif>)Acces.Remplir_ListeElement(Acces.type_OBJECTIF, "");
            listeaction     = (List <PATIO.CAPA.Classes.Action>)Acces.Remplir_ListeElement(Acces.type_ACTION, "");
            listeindicateur = (List <Indicateur>)Acces.Remplir_ListeElement(Acces.type_INDICATEUR, "");

            foreach (XElement childElement in element.Elements())
            {
                if (childElement.Name == "Lien")
                {
                    Lien p = new Lien()
                    {
                        Acces = Acces,
                    };

                    foreach (XElement xl in childElement.Elements())
                    {
                        switch (xl.Name.ToString())
                        {
                        case "ID":
                        { p.ID = int.Parse(xl.Value.ToString()); break; }

                        case "Element0_Type":
                        { p.Element0_Type = int.Parse(xl.Value.ToString()); break; }

                        case "Element0_ID":
                        { p.Element0_ID = int.Parse(xl.Value.ToString()); break; }

                        case "Element0_Code":
                        { p.Element0_Code = xl.Value.ToString(); break; }

                        case "Element1_Type":
                        { p.Element1_Type = int.Parse(xl.Value.ToString()); break; }

                        case "Element1_ID":
                        { p.Element1_ID = int.Parse(xl.Value.ToString()); break; }

                        case "Element1_Code":
                        { p.Element1_Code = xl.Value.ToString(); break; }

                        case "Element2_Type":
                        { p.Element2_Type = int.Parse(xl.Value.ToString()); break; }

                        case "Element2_ID":
                        { p.Element2_ID = int.Parse(xl.Value.ToString()); break; }

                        case "Element2_Code":
                        { p.Element2_Code = xl.Value.ToString(); break; }

                        case "Ordre":
                        { p.ordre = int.Parse(xl.Value.ToString()); break; }

                        case "complement":
                        { p.complement = xl.Value.ToString(); break; }
                        }
                    }
                    //Recherche des identifiants par rapport aux codes
                    int typeelement_id = Acces.type_OBJECTIF.ID;
                    if (p.Element1_Type == Acces.type_OBJECTIF.ID)
                    {
                        p.Element1_Code = p.Element1_Code.Replace("+", "_");
                    }
                    if (p.Element2_Type == Acces.type_OBJECTIF.ID)
                    {
                        p.Element2_Code = p.Element2_Code.Replace("+", "_");
                    }
                    if (p.Element1_Type == Acces.type_ACTION.ID)
                    {
                        p.Element1_Code = p.Element1_Code.Replace("+", "_").Replace("|", ".");
                    }
                    if (p.Element2_Type == Acces.type_ACTION.ID)
                    {
                        p.Element2_Code = p.Element2_Code.Replace("+", "_").Replace("|", ".");
                    }

                    p.Element1_ID = (int)DonneIDElement(p.Element1_Type.ToString(), p.Element1_Code);
                    p.Element2_ID = (int)DonneIDElement(p.Element2_Type.ToString(), p.Element2_Code);

                    if (!(p.Exister_Lien(p.Element0_Type.ToString(), p.Element0_Code, p.Element1_Type.ToString(), p.Element1_Code, p.Element2_Type.ToString(), p.Element2_Code)))
                    {
                        p.Ajouter(); Acces.Ajouter_Lien(p);
                    }
                }
            }
        }
示例#8
0
        void Valider()
        {
            var LibProcessus  = lblLibelleProcessus.Text.Trim();
            var CodeProcessus = lblCodeProcessus.Text.Trim().ToUpper();
            var OptActive     = OptActiveProcessus.Checked;
            var TypeProcessus = (TypeProcessus)lstTypeProcessus.SelectedIndex;


            if (LibProcessus.Length == 0)
            {
                MessageBox.Show("Libellé du processus obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            if (CodeProcessus.Length == 0)
            {
                MessageBox.Show("Code du processus obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            bool ok = false;

            if (Creation)
            {
                ok = Acces.Existe_Element(Acces.type_PROCESSUS, "CODE", CodeProcessus);
            }
            else
            {
                //ok = fonc.ExisteCode(Acces.type_INDICATEUR, CodeGroupe, groupe.ID);
            }

            if (ok)
            {
                MessageBox.Show("Pb avec le code", "Erreur", MessageBoxButtons.OK); return;
            }

            processus.Acces          = Acces;
            processus.Libelle        = LibProcessus;
            processus.Code           = CodeProcessus;
            processus.Actif          = OptActive;
            processus.Type_Processus = TypeProcessus;
            processus.DonneeEntrante = ChoixDonneeEntrant.ListeSelectionId;
            processus.DonneeSortante = ChoixDonneeSortant.ListeSelectionId;

            TypeElement Type = Acces.type_PROCESSUS;

            if (Creation)
            {
                if (!(Acces.Existe_Element(Type, "CODE", processus.Code)))
                {
                    processus.ID = Acces.Ajouter_Element(Type, processus);

                    if (processusParent != null)
                    {
                        Lien p = new Lien()
                        {
                            Acces = Acces
                        };
                        p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
                        p.Element0_ID   = 1;                  //SYSTEME
                        p.Element0_Code = "SYSTEME";          //SYSTEME
                        p.Element1_Type = Acces.type_PROCESSUS.ID;
                        p.Element1_ID   = processusParent.ID;
                        p.Element1_Code = ((Process)Acces.Trouver_Element(Acces.type_PROCESSUS, p.Element1_ID)).Code;
                        p.Element2_Type = Acces.type_PROCESSUS.ID;
                        p.Element2_ID   = processus.ID;
                        p.Element2_Code = ((Process)Acces.Trouver_Element(Acces.type_PROCESSUS, p.Element2_ID)).Code;
                        p.ordre         = p.Donner_Ordre() + 1;

                        p.Ajouter();
                        Acces.Ajouter_Lien(p);
                    }
                }
                else
                {
                    MessageBox.Show("Processus existant (Code)", "Erreur"); return;
                }
            }
            else
            {
                Acces.Enregistrer(Type, processus);
            }

            this.DialogResult = DialogResult.OK;
        }