예제 #1
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CTicket ticket = (CTicket)objet;

                //On vérifi qu'il n'y a aucun des esclaves qui est déjà maitre de ce ticket
                foreach (CDependanceTicket dep in ticket.RelationsEsclavesListe)
                {
                    if (dep.TicketEsclave.IsMaitre(ticket))
                    {
                        result.EmpileErreur(I.T("The slave ticket @1 is already defined as a master of this ticket|229", dep.TicketEsclave.Numero));
                    }
                }

                //On vérifi qu'il n'y a aucun des maitres qui est déjà esclave de ce ticket
                foreach (CDependanceTicket dep in ticket.RelationsMaitresListe)
                {
                    if (ticket.IsMaitre(dep.TicketMaitre))
                    {
                        result.EmpileErreur(I.T("The master ticket @1 is already defined as a slave of this ticket|230", dep.TicketMaitre.Numero));
                    }
                }

                if (ticket.Responsable == null)
                {
                    result.EmpileErreur(I.T("A person  in charge of this ticket must be affected|231"));
                }

                // Saisie des détails
                if (ticket.Client == null)
                {
                    result.EmpileErreur(I.T("The Customer cannot be empty|232"));
                }
                if (ticket.Contrat == null)
                {
                    result.EmpileErreur(I.T("The Contract cannot be empty|233"));
                }
                if (ticket.TypeTicket == null)
                {
                    result.EmpileErreur(I.T("The Ticket Type cannot be empty|234"));
                }

                // Le Tikcet doit avoir au moins une phase de résolution
                //if (ticket.PhasesListe.Count == 0)
                //  result.EmpileErreur(I.T("The ticket must have at least one resolution phase|235"));
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
        //----------------------------------------------------------------------
        private void m_MaitreAjout_LinkClicked(object sender, EventArgs e)
        {
            if (m_txtMaitreSelec.ElementSelectionne != null)
            {
                CTicket tkt = (CTicket)m_txtMaitreSelec.ElementSelectionne;

                if (tkt.Equals(m_ticket))
                {
                    CFormAlerte.Afficher(I.T("A Ticket cannot be master of itself|1106"), EFormAlerteType.Exclamation);
                }
                else if (m_ticket.IsMaitre(tkt))
                {
                    CFormAlerte.Afficher(I.T("This Ticket cannot be a master Ticket, it is already slave of the current Ticket|1107"), EFormAlerteType.Exclamation);
                }
                else
                {
                    CDependanceTicket dependancetkt = new CDependanceTicket(m_ticket.ContexteDonnee);
                    dependancetkt.TicketMaitre       = tkt;
                    dependancetkt.TicketEsclave      = m_ticket;
                    dependancetkt.ClotureAutoEscalve = false;
                    dependancetkt.CreateNewInCurrentContexte();


                    ListViewItem item = new ListViewItem();
                    m_listeMaitres.Items.Add(item);
                    m_listeMaitres.UpdateItemWithObject(item, dependancetkt);
                    foreach (ListViewItem itemSel in m_listeMaitres.SelectedItems)
                    {
                        itemSel.Selected = false;
                    }
                    item.Selected = true;

                    m_txtMaitreSelec.ElementSelectionne = null;

                    MAJFiltreSelectionneurs();
                }
            }
        }