コード例 #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.id, 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.id, 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 AjouterSousIndicateur()
        {
            if (lstIndicateur.SelectedNode is null)
            {
                MessageBox.Show("Choix d'un indicateur"); return;
            }

            Indicateur indParent = (Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, int.Parse(lstIndicateur.SelectedNode.Name.ToString()));

            if (!(indParent.TypeIndicateur == TypeIndicateur.DOSSIER))
            {
                MessageBox.Show("Impossible de créer un indicateur sous un indicateur autre qu'un type DOSSIER", "Erreur", MessageBoxButtons.OK);
                return;
            }

            var f = new frmIndicateur();

            f.Acces    = Acces;
            f.Creation = true;

            f.indicateur       = new PATIO.Classes.Indicateur();
            f.indicateur.Actif = true;
            f.indicateur.Code  = indParent.Code;
            f.Initialise();

            if (f.ShowDialog(this) == DialogResult.OK)
            {
                if (!(lstIndicateur.SelectedNode is null))
                {
                    //Création du lien avec le parent
                    Lien l = new Lien()
                    {
                        element0_type = Acces.type_PLAN.id,
                        element0_id   = 1,
                        element0_code = "SYSTEME",
                        element1_type = Acces.type_INDICATEUR.id,
                        element2_type = Acces.type_INDICATEUR.id,
                        element1_id   = int.Parse(lstIndicateur.SelectedNode.Name),
                        element1_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, int.Parse(lstIndicateur.SelectedNode.Name))).Code,
                        element2_id   = f.indicateur.ID,
                        element2_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, f.indicateur.ID)).Code,
                        ordre         = 1,
                        Acces         = Acces,
                    };
                    l.Ajouter();
                    Acces.Ajouter_Lien(l);
                }
                Afficher_ListeIndicateur();

                TreeNode[] Nod = lstIndicateur.Nodes.Find(f.indicateur.ID.ToString(), true);
                if (Nod.Length > 0)
                {
                    lstIndicateur.SelectedNode = Nod[0].Parent; Nod[0].EnsureVisible();
                }
            }
        }
コード例 #3
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);
        }
