Exemplo n.º 1
0
        //--------------------------------------------------
        private void m_lnkRestore_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (!m_bCanRestore)
            {
                return;
            }
            DataTable table = m_grilleProprietes.DataSource as DataTable;

            if (table != null && m_objetAffiche != null && m_valeursAffichees != null)
            {
                using (CContexteDonnee contexte = new CContexteDonnee(m_objetAffiche.ContexteDonnee.IdSession, true, false))
                {
                    CObjetDonneeAIdNumerique objetAModifier = contexte.GetObjetInThisContexte(m_objetAffiche) as CObjetDonneeAIdNumerique;
                    List <DataRow>           rowsSelected   = new List <DataRow>();
                    foreach (DataRow row in table.Rows)
                    {
                        if ((bool)row[m_strColChecked])
                        {
                            rowsSelected.Add(row);
                        }
                    }
                    CResultAErreur result = CResultAErreur.True;
                    if (rowsSelected.Count > 0)
                    {
                        objetAModifier.BeginEdit();
                        foreach (DataRow row in rowsSelected)
                        {
                            IChampPourVersion champ = row[m_strColObjetHistorique] as IChampPourVersion;
                            if (champ != null)
                            {
                                IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(champ.TypeChampString);
                                if (journaliseur != null)
                                {
                                    result = journaliseur.AppliqueValeur(m_version.Id, champ, objetAModifier, m_valeursAffichees[champ]);
                                    if (!result)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        if (result)
                        {
                            result = objetAModifier.CommitEdit();
                        }
                        if (!result)
                        {
                            objetAModifier.CancelEdit();
                            CFormAlerte.Afficher(result.Erreur);
                        }
                        else
                        {
                            InitForObjet(objetAModifier, m_version);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        //------------------------------------------------------
        public void InitForObjet(CObjetDonneeAIdNumerique objet, CVersionDonnees version)
        {
            CSessionClient   session = CSessionClient.GetSessionForIdSession(objet.ContexteDonnee.IdSession);
            IInfoUtilisateur info    = session.GetInfoUtilisateur();

            if (info != null)
            {
                m_bCanRestore = info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministration) != null;
            }
            m_bCanRestore         &= version != null && version.TypeVersion.Code == CTypeVersion.TypeVersion.Archive;
            m_panelRestore.Visible = m_bCanRestore;

            if (m_contexteDonnees != null)
            {
                m_contexteDonnees.Dispose();
            }
            m_tableValeurs.Clear();
            m_objetDepart = null;
            m_version     = null;
            m_arbreObjet.Nodes.Clear();
            if (objet == null || version == null)
            {
                return;
            }
            m_contexteDonnees = new CContexteDonnee(objet.ContexteDonnee.IdSession, true, false);
            m_contexteDonnees.SetVersionDeTravail(-1, false);            //Travaille sur toutes les versions
            m_objetDepart = (CObjetDonneeAIdNumerique)m_contexteDonnees.GetObjetInThisContexte(objet);
            m_version     = (CVersionDonnees)m_contexteDonnees.GetObjetInThisContexte(version);

            List <int> lstIds = new List <int>();

            if (m_version.TypeVersion.Code == CTypeVersion.TypeVersion.Previsionnelle)
            {
                CVersionDonnees verTmp = m_version.VersionParente;
                while (verTmp != null)
                {
                    lstIds.Add(verTmp.Id);
                    verTmp = verTmp.VersionParente;
                }
            }
            m_nIdsVersionsSuccessives = lstIds.ToArray();

            CreateNodeObjet(m_arbreObjet.Nodes, m_objetDepart);
        }