Esempio n. 1
0
        //----------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <param name="nIdEO"></param>
        /// <returns></returns>
        public static CResultAErreur SupprimerEO(IElementAEO element, int nIdEO)
        {
            CResultAErreur result = CResultAErreur.True;

            CListeObjetsDonnees listeEOExistantes = CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)element);

            listeEOExistantes.Filtre =
                new CFiltreData(CEntiteOrganisationnelle.c_champId + " = @1", nIdEO);

            if (listeEOExistantes.Count == 0)
            {
                result.EmpileErreur(I.T("This Organisationnal Entity is not assigned to the element: @1|566", element.DescriptionElement));
                return(result);
            }
            // Supprime l'affectation de l'EO à l'élément
            CRelationElement_EO relation = (CRelationElement_EO)listeEOExistantes[0];

            if (relation != null)
            {
                result = relation.Delete(true);
                if (!result)
                {
                    return(result);
                }
            }

            return(result);
        }
Esempio n. 2
0
        //----------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <param name="nIdEO"></param>
        /// <returns></returns>
        public static CResultAErreur AjouterEO(IElementAEO element, int nIdEO)
        {
            CResultAErreur result = CResultAErreur.True;

            CListeObjetsDonnees listeEOExistantes = CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)element);

            listeEOExistantes.Filtre =
                new CFiltreData(CEntiteOrganisationnelle.c_champId + " = @1", nIdEO);

            if (listeEOExistantes.Count > 0)
            {
                result.EmpileErreur(I.T("This Organisationnal Entity is already assigned to the element: @1|565", element.DescriptionElement));
                return(result);
            }
            // Affecte l'EO à l'élement
            CEntiteOrganisationnelle entite = new CEntiteOrganisationnelle(element.ContexteDonnee);

            if (entite.ReadIfExists(nIdEO))
            {
                CRelationElement_EO relation = new CRelationElement_EO(element.ContexteDonnee);
                relation.CreateNewInCurrentContexte();
                relation.EntiteOrganisationnelle = entite;
                relation.ElementLie = (CObjetDonneeAIdNumerique)element;
            }

            return(result);
        }
        //////////////////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CRelationElement_EO rel = (CRelationElement_EO)objet;

                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
        //////////////////////////////////////////////////////////////////////
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(contexte);

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

            DataTable table = contexte.Tables[GetNomTable()];

            if (table == null)
            {
                return(result);
            }

            ArrayList lst = new ArrayList(table.Rows);
            Dictionary <IElementAEO, bool> tableElementsToUpdate = new Dictionary <IElementAEO, bool>();

            foreach (DataRow row in lst)
            {
                if (
                    row.RowState == DataRowState.Modified ||
                    row.RowState == DataRowState.Added)
                {
                    CRelationElement_EO      rel   = new CRelationElement_EO(row);
                    CObjetDonneeAIdNumerique objet = rel.ElementLie;
                    if (objet != null)
                    {
                        if (objet is IElementAEO)
                        {
                            tableElementsToUpdate[(IElementAEO)objet] = true;

                            // Vérifie les Exception de Type pour le Type d'EO
                            if (rel.EntiteOrganisationnelle != null &&
                                rel.EntiteOrganisationnelle.TypeEntite != null &&
                                rel.EntiteOrganisationnelle.TypeEntite.HasExceptionForType(objet.GetType()))
                            {
                                result.EmpileErreur(I.T("@1 cannot be affected to Organizational Entity @2. There is an Exception on this Type|10011",
                                                        ((IElementAEO)objet).DescriptionElement, rel.EntiteOrganisationnelle.Libelle));
                                return(result);
                            }
                        }
                    }
                }
                else if (row.RowState == DataRowState.Deleted)
                {
                    CRelationElement_EO rel = new CRelationElement_EO(row);
                    rel.VersionToReturn = DataRowVersion.Original;
                    CObjetDonneeAIdNumerique objet = rel.ElementLie;
                    if (objet != null && objet.IsValide() && objet is IElementAEO && (!(rel.Row[CSc2iDataConst.c_champIsDeleted] is bool) || (bool)rel.Row[CSc2iDataConst.c_champIsDeleted] != true))
                    {
                        tableElementsToUpdate[(IElementAEO)objet] = true;
                    }
                }
            }

            //Met à jour les eos des éléments qui ont bougé
            foreach (IElementAEO element in tableElementsToUpdate.Keys)
            {
                result = CUtilElementAEO.UpdateEOSInCurrentContext(element);
                if (!result)
                {
                    return(result);
                }
            }
            return(result);
        }
Esempio n. 5
0
 //---------------------------------------------------------------------------------
 public CListeObjetsDonnees GetEntiteOrganisationnellesDirectementLiees(IElementAEO elt)
 {
     return(CRelationElement_EO.GetEntitesOrganisationnellesDirectementLiees(elt));
 }