コード例 #4
0
        /// <summary>
        /// Procédure lancée à l'enregistrement de la fiche
        /// </summary>
        void Valider()
        {
            //Onglet Informations générales
            var LibAction  = lblLibelleAction.Text.Trim();
            var CodeAction = lblCodeAction.Text.Trim().ToUpper();
            var OptActive  = OptActiveAction.Checked;
            var TypeAction = (TypeAction)lstTypeAction.SelectedIndex;

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

            if (CodeAction.Length < 5)
            {
                MessageBox.Show("Code de l'action obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

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

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

            action.Libelle          = LibAction;
            action.Code             = CodeAction;
            action.TypeAction       = TypeAction;
            action.Actif            = OptActive;
            action.Pilote           = Acces.Trouver_Utilisateur(Pilote);
            action.Statut           = Statut_ID;
            action.ActionPhare      = optActionPhare.Checked;
            action.OrdreActionPhare = Acces.Trouver_TableValeur_ID("ORDRE_ACTION_PHARE", lstOrdrePriorite.Text.ToString());
            action.Validation       = Acces.Trouver_TableValeur_ID("VALIDATION_INTERNE", lstNiveauValidation.Text);

            action.Description = lblDescription.Text.Trim();

            action._type     = ""; action._codeplan = "";
            action._axe      = ""; action._os = ""; action._og = ""; action._op = "";
            action._cpl      = ""; action._ordreact = "";
            action._annee    = ""; action._direction = ""; action._reference = "";
            action._ordreope = "";

            if ((TypeAction)lstTypeAction.SelectedIndex == TypeAction.DOSSIER)
            {
                action._type = "AXX";
            }
            if ((TypeAction)lstTypeAction.SelectedIndex == TypeAction.ACTION)
            {
                action._type = "ACT";
            }
            if ((TypeAction)lstTypeAction.SelectedIndex == TypeAction.OPERATION)
            {
                action._type = "OPE";
            }

            try
            {
                action._codeplan = lblPlanACT.Text.ToUpper().Trim();
                if (lblAxeACT.Text.Trim().Length > 0)
                {
                    action._axe = string.Format("{0:00}", int.Parse(lblAxeACT.Text));
                }
                if (lblOSACT.Text.Trim().Length > 0)
                {
                    action._os = string.Format("{0:00}", int.Parse(lblOSACT.Text));
                }
                if (lblOGACT.Text.Trim().Length > 0)
                {
                    action._og = string.Format("{0:00}", int.Parse(lblOGACT.Text));
                }
                if (lblOPACT.Text.Trim().Length > 0)
                {
                    action._op = string.Format("{0:00}", int.Parse(lblOPACT.Text));
                }
                if (lblAutreACT.Text.Trim().Length > 0)
                {
                    action._cpl = lblAutreACT.Text;
                }
                if (lblOrdreACT.Text.Trim().Length > 0)
                {
                    action._ordreact = string.Format("{0:000}", int.Parse(lblOrdreACT.Text));
                }

                if (action._type == "OPE")
                {
                    if (lblAnnéeOPE.Text.Trim().Length > 0)
                    {
                        action._annee = lblAnnéeOPE.Text;
                    }
                    if (lblDirectionOPE.Text.Trim().Length > 0)
                    {
                        action._direction = lblDirectionOPE.Text;
                    }
                    if (lblRefOPE.Text.Trim().Length > 0)
                    {
                        action._reference = lblRefOPE.Text;
                    }
                    if (lblOrdreOPE.Text.Trim().Length > 0)
                    {
                        action._ordreope = string.Format("{0:000}", int.Parse(lblOrdreOPE.Text));
                    }
                }
            }
            catch { }

            //Onglet Public, partenaires
            action.PublicCible = ChoixPublicCible.ListeSelectionId;
            action.Territoire  = lblTerritoire.Text.Trim();
            action.Partenaire  = ChoixPartenaireInstitutionnel.ListeSelectionId;
            action.Usager      = ChoixUsager.ListeSelectionId;

            //Onglet Moyens
            action.StructurePorteuse = ChoixStructurePorteuse.ListeSelectionId;
            action.Acteur            = ChoixActeur.ListeSelectionId;
            action.Levier            = ChoixLevier.ListeSelectionId;
            action.CoutFinancier     = lblCoutFinancier.Text.Trim();
            action.FinancementFIR    = optFIR.Checked;
            action.Mt_2018           = lblMontant_2018.Text.Trim();
            action.Mt_2019           = lblMontant_2019.Text.Trim();
            action.Mt_2020           = lblMontant_2020.Text.Trim();
            action.Mt_2021           = lblMontant_2021.Text.Trim();
            action.Mt_2022           = lblMontant_2022.Text.Trim();
            action.Mt_2023           = lblMontant_2023.Text.Trim();
            action.Mt_Total          = lblMontant_Total.Text.Trim();

            //Onglet Suivi et évaluation
            action.ResultatLivrable = lblResultatLivrable.Text.Trim();
            action.NbPersImpact     = lblNbPersImpact.Text.Trim();
            action.NbActeurMobilise = lblNbActeur.Text.Trim();
            action.IndicResultat    = lblIndicResultat.Text.Trim();
            action.IndicMoyen       = lblIndicMoyen.Text.Trim();

            //Onglet Calendrier, responsabilités
            action.AnneeMiseOeuvre  = ChoixAnnee.ListeSelectionId;
            action.DirectionPilote  = ChoixDirectionPilote.ListeSelectionId;
            action.DirectionAssocie = ChoixDirectionAssocie.ListeSelectionId;
            action.Equipe           = ChoixEquipe.ListeSelectionId;

            //Onglet Liens
            action.LienPlan     = ChoixLienPlan.ListeSelectionId;
            action.LienParcours = ChoixLienParcours.ListeSelectionId;
            action.LienSecteur  = ChoixLienSecteur.ListeSelectionId;

            //Onglet Priorités CTS
            action.TSante = ChoixTSANTE.ListeSelectionId;
            List <int> listePrio = new List <int>();

            foreach (int k in ChoixCTS591.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            foreach (int k in ChoixCTS592.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            foreach (int k in ChoixCTS62.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            foreach (int k in ChoixCTS80.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            foreach (int k in ChoixCTS02.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            foreach (int k in ChoixCTS60.ListeSelectionId)
            {
                listePrio.Add(k);
            }
            action.Priorite_CTS = listePrio;

            //Onglet 6PO
            action.DateDebut          = lblDateDebut.Value;
            action.DateFin            = lblDateFin.Value;
            action.Meteo              = (Meteo)lstMeteo.SelectedIndex;
            action.TxAvancement       = (TxAvancement)lstTx.SelectedIndex;
            action.ActionInnovante    = OptActionInnovante.Checked;
            action.AnalyseQualitative = lblAnalyseQualitative.Text.Trim();
            action.ReductionInegalite = lblReductionInegalite.Text.Trim();

            //Onglet Rôle 6PO
            action.Role_6PO_CoPilote     = ChoixRole6PO_Copilote.ListeSelectionId;
            action.Role_6PO_Manager      = ChoixRole6PO_Manager.ListeSelectionId;
            action.Role_6PO_Consultation = ChoixRole6PO_Consultation.ListeSelectionId;

            if (Creation)
            {
                if (!(Acces.Existe_Element(Acces.type_ACTION, "CODE", CodeAction)))
                {
                    action.ID = Acces.Ajouter_Element(Acces.type_ACTION, action);

                    if (actionParent != 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   = actionParent.ID;
                        l.element1_code = actionParent.Code;
                        l.element2_type = Acces.type_ACTION.id;
                        l.element2_id   = action.ID;
                        l.element2_code = action.Code;
                        l.Ajouter();
                        Acces.Ajouter_Lien(l);
                        Creation = false;
                    }

                    Acces.Enregistrer(Acces.type_ACTION, action);
                }
            }
            else
            {
                Acces.Enregistrer(Acces.type_ACTION, action);
            }

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

            OnRaise_Evt_Enregistrer(new evt_Enregistrer(this.Tag.ToString())); //Déclenche l'événement de modification
            Creation            = false;
            lblEnregistrer.Text = "Enregistré " + string.Format("{0:dd/MM/yyyy HH:mm:ss}", DateTime.Now);
        }
コード例 #5
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();
        }
コード例 #6
0
        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_INDICATEUR.id, 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.id, 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.id, 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 { }
        }
コード例 #7
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;
        }
コード例 #8
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();
        }
コード例 #9
0
ファイル: ctrlImport.cs プロジェクト: idevelop-fr/PATIO_V3
        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);
                    }
                }
            }
        }
コード例 #10
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;
        }