public void Init(IDonneeBesoin calcul, CBesoin besoin, CItemBesoin itemBesoin, IEnumerable <CItemBesoin> items)
 {
     m_bIsInitializing = true;
     m_calculQte       = calcul as CDonneeBesoinQuantiteCU;
     if (m_calculQte != null)
     {
         Visible = true;
         m_txtQuantité.UnitValue = m_calculQte.Quantite;
         m_lblUniteCU.Text       = "";
         m_uniteCU = null;
         if (m_calculQte.CoutUnitaire != null)
         {
             m_txtCoutUnitaire.DoubleValue = m_calculQte.CoutUnitaire.Valeur;
             if (m_calculQte.Quantite != null && m_calculQte.Quantite.IUnite != null)
             {
                 string strU = CUtilUnite.GetUniteInverse(m_calculQte.CoutUnitaire.Unite);
                 IUnite u    = CGestionnaireUnites.GetUnite(strU);
                 if (u != null && u.Classe.GlobalId == m_calculQte.Quantite.IUnite.Classe.GlobalId)
                 {
                     m_uniteCU         = u;
                     m_lblUniteCU.Text = u.LibelleCourt;
                 }
             }
         }
         else
         {
             m_txtCoutUnitaire.DoubleValue = null;
         }
     }
     m_bIsInitializing = false;
 }
        //-----------------------------------------------
        public CResultAErreur MajChamps()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_calculQte != null)
            {
                m_calculQte.Quantite = m_txtQuantité.UnitValue;
                if (m_txtCoutUnitaire.DoubleValue != null)
                {
                    if (m_uniteCU != null &&
                        m_calculQte.Quantite != null &&
                        (m_calculQte.Quantite.IUnite == null ||
                         m_calculQte.Quantite.IUnite.Classe == m_uniteCU.Classe))
                    {
                        m_calculQte.CoutUnitaire = new CValeurUnite(m_txtCoutUnitaire.DoubleValue.Value,
                                                                    CUtilUnite.GetUniteInverse(m_uniteCU.GlobalId));
                    }
                    else
                    {
                        m_calculQte.CoutUnitaire = new CValeurUnite(m_txtCoutUnitaire.DoubleValue.Value, "");
                    }
                }
                else
                {
                    m_calculQte.CoutUnitaire = null;
                }
            }
            return(result);
        }
 //------------------------------------------------------------
 private void m_btnCoutVerrouillé_Click(object sender, EventArgs e)
 {
     if (m_donneeConsommable != null && !LockEdition && m_besoin != null)
     {
         m_donneeConsommable.IsCoutTarif = !m_donneeConsommable.IsCoutTarif;
         if (m_donneeConsommable.IsCoutTarif)
         {
             m_txtCoutUnitaire.LockEdition = true;
             m_donneeConsommable.SetTypeConsommable(m_donneeConsommable.GetTypeConsommable(m_besoin.ContexteDonnee));
             if (m_donneeConsommable.CoutUnitaire != null)
             {
                 m_txtCoutUnitaire.DoubleValue = m_donneeConsommable.CoutUnitaire.Valeur;
                 m_uniteCU = CGestionnaireUnites.GetUnite(CUtilUnite.GetUniteInverse(m_donneeConsommable.CoutUnitaire.Unite));
             }
             if (OnCoutChanged != null)
             {
                 OnCoutChanged(this, null);
             }
         }
         else
         {
             m_txtCoutUnitaire.LockEdition = false;
         }
         UpdateImageVerrou();
     }
 }
예제 #4
0
        /// /////////////////////////////////////////////////
        protected override List <COperateurAnalysable> GetOperateursDynamiqueNiveau(int nNiveau, string strMot)
        {
            List <COperateurAnalysable> lst = new List <COperateurAnalysable>();

            if (nNiveau == 0 && strMot.StartsWith(":"))
            {
                string strTmp = strMot.Substring(1);
                if (CUtilUnite.GetIdClasseUnite(strTmp) != null)
                {
                    COperateurAnalysable operateur = new COperateurAnalysable(0,
                                                                              ":" + strTmp, ":" + strTmp, false);
                    lst.Add(operateur);
                }
            }
            return(lst);
        }
예제 #5
0
        /// //////////////////////////////////////////////////////////////
        public IExpression GetExpression(string strIdExpression)
        {
            Type tp = (Type)m_tableTypesExpression[strIdExpression];

            if (tp == null)
            {
                if (strIdExpression.StartsWith(":"))//Une unité ?
                {
                    if (CUtilUnite.GetIdClasseUnite(strIdExpression.Substring(1)) != null)
                    {
                        return(new C2iExpressionConvertUnit(strIdExpression.Substring(1)));
                    }
                }
                return(null);
            }
#if PDA
            return((IExpression)Activator.CreateInstance(tp));
#else
            return((IExpression)Activator.CreateInstance(tp, new object[0]));
#endif
        }
        //-----------------------------------------------
        private void FillFromDonnee()
        {
            if (m_donneeConsommable == null || m_besoin == null)
            {
                return;
            }

            CTypeConsommable typeConsommable = m_donneeConsommable.GetTypeConsommable(m_besoin.ContexteDonnee);

            if (typeConsommable != null)
            {
                IUnite unite = typeConsommable.Unite;
                if (unite != null)
                {
                    m_txtQuantité.DefaultFormat = unite.LibelleCourt;
                }
                m_txtQuantité.UseValueFormat = true;
            }

            m_txtQuantité.UnitValue = m_donneeConsommable.Quantite;
            m_lblUniteCU.Text       = "";
            m_uniteCU = null;
            if (m_donneeConsommable.CoutUnitaire != null)
            {
                m_txtCoutUnitaire.DoubleValue = m_donneeConsommable.CoutUnitaire.Valeur;
                string strU = CUtilUnite.GetUniteInverse(m_donneeConsommable.CoutUnitaire.Unite);
                IUnite u    = CGestionnaireUnites.GetUnite(strU);
                m_uniteCU         = u;
                m_lblUniteCU.Text = u.LibelleCourt;
            }
            else
            {
                m_txtCoutUnitaire.DoubleValue = null;
            }
            m_txtCoutUnitaire.LockEdition = LockEdition || m_donneeConsommable.IsCoutTarif;
            m_lblUniteCU.Enabled          = !LockEdition && !m_donneeConsommable.IsCoutTarif;
        }