Example #1
0
 public override void Repath()
 {
     listaCompleta = false;
     faseactual    = Fases.FASE1;
     abierta       = new List <Nodo>();
     currentNodos  = 0;
 }
 public override void Repath()
 {
     nodosActuales = 0;
     listaCompleta = false;
     abierta       = new List <Nodo>();
     faseactual    = Fases.FASE1;
 }
Example #3
0
        public Fases Buscar(int id)
        {
            try
            {
                Fases fase = new Fases();

                DBSession session = new DBSession();
                Query     quey    = session.CreateQuery("SELECT * FROM mailing_fases WHERE idfase = @id");
                quey.SetParameter("id", id);
                IDataReader reader = quey.ExecuteQuery();

                if (reader.Read())
                {
                    fase = new Fases(Convert.ToInt32(reader["idfase"]), Convert.ToString(reader["txfase"]));
                }
                reader.Close();
                session.Close();

                return(fase);
            }
            catch (Exception error)
            {
                throw error;
            }
        }
Example #4
0
    public override Locomotion.MoveDirection GetNextMove(BoardInfo boardInfo, CellInfo currentPos, CellInfo[] goals)
    {
        //Si la lista no se ha completado, es decir, no se encuentra el nodo meta
        if (!listaCompleta && nodosActuales <= limiteDeNodos)
        {
            //Añadimos el nodo oficial
            if (faseactual == Fases.FASE1)
            {
                abierta.Add(new Nodo(currentPos, posicionIncial, Locomotion.MoveDirection.None, 1f));
                faseactual = Fases.FASE2;
            }

            //Nodo actual
            Nodo nodo = null;


            while (abierta.Count > 0 && !listaCompleta && nodosActuales <= limiteDeNodos)
            {
                nodo = abierta[0];
                abierta.RemoveAt(0);
                if (nodo.esMeta(goals[0], nodo.estado))
                {
                    listaCompleta = true;
                    Debug.Log("Nodos expandidos: " + nodosActuales);
                }
                else
                {
                    var sucesores = nodo.ExpandirOffline(boardInfo);

                    foreach (var s in sucesores)
                    {
                        if (s != nodo.getPadre() && CheckAbiertaList(s, abierta))
                        {
                            abierta.Add(s);
                            nodosActuales++;
                        }
                    }
                }
            }


            if (faseactual == Fases.FASE2)
            {
                _nextMoves = TakeRout(nodo);
                faseactual = Fases.FASE3;
            }
        }

//Debug.Log("Nodos expandidos: " + nodosActuales);

        var currentMove = _nextMoves[_nextMoves.Count - 1];

        _nextMoves.RemoveAt(_nextMoves.Count - 1);
        if (_nextMoves.Count <= 0)
        {
            Repath();
        }
        return(currentMove);
    }
Example #5
0
 public void Update_presentacion(GameTime gameTime)
 {
     if (Keyboard.GetState().IsKeyDown(Keys.Enter))
     {
         actual = Fases.tuto;
         Initialize();
     }
 }
Example #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Fases fases = db.Fases1.Find(id);

            db.Fases1.Remove(fases);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #7
0
 public override void Repath()
 {
     n_Repath++;
     nodosActuales = 0;
     listaCompleta = false;
     abierta       = new List <Nodo>();
     faseactual    = Fases.FASE1;
     Debug.Log("Veces que  calcula rura: " + n_Repath);
 }
