Ejemplo n.º 1
0
        public CResultAErreur Execute(int nIdSession, Hashtable valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            using (CContexteDonnee contexte = new CContexteDonnee(nIdSession, true, false))
            {
                try
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(true);
                    contexte.EnableTraitementsAvantSauvegarde = false;

                    CListeObjetsDonnees lstInterventions = new CListeObjetsDonnees(contexte, typeof(CIntervention));
                    //*** DEBUG ***
                    //lstInterventions.Filtre = new CFiltreData(
                    //    CIntervention.c_champId + " > @1 ",
                    //    8500);
                    int compteur = lstInterventions.CountNoLoad;
                    // FIN DEBUG
                    lstInterventions.ReadDependances("PhaseTicket.Ticket.RelationsChampsCustom");
                    lstInterventions.ReadDependances("RelationsIntervenants");
                    foreach (CIntervention inter in lstInterventions)
                    {
                        compteur--;
                        CPhaseTicket phase = inter.PhaseTicket;
                        if (phase != null)
                        {
                            // Copier les compte rendu pour OTA depuis l'intervention vers le ticket
                            CTicket ticketLié = phase.Ticket;
                            // 113 = Id du champ [Compte rendu d'Intervention modifié]
                            string strCompteRendu = (string)inter.GetValeurChamp(113);
                            // 114 = Id du champ [Compte rendu résumé pour OTA]
                            ticketLié.SetValeurChamp(144, strCompteRendu);

                            // Affecter le technicien sur les Phases de ticket
                            CActeur acteur = null;
                            if (phase.GetValeurChamp(146) == null)
                            {
                                foreach (CIntervention_Intervenant rel in inter.RelationsIntervenants)
                                {
                                    acteur = rel.Intervenant;
                                    // 146 = Id du champ [Technicien affecté] sur Phase
                                    if (acteur != null)
                                    {
                                        phase.SetValeurChamp(146, acteur);
                                        break;
                                    }
                                }
                            }
                        }
                    }

                    result = contexte.SaveAll(true);
                    if (!result)
                    {
                        result.EmpileErreur("Erreur de sauvegarde des données");
                        return(result);
                    }
                }
                catch (Exception e)
                {
                    result.EmpileErreur(new CErreurException(e));
                }
                finally
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(false);
                }
            }

            return(result);
        }
        public CResultAErreur Execute(int nIdSession, Hashtable valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            using (CContexteDonnee contexte = new CContexteDonnee(nIdSession, true, false))
            {
                StreamReader reader = null;
                try
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(true);
                    contexte.EnableTraitementsAvantSauvegarde = false;

                    // Charges tous les tickets
                    CListeObjetsDonnees listeTicketsACharger = new CListeObjetsDonnees(contexte, typeof(CTicket));
                    listeTicketsACharger.ReadDependances("RelationsChampsCustom");

                    // Lire le CSV
                    string strFichierImport = "c:\\TimosData\\IMPORT_JANVIER_MARS_2009.csv";
                    reader = new StreamReader(strFichierImport);

                    // Lit l'entête de colonnes
                    string strLine = reader.ReadLine();
                    // Lit la première ligne
                    strLine = reader.ReadLine();
                    while (strLine != null)
                    {
                        // Pour chaque ligne du ficher
                        string[] strChamps       = strLine.Split(';');
                        string   strNumeroTicket = strChamps[0];
                        string   strIdQualif     = strChamps[2];

                        // Traitement
                        CTicket ticket = new CTicket(contexte);
                        if (ticket.ReadIfExists(new CFiltreData(
                                                    CTicket.c_champNumero + " = @1",
                                                    strNumeroTicket)))
                        {
                            CQualificationTicket qualif = new CQualificationTicket(contexte);
                            if (qualif.ReadIfExists(new CFiltreData(
                                                        CQualificationTicket.c_champId + " = @1",
                                                        Int32.Parse(strIdQualif))))
                            {
                                // Affecte la valeur du champs custom 147 : Requalification
                                ticket.SetValeurChamp(147, qualif);
                            }
                        }

                        // Lit la ligne suivante
                        strLine = reader.ReadLine();
                    }

                    reader.Close();

                    result = contexte.SaveAll(true);
                    if (!result)
                    {
                        result.EmpileErreur("Erreur de sauvegarde des données");
                        return(result);
                    }
                }
                catch (Exception e)
                {
                    result.EmpileErreur(new CErreurException(e));
                }
                finally
                {
                    CHandlerEvenementServeur.SuspendGestionnaire(false);
                    if (reader != null)
                    {
                        reader.Close();
                    }
                }
            }

            return(result);
        }