Example #1
0
 private void UpdateDates()
 {
     if (m_dateDebut == null || m_dateFin == null || DatesAreDirty)
     {
         m_dateDebut   = ElementsFils.Min(elt => elt.DateDebutPourParent);
         m_dateFin     = ElementsFils.Max(elt => elt.DateFinPourParent);
         DatesAreDirty = false;
     }
 }
Example #2
0
 //-----------------------------------------------
 public override void CalcAvancementSurFils(bool bRecursif)
 {
     if (ElementsFils.Count() == 0)
     {
         SetPctAvancementSansCalculDeParent(ProjetAssocie.CalcProgressDepuisFormule());
     }
     else
     {
         base.CalcAvancementSurFils(bRecursif);
     }
 }
Example #3
0
        //------------------------------------------------------
        public void RegroupeBarresEnMulti()
        {
            //trouve les idgantt avec plusieurs projets
            Dictionary <string, List <CElementDeGanttProjet> > dicMultiToProjets = new Dictionary <string, List <CElementDeGanttProjet> >();

            foreach (IElementDeGantt elt in ElementsFils.ToArray())
            {
                CElementDeGanttProjet eltPrj = elt as CElementDeGanttProjet;
                if (eltPrj != null && eltPrj.ProjetAssocie.GanttId.Length > 0)
                {
                    List <CElementDeGanttProjet> lst = null;
                    if (!dicMultiToProjets.TryGetValue(eltPrj.ProjetAssocie.GanttId, out lst))
                    {
                        lst = new List <CElementDeGanttProjet>();
                        dicMultiToProjets[eltPrj.ProjetAssocie.GanttId] = lst;
                    }
                    lst.Add(eltPrj);
                }
            }


            Dictionary <string, CElementDeGanttMulti> dicMultis = new Dictionary <string, CElementDeGanttMulti>();

            foreach (List <CElementDeGanttProjet> lstPrjs in dicMultiToProjets.Values)
            {
                if (lstPrjs.Count > 1)
                {
                    foreach (CElementDeGanttProjet eltProjet in lstPrjs)
                    {
                        CElementDeGanttMulti eltMulti = null;
                        if (!dicMultis.TryGetValue(eltProjet.ProjetAssocie.GanttId, out eltMulti))
                        {
                            eltMulti = new CElementDeGanttMulti(this, eltProjet.Libelle, eltProjet.ProjetAssocie.GanttId);
                            dicMultis[eltProjet.ProjetAssocie.GanttId] = eltMulti;
                        }
                        //Ajoute le fils
                        eltMulti.AddElementDeLaLigne(eltProjet);
                        eltProjet.ElementParent = null;
                        foreach (IElementDeGantt eltFils in eltProjet.ElementsFils.ToArray())
                        {
                            eltFils.ElementParent = eltMulti;
                        }
                    }
                }
            }

            //Regroupe les barres des fils
            foreach (IElementDeGantt elt in ElementsFils.ToArray())
            {
                elt.RegroupeBarresEnMulti();
            }
        }
Example #4
0
        //------------------------------------------------------
        public virtual void CalcAvancementSurFils(bool bRecursif)
        {
            if (ElementsFils.Count() == 0)
            {
                return;
            }
            double fSomme = 0;

            foreach (CElementDeGantt projetFils in ElementsFils)
            {
                if (bRecursif)
                {
                    projetFils.CalcAvancementSurFils(true);
                }
                fSomme += projetFils.PctAvancement * projetFils.Poids;
            }
            double fPoids = Poids;

            if (fPoids != 0)
            {
                m_fAvancement = fSomme / fPoids;
            }
        }