예제 #1
0
        private ToolStripItem CreateItemSatisfaction(IElementACout utilisateur, IElementACout source)
        {
            CImputationsCouts imputation = source.GetImputationsAFaireSurUtilisateursDeCout();

            if (imputation != null)
            {
                CImputationCout i = imputation.GetImputation(utilisateur);
                if (i != null && i.Poids != 0)
                {
                    double            fVal             = imputation.GetCoutImputéeA(utilisateur, m_bMenuForCoutReel);
                    ToolStripMenuItem itemElementACout = new ToolStripMenuItem();
                    itemElementACout.Text = fVal.ToString("0.####") + "   ";
                    if (source is ISatisfactionBesoin)
                    {
                        itemElementACout.Text += ((ISatisfactionBesoin)source).LibelleSatisfactionComplet;
                    }
                    else
                    {
                        itemElementACout.Text += source.Libelle;
                    }
                    if (source is ISatisfactionBesoin && utilisateur is CBesoin)
                    {
                        double fPct = CUtilSatisfaction.GetPourcentageFor((CBesoin)utilisateur, (ISatisfactionBesoin)source);
                        itemElementACout.Text += " (" + fPct.ToString("0.##") + "%)";
                    }
                    else
                    {
                        itemElementACout.Text += "  (100%)";
                    }


                    itemElementACout.Tag   = source;
                    itemElementACout.Image = DynamicClassAttribute.GetImage(source.GetType());
                    if (fVal == 0)
                    {
                        itemElementACout.BackColor = Color.LightPink;
                    }
                    if (source.GetSourcesDeCout(m_bMenuForCoutReel).Length > 0)
                    {
                        ToolStripMenuItem dummy = new ToolStripMenuItem();
                        itemElementACout.DropDownItems.Add(dummy);
                        itemElementACout.DropDownOpening += new EventHandler(itemElementACout_DropDownOpening);
                    }
                    itemElementACout.MouseUp += new MouseEventHandler(itemElementACout_MouseUp);
                    return(itemElementACout);
                }
            }
            return(null);
        }
예제 #2
0
        //--------------------------------------------------
        private string GetKey(IElementACout element, bool bCoutReel)
        {
            string strType = element.GetType().Sc2iTypeId();

            string strIdUniversel = "";

            if (element.Row.RowState == DataRowState.Deleted || element.Row.RowState == DataRowState.Detached)
            {
                strIdUniversel = (string)element.Row[CObjetDonnee.c_champIdUniversel, DataRowVersion.Original];
            }
            else
            {
                strIdUniversel = element.IdUniversel;
            }
            return(strType + "|" + strIdUniversel + "|" + (bCoutReel ? "1" : "0"));
        }
예제 #3
0
 //------------------------------------------------------------------------------------------------------------------------------
 private static void InvalideLeCoutDesSources(IElementACout elt, bool bCoutReel, HashSet <Type> typesAInvalider, HashSet <IElementACout> elementsFaits)
 {
     if (elt == null || elt.Row.RowState == DataRowState.Deleted || elt.Row.RowState == DataRowState.Detached)
     {
         return;
     }
     if (elementsFaits.Contains(elt))
     {
         return;
     }
     elementsFaits.Add(elt);
     foreach (IElementACout source in elt.GetSourcesDeCout(bCoutReel))
     {
         InvalideLeCoutDesSources(source, bCoutReel, typesAInvalider, elementsFaits);
     }
     if (typesAInvalider.Contains(elt.GetType()))
     {
         OnChangeCout(elt, bCoutReel, false);
     }
 }