コード例 #1
0
        public void Init(IElementAOperationsRealisees element)
        {
            m_bIsFilling = true;
            m_wndListeOperations.SuspendDrawing();
            m_elementAOperations = element;
            m_wndListeOperations.Init(m_elementAOperations);

            ///Préinitialise avec les valeurs planifiées
            ///comme ça, quand on clique sur check, la date est préinitialisée
            CFractionIntervention fraction = element as CFractionIntervention;

            if (fraction != null)
            {
                m_dtDebut.Value = fraction.DateDebutPlanifie;
                m_dtFin.Value   = fraction.DateFinPlanifiee;

                m_wndDuree.ValeurHeure = fraction.DureeSaisie;
            }

            ///et affecte les valeurs réelles
            m_dtDebut.Value = element.DateDebut;
            m_dtFin.Value   = element.DateFin;

            m_bIsFilling = false;
            RecalcSize();

            m_wndListeOperations.ResumeDrawing();
        }
コード例 #2
0
ファイル: CFormPlanification.cs プロジェクト: ykebaili/Timos
        //------------------------------------------------------------
        private void m_btnAjouter_Click(object sender, EventArgs e)
        {
            if (m_elementAIntervention == null)
            {
                return;
            }
            CTypeIntervention typeIntervention = (CTypeIntervention)CFormSelectUnObjetDonnee.SelectionRechercheRapide(
                I.T("Sélectionnez une intervention|20732"),
                typeof(CTypeIntervention),
                null,
                "",
                "",
                "");

            if (typeIntervention != null)
            {
                CIntervention tache = new CIntervention(m_contexteDonnee);
                tache.CreateNewInCurrentContexte();
                tache.TypeIntervention     = typeIntervention;
                tache.ElementAIntervention = (CObjetDonneeAIdNumerique)m_elementAIntervention;
                tache.DureePrevisionnelle  = typeIntervention.DureeStandardHeures;
                CFractionIntervention fraction = new CFractionIntervention(m_contexteDonnee);
                fraction.CreateNewInCurrentContexte();
                fraction.DateDebutPlanifie = m_controlPlanning.DateDebut;
                fraction.DateFinPlanifiee  = fraction.DateDebutPlanifie.AddHours(tache.DureePrevisionnelle);
                fraction.Intervention      = tache;
                m_controlPlanning.Refresh();
                //m_controlPlanning.SelectTranche(fraction);
            }
        }
コード例 #3
0
        //----------------------------------------------------------------------------------------
        void InitSelectEquipement()
        {
            if (!IsCreatingImage)
            {
                CFiltreData filtre = null;

                if (Operation != null && Operation.TypeEquipement != null)
                {
                    filtre = CFiltreData.GetAndFiltre(filtre,
                                                      new CFiltreData(
                                                          CTypeEquipement.c_champId + " = @1",
                                                          Operation.TypeEquipement.Id));
                }

                CFractionIntervention fraction = ElementAOperations as CFractionIntervention;

                if (fraction != null &&
                    fraction.Intervention.ElementAIntervention != null)
                {
                    filtre = CFiltreData.GetAndFiltre(filtre,
                                                      new CFiltreData(
                                                          CSite.c_champId + "=@1",
                                                          fraction.Intervention.ElementAIntervention.Id));
                }

                m_txtSelectEquipementLie.InitAvecFiltreDeBase <CEquipement>(
                    "Libelle",
                    filtre,
                    true);
            }
        }
コード例 #4
0
        //------------------------------------------------------------------------------
        public CResultAErreur Maj_Champs()
        {
            CResultAErreur result = CResultAErreur.True;

            CObjetDonnee objElementAOp = ElementAOperations as CObjetDonnee;

            if (ElementAOperations == null || (objElementAOp != null && !objElementAOp.IsValide()))
            {
                return(result);
            }
            ElementAOperations.DateDebut = m_dtDebut.Value;
            ElementAOperations.DateFin   = m_dtFin.Value;

            if (!m_listeDerniersfractionInterventions.Contains(ElementAOperations.Id))
            {
                m_listeDerniersfractionInterventions.Add(ElementAOperations.Id);
            }

            result = m_wndListeOperations.MajChamps();
            CFractionIntervention fraction = ElementAOperations as CFractionIntervention;

            if (fraction != null)
            {
                fraction.DureeSaisie = m_wndDuree.ValeurHeure;
            }

            return(result);
        }
