//-------------------------------------------------------- public static CVersionDonnees GetVersionForInter(CIntervention intervention) { if (intervention.VersionDonneesAAppliquer != null) { CFormAlerte.Afficher(I.T("This intervention is already linked to a version|1355"), EFormAlerteType.Erreur); return(intervention.VersionDonneesAAppliquer); } CFormCreateVersionPourIntervention form = new CFormCreateVersionPourIntervention(); form.m_intervention = intervention; CVersionDonnees version = null; if (form.ShowDialog() == DialogResult.OK) { if (form.m_radioLierNouveau.Checked) { //S'assure que la version est bien sauvegardée, en la créant dans une nouveau contexte CContexteDonnee contexteForVersion = new CContexteDonnee(intervention.ContexteDonnee.IdSession, true, false); version = new CVersionDonnees(contexteForVersion); version.CreateNew(); version.CodeTypeVersion = (int)CTypeVersion.TypeVersion.Previsionnelle; version.Libelle = form.m_txtLibelleVersion.Text; version.VersionParente = (CVersionDonnees)form.m_txtSelectVersionParente.ElementSelectionne; version.Date = DateTime.Now; } else { version = (CVersionDonnees)form.m_txtSelectVersionExistante.ElementSelectionne; } } form.Dispose(); return(version); }
//-------------------------------------------------------------------- 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)); } }