예제 #1
0
        //--------------------------------------------------------
        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);
        }
예제 #2
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));
            }
        }