コード例 #5
0
 private void m_editeurFraction_MAJ_Champs(object sender, CObjetDonneeResultEventArgs args)
 {
     if (args.Objet is CFractionIntervention)
     {
         CFractionIntervention fraction = (CFractionIntervention)args.Objet;
         fraction.DateDebutPlanifie = m_dtDebut.Value;
         fraction.DateFinPlanifiee  = m_dtFin.Value;
     }
 }
コード例 #6
0
 private void m_editeurFraction_InitChamp(object sender, CObjetDonneeResultEventArgs args)
 {
     m_panelFraction.Visible = args.Objet is CFractionIntervention;
     if (args.Objet is CFractionIntervention)
     {
         CFractionIntervention fraction = (CFractionIntervention)args.Objet;
         m_dtDebut.Value = fraction.DateDebutPlanifie;
         m_dtFin.Value   = fraction.DateFinPlanifiee;
     }
 }
コード例 #7
0
        public void Init(IElementAOperationsRealisees element)
        {
            m_bIsFilling = true;
            m_panelControles.SuspendDrawing();
            m_elementAOperations = element;
            foreach (Control ctrl in m_listeControlsUtiles)
            {
                ctrl.Visible = false;
                ((CControleSaisieOperation)ctrl).Operation = null;
            }

            ///Préinitialise avec les valeurs planifiées
            ///comme ça, quand on clique sur check, la date est préinitialisée
            CFractionIntervention fraction = element as CFractionIntervention;

            if (fraction != null)
            {
                m_dtDebut.Value = fraction.DateDebutPlanifie;
                m_dtFin.Value   = fraction.DateFinPlanifiee;

                m_wndDuree.ValeurHeure = fraction.DureeSaisie;
            }

            ///et affecte les valeurs réelles
            m_dtDebut.Value = element.DateDebut;
            m_dtFin.Value   = element.DateFin;



            m_listeControlesReserve.AddRange(m_listeControlsUtiles);
            m_listeControlsUtiles.Clear();
            CListeObjetsDonnees liste = m_elementAOperations.Operations;

            liste.Filtre = new CFiltreData(COperation.c_champIdOpParente + " is null");
            int nIndex = 0;

            foreach (COperation donnee in liste)
            {
                AddOperation(donnee, ref nIndex, false);
            }
            if (m_listeControlsUtiles.Count == 0 && m_gestionnaireModeEdition.ModeEdition)
            {
                CControleSaisieOperation ctrl = GetNewControle(0);
                ctrl.InitControle(null, 0, 0, true);
            }
            ReordonneeTout();

            m_bIsFilling = false;
            RecalcSize();

            m_panelControles.ResumeDrawing();
        }
