protected void Page_Load(object sender, EventArgs e)
    {
        btnAprobar.Attributes.Add("onmouseover", "this.src='images/HojaAprobadaUp.gif'");
        btnAprobar.Attributes.Add("onmouseout", "this.src='images/HojaAprobada4.gif'");

        btnComentario.Attributes.Add("onmouseover", "this.src='images/ComentarioUp.gif'");
        btnComentario.Attributes.Add("onmouseout", "this.src='images/Comentario.gif'");

        btnEstimacion.Attributes.Add("onmouseover", "this.src='images/EstimacionUp4.gif'");
        btnEstimacion.Attributes.Add("onmouseout", "this.src='images/Estimacion4.gif'");

        //DetailsView1.Attributes.Add("onkeydown", "NoSubmit();");

        //if (FileUploaderAJAX1.IsDeleting)
        //{
        //}
        //else if (FileUploaderAJAX1.IsPosting)
        //    this.managePost();
        if (1 == 1)
        {
            //FileUploaderAJAX1.showDeletedFilesOnPostBack = false;


            gdEncezado.SelectedIndex     = 0;
            imgUltimoCertificado.Visible = false;
            _idCabecera        = Convert.ToInt32(Request.QueryString["id"]);
            _esContratista     = Convert.ToBoolean(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[9]).Text);
            _idContratoEmpresa = Convert.ToInt32(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[10]).Text);



            if (!IsPostBack)
            {
                GestionComentarios(_idContratoEmpresa);

                ///recupero las ultimas dos hojas de ruta
                ///para hacer controles posteriores.
                DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
                _DTCabecera = TACabecera.GetUltimasCabecerasByContrato(_idContratoEmpresa);



                lblContratista.Text       = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[0]).Text;
                lblSubCon.Text            = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[1]).Text;
                lblNroCarpeta.Text        = "Nº " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[5]).Text;
                lblDescContrato.Text      = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[2]).Text + " - " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[3]).Text;;
                lblEstadoDoc.Text         = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[4]).Text.ToUpper();
                lblTituloComentario.Text += ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[2]).Text.ToUpper() + " - " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[3]).Text.ToUpper();

                DateTime Periodo = Convert.ToDateTime(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[6]).Text);
                lblFechaHojaRuta.Text = string.Format("{0:yyyy/MM}", Periodo);

                lblUsuario.Text = this.Session["nombreusu"].ToString();
            }


            /// Controlo si es la penultima hoja de ruta
            if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).IdCabeceraHojasDeRuta == _idCabecera)
            {
                imgUltimoCertificado.Visible = true;
                _esPenultimaHoja             = true;
            }
            else if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[ULTIMA]).IdCabeceraHojasDeRuta == _idCabecera)
            {
                _esUltimaHoja = true;

                if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).IdEstado == (long)Helpers.EstadosHoja.NoAprobada)
                {
                    _puedeAprobarPenultimaHoja = true;
                    DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
                    if (Convert.ToInt32(TACabecera.EstadosItemsPenultimaHoja(_idContratoEmpresa)) == 0)
                    {
                        _puedeAprobarPenultimaHoja         = true;
                        ConfirmButtonExtender1.ConfirmText = "La Hoja de Ruta anterior correspondiente al periodo: " + string.Format("{0:yyyy/MM}", ((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).Periodo) + "\n" +
                                                             " se aprobará, junto con la actual, ya que esta en condiciones de ser aprobada.";
                    }
                }
            }
        }

        if (EsAprobador())
        {
            btnAprobar.Visible    = true;
            btnComentario.Visible = true;
            btnEstimacion.Visible = true;
        }
        else
        {
            btnAprobar.Visible    = false;
            btnComentario.Visible = false;
            btnEstimacion.Visible = false;
        }

        if (EsPublicador())
        {
            chkPublicar.Enabled = true;
        }
        else
        {
            chkPublicar.Enabled = false;
        }


        btnAprobarItems.Visible = true;