Example #8
0
        public ActionResult Create(Fases fases)
        {
            var aud = db.Auditorias.Where(a => a.IdAuditoria == fases.IdAuditoria).Include(a => a.Fases).SingleOrDefault();

            fases.Auditoria = aud;
            ValidatorDate    val = new ValidatorDate();
            ValidationResult mod = val.Validate(fases);

            if (ModelState.IsValid && mod.IsValid)
            {
                fases.FechaCrea     = DateTime.Now;
                fases.FechaModifica = fases.FechaCrea;
                fases.UsuarioCrea   = GetUserId(User);
                fases.IdEstado      = 1;
                fases.Eliminado     = false;
                fases.Porcentaje    = fases.Porcentaje / 100;
                var porcent = 0.0;
                foreach (var item in aud.Fases.Where(f => f.Eliminado != true))
                {
                    porcent += item.Porcentaje;
                }
                porcent += fases.Porcentaje;
                if (porcent <= 1.0)
                {
                    db.Fases.Add(fases);
                    db.SaveChanges();
                    if (porcent != 1.00)
                    {
                        Session["MyAlert"] = "<script type='text/javascript'>alertify.warning('El Porcentaje acumulado no alcanza el 100%, sumatoria actual: " + (porcent * 100) + "%.');</script>";
                    }
                    return(RedirectToAction("Index", new { idAuditoria = aud.IdAuditoria, nombreAuditoria = aud.Auditoria }));
                }
                else
                {
                    Session["MyAlert"] = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%, porcentaje faltante: " + Math.Round((100 - ((porcent - fases.Porcentaje) * 100)), 2) + "%.');</script>";
                    //ModelState.AddModelError("", "La sumatoria de porcentajes sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + " % ");
                    ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
                    ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
                    ViewBag.idAuditoriaRet  = aud.IdAuditoria;
                    ViewBag.nombreAuditoria = aud.Auditoria;
                    ViewBag.navegabilidad   = aud.Auditoria + "/ " + aud.UsuarioRealiza.UserName;
                    fases.Porcentaje        = fases.Porcentaje * 100;
                    return(View(fases));
                }
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
            ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
            ViewBag.idAuditoriaRet  = aud.IdAuditoria;
            ViewBag.nombreAuditoria = aud.Auditoria;
            ViewBag.navegabilidad   = aud.Auditoria + "/ " + aud.UsuarioRealiza.UserName;
            //fases.Porcentaje = fases.Porcentaje * 100;
            return(View(fases));
        }
Example #9
0
 void TransDisp()
 {
     if (empezoCor && terminoCor)
     {
         estadoIA   = Fases.mover;
         empezoCor  = false;
         terminoCor = false;
     }
 }
Example #10
0
        public void Update_tuto(GameTime gameTime)
        {
            Rectangle choca = new Rectangle((int)player.Posx, (int)player.Posy, player.Rectangulo.Width, player.Rectangulo.Height);

            // TODO: Add your update logic here

            foreach (Mosaico m in mapa.mosaicos)
            {
                //mosaicos de colision
                if (m.Tmosaico == 1)
                {
                    BoundingBox arriba = new BoundingBox();
                    arriba.Min = new Vector3(m.Rectangulo.X + 5, m.Rectangulo.Y, 0);
                    arriba.Max = new Vector3((m.Rectangulo.X + m.Rectangulo.Width) - 7, m.Rectangulo.Y + 2, 0);
                    BoundingBox abajo = new BoundingBox();
                    abajo.Min = new Vector3(m.Rectangulo.X + 5, (m.Rectangulo.Y + m.Rectangulo.Height) - 2, 0);
                    abajo.Max = new Vector3((m.Rectangulo.X + m.Rectangulo.Width) - 7, m.Rectangulo.Y + m.Rectangulo.Height, 0);
                    BoundingBox izq = new BoundingBox();
                    izq.Min = new Vector3(m.Rectangulo.X, m.Rectangulo.Y + 5, 0);
                    izq.Max = new Vector3(m.Rectangulo.X + 2, m.Rectangulo.Y + m.Rectangulo.Height, 0);
                    BoundingBox der = new BoundingBox();
                    der.Min = new Vector3((m.Rectangulo.X + m.Rectangulo.Width) - 2, m.Rectangulo.Y + 5, 0);
                    der.Max = new Vector3(m.Rectangulo.X + m.Rectangulo.Width, (m.Rectangulo.Y + m.Rectangulo.Height), 0);

                    BoundingBox cplayer = new BoundingBox(new Vector3(player.Posx, player.Posy, 0), new Vector3(player.Posx + player.Rectangulo.Width, player.Posy + player.Rectangulo.Height, 0));
                    if (cplayer.Intersects(arriba))
                    {
                        player.Salta = false;
                        player.Colision_arriba();
                    }
                    else if (cplayer.Intersects(abajo))
                    {
                        player.Salta = false;
                        player.Colision_abajo();
                    }

                    else if (cplayer.Intersects(izq))
                    {
                        player.Salta = false;
                        player.Colision_izq();
                    }
                    else if (cplayer.Intersects(der))
                    {
                        player.Salta = false;
                        player.Colision_der();
                    }
                }
            }
            player.Mueve(gameTime);

            if (Keyboard.GetState().IsKeyDown(Keys.LeftShift) || Keyboard.GetState().IsKeyDown(Keys.RightShift))
            {
                actual = Fases.nivel1;
                Initialize();
            }
        }
Example #11
0
 public ActionResult Edit([Bind(Include = "FaseId,Descricao")] Fases fases)
 {
     if (ModelState.IsValid)
     {
         db.Entry(fases).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(fases));
 }
Example #12
0
 void TransMover()
 {
     //Chequeamos llegar al limite
     if (contMov > limMov)
     {
         estadoIA = Fases.disp;             //Cambio de fase
         //Reiniciamos los valores del mov
         contMov = 0;
     }
 }
Example #13
0
        public ActionResult Create([Bind(Include = "FaseId,Descricao")] Fases fases)
        {
            if (ModelState.IsValid)
            {
                db.Fases1.Add(fases);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(fases));
        }
Example #14
0
        public ActionResult DeleteConfirmed(int id)
        {
            Fases fases = db.Fases.Include(f => f.Auditoria).Where(f => f.IdFase == id).SingleOrDefault();
            var   aud   = db.Auditorias.Where(a => a.IdAuditoria == fases.IdAuditoria).SingleOrDefault();

            fases.Eliminado       = true;
            fases.UsuarioModifica = GetUserId(User);
            db.Entry(fases).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index", new { idAuditoria = fases.IdAuditoria, nombreAuditoria = aud.Auditoria }));
        }
Example #15
0
        // GET: Fases/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fases fases = db.Fases.Find(id);

            if (fases == null)
            {
                return(HttpNotFound());
            }
            return(View(fases));
        }
Example #16
0
        public async Task <IActionResult> Delete([FromBody] Fases value)
        {
            try
            {
                await _repository.Delete(value);
            }
            catch (Exception ex)
            {
                // Guardar Excepción
                return(BadRequest(ex));
            }

            return(Ok());
        }
Example #17
0
        public async Task <IActionResult> Put([FromBody] Fases value)
        {
            try
            {
                await _repository.Update(value);
            }
            catch (Exception ex)
            {
                // Guardar Excepción
                return(BadRequest(ex.Message.ToString()));
            }

            return(Ok());
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        Estado = Fases.Release;

        Title = "El Justificador";
        TBEntrada.AutoPostBack    = true;
        SpinColumnas.AutoPostBack = true;
        TBEntrada.TextMode        = TextBoxMode.MultiLine;
        TBEntrada.Rows            = 10;
        TBSalida.ReadOnly         = true;
        TBSalida.TextMode         = TextBoxMode.MultiLine;
        TBSalida.Rows             = 10;
        texto = new Texto(Convert.ToInt16(SpinColumnas.Text), TBEntrada.Text);
    }
Example #19
0
        public ActionResult Details2(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fases fases = db.Fases.Find(id);

            ViewBag.navegabilidad = fases.Auditoria.Auditoria + "/" + fases.Auditoria.UsuarioRealiza.UserName;
            if (fases == null)
            {
                return(HttpNotFound());
            }
            return(View(fases));
        }
Example #20
0
 public void Update_terminado(GameTime gameTime)
 {
     if (Keyboard.GetState().IsKeyDown(Keys.Escape))
     {
         Exit();
     }
     else if (Keyboard.GetState().IsKeyDown(Keys.R))
     {
         score  = 0;
         meta   = 0;
         vidas  = 3;
         actual = Fases.presentacion;
         Initialize();
     }
 }