コード例 #8
0
        //-------------------------------------------------------------------------
        private bool AffichePage(int nNumPage, bool bMajChampsAvantAffichage)
        {
            if (m_gestionnaireModeEdition.ModeEdition && bMajChampsAvantAffichage)
            {
                CResultAErreur result = MajChamps();
                if (!result)
                {
                    CFormAlerte.Afficher(result.Erreur);
                    return(false);
                }
            }
            m_nPageEnCours = nNumPage;
            m_panelCRs.SuspendDrawing();
            foreach (Control ctrl in new ArrayList(m_panelCRs.Controls))
            {
                if (ctrl is CControleSaisiesOperations)
                {
                    m_listeControles.Add((CControleSaisiesOperations)ctrl);
                    ctrl.Visible = false;
                }
            }

            m_lblPageSurNbPages.Text = (m_nPageEnCours + 1).ToString() + "/" + m_nbPages.ToString();
            for (int i = m_nPageEnCours * m_nbParPage; i < (m_nPageEnCours * m_nbParPage) + m_nbParPage; i++)
            {
                if (i < m_listeFractions.Count)
                {
                    CFractionIntervention fraction = (CFractionIntervention)m_listeFractions[i];
                    if (fraction.DateDebut != null)
                    {
                        CControleSaisiesOperations ctrlSaisie = null;
                        if (m_listeControles.Count > 0)
                        {
                            ctrlSaisie = m_listeControles[0];
                            m_listeControles.RemoveAt(0);
                            ctrlSaisie.Visible = true;
                        }
                        else
                        {
                            ctrlSaisie = new CControleSaisiesOperations();
                            m_panelCRs.Controls.Add(ctrlSaisie);
                        }
                        ctrlSaisie.Dock        = DockStyle.Top;
                        ctrlSaisie.Visible     = true;
                        ctrlSaisie.LockEdition = !m_gestionnaireModeEdition.ModeEdition;
                        ctrlSaisie.Init(fraction);
                    }
                }
            }
            m_panelCRs.ResumeDrawing();
            return(true);
        }
コード例 #9
0
        //------------------------------------------------------------------------------
        public CResultAErreur Maj_Champs()
        {
            CResultAErreur result = CResultAErreur.True;

            CObjetDonnee objElementAOp = ElementAOperations as CObjetDonnee;

            if (ElementAOperations == null || (objElementAOp != null && !objElementAOp.IsValide()))
            {
                return(result);
            }
            ElementAOperations.DateDebut = m_dtDebut.Value;
            ElementAOperations.DateFin   = m_dtFin.Value;
            //if (m_dtDebut.Value == null)
            //{
            //    result.EmpileErreur("Date de début d'intervention obligatoire");
            //    return result;
            //}

            if (!m_listeDerniersfractionInterventions.Contains(ElementAOperations.Id))
            {
                m_listeDerniersfractionInterventions.Add(ElementAOperations.Id);
            }

            Hashtable tableNiveauToParent = new Hashtable();

            foreach (CControleSaisieOperation control in m_listeControlsUtiles)
            {
                result = control.Maj_Champs(tableNiveauToParent);
                if (!result)
                {
                    return(result);
                }
                COperation donnee = control.Operation;
                if (donnee != null)
                {
                    tableNiveauToParent[donnee.Niveau] = donnee;
                }
            }

            CFractionIntervention fraction = ElementAOperations as CFractionIntervention;

            if (fraction != null)
            {
                fraction.DureeSaisie = m_wndDuree.ValeurHeure;
            }

            return(result);
        }
コード例 #10
0
 //--------------------------------------------------------------------------------
 private void m_btnDeletePlanification_LinkClicked(object sender, EventArgs e)
 {
     if (m_wndListeFractions.SelectedItems.Count == 1)
     {
         CFractionIntervention fraction = (CFractionIntervention)m_wndListeFractions.SelectedItems[0].Tag;
         if (CFormAlerte.Afficher(I.T("Delete this planification ?|30203"), EFormAlerteType.Question)
             == DialogResult.Yes)
         {
             CResultAErreur result = fraction.Delete();
             if (!result)
             {
                 CFormAlerte.Afficher(result.Erreur);
                 return;
             }
             UpdateFractions();
             m_editeurFraction.SetObjetEnCoursToNull();
         }
     }
 }
コード例 #11
0
        //-------------------------------------------------------------------
        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);

            foreach (DataRow row in lst)
            {
                if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
                {
                    CFractionIntervention fraction = new CFractionIntervention(row);
                    if (fraction.DateDebut == null &&
                        fraction.EtatInt > (int)EtatFractionIntervention.AFaire)
                    {
                        result.EmpileErreur(I.T("The start date of the Intervention Part must be defined|208"));
                        return(result);
                    }

                    if (fraction.DateDebut != null &&
                        fraction.DateFin != null &&
                        fraction.Intervention.TypeIntervention.TypeActiviteActeur != null)
                    {
                        result = ImputeDureeSurActivite(fraction);
                        if (!result)
                        {
                            return(result);
                        }
                    }
                }
            }
            return(result);
        }