//        FileUploaderAJAX1.CssClass = "fua";
//        FileUploaderAJAX1.Style = @"
//        body{font-size: smaller;
//            color: white;
//            background-color: #F1DDDD;}
//        a{font-weight:#800000}";

        if (!IsPostBack)
        {
            ConosudDataContext dc = new ConosudDataContext();
            var itemsHojaRuta     = from H in dc.HojasDeRutas
                                    where H.IdCabeceraHojaDeRuta == int.Parse(Request.QueryString["Id"])
                                    select H;

            //gdItemHoja.DataSource = itemsHojaRuta;
            //gdItemHoja.DataBind();
        }
    }
    protected void btnAprobar_Click(object sender, ImageClickEventArgs e)
    {
        bool   EsApta        = true;
        string itemControlar = "";

        foreach (GridViewRow ItemPla in gdItemHoja.Rows)
        {
            foreach (Control ctr in ItemPla.Cells[4].Controls)
            {
                if (ctr.ID == "chkAprobo" && !((CheckBox)ctr).Checked)
                {
                    EsApta         = false;
                    itemControlar += "\\t" + gdItemHoja.DataKeys[ItemPla.RowIndex].Values["Titulo"].ToString() + "\\n";
                }
            }
        }

        if (!EsApta)
        {
            string alert = "alert('No todos los ítems estan aprobados, debe aprobar todos los ítems para aprobar la Hoja de Ruta.\\n" +
                           "Items por Controlar:\\n" + itemControlar + "')";

            System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);

            return;
        }


        // La empresa como los subcontratistas tiene que tener la hoja de ruta
        // aprobada para que la contratista pueda aprobar la misma.
        if (_esContratista)
        {
            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            int?cant = TACabecera.GetCantHojasNoAprobada(_idCabecera);

            if (cant > 0)
            {
                string alert = "alert('Algunos de los subcontratistras no posee la hoja de ruta aprobada para este período.\\nNo se puede aprobar esta hoja de ruta.')";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
                return;
            }
        }

        //No Aprobar la Hoja Actual si las anteriores no están Aprobadas
        if (!_esUltimaHoja)
        {
            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            int Cantidad = Convert.ToInt32(TACabecera.CantHojasAntNoAprobadas(_idContratoEmpresa, _idCabecera));
            if (Cantidad > 0)
            {
                string alert = "alert('No se puede Aprobar dicha hoja de ruta hasta no aprobar las anteriores.')";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
                return;
            }
        }


        //  No aprobar la penúltima hoja si la ultima no esta aprobada.
        if (_esPenultimaHoja)
        {
            if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[ULTIMA]).IdEstado == (long)Helpers.EstadosHoja.NoAprobada)
            {
                string alert = "alert('No se puede Aprobar dicha hoja de ruta hasta no aprobar la Ultima hoja de ruta.')";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
                return;
            }
        }



        // Si llego a este punto significa que se puede aprobar la hoja
        //actual.
        if (_esUltimaHoja)
        {
            if (_puedeAprobarPenultimaHoja)
            {
                // Aprueba la Cabecera de la Hoja Actual.
                DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
                _DTCabecera = TACabecera.GetUltimasCabecerasByContrato(_idContratoEmpresa);
                ((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).IdEstado = (long)Helpers.EstadosHoja.Aprobada;
                ((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[ULTIMA]).IdEstado    = (long)Helpers.EstadosHoja.Aprobada;
                TACabecera.Update(_DTCabecera);
            }
            else
            {
                string alert = "alert('No se puede Aprobar la ultima hoja de ruta hasta aprobar la hoja anterior.')";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
                return;
            }
        }
        else
        {
            // Aprueba la Cabecera de la Hoja Actual.
            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            _DTCabecera = TACabecera.GetById(_idCabecera);
            ((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[0]).IdEstado = (long)Helpers.EstadosHoja.Aprobada;
            TACabecera.Update(_DTCabecera);
        }
    }