Example #21
0
        public ActionResult Edit(Fases fases)
        {
            var audaux = db.Auditorias.Where(a => a.IdAuditoria == fases.IdAuditoria).SingleOrDefault();

            fases.Auditoria = audaux;
            ValidatorDate    val = new ValidatorDate();
            ValidationResult mod = val.Validate(fases);

            if (ModelState.IsValid && mod.IsValid)
            {
                fases.Porcentaje = fases.Porcentaje / 100;
                var porcent  = 0.0;
                var fasesAux = db.Fases.Where(f => f.Eliminado != true && f.IdAuditoria == fases.IdAuditoria && f.IdFase != fases.IdFase).ToList().AsReadOnly();
                foreach (var item in fasesAux)
                {
                    if (item.IdFase != fases.IdFase)
                    {
                        porcent += item.Porcentaje;
                    }
                }
                porcent += fases.Porcentaje;
                if (porcent <= 1.0)
                {
                    db.Entry(fases).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index", new { idAuditoria = fases.IdAuditoria, nombreAuditoria = audaux.Auditoria }));
                }
                //ModelState.AddModelError("", "La sumatoria de porcentajes sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%");
                Session["MyAlert"]      = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%.');</script>";
                fases.Porcentaje        = fases.Porcentaje * 100;
                ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
                ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
                ViewBag.idAuditoriaRet  = fases.IdAuditoria;
                ViewBag.nombreAuditoria = audaux.Auditoria;
                ViewBag.navegabilidad   = audaux.Auditoria + "/ " + audaux.UsuarioRealiza.UserName;
                return(View(fases));
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
            ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
            ViewBag.idAuditoriaRet  = fases.IdAuditoria;
            ViewBag.nombreAuditoria = audaux.Auditoria;
            ViewBag.navegabilidad   = audaux.Auditoria + "/ " + audaux.UsuarioRealiza.UserName;
            return(View(fases));
        }
    protected string Estilo(Fases estado)
    {
        //success info warning danger
        switch (estado)
        {
        case Fases.Final: return("success");

        case Fases.Release: return("info");

        case Fases.Test: return("warning");

        case Fases.Development: return("danger");

        default: return("primary");
        }
    }
Example #23
0
        public async Task Delete(Fases value)
        {
            using (SqlConnection conn = new SqlConnection(_cnx))
            {
                using (SqlCommand cmd = new SqlCommand("Wsp_EliminaFase", conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@pIdFase", value.IdFase));
                    await conn.OpenAsync();

                    await cmd.ExecuteNonQueryAsync();

                    return;
                }
            }
        }
Example #24
0
        // GET: Fases/Create
        public ActionResult Create(int idAuditoria, string nombreAuditoria)
        {
            ViewBag.IdAuditoria = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria");
            ViewBag.IdEstado    = new SelectList(db.Estados, "IdEstado", "Estado");
            var audit = db.Auditorias.Find(idAuditoria);

            ViewBag.navegabilidad = audit.Auditoria + "/ " + audit.UsuarioRealiza.UserName;
            Fases fase = new Fases();

            fase.FechaInicio        = audit.FechaInicio;
            fase.FechaFin           = fase.FechaInicio.AddDays(8);
            fase.IdAuditoria        = idAuditoria;
            fase.Porcentaje         = 14.0;
            ViewBag.idAuditoriaRet  = idAuditoria;
            ViewBag.nombreAuditoria = nombreAuditoria;
            return(View(fase));
        }
Example #25
0
        public ActionResult ReactivarFase(int idFase)
        {
            Fases fase = db.Fases.Find(idFase);

            if (fase == null)
            {
                return(HttpNotFound());
            }
            fase.IdEstado        = 1;
            fase.UsuarioModifica = GetUserId();
            fase.FechaModifica   = DateTime.Now;
            db.Entry(fase).State = EntityState.Modified;
            db.SaveChanges();
            Session["MyAlert"] = "<script type='text/javascript'>alertify.success('La Fase se reactivó con éxito.');</script>";

            return(RedirectToAction("Index", new { idAuditoria = fase.IdAuditoria, nombreAuditoria = fase.Auditoria.Auditoria }));
        }
Example #26
0
        public static void Load()
        {
            Fases x = new Fases();

            if (File.Exists(Application.persistentDataPath + "/savedGames.xml"))
            {
                var serializer = new XmlSerializer(typeof(List <FaseClass>));
                using (var stream = new FileStream(Application.persistentDataPath + "/savedGames.xml", FileMode.Open))
                {
                    fases = serializer.Deserialize(stream) as List <FaseClass>;
                }
            }
            else
            {
                Iniciar();
            }
        }
Example #27
0
        public async Task Insert(Fases value)
        {
            using (SqlConnection conn = new SqlConnection(_cnx))
            {
                using (SqlCommand cmd = new SqlCommand("Wsp_InsertaFases", conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@pNombre", value.Nombre));
                    cmd.Parameters.Add(new SqlParameter("@pDescripcion", value.Descripcion));
                    cmd.Parameters.Add(new SqlParameter("@@pRegCreateIdUsuario", value.RegCreateIdUsuario));;
                    await conn.OpenAsync();

                    await cmd.ExecuteNonQueryAsync();

                    return;
                }
            }
        }
Example #28
0
        // GET: Fases/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fases fases = db.Fases.Find(id);

            if (fases == null)
            {
                return(HttpNotFound());
            }
            ViewBag.idAuditoriaRet  = fases.IdAuditoria;
            ViewBag.nombreAuditoria = fases.Auditoria.Auditoria;
            ViewBag.navegabilidad   = fases.Auditoria.Auditoria + "/ " + fases.Auditoria.UsuarioRealiza.UserName;
            ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
            ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
            fases.Porcentaje        = fases.Porcentaje * 100;
            return(View(fases));
        }
Example #29
0
        public ActionResult FinalizarFase(int idFase)
        {
            Fases fase = db.Fases.Find(idFase);

            if (fase == null)
            {
                return(HttpNotFound());
            }
            if (fase.PorcentajeAvance == 100)
            {
                fase.IdEstado        = 2;
                fase.UsuarioModifica = GetUserId();
                fase.FechaModifica   = DateTime.Now;
                fase.FechaCierre     = DateTime.Now;
                db.Entry(fase).State = EntityState.Modified;
                db.SaveChanges();
                Session["MyAlert"] = "<script type='text/javascript'>alertify.success('La Fase se finalizo con éxito.');</script>";
            }
            else
            {
                Session["MyAlert"] = "<script type='text/javascript'>alertify.error('La Fase no se puede finalizar porque el porcentaje de avance en las actividades no alcanza el 100%');</script>";
            }
            return(RedirectToAction("Index", new { idAuditoria = fase.IdAuditoria, nombreAuditoria = fase.Auditoria.Auditoria }));
        }
Example #30
0
        /// <summary>
        /// Método para transformar o enum de fases em string
        /// </summary>
        /// <param name="fase">Fases</param>
        /// <returns>String</returns>
        public string GetFasesString(Fases fase)
        {
            switch (fase)
            {
                case Fases.DISPUTA_3_LUGAR:
                    return "DISPUTA DO 3 LUGAR";

                case Fases.FINAL:
                    return "FINAL";

                case Fases.OITAVAS:
                    return "OITAVAS";

                case Fases.PRIMEIRA_FASE:
                    return "PRIMEIRA FASE";

                case Fases.QUARTAS:
                    return "QUARTAS";

                case Fases.SEMIFINAL:
                    return "SEMIFINAL";
            }
            return "PRIMEIRA FASE";
        }
Example #31
0
 // Use this for initialization
 void Start()
 {
     estadoIA = Fases.mover;
 }
Example #32
0
        private void SBO_Application_ItemEvent(string FormUID, ref SAPbouiCOM.ItemEvent pVal, out bool BubbleEvent)
        {
            SAPbouiCOM.BoEventTypes EventEnum = 0;
            EventEnum = pVal.EventType;
            BubbleEvent = true;

            if (pVal.FormType == 320)
            {
                if ((pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) & (!pVal.Before_Action))
                {
                    //Laudo_Ini
                    if (pVal.ItemUID == "Laudo_Ini")
                    {
                        abrirRelatorio("Laudo inicial", oForm.Items.Item("74").Specific.Value);
                    }

                    //Ent_Imp
                    if (pVal.ItemUID == "Ent_Imp")
                    {
                        abrirRelatorio("Descricao dos ambientes", oForm.Items.Item("74").Specific.Value);
                    }

                    //Laudo_Int
                    if (pVal.ItemUID == "Laudo_Int")
                    {
                        abrirRelatorio("Laudo intermediario", oForm.Items.Item("74").Specific.Value);
                    }
                    //NvAnalise
                    if (pVal.ItemUID == "NvAnalise")
                    {
                        abrirRelatorio("Analise critica", oForm.Items.Item("74").Specific.Value);
                    }
                    //Laudo_ent
                    if (pVal.ItemUID == "Laudo_Ent")
                    {
                        abrirRelatorio("Laudo de entrega", oForm.Items.Item("74").Specific.Value);
                    }
                    //Pesquisa de satisfacao
                    if (pVal.ItemUID == "Etg_Pq")
                    {
                        abrirRelatorio("Pesquisa de satisfacao", oForm.Items.Item("74").Specific.Value);
                    }
                    //NvLev
                    if (pVal.ItemUID == "NvLev")
                    {
                        abrirRelatorio("Levantamento", "");
                    }
                    //Etg_Decl
                    if (pVal.ItemUID == "Etg_Decl")
                    {
                        abrirRelatorio("Declaracao de conformidade", oForm.Items.Item("74").Specific.Value);
                    }

                }

                // Ao mudar o ambiente
                if (pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) && pVal.ItemUID == "Ent_Amb" && pVal.ItemChanged)
                {
                    // Verifica a descricao de Ent_Det se mudou e captura
                    oEditItem = ((SAPbouiCOM.EditText)oForm.Items.Item("Ent_Det").Specific);
                    string sEnt_Det = oEditItem.String;
                    try
                    {
                        if (sEnt_Det != sDescricaoOriginalAmbiente)
                        {
                            int idOOPR = int.Parse(((SAPbouiCOM.EditText)oForm.Items.Item("74").Specific).Value);
                            string selectedValue = ((SAPbouiCOM.ComboBox)oForm.Items.Item("Ent_Amb").Specific).Value;
                            int iSelectedValue;
                            if (selectedValue != "")
                            {
                                iSelectedValue = int.Parse(selectedValue);
                                // Atualiza a Descrição na Oportunidade de Vendas
                                AddOportunidadeVendas(idOOPR, "0", "0", "0", iSelectedValue, sEnt_Det);
                            }
                        }
                    }
                    catch
                    {
                    }
                }

                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) && pVal.ItemUID == "Ent_Amb" && pVal.ItemChanged)
                {
                    oEditItem = ((SAPbouiCOM.EditText)oForm.Items.Item("Ent_Det").Specific);

                    string idOOPR = ((SAPbouiCOM.EditText)oForm.Items.Item("74").Specific).Value;
                    string selectedValue = ((SAPbouiCOM.ComboBox)oForm.Items.Item("Ent_Amb").Specific).Value;

                    ambiente = new Ambiente(idOOPR);
                    oEditItem.Value = ambiente.getDescricaoEntrevista(selectedValue);
                }

                //Evento da Drop.

                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "Ela_Amb"))
                {
                    string coluna2 = pVal.ColUID;
                    if (coluna2 == "Ela_Amb_C2")
                    {
                        string linha = pVal.Row.ToString();
                    }
                }

                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "Ent_Proj"))
                {
                    upProjEnt = true;
                    //SBO_Application.MessageBox("Mudou Proj Entrevista.");
                }
                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "Med_Proj"))
                {
                    upProjMed = true;
                    //SBO_Application.MessageBox("Mudou Proj Medição.");
                }
                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "Apr_Proj"))
                {
                    upProjAps = true;
                    //SBO_Application.MessageBox("Mudou Proj Apresentação.");
                }
                if (!pVal.Before_Action && (EventEnum == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "Ent_Amb"))
                {
                    upEtvAmb = true;
                    //SBO_Application.MessageBox("Mudou Combo de Ambiente");
                }

                //Abre tela de Atividades.
                if (((pVal.ItemUID == "Ent_Age") & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) & (pVal.Before_Action == false)))
                {
                    bBotaoAgendarFoiClicado = true;
                    SBO_Application.ActivateMenuItem("2563");
                }

                //Abre tela de Atividades.
                if (((pVal.ItemUID == "Med_Age") & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) & (pVal.Before_Action == false)))
                {
                    bBotaoAgendarFoiClicado = true;
                    SBO_Application.ActivateMenuItem("2563");
                }

                //Clique do Botão Atualizar
                if (((pVal.ItemUID == "1") & (pVal.FormMode == 1) & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) & (pVal.Before_Action == false)))
                {
                    if (ambiente.possuiAmbientesCadastrados())
                    {
                       Atualizar();
                    }
                }

                //Criar os campos do formulario.
                if (pVal.Before_Action && pVal.EventType == SAPbouiCOM.BoEventTypes.et_FORM_LOAD)
                {
                    oForm = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount);

                    AddItemsToForm();

                    oForm.Resize(300, 130);// (132, 100);

                    resumo = new Resumo(oForm);
                    fases = new Fases(oForm);
                }

                //Evento do Clique da aba Resumo.
                if (pVal.ItemUID == "Projeto1" & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED || pVal.EventType == SAPbouiCOM.BoEventTypes.et_CLICK) & pVal.Before_Action)
                {
                    resumo.disableCampos();
                    oForm.PaneLevel = 8;
                }

                //Evento do Clique da aba Fases.
                if (pVal.ItemUID == "Projeto2" & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED || pVal.EventType == SAPbouiCOM.BoEventTypes.et_CLICK) & pVal.Before_Action)
                {
                    oForm.PaneLevel = 9;
                }

                int panel = 9;
                if (pVal.ItemUID.StartsWith("Folder") & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED || pVal.EventType == SAPbouiCOM.BoEventTypes.et_CLICK) & pVal.Before_Action)
                {
                    switch (pVal.ItemUID)
                    {
                        case "Folder1": panel = 9;
                            break;
                        case "Folder2": panel = 10;
                            break;
                        case "Folder3": panel = 11;
                            break;
                        case "Folder4": panel = 12;
                            break;
                        case "Folder5": panel = 13;
                            break;
                        case "Folder6": panel = 14;
                            break;
                        case "Folder7": panel = 15;
                            break;
                        case "Folder8": panel = 16;
                            break;
                        case "Folder9": panel = 17;
                            break;
                    }

                    oForm.PaneLevel = panel;
                }

                if (pVal.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST)
                {
                    SAPbouiCOM.IChooseFromListEvent oCFLEvento = ((SAPbouiCOM.IChooseFromListEvent)(pVal));
                    string sCFL_ID = oCFLEvento.ChooseFromListUID;
                    SAPbouiCOM.Form oForm = SBO_Application.Forms.Item(FormUID);
                    SAPbouiCOM.ChooseFromList oCFL = oForm.ChooseFromLists.Item(sCFL_ID);

                    if (oCFLEvento.BeforeAction == false && sCFL_ID == "CFL1")
                    {
                        SAPbouiCOM.DataTable oDataTable = oCFLEvento.SelectedObjects;
                        string valItemName = null;
                        string valItemCode = null;
                        try
                        {
                            valItemCode = System.Convert.ToString(oDataTable.GetValue(0, 0));
                            valItemName = System.Convert.ToString(oDataTable.GetValue(1, 0));

                            string qtdEstoque = GetQtdEmEstoque(valItemCode);
                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C4").Cells.Item(pVal.Row).Specific).Value = qtdEstoque;

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C0").Cells.Item(pVal.Row).Specific).Value = valItemCode;
                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C1").Cells.Item(pVal.Row).Specific).Value = valItemName;
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                    else if (oCFLEvento.BeforeAction == false && sCFL_ID == "CFL2")
                    {
                        SAPbouiCOM.DataTable oDataTable = oCFLEvento.SelectedObjects;
                        string valCarName = null;
                        string idFornecedor = null;
                        try
                        {
                            idFornecedor = System.Convert.ToString(oDataTable.GetValue(0, 0));
                            valCarName = System.Convert.ToString(oDataTable.GetValue(1, 0));

                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C6").Cells.Item(pVal.Row).Specific).Value = idFornecedor;
                            ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C3").Cells.Item(pVal.Row).Specific).Value = valCarName;
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }

                string coluna = pVal.ColUID;

                if (EventEnum == SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK && !pVal.BeforeAction)
                {
                    //Anexo de arquivo
                    if (coluna == "Ela_Amb_C7" || coluna == "Ela_Amb_C8" || coluna == "Ela_Amb_C9" || coluna == "Med_Amb_C1"
                                               || coluna == "Apv_Amb_C3" || coluna == "Ped_Amb_C7" || coluna == "Det_Amb_C7"
                                               || coluna == "Etg_Amb_C3" || coluna == "Mon_Amb_C3" || coluna == "Mon_Amb_C4"
                                               || coluna == "Mon_Amb_C5" || coluna == "Apv_Amb_C4" || coluna == "Ans_Amb_C0")
                    {
                        oNewItem = oForm.Items.Item(pVal.ItemUID);
                        oMatrix = ((SAPbouiCOM.Matrix)(oNewItem.Specific));
                        oEditItem = (SAPbouiCOM.EditText)oMatrix.Columns.Item(coluna).Cells.Item(pVal.Row).Specific;

                        GridComAnexo(oEditItem);
                    }

                    //Url
                    if (coluna == "Ped_Amb_C8" && ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Ped_Amb_C8").Cells.Item(pVal.Row).Specific).Value != "")
                    {
                        newProcess = new Process();
                        string valor = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Ped_Amb_C8").Cells.Item(pVal.Row).Specific).Value;
                        info = new ProcessStartInfo(valor);
                        newProcess.StartInfo = info;
                        newProcess.Start();

                    }
                }

                if (EventEnum == SAPbouiCOM.BoEventTypes.et_LOST_FOCUS && !pVal.BeforeAction)
                {
                    if (coluna == "Cmp_Amb_C2")
                    {
                        oNewItem = oForm.Items.Item("Det_Cmp");
                        oMatrix = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                        string qtd = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C2").Cells.Item(pVal.Row).Specific).String;
                        decimal teste = Convert.ToDecimal(qtd);
                        string estoque = ((SAPbouiCOM.EditText)oMatrix.Columns.Item("Cmp_Amb_C4").Cells.Item(pVal.Row).Specific).String;
                        decimal teste2 = Convert.ToDecimal(estoque);
                        if (qtd != "" && teste > teste2)
                        {
                            SBO_Application.MessageBox("Sem ítens sufucintes no estoque");
                        }
                    }
                }

                //Evento da grid de ambiente/análise crítica.
                if (!pVal.BeforeAction && pVal.ItemUID == "Apr_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_CLICK && pVal.ColUID == "#" && pVal.Row > 0)
                {

                    if (modificouAnsCritica)
                    {
                        SBO_Application.MessageBox("Vai atualizar");
                        Atualizar();
                        oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE;
                        modificouAnsCritica = false;
                    }

                    //Instancia a matriz de ambiente da aba apresentação.
                    oNewItem = oForm.Items.Item("Apr_Amb");
                    SAPbouiCOM.Matrix matrixApresentacao;
                    matrixApresentacao = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Instancia a matriz de análise crítica da aba apresentação.
                    oNewItem = oForm.Items.Item("Ans_Amb");
                    SAPbouiCOM.Matrix matrixAnaliseCritica;
                    matrixAnaliseCritica = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Pega a coluna onde vai setar os valores pra o ambiente na matriz de análise crítica.
                    oColumnsAnaliseCritica = matrixAnaliseCritica.Columns;
                    oColumnAnaliseCritica = oColumnsAnaliseCritica.Item("Ans_Amb_C0");

                    //Pega o id do ambiente e a descrição do ambiente.
                    oEditItem = (SAPbouiCOM.EditText)matrixApresentacao.Columns.Item("Apr_Amb_C2").Cells.Item(pVal.Row).Specific;
                    SAPbouiCOM.EditText oItemGrid = (SAPbouiCOM.EditText)matrixApresentacao.Columns.Item("Apr_Amb_C0").Cells.Item(pVal.Row).Specific;
                    idAmbiente = int.Parse(oEditItem.String);
                    string nomeGrid = oItemGrid.String;

                    //Mostra na matriz de análise crítica qual ambiente selecionado.
                    oColumnAnaliseCritica.TitleObject.Caption = "Analise Crítica (" + nomeGrid + ")";
                    LoadGridAnaliseCritica();
                    countMatrixAnaliseCriticaAntes = matrixAnaliseCritica.RowCount;

                    if (matrixAnaliseCritica.RowCount == 0)
                    {
                        matrixAnaliseCritica.AddRow(1, 1);
                    }
                }
                //Evento da grid de ambiente/análise crítica.
                if (!pVal.BeforeAction && pVal.ItemUID == "Ans_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_KEY_DOWN && pVal.ColUID == "Ans_Amb_C0" && pVal.CharPressed == 9)
                {
                    oNewItem = oForm.Items.Item("Ans_Amb");
                    SAPbouiCOM.Matrix matrixAnaliseCritica;
                    matrixAnaliseCritica = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    oEditItem = (SAPbouiCOM.EditText)matrixAnaliseCritica.Columns.Item("Ans_Amb_C0").Cells.Item(matrixAnaliseCritica.RowCount).Specific;
                    string nome = oEditItem.String;

                    if (matrixAnaliseCritica.RowCount > 0 && nome != "")
                    {
                        matrixAnaliseCritica.AddRow(1, matrixAnaliseCritica.RowCount + 1);
                        ((SAPbouiCOM.EditText)matrixAnaliseCritica.Columns.Item("Ans_Amb_C0").Cells.Item(matrixAnaliseCritica.RowCount).Specific).Value = "";
                        ((SAPbouiCOM.EditText)matrixAnaliseCritica.Columns.Item("Ans_Amb_C1").Cells.Item(matrixAnaliseCritica.RowCount).Specific).Value = "";
                    }
                }

                if (pVal.ItemUID == "Ans_Amb" && pVal.ColUID == "Ans_Amb_C0" && pVal.ItemChanged && !pVal.BeforeAction)
                {
                    SBO_Application.MessageBox("Teste");
                    modificouAnsCritica = true;
                }

                if (!pVal.BeforeAction && pVal.ItemUID == "Fab_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_CLICK && pVal.ColUID == "Fab_#" && pVal.Row > 0)
                {
                    if (bGravouAvarias)
                    {
                        SBO_Application.MessageBox("Vai atualizar Avarias");
                        Atualizar();
                        oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE;
                        bGravouAvarias = false;
                    }

                    oNewItem = oForm.Items.Item("Fab_Amb");
                    SAPbouiCOM.Matrix matrixFabrica;
                    matrixFabrica = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    oNewItem = oForm.Items.Item("Ava_Amb");
                    SAPbouiCOM.Matrix matrixAvarias;
                    matrixAvarias = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    SAPbouiCOM.Columns oColumnsAvarias = null;
                    SAPbouiCOM.Column oColumnAvarias = null;
                    oColumnsAvarias = matrixAvarias.Columns;
                    oColumnAvarias = oColumnsAvarias.Item("Ava_Amb_C0");

                    //Pega o id do ambiente e a descrição do ambiente.
                    oEditItem = (SAPbouiCOM.EditText)matrixFabrica.Columns.Item("Fab_Amb_C4").Cells.Item(pVal.Row).Specific;
                    SAPbouiCOM.EditText oItemGrid = (SAPbouiCOM.EditText)matrixFabrica.Columns.Item("Fab_Amb_C0").Cells.Item(pVal.Row).Specific;
                    iRowAmbiente = int.Parse(oEditItem.String);
                    string nomeGrid = oItemGrid.String;

                    oColumnAvarias.TitleObject.Caption = "Descrição (" + nomeGrid + ")";
                    LoadGridAvarias();
                    countMatrixAvariasAntes = matrixAvarias.RowCount;

                    if (matrixAvarias.RowCount == 0)
                    {
                        matrixAvarias.AddRow(1, 1);
                    }
                }

                if (!pVal.BeforeAction && pVal.ItemUID == "Ava_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_KEY_DOWN && pVal.ColUID == "Ava_Amb_C0" && pVal.CharPressed == 9)
                {
                    oNewItem = oForm.Items.Item("Ava_Amb");
                    SAPbouiCOM.Matrix matrixAvarias;
                    matrixAvarias = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    oEditItem = (SAPbouiCOM.EditText)matrixAvarias.Columns.Item("Ava_Amb_C0").Cells.Item(matrixAvarias.RowCount).Specific;
                    string nome = oEditItem.String;

                    if (matrixAvarias.RowCount > 0 && nome != "")
                    {
                        matrixAvarias.AddRow(1, matrixAvarias.RowCount + 1);
                        ((SAPbouiCOM.EditText)matrixAvarias.Columns.Item("Ava_Amb_C0").Cells.Item(matrixAvarias.RowCount).Specific).Value = "";
                        ((SAPbouiCOM.EditText)matrixAvarias.Columns.Item("Ava_Amb_C1").Cells.Item(matrixAvarias.RowCount).Specific).Value = "";
                    }
                }

                if (pVal.ItemUID == "Ava_Amb" && pVal.ColUID == "Ava_Amb_C0" && pVal.ItemChanged && !pVal.BeforeAction)
                {
                    SBO_Application.MessageBox("Teste Avarias");
                    bGravouAvarias = true;
                }

                //Evento da grid de ambiente/conferência medições.
                if (!pVal.BeforeAction && pVal.ItemUID == "Med_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_CLICK && pVal.ColUID == "#" && pVal.Row > 0)
                {
                    //Instancia a matriz de ambiente da aba medições.
                    oNewItem = oForm.Items.Item("Med_Amb");
                    SAPbouiCOM.Matrix matrixMedicoes;
                    matrixMedicoes = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Instancia a matriz de conferência medições da aba medições.
                    oNewItem = oForm.Items.Item("Med_Cnf");
                    SAPbouiCOM.Matrix matrixConferenciaMedicoes;
                    matrixConferenciaMedicoes = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Pega a coluna onde vai setar os valores para o ambiente na matriz de conferência medições.
                    oColumnsConferenciaMedicoes = matrixConferenciaMedicoes.Columns;
                    oColumnConferenciaMedicoes = oColumnsConferenciaMedicoes.Item("med_Cnf_C1");

                    //Pega o id do ambiente e a descrição do ambiente.
                    oEditItem = (SAPbouiCOM.EditText)matrixMedicoes.Columns.Item("Med_Amb_C2").Cells.Item(pVal.Row).Specific;
                    SAPbouiCOM.EditText oItemGrid = (SAPbouiCOM.EditText)matrixMedicoes.Columns.Item("Med_Amb_C0").Cells.Item(pVal.Row).Specific;
                    iIdAmbienteMedicao = int.Parse(oEditItem.String);
                    string nomeGrid = oItemGrid.String;

                    //Mostra na matriz de conferência medições qual ambiente selecionado.
                    oColumnConferenciaMedicoes.TitleObject.Caption = "Conferente (" + nomeGrid + ")";
                    LoadGridConferenciaMedicao();
                    countMatrixConfMedAntes = matrixConferenciaMedicoes.RowCount;

                    if (matrixConferenciaMedicoes.RowCount == 0)
                    {
                        matrixConferenciaMedicoes.AddRow(1, 1);
                        //Projetistas - Grid Conferencia de Medicao
                        loadComboEmGrid("Med_Cnf", "med_Cnf_C1", projetistas);
                    }
                }
                //Evento da grid de ambiente/conferência medições.
                if (pVal.CharPressed == 9 && !pVal.BeforeAction && pVal.ItemUID == "Med_Cnf" && EventEnum == SAPbouiCOM.BoEventTypes.et_KEY_DOWN && pVal.ColUID == "med_Cnf_C1")
                {
                    oNewItem = oForm.Items.Item("Med_Cnf");
                    SAPbouiCOM.Matrix matrixConferenciaMedicao;
                    matrixConferenciaMedicao = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    oEditItem = (SAPbouiCOM.EditText)matrixConferenciaMedicao.Columns.Item("Med_Cnf_C0").Cells.Item(matrixConferenciaMedicao.RowCount).Specific;
                    string data = oEditItem.String;
                    SAPbouiCOM.ComboBox combo = (SAPbouiCOM.ComboBox)matrixConferenciaMedicao.Columns.Item("med_Cnf_C1").Cells.Item(matrixConferenciaMedicao.RowCount).Specific;
                    string nome = combo.Value;

                    if (matrixConferenciaMedicao.RowCount > 0 && data != "" && nome != "")
                    {
                        matrixConferenciaMedicao.AddRow(1, matrixConferenciaMedicao.RowCount + 1);
                        ((SAPbouiCOM.EditText)matrixConferenciaMedicao.Columns.Item("Med_Cnf_C0").Cells.Item(matrixConferenciaMedicao.RowCount).Specific).Value = "";
                        //Projetistas - Grid Conferencia de Medicao
                        RemoveValoresDeCombo(ref combo);
                        loadComboEmGrid("Med_Cnf", "med_Cnf_C1", projetistas);
                        ((SAPbouiCOM.ComboBox)matrixConferenciaMedicao.Columns.Item("med_Cnf_C1").Cells.Item(matrixConferenciaMedicao.RowCount).Specific).Select("", SAPbouiCOM.BoSearchKey.psk_ByValue);
                        ((SAPbouiCOM.EditText)matrixConferenciaMedicao.Columns.Item("Med_Cnf_C2").Cells.Item(matrixConferenciaMedicao.RowCount).Specific).Value = "";

                    }
                }

                //Evento da grid de Entrega
                if (!pVal.BeforeAction && pVal.ItemUID == "Etg_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_CLICK && pVal.ColUID == "Etg_#" && pVal.Row > 0)
                {

                    if (modificouPendecia)
                    {
                        SBO_Application.MessageBox("Vai atualizar Pendencia");
                        Atualizar();
                        oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE;
                        modificouPendecia = false;
                    }

                    //Instancia a matriz de ambiente da aba apresentação.
                    oNewItem = oForm.Items.Item("Etg_Amb");
                    SAPbouiCOM.Matrix matrixEntrega;
                    matrixEntrega = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Instancia a matriz de análise crítica da aba apresentação.
                    oNewItem = oForm.Items.Item("Pen_Amb");
                    SAPbouiCOM.Matrix matrixPendencia;
                    matrixPendencia = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    //Pega a coluna onde vai setar os valores pra o ambiente na matriz de Pendencia.
                    oColumnsPendencia = matrixPendencia.Columns;
                    oColumnPendencia = oColumnsPendencia.Item("Pen_Amb_C0");

                    //Pega o id do ambiente e a descrição do ambiente.
                    oEditItem = (SAPbouiCOM.EditText)matrixEntrega.Columns.Item("Etg_Amb_C6").Cells.Item(pVal.Row).Specific;
                    SAPbouiCOM.EditText oItemGrid = (SAPbouiCOM.EditText)matrixEntrega.Columns.Item("Etg_Amb_C0").Cells.Item(pVal.Row).Specific;
                    idAmbientePendencia = int.Parse(oEditItem.String);
                    string nomeAmbiente = oItemGrid.String;

                    //Mostra na matriz de Pendencia qual ambiente selecionado.
                    oColumnPendencia.TitleObject.Caption = "Ambiente (" + nomeAmbiente + ")";
                    LoadGridPendencias();
                    countMatrixPendenciaAntes = matrixPendencia.RowCount;

                    if (matrixPendencia.RowCount == 0)
                    {
                        matrixPendencia.AddRow(1, 1);
                    }
                }
                //Evento da grid de ambiente/análise crítica.
                if (!pVal.BeforeAction && pVal.ItemUID == "Pen_Amb" && EventEnum == SAPbouiCOM.BoEventTypes.et_KEY_DOWN && pVal.ColUID == "Pen_Amb_C0" && pVal.CharPressed == 9)
                {
                    oNewItem = oForm.Items.Item("Pen_Amb");
                    SAPbouiCOM.Matrix matrixPendencia;
                    matrixPendencia = ((SAPbouiCOM.Matrix)(oNewItem.Specific));

                    oEditItem = (SAPbouiCOM.EditText)matrixPendencia.Columns.Item("Pen_Amb_C0").Cells.Item(matrixPendencia.RowCount).Specific;
                    string nome = oEditItem.String;

                    if (matrixPendencia.RowCount > 0 && nome != "")
                    {
                        matrixPendencia.AddRow(1, matrixPendencia.RowCount + 1);
                        ((SAPbouiCOM.EditText)matrixPendencia.Columns.Item("Pen_Amb_C0").Cells.Item(matrixPendencia.RowCount).Specific).Value = "";
                        ((SAPbouiCOM.EditText)matrixPendencia.Columns.Item("Pen_Amb_C1").Cells.Item(matrixPendencia.RowCount).Specific).Value = "";
                    }
                }

                if (pVal.ItemUID == "Pen_Amb" && pVal.ColUID == "Pen_Amb_C0" && pVal.ItemChanged && !pVal.BeforeAction)
                {
                    SBO_Application.MessageBox("Teste Pendencia");
                    modificouPendecia = true;
                }
            }

            if (pVal.FormType == 651)
            {
                if (pVal.EventType != SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD)
                {
                    oFormAtual = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount);

                    if (pVal.ItemUID == "Ata_Ativ" & pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED & !pVal.Before_Action)
                    {
                        abrirRelatorio("Ata de reuniao", oFormAtual.Items.Item("5").Specific.Value);
                    }

                    if (!pVal.Before_Action && (pVal.EventType == SAPbouiCOM.BoEventTypes.et_COMBO_SELECT) & pVal.ItemChanged & (pVal.ItemUID == "67"))
                    {
                        if (oFormAtual.Items.Item("67").Specific.Value == "M")
                        {
                            atividade.habilitaBotaoAta();
                        }
                        else
                        {
                            atividade.desabilitaBotaoAta();
                        }
                    }

                    if (pVal.EventType == SAPbouiCOM.BoEventTypes.et_FORM_LOAD)
                    {

                        if (pVal.Before_Action)
                        {
                            atividade = new Atividade(oFormAtual);
                        }

                        if (bBotaoAgendarFoiClicado)
                        {
                            oFormPai = SBO_Application.Forms.GetFormByTypeAndCount(320, iUltimoFormTypeCount_SalesOpportunities);

                            sSalesOpportunities_Id = ((SAPbouiCOM.EditText)oFormPai.Items.Item("74").Specific).Value;
                            sBPCode = ((SAPbouiCOM.EditText)oFormPai.Items.Item("9").Specific).Value;

                            oFormAtual = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount);

                            ((SAPbouiCOM.EditText)oFormAtual.Items.Item("9").Specific).Value = sBPCode;

                            bBotaoAgendarFoiClicado = false;
                        }
                    }
                }
            }
        }