コード例 #12
0
        //--------------------------------------------------------------
        private void AjouterCR(CFractionIntervention fraction)
        {
            if (Intervention.Operations.Count > 0)
            {
                if (CFormAlerte.Afficher(I.T("Fill operations from previsions ?|20137"), EFormAlerteType.Question) == DialogResult.Yes)
                {
                    fraction.InitFromPrevisionnel();
                }
            }
            CControleSaisiesOperations ctrlSaisie = new CControleSaisiesOperations();

            m_panelCRs.Controls.Add(ctrlSaisie);
            ctrlSaisie.Dock = DockStyle.Top;
            ctrlSaisie.BringToFront();
            ctrlSaisie.Visible = true;
            //m_gestionnaireModeEdition.SetModeEdition(ctrlSaisie, TypeModeEdition.EnableSurEdition);
            ctrlSaisie.LockEdition = !m_gestionnaireModeEdition.ModeEdition;
            ctrlSaisie.Init(fraction);
            ctrlSaisie.Focus();
        }
コード例 #13
0
ファイル: CFormDiviserTache.cs プロジェクト: ykebaili/Timos
        public static DateTime?GetDateDivision(Point pt, CFractionIntervention fraction)
        {
            CFormDiviserIntervention form = new CFormDiviserIntervention();
            TimeSpan sp = (DateTime)fraction.DateFinPlanifiee - (DateTime)fraction.DateDebutPlanifie;
            DateTime?dt = fraction.DateDebutPlanifie;

            if (dt == null)
            {
                return(null);
            }
            double fMinutes = (((int)sp.TotalMinutes) / 15) * 15 / 2;

            form.m_datePicker.Value = ((DateTime)fraction.DateDebutPlanifie).AddMinutes(fMinutes);
            form.Location           = SFormPopup.GetPointForFormPopup(pt, form);
            if (form.ShowDialog() == DialogResult.OK)
            {
                return(form.m_datePicker.Value);
            }
            return(null);
        }
コード例 #14
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CFractionIntervention fraction = (CFractionIntervention)objet;

                if (fraction.DateDebut != null && fraction.DateFin != null)
                {
                    if (fraction.DateFin < fraction.DateDebut)
                    {
                        result.EmpileErreur(I.T("The end date must be greater than the start date|416"));
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }

            return(result);
        }
コード例 #15
0
 //--------------------------------------------------------------
 private CFractionIntervention AjouterFraction()
 {
     if (m_gestionnaireModeEdition.ModeEdition)
     {
         DateTime dateDebut = new DateTime(1900, 1, 1);
         foreach (CFractionIntervention fraction in Intervention.Fractions)
         {
             if (fraction.DateFinPlanifiee > dateDebut)
             {
                 dateDebut = fraction.DateFinPlanifiee;
             }
         }
         if (Intervention.Fractions.Count == 0)
         {
             dateDebut = DateTime.Now;
         }
         CFractionIntervention fractionNew = new CFractionIntervention(Intervention.ContexteDonnee);
         fractionNew.CreateNewInCurrentContexte();
         fractionNew.Intervention      = Intervention;
         fractionNew.DateDebutPlanifie = dateDebut;
         if (m_wndDureePrevue.UnitValue != null)
         {
             fractionNew.DateFinPlanifiee = dateDebut.AddHours((double)m_wndDureePrevue.UnitValue.ConvertTo(CClasseUniteTemps.c_idH).Valeur);
         }
         else if (Intervention.TypeIntervention != null && Intervention.TypeIntervention.DureeStandardHeures > 0)
         {
             fractionNew.DateFinPlanifiee = dateDebut.AddHours(Intervention.TypeIntervention.DureeStandardHeures);
         }
         else
         {
             fractionNew.DateFinPlanifiee = dateDebut.AddHours(1);
         }
         UpdateFractions();
         return(fractionNew);
     }
     return(null);
 }
