示例#1
0
        //--------------------------------------------------------------------
        private void m_lnkEditerModificationsPrevisionnelles_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (m_gestionnaireModeEdition.ModeEdition)
            {
                Intervention.VersionDonneesAAppliquer = (CVersionDonnees)m_txtSelectVersionLiee.ElementSelectionne;
            }
            if (Intervention.VersionDonneesAAppliquer == null)
            {
                if (!m_gestionnaireModeEdition.ModeEdition)
                {
                    CFormAlerte.Afficher(I.T("No planified modification for that intervention|1359"), EFormAlerteType.Erreur);
                    return;
                }
                //Si nouvelle inter, il faut la valider
                if (CFormAlerte.Afficher(I.T("You have to save your intervention before associate it to planified modification. Would you like to save now ?|1356"),
                                         EFormAlerteType.Question) == DialogResult.No)
                {
                    return;
                }
                if (SaveRequired != null)
                {
                    CancelEventArgs args = new CancelEventArgs();
                    args.Cancel = false;
                    SaveRequired(this, args);
                    if (args.Cancel)
                    {
                        return;
                    }
                }
                else
                {
                    CFormAlerte.Afficher("Error", EFormAlerteType.Erreur);
                    return;
                }

                CResultAErreur result = CResultAErreur.True;

                //Création de la version
                CVersionDonnees version = CFormCreateVersionPourIntervention.GetVersionForInter(Intervention);
                if (version != null)
                {
                    if (version.IsNew())
                    {
                        result = version.CommitEdit();
                        if (!result)
                        {
                            CFormAlerte.Afficher(I.T("Error while creating data version|1357"), EFormAlerteType.Erreur);
                            return;
                        }
                    }

                    //Affectation de la version à l'intervention
                    CIntervention intervention = Intervention;
                    bool          bStartEdit   = intervention.ContexteDonnee.IsEnEdition;
                    if (!bStartEdit)
                    {
                        intervention.BeginEdit();
                    }
                    intervention.VersionDonneesAAppliquer = version;
                    if (!bStartEdit)
                    {
                        result = intervention.CommitEdit();
                    }
                    if (!result)
                    {
                        intervention.CancelEdit();
                        CFormAlerte.Afficher(I.T("Error while affecting version do intervention|1358"), EFormAlerteType.Erreur);
                    }
                    InitChamps(intervention);
                }
            }

            //La version de données est maintenant normallement associée à l'intervention
            CSite site = Intervention.Site;

            if (site == null)
            {
                return;
            }
            if (Intervention.VersionDonneesAAppliquer == null)
            {
                return;
            }
            //Crée un contexte dans la version
            using (CContexteDonnee contexte = new CContexteDonnee(Intervention.ContexteDonnee.IdSession, true, false))
            {
                CResultAErreur result = contexte.SetVersionDeTravail(Intervention.VersionDonneesAAppliquer.Id, true);
                if (!result)
                {
                    CFormAfficheErreur.Show(result.Erreur);
                    return;
                }

                site = (CSite)site.GetObjetInContexte(contexte);
                CFormNavigateurPopup.Show(new CFormEditionSite(site));
            }
        }