//---------------------------------------------------------------------------- /// <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); }
//---------------------------------------------------------------------------- /// <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); }
//--------------------------------------------------------------------------------- public CListeObjetsDonnees GetEntiteOrganisationnellesDirectementLiees(IElementAEO elt) { return(CRelationElement_EO.GetEntitesOrganisationnellesDirectementLiees(elt)); }