Exemplo n.º 1
0
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            IElementAEO elt       = objetAppelle as IElementAEO;
            IElementAEO source    = parametres[0] as IElementAEO;
            string      strRacine = parametres.Length > 1 && parametres[1] != null? parametres[1].ToString() : "";

            CUtilElementAEO.CopyAndReplaceEOS(elt, source, strRacine);
            return(true);
        }
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CListeObjetsDonnees liste  = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CActeur));
                CFiltreData         filtre = new CFiltreDataAvance(
                    CActeur.c_nomTable,
                    "Has(" + CEOplanifiee_Acteur.c_nomTable + "." + CEOplanifiee_Acteur.c_champId + ")");
                liste.Filtre = filtre;
                foreach (CActeur acteur in liste)
                {
                    //Il suffit de modifier l'acteur pour qu'on recalcule ces eos
                    CUtilElementAEO.UpdateEOSInCurrentContext(acteur);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }

            return(result);
        }
Exemplo n.º 3
0
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(contexte);

            if (!result)
            {
                return(result);
            }

            DataTable dt   = contexte.Tables[CSite.c_nomTable];
            ArrayList rows = new ArrayList(dt.Rows);

            foreach (DataRow row in rows)
            {
                CSite site = new CSite(row);
                result = SObjetAFilsACoordonneeServeur.TraitementAvantSauvegarde(site);


                //Verification des Eos pour la localisation par coordonnee
                if (row.RowState != DataRowState.Deleted && site.TypeSite != null && row.RowState == DataRowState.Modified)
                {
                    CTypeEntiteOrganisationnelle typeEO = site.TypeSite.TypeEntiteOrganisationnelleDeCoordonnee;

                    if (typeEO != null && site.EOdeCoordonnee == null)
                    {
                        List <CEntiteOrganisationnelle> lsteos       = CUtilElementAEO.GetToutesEOs(site);
                        List <CEntiteOrganisationnelle> lsteosRacine = new List <CEntiteOrganisationnelle>();
                        List <CEntiteOrganisationnelle> lsteosFilles = new List <CEntiteOrganisationnelle>();

                        //Recuperation des EOs du niveau Racine
                        foreach (CEntiteOrganisationnelle eo in lsteos)
                        {
                            if (eo.TypeEntite == typeEO)
                            {
                                lsteosRacine.Add(eo);
                            }
                        }

                        foreach (CEntiteOrganisationnelle eo in lsteos)
                        {
                            if (eo.TypeEntite != typeEO)
                            {
                                foreach (CEntiteOrganisationnelle eoracine in lsteosRacine)
                                {
                                    if (eo.IsChildOf(eoracine))
                                    {
                                        lsteosFilles.Add(eo);
                                    }
                                }
                            }
                        }


                        int totalPoss = lsteosRacine.Count + lsteosFilles.Count;

                        if (totalPoss > 1)
                        {
                            result.EmpileErreur(I.T("Several organisational entities can affect this site coordinate : please select the default one|30001"));
                        }
                        else if (totalPoss == 1 && lsteosRacine.Count == 1)
                        {
                            site.EOdeCoordonnee = lsteosRacine[0];
                        }
                        else if (totalPoss == 1 && lsteosFilles.Count == 1)
                        {
                            site.EOdeCoordonnee = lsteosFilles[0];
                        }
                    }
                }



                if (!result)
                {
                    return(result);
                }
            }

            return(result);
        }
Exemplo n.º 4
0
 public CResultAErreur SetAllOrganizationalEntities(int[] nIdsOE)
 {
     return(CUtilElementAEO.SetAllOrganizationalEntities(this, nIdsOE));
 }
Exemplo n.º 5
0
 public CResultAErreur SupprimerEO(int nIdEO)
 {
     return(CUtilElementAEO.SupprimerEO(this, nIdEO));
 }
Exemplo n.º 6
0
 public CResultAErreur AjouterEO(int nIdEO)
 {
     return(CUtilElementAEO.AjouterEO(this, nIdEO));
 }
Exemplo n.º 7
0
 public void CompleteRestriction(CRestrictionUtilisateurSurType restriction)
 {
     CUtilElementAEO.CompleteRestriction(this, restriction);
 }
Exemplo n.º 8
0
 public void RefreshCodesEOS()
 {
     CUtilElementAEO.UpdateEOs(this);
 }