Exemplo n.º 1
0
        //------------------------------------------------
        public void Init(IObjetAFilsACoordonnees parent, IObjetACoordonnees fils)
        {
            m_parent = parent;
            if (parent != null)
            {
                EOptionControleCoordonnees?option = parent.OptionsControleCoordonneesApplique;
                if (option == null)
                {
                    option = COptionCoordonnéeGlobale.GetOptionType(fils.ContexteDonnee.IdSession, parent.GetType());
                }
                if (!SObjetAvecFilsAvecCoordonnees.IsAppliquable(option.Value, fils))
                {
                    LockEdition = true;
                }
                else
                {
                    LockEdition = !m_gestionnaireModeEdition.ModeEdition;
                }
            }

            m_fils        = fils;
            m_strCoorBase = fils.CoordonneeParente;
            if (m_strCoorBase.Length > 0)
            {
                m_strCoorBase += CSystemeCoordonnees.c_separateurNumerotations;
            }
            m_txtDebut.Text         = m_strCoorBase;
            m_txtDebut.LockEdition  = true;
            m_txtBoxCoordonnee.Text = fils.Coordonnee;

            VerifieDonnees();
        }
        private void m_btnOk_Click(object sender, EventArgs e)
        {
            m_optionsSite.MajChamps();
            m_panelOptionsEquipement.MajChamps();
            m_panelOptionsStock.MajChamps();
            if (m_site.OptionsControleCoordonneesPropre != null)
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CSite), m_site.OptionsControleCoordonneesPropre.Value);
            }
            else
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CSite), EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees);
            }

            if (m_equipement.OptionsControleCoordonneesPropre != null)
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CEquipement), m_equipement.OptionsControleCoordonneesPropre.Value);
            }
            else
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CEquipement), EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees);
            }
            if (m_site.OptionsControleCoordonneesPropre != null)
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CStock), m_stock.OptionsControleCoordonneesPropre.Value);
            }
            else
            {
                COptionCoordonnéeGlobale.SetOptionType(CTimosApp.SessionClient.IdSession, typeof(CStock), EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees);
            }
            DialogResult = DialogResult.OK;
            Close();
        }
 public CFormEditionOptionsGeneralesCoordonnees()
 {
     InitializeComponent();
     m_contexteDonnee = new CContexteDonnee(CTimosApp.SessionClient.IdSession, true, false);
     m_site           = new CSite(m_contexteDonnee);
     m_site.CreateNewInCurrentContexte();
     m_site.OptionsControleCoordonneesPropre = COptionCoordonnéeGlobale.GetOptionType(CTimosApp.SessionClient.IdSession, typeof(CSite));
     m_equipement = new CEquipement(m_contexteDonnee);
     m_equipement.CreateNewInCurrentContexte();
     m_equipement.OptionsControleCoordonneesPropre = COptionCoordonnéeGlobale.GetOptionType(CTimosApp.SessionClient.IdSession, typeof(CEquipement));
     m_stock = new CStock(m_contexteDonnee);
     m_stock.CreateNewInCurrentContexte();
     m_stock.OptionsControleCoordonneesPropre = COptionCoordonnéeGlobale.GetOptionType(CTimosApp.SessionClient.IdSession, typeof(CStock));
 }
Exemplo n.º 4
0
        /// <summary>
        /// Vérifie que la coordonnée demandée est valide pour le fils demandé dans le
        /// parent demandé
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="fils"></param>
        /// <param name="strCoordonnee"></param>
        /// <returns></returns>
        public static CResultAErreur VerifieCoordonneeFils(IObjetAFilsACoordonnees parent, IObjetACoordonnees fils, string strCoordonnee)
        {
            CResultAErreur result = CResultAErreur.True;

            ///Vérifie qu'on a ce qu'il faut pour bosser !!
            if (parent == null)
            {
                result.EmpileErreur(I.T("Impossible to check the coordinates of an object which is not positioned|259"));
                return(result);
            }
            if (fils == null)
            {
                return(result);
            }
            CParametrageSystemeCoordonnees parametrage = parent.ParametrageCoordonneesApplique;

            if (parametrage == null || parametrage.SystemeCoordonnees == null)
            {
                return(result);
            }

            EOptionControleCoordonnees?optionControle = parent.OptionsControleCoordonneesApplique;

            if (optionControle == null)
            {
                optionControle = COptionCoordonnéeGlobale.GetOptionType(fils.ContexteDonnee.IdSession, parent.GetType());
            }

            if (!IsAppliquable(optionControle.Value, fils))
            {
                return(result);
            }

            //Test Coordonnée vide
            if (strCoordonnee == "")
            {
                if ((optionControle & EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees) == EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees)
                {
                    return(result);
                }
                else
                {
                    result.EmpileErreur(I.T("Mandatory coordinate|258"));
                    return(result);
                }
            }

            ///Vérifie que la coordonnée  a le bon format
            result = parametrage.VerifieCoordonnee(strCoordonnee);
            if (!result)
            {
                return(result);
            }
            string strCoordonneeFin = strCoordonnee;

            COccupationCoordonnees occupation = fils.OccupationCoordonneeAppliquee;

            //Prend en compte l'occupation
            if ((optionControle & EOptionControleCoordonnees.IgnorerLoccupation) != EOptionControleCoordonnees.IgnorerLoccupation)
            {
                if (occupation == null)
                {
                    result.EmpileErreur(I.T("No occupation defined : control is impossible|256"));
                    return(result);
                }
                if (occupation.NbUnitesOccupees < 1)
                {
                    result.EmpileErreur(I.T("Incorrect number of occupied units|257"));
                    return(result);
                }
                if (occupation.NbUnitesOccupees != 1)                //1->coord fin = coord début !
                {
                    result = parametrage.SystemeCoordonnees.AjouteDansNiveau(strCoordonnee, occupation.NbUnitesOccupees - 1);
                    if (!result)
                    {
                        return(result);
                    }
                    strCoordonneeFin = (string)result.Data;
                    //Vérifie que la coordonnée de fin est correcte
                    result = parametrage.VerifieCoordonnee(strCoordonneeFin);
                    if (!result)
                    {
                        return(result);
                    }
                }
            }

            //Vérifie que l'unité est cohérente
            if ((optionControle & EOptionControleCoordonnees.IgnorerLesUnites) != EOptionControleCoordonnees.IgnorerLesUnites &&
                !fils.IgnorerUnite)
            {
                if (occupation == null)
                {
                    result.EmpileErreur(I.T("No occupation defined  : control is impossible|256"));
                    return(result);
                }
                result = parametrage.SystemeCoordonnees.VerifieUnite(strCoordonnee, occupation.Unite);
                if (!result)
                {
                    return(result);
                }
            }

            //Vérifie que la coordonnée n'est pas déjà occupée
            if ((optionControle & EOptionControleCoordonnees.AutoriserPlusieursFilsSurLaMemeCoordonnee) != EOptionControleCoordonnees.AutoriserPlusieursFilsSurLaMemeCoordonnee)
            {
                List <IObjetACoordonnees> lstobj = new List <IObjetACoordonnees>();
                lstobj = parent.FilsACoordonnees;

                //On exclu l'objet actuel si il est déjà présent car il ne peut pas rentrer en conflit avec lui même
                if (lstobj.Contains(fils))
                {
                    lstobj.Remove(fils);
                }

                result = parametrage.Test_Interactions(strCoordonnee, strCoordonneeFin, lstobj);
            }
            result.Data = null;
            return(result);
        }