コード例 #16
0
        private CResultAErreur ImputeDureeSurActivite(CFractionIntervention fraction)
        {
            CResultAErreur result = CResultAErreur.True;

            if (fraction.DateDebut == null ||
                fraction.DateFin == null)
            {
                return(result);
            }
            if (fraction.TempsDeTravail == null)
            {
                return(result);
            }
            Hashtable tableToDelete = new Hashtable();

            //Stocke la liste des relations qui étaient présentes avant le travail
            //et les note comme étant à supprimer
            foreach (CIntervention_ActiviteActeur rel in fraction.RelationsActivite)
            {
                tableToDelete[rel] = true;
            }
            CTypeActiviteActeur typeActivite = fraction.Intervention.TypeIntervention.TypeActiviteActeur;
            bool bAvecSite = typeActivite.SiteObligatoire;

            if (typeActivite != null)
            {
                //Evalue les valeurs des champs custom pour l'activite
                CParametreRemplissageActiviteParIntervention parametreRemplissage = fraction.Intervention.TypeIntervention.ParametreRemplissageActivite;
                Dictionary <CChampCustom, object>            valeursChamps        = new Dictionary <CChampCustom, object>();
                CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(fraction);
                if (parametreRemplissage != null)
                {
                    foreach (CRemplisssageChampActiviteActeur remplissage in parametreRemplissage.ListeRemplissage)
                    {
                        CChampCustom champ = new CChampCustom(fraction.ContexteDonnee);

                        if (champ.ReadIfExists(remplissage.IdChampCustom))
                        {
                            C2iExpression formule = remplissage.Formule;
                            if (formule != null)
                            {
                                result = formule.Eval(ctxEval);
                                if (result)
                                {
                                    valeursChamps[champ] = result.Data;
                                }
                            }
                        }
                    }
                }

                foreach (CIntervention_Intervenant relIntervenant in fraction.Intervention.RelationsIntervenants)
                {
                    DateTime dt = ((DateTime)fraction.DateDebut).Date;

                    //Attention, si on est sur une fraction sur plusieurs jours, le
                    //pb est que la durée saisie (retenue pour l'intervention) peut
                    //ne pas être égale aux différents jours d'imputation,
                    //on réparti donc la durée de manière homogène sur les différents
                    //Jour en faisant un prorata de chaque jour
                    double fDureeAImputer = (double)fraction.TempsDeTravail;
                    double fDureeReelle   = (double)fraction.DureeReelle;


                    while (dt < (DateTime)fraction.DateFin && fDureeAImputer > 0)
                    {
                        //Cherche pour l'intervention ses activités du bon type
                        CFiltreData filtre = new CFiltreDataAvance(CActiviteActeur.c_nomTable,
                                                                   CTypeActiviteActeur.c_champId + "=@1 and " +
                                                                   CActiviteActeur.c_champDate + ">=@2 and " +
                                                                   CActiviteActeur.c_champDate + "<@3 and " +
                                                                   "Has(" + CIntervention_ActiviteActeur.c_nomTable + "." +
                                                                   CIntervention_ActiviteActeur.c_champId + ") and " +
                                                                   CActeur.c_champId + "=@4",
                                                                   typeActivite.Id,
                                                                   dt,
                                                                   dt.AddDays(1),
                                                                   relIntervenant.Intervenant.Id);
                        if (bAvecSite)
                        {
                            filtre = CFiltreData.GetAndFiltre(filtre,
                                                              new CFiltreData(CSite.c_champId + "=@1",
                                                                              fraction.Intervention.Site.Id));
                        }
                        CListeObjetsDonnees listeActivites = new CListeObjetsDonnees(fraction.ContexteDonnee, typeof(CActiviteActeur));
                        listeActivites.Filtre = filtre;
                        listeActivites.ReadDependances("RelationsInterventions");
                        CActiviteActeur activiteRetenue         = null;
                        CIntervention_ActiviteActeur relRetenue = null;
                        foreach (CActiviteActeur activite in listeActivites)
                        {
                            bool bPrendre = true;
                            foreach (KeyValuePair <CChampCustom, object> chpValeur in valeursChamps)
                            {
                                object valDeAct = activite.GetValeurChamp(chpValeur.Key.Id);
                                if (valDeAct == null && chpValeur.Value != null)
                                {
                                    bPrendre = false;
                                    break;
                                }
                                else if (chpValeur.Value == null && valDeAct != null)
                                {
                                    bPrendre = false;
                                    break;
                                }
                                else if (chpValeur.Value != null && !chpValeur.Value.Equals(valDeAct))
                                {
                                    bPrendre = false;
                                    break;
                                }
                            }
                            if (bPrendre)
                            {
                                activiteRetenue = activite;
                                relRetenue      = null;
                                foreach (CIntervention_ActiviteActeur relInter in activiteRetenue.RelationsInterventions)
                                {
                                    //Si l'activité est directement liée à cette fraction, prend celle ci de préférence
                                    if (relInter.FractionIntervention.Id == fraction.Id)
                                    {
                                        relRetenue = relInter;
                                        break;
                                    }
                                }
                            }
                        }
                        if (activiteRetenue == null)
                        {
                            //Création de l'activite
                            activiteRetenue = new CActiviteActeur(fraction.ContexteDonnee);
                            activiteRetenue.CreateNewInCurrentContexte();
                            activiteRetenue.TypeActiviteActeur = typeActivite;
                            activiteRetenue.Acteur             = relIntervenant.Intervenant;
                            activiteRetenue.Date  = dt;
                            activiteRetenue.Duree = 0;
                            if (bAvecSite)
                            {
                                activiteRetenue.Site = fraction.Intervention.Site;
                            }
                            foreach (KeyValuePair <CChampCustom, object> valChamp in valeursChamps)
                            {
                                activiteRetenue.SetValeurChamp(valChamp.Key.Id, valChamp.Value);
                            }
                        }
                        if (relRetenue == null)
                        {
                            //Création de la relation à l'interventation
                            relRetenue = new CIntervention_ActiviteActeur(fraction.ContexteDonnee);
                            relRetenue.ActiviteActeur       = activiteRetenue;
                            relRetenue.DureeImputee         = 0;
                            relRetenue.FractionIntervention = fraction;
                        }

                        //Note que cette relation ne doit pas être supprimée
                        tableToDelete[relRetenue] = false;

                        double fDureeForThis = 0;
                        if (dt == fraction.DateFin.Value.Date)
                        {
                            fDureeForThis = fDureeAImputer;                            //On affecte le reste
                        }
                        else
                        {
                            if (dt == fraction.DateDebut.Value.Date)
                            {
                                //On est sur le premier jour,
                                //Utilise comme référence le temps qui sépare la date
                                //de début de minuit
                                TimeSpan sp     = dt.AddDays(1) - fraction.DateDebut.Value;
                                double   fRatio = sp.TotalHours / fDureeReelle;
                                fDureeForThis = fRatio * fraction.TempsDeTravail.Value;
                            }
                            else
                            {
                                fDureeForThis = 24.0 / fDureeReelle * fraction.TempsDeTravail.Value;
                            }
                            //Arrondi la durée calculé à la minute
                            fDureeForThis = (int)fDureeForThis + (int)((fDureeForThis - (int)fDureeForThis) * 60.0 + .5) / 60.0;
                        }
                        fDureeAImputer -= fDureeForThis;

                        if (relRetenue.DureeImputee != fDureeForThis)
                        {
                            //Impute la durée de la fraction sur l'activité
                            relRetenue.ActiviteActeur.Duree -= relRetenue.DureeImputee;
                            relRetenue.DureeImputee          = (double)fDureeForThis;
                            relRetenue.ActiviteActeur.Duree += fDureeForThis;
                        }
                        dt = dt.AddDays(1);
                    }
                }
            }
            foreach (DictionaryEntry entry in tableToDelete)
            {
                if ((bool)entry.Value)
                {
                    //Supprime la relation
                    CIntervention_ActiviteActeur relToDelete = (CIntervention_ActiviteActeur)entry.Key;
                    if (relToDelete.Row.RowState != DataRowState.Deleted)
                    {
                        CActiviteActeur activiteAncienne = relToDelete.ActiviteActeur;
                        //SC 10/3/2014 : La désimputation du temps de l'activité se fait dans CIntervention_activiteActeurServeur.TraitementAvantSauvegardee
                        //activiteAncienne.Duree -= relToDelete.DureeImputee;
                        result = relToDelete.Delete(true);

                        /*if ( result && activiteAncienne.Duree == 0 )
                         *      result = activiteAncienne.Delete();
                         * if ( !result )
                         *      return result;*/
                    }
                }
            }
            return(result);
        }
コード例 #17
0
        //--------------------------------------------------------------
        void OnAjouterFraction(object sender, EventArgs e)
        {
            CFractionIntervention fraction = AjouterFraction();

            AjouterCR(fraction);
        }
コード例 #18
0
        private void m_btnActeur_Click(object sender, EventArgs e)
        {
            if (LockEdition || Operation == null)
            {
                return;
            }


            if (Operation.TypeOperation != null && Operation.TypeOperation.VerrouillerAuteur)
            {
                return;
            }

            ContextMenuStrip menu = new ContextMenuStrip();

            menu.ImageList = m_pictosActeur;

            if (ElementAOperations != null)
            {
                // Item par défaut : Acteur utilisateur en cours
                CActeur acteurEnCours = CUtilSession.GetUserForSession(Operation.ContexteDonnee).Acteur;

                ToolStripMenuItem itemParDefaut = new ToolStripMenuItem(acteurEnCours.IdentiteComplete);
                itemParDefaut.ImageIndex = 0;
                itemParDefaut.Tag        = acteurEnCours;
                itemParDefaut.Click     += new EventHandler(itemActeur_Click);
                menu.Items.Add(itemParDefaut);


                // ajoute les autres acteurs possibles
                CFractionIntervention fraction = ElementAOperations as CFractionIntervention;
                if (fraction != null)
                {
                    // On est sur une Intervention
                    // Les acteurs possibles sont pris parmis les intervenants définit comme ressource
                    CIntervention intervention = fraction.Intervention;

                    ArrayList listerelationsIntervenants = intervention.RelationsIntervenants.ToArrayList();
                    if (listerelationsIntervenants.Count > 0)
                    {
                        menu.Items.Add(new ToolStripSeparator());
                    }

                    foreach (CIntervention_Intervenant rel in listerelationsIntervenants)
                    {
                        CActeur           intervenant = rel.Intervenant;
                        ToolStripMenuItem item        = new ToolStripMenuItem(intervenant.IdentiteComplete);
                        item.Tag    = intervenant;
                        item.Click += new EventHandler(itemActeur_Click);
                        menu.Items.Add(item);
                    }
                }
                else
                {
                    // On est sur une Phase de Ticket
                }

                menu.Items.Add(new ToolStripSeparator());

                C2iTextBoxSelectionneForMenu selectActeurItem = new C2iTextBoxSelectionneForMenu();
                selectActeurItem.TextBoxSelection.InitForSelect(typeof(CActeur),
                                                                "IdentiteComplete",
                                                                false);
                selectActeurItem.AutoClose       = true;
                selectActeurItem.OnSelectObject += new ObjetDonneeEventHandler(selectActeurItem_OnSelectObject);
                menu.Items.Add(selectActeurItem);
            }

            menu.Show((Control)sender, new Point(0, m_btnActeur.Height));
        }