Example #1
0
    protected void btnAprobar_Click(object sender, ImageClickEventArgs e)
    {
        if (lblFechaAprobacion.Text != "")
        {
            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter DACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            DSConosud.CabeceraHojasDeRutaDataTable DTCabecera = DACabecera.GetById(Convert.ToInt32(cboPriodosAjax.SelectedItem.Value));

            ((DSConosud.CabeceraHojasDeRutaRow)DTCabecera.Rows[0]).FechaAprobacionSinLegajos = System.DateTime.Now.Date;
            ((DSConosud.CabeceraHojasDeRutaRow)DTCabecera.Rows[0]).IdEstado = (long)Helpers.EstadosHoja.Aprobada;

            DACabecera.Update(DTCabecera.Rows[0]);

            lblContratista.Text     = "";
            lblContrato.Text        = "";
            lblPeriodo.Text         = "";
            lblFechaAprobacion.Text = "";

            string alert = "alert('La hoja de ruta fue aprobada con existo'); window.document.forms[0].submit();";
            System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
        }
        else
        {
            string alert = "alert('Debe seleccionar un periodo para aprobar')";
            System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
        }
    }
Example #2
0
    public CascadingDropDownNameValue[] GetPeriodosxContratoEmpresa(string knownCategoryValues, string category)
    {
        string[] Empresasvalues = knownCategoryValues.Split(':', ';');

        int _IdContratoEmpresa = 0;

        _IdContratoEmpresa = Convert.ToInt32(Empresasvalues[5]);


        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter adapter = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosud.CabeceraHojasDeRutaDataTable contratos = adapter.GetDataByIdContratoEmpresa(_IdContratoEmpresa);

        Helpers._Cabeceras = new Hashtable();

        List <CascadingDropDownNameValue> values = new List <CascadingDropDownNameValue>();
        string make   = "";
        long   makeId = 0;

        foreach (DSConosud.CabeceraHojasDeRutaRow dr in contratos)
        {
            make   = string.Format("{0:yyyy/MM}", dr.Periodo);
            makeId = dr.IdCabeceraHojasDeRuta;
            values.Add(new CascadingDropDownNameValue(
                           make, makeId.ToString()));

            Helpers._Cabeceras.Add(make, dr);
        }

        Helpers._UltimoPeriodo = makeId;
        return(values.ToArray());
    }
    private List ObtenerEstimacion(List CurrentList, Int64 id, out bool CargoElementos)
    {
        CargoElementos = false;
        List Estimacion = new List(false, 20);

        Estimacion.ListSymbol = new Chunk("");


        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosud.CabeceraHojasDeRutaDataTable DTCabecera = TACabecera.GetById((int)id);


        if (DTCabecera.Rows.Count > 0)
        {
            foreach (DSConosud.CabeceraHojasDeRutaRow row in DTCabecera.Rows)
            {
                if (row.Estimacion != null && row.Estimacion != "")
                {
                    Estimacion.Add(new iTextSharp.text.ListItem(row.Estimacion));
                    CurrentList.Add(Estimacion);
                    CargoElementos = true;
                }
            }
        }
        else
        {
            CargoElementos = false;
        }

        return(CurrentList);
    }
Example #4
0
    public CascadingDropDownNameValue[] GetPeriodosSinLegajos(string knownCategoryValues, string category)
    {
        string[] Empresasvalues = knownCategoryValues.Split(':', ';');

        int _empresaID = 0;

        _empresaID = Convert.ToInt32(Empresasvalues[5]);


        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter adapter = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosud.CabeceraHojasDeRutaDataTable contratos = adapter.GetDataByPeriodosSinLegajos(_empresaID);

        Helpers._Cabeceras = new Hashtable();

        List <CascadingDropDownNameValue> values = new List <CascadingDropDownNameValue>();
        string make   = "";
        long   makeId = 0;

        foreach (DSConosud.CabeceraHojasDeRutaRow dr in contratos)
        {
            if ((dr.Periodo.Year < DateTime.Now.Year) || (dr.Periodo.Year == DateTime.Now.Year && dr.Periodo.Month < DateTime.Now.Month))
            {
                make   = string.Format("{0:yyyy/MM}", dr.Periodo);
                makeId = dr.IdCabeceraHojasDeRuta;
                values.Add(new CascadingDropDownNameValue(
                               make, makeId.ToString()));

                Helpers._Cabeceras.Add(make, dr);
            }
        }
        Helpers._UltimoPeriodo = makeId;
        return(values.ToArray());
    }
Example #5
0
    protected void gvAuditoriaActual_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (gvAuditoriaActual.SelectedRow != null)
        {
            foreach (GridViewRow row in gvAuditoriaActual.Rows)
            {
                foreach (Control ctr in row.Cells[7].Controls)
                {
                    if (ctr.ID == "btnComponentes")
                    {
                        ((Button)ctr).Enabled = false;
                        row.Attributes.Clear();
                        InicializarRow(sender, row);
                    }
                }
            }

            foreach (Control ctr in gvAuditoriaActual.SelectedRow.Cells[7].Controls)
            {
                if (ctr.ID == "btnComponentes")
                {
                    ((Button)ctr).Enabled     = true;
                    AEDetalle.TargetControlID = ctr.UniqueID;


                    AEDetalle.OnClick.Children.RemoveAt(0);

                    AjaxControlToolkit.Animation a = new AjaxControlToolkit.Animation();
                    a.Name = "ScriptAction";
                    a.Properties.Add("Script", "Cover($get('" + ctr.UniqueID + "'), $get('flyout'));");
                    AEDetalle.OnClick.Children.Insert(0, a);

                    gvAuditoriaActual.SelectedRow.Attributes.Clear();
                    break;
                }
            }

            string identificador = gvAuditoriaActual.SelectedRow.Cells[6].Text + gvAuditoriaActual.SelectedRow.Cells[2].Text;
            string IdsCalculo    = (string)((IList)_ContadoresMesActual[identificador])[1];

            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter DACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            DSConosud.CabeceraHojasDeRutaDataTable DTCabecera = DACabecera.GetDataByCabeceras(IdsCalculo);


            gvDetalle.DataSource = DTCabecera;
            gvDetalle.DataBind();
        }
    }
Example #6
0
    private List GenerarMeseSinDocumentacion(List SinDocList)
    {
        List     MesesList = new List(false, 20);
        DateTime Fecha     = Convert.ToDateTime("01/" + cboPeriodos.SelectedItem.Text.Substring(5, 2) + "/" + cboPeriodos.SelectedItem.Text.Substring(0, 4));
        string   Meses     = "";

        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosud.CabeceraHojasDeRutaDataTable DTCabecera = TACabecera.GetHojasSinDoc(Fecha, Convert.ToInt64(cboContratistas.SelectedItem.Value));


        foreach (DSConosud.CabeceraHojasDeRutaRow row in DTCabecera.Rows)
        {
            Meses += string.Format("{0:MMMM} del {0:yyyy} - ", row.Periodo);
        }

        MesesList.Add(new iTextSharp.text.ListItem(Meses));
        SinDocList.Add(MesesList);
        return(SinDocList);
    }
Example #7
0
    public CascadingDropDownNameValue[] GetAllPeriodos(string knownCategoryValues, string category)
    {
        string[] Empresasvalues = knownCategoryValues.Split(':', ';');

        int _empresaID = 0;

        _empresaID = Convert.ToInt32(Empresasvalues[5]);


        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter adapter = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosud.CabeceraHojasDeRutaDataTable contratos = adapter.GetDataByPeriodosDispXContEmp(_empresaID);

        Helpers._Cabeceras = new Hashtable();

        List <CascadingDropDownNameValue> values = new List <CascadingDropDownNameValue>();
        string make   = "";
        long   makeId = 0;

        foreach (DSConosud.CabeceraHojasDeRutaRow dr in contratos)
        {
            make   = string.Format("{0:yyyy/MM}", dr.Periodo);
            makeId = dr.IdCabeceraHojasDeRuta;

            if (_PeriodoDefaul != "" && _PeriodoDefaul == make)
            {
                values.Add(new CascadingDropDownNameValue(
                               make, makeId.ToString(), true));
            }
            else if (_PeriodoDefaul == "")
            {
                values.Add(new CascadingDropDownNameValue(
                               make, makeId.ToString(), false));
            }

            Helpers._Cabeceras.Add(make, dr);
        }


        Helpers._UltimoPeriodo = makeId;
        return(values.ToArray());
    }
Example #8
0
    public static void GenerarHojadeRuta(DSConosud Ds, DateTime FInicio, DateTime FFin, long pIdContratoEmpresas)
    {
        ////Comienzo Proceso de creacion de Hoja de Ruta y Documentacion
        DSConosudTableAdapters.CategoriasItemsTableAdapter TACatItems = new DSConosudTableAdapters.CategoriasItemsTableAdapter();
        TACatItems.Fill(Ds.CategoriasItems);

        DSConosudTableAdapters.PlantillaTableAdapter TAPlantilla = new DSConosudTableAdapters.PlantillaTableAdapter();
        TAPlantilla.Fill(Ds.Plantilla);
        //DSConosudTableAdapters.ContratoTableAdapter TAContrato = new DSConosudTableAdapters.ContratoTableAdapter();
        //TAContrato.Fill(Ds.Contrato);
        //DSConosudTableAdapters.PlantillaTableAdapter TAPlantilla = new DSConosudTableAdapters.PlantillaTableAdapter();
        //TAPlantilla.Fill(Ds.Plantilla);
        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabHojaRuta = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosudTableAdapters.HojasDeRutaTableAdapter         TAHojaRuta    = new DSConosudTableAdapters.HojasDeRutaTableAdapter();

        DSConosud.CabeceraHojasDeRutaRow drCabHojaRuta;
        DSConosud.HojasDeRutaRow         drHojaRuta;
        DateTime FechaInicio = new DateTime(FInicio.Year, FInicio.Month, 1);

        DSConosud dstemp = new DSConosud();

        dstemp.EnforceConstraints = false;
        dstemp.CabeceraHojasDeRuta.Clear();
        long ultimonrocarpeta = 0;

        try
        {
            TACabHojaRuta.FillUltimoNroCarpeta(dstemp.CabeceraHojasDeRuta);
            if (dstemp.CabeceraHojasDeRuta.Rows.Count != 0)
            {
                ultimonrocarpeta = Convert.ToInt64(dstemp.CabeceraHojasDeRuta[0]["UltimoNroCarpeta"]);
            }
        }
        catch (Exception)
        {
        }
        ultimonrocarpeta += 1;

        while (GeneraxFecha(ref FechaInicio, ref FFin))
        {
            drCabHojaRuta = Ds.CabeceraHojasDeRuta.NewCabeceraHojasDeRutaRow();
            drCabHojaRuta.IdContratoEmpresa = pIdContratoEmpresas;
            drCabHojaRuta.IdEstado          = 15;
            drCabHojaRuta.Periodo           = FechaInicio;
            drCabHojaRuta.NroCarpeta        = ultimonrocarpeta;
            drCabHojaRuta.Estimacion        = string.Empty;
            Ds.CabeceraHojasDeRuta.AddCabeceraHojasDeRutaRow(drCabHojaRuta);

            foreach (DSConosud.PlantillaRow rowplan in Ds.Plantilla)
            {
                drHojaRuta                      = Ds.HojasDeRuta.NewHojasDeRutaRow();
                drHojaRuta.IdPlanilla           = rowplan.IdPlantilla;
                drHojaRuta.HojaAprobado         = false;
                drHojaRuta.HojaComentario       = string.Empty;
                drHojaRuta.AuditadoPor          = string.Empty;
                drHojaRuta.DocComentario        = string.Empty;
                drHojaRuta.IdCabeceraHojaDeRuta = drCabHojaRuta.IdCabeceraHojasDeRuta;
                Ds.HojasDeRuta.AddHojasDeRutaRow(drHojaRuta);
            }

            FechaInicio       = FechaInicio.AddMonths(1);
            ultimonrocarpeta += 1;
        }
    }
Example #9
0
    protected void dvContratos_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
    {
        try
        {
            DateTime FechaInicioAnt   = Convert.ToDateTime(e.OldValues[2]);
            DateTime FechaFinAnt      = DateTime.MinValue;
            DateTime FechaInicioNuevo = Convert.ToDateTime(e.NewValues[2]);
            DateTime FechaFinNuevo    = DateTime.MinValue;

            FechaFinAnt   = DeterminarFinPeriodo(e.OldValues[3], e.OldValues[4], ref FechaFinAnt);
            FechaFinNuevo = DeterminarFinPeriodo(e.NewValues[3], e.NewValues[4], ref FechaFinNuevo);


            DSConosud Ds = new DSConosud();
            Ds.EnforceConstraints = false;
            DSConosud DsFinal = new DSConosud();
            DsFinal.EnforceConstraints = false;

            long IdContrato = Convert.ToInt64(gvContratos.SelectedValue);

            DSConosudTableAdapters.ContratoEmpresasTableAdapter    TAContratoEmpresa = new DSConosudTableAdapters.ContratoEmpresasTableAdapter();
            DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabHojaRuta     = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
            DSConosudTableAdapters.HojasDeRutaTableAdapter         TAHojaRuta        = new DSConosudTableAdapters.HojasDeRutaTableAdapter();

            TAContratoEmpresa.FillByIdContrato(Ds.ContratoEmpresas, IdContrato);

            foreach (DSConosud.ContratoEmpresasRow rowContEmp in Ds.ContratoEmpresas)
            {
                Ds.CabeceraHojasDeRuta.Clear();
                Ds.HojasDeRuta.Clear();

                TACabHojaRuta.FillByIdContEmp(Ds.CabeceraHojasDeRuta, rowContEmp.IdContratoEmpresas);

                if (Ds.CabeceraHojasDeRuta.Count > 0)
                {
                    foreach (DSConosud.CabeceraHojasDeRutaRow CabHR in Ds.CabeceraHojasDeRuta)
                    {
                        Ds.Merge(TAHojaRuta.GetDataByCabecera(CabHR.IdCabeceraHojasDeRuta));
                    }

                    if (FechaInicioNuevo != FechaInicioAnt)
                    {
                        if (FechaInicioNuevo > FechaInicioAnt)
                        {
                            ///Borro Diferencias
                            foreach (DSConosud.CabeceraHojasDeRutaRow rowCabHR in Ds.CabeceraHojasDeRuta)
                            {
                                if (FechaInicioNuevo > rowCabHR.Periodo)
                                {
                                    rowCabHR.Delete();
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                        else
                        {
                            ///Agrega Diferencias
                            FechaInicioAnt = FechaInicioAnt.AddMonths(-1);
                            Helpers.GenerarHojadeRuta(Ds, FechaInicioNuevo, FechaInicioAnt, rowContEmp.IdContratoEmpresas);
                        }
                    }

                    if (FechaFinNuevo != FechaFinAnt)
                    {
                        if (FechaFinNuevo > FechaFinAnt)
                        {
                            ///Agrega Diferencias
                            FechaFinAnt = FechaFinAnt.AddMonths(1);
                            Helpers.GenerarHojadeRuta(Ds, FechaFinAnt, FechaFinNuevo, rowContEmp.IdContratoEmpresas);
                        }
                        else
                        {
                            ///Borro Diferencias
                            foreach (DSConosud.CabeceraHojasDeRutaRow rowCabHR in Ds.CabeceraHojasDeRuta)
                            {
                                if (rowCabHR.Periodo > FechaFinNuevo)
                                {
                                    rowCabHR.Delete();
                                }
                            }
                        }
                    }
                }
                else
                {
                    Helpers.GenerarHojadeRuta(Ds, FechaInicioNuevo, FechaFinNuevo, rowContEmp.IdContratoEmpresas);
                }

                DsFinal.Merge(Ds.CabeceraHojasDeRuta);
                DsFinal.Merge(Ds.HojasDeRuta);
                TACabHojaRuta.Update(DsFinal);
                TAHojaRuta.Update(DsFinal);
            }
        }
        catch (Exception ex)
        {
            e.Cancel = true;
        }
    }
Example #10
0
    protected void dvContratos_ItemInserting(object sender, DetailsViewInsertEventArgs e)
    {
        DSConosud Ds = new DSConosud();

        DSConosud.ContratoRow drContrato = Ds.Contrato.NewContratoRow();
        drContrato.Codigo   = (string)e.Values["Codigo"];
        drContrato.Servicio = (string)e.Values["Servicio"];
        if (e.Values["FechaInicio"] != null)
        {
            drContrato.FechaInicio = Convert.ToDateTime(e.Values["FechaInicio"]);
        }
        if (e.Values["FechaVencimiento"] != null)
        {
            drContrato.FechaVencimiento = Convert.ToDateTime(e.Values["FechaVencimiento"]);
        }
        if (e.Values["Prorroga"] != null)
        {
            drContrato.Prorroga = Convert.ToDateTime(e.Values["Prorroga"]);
        }
        if (e.Values["TipoContrato"] != null)
        {
            drContrato.TipoContrato = Convert.ToInt64(e.Values["TipoContrato"]);
        }
        if (e.Values["Contratadopor"] != null)
        {
            drContrato.Contratadopor = Convert.ToInt64(e.Values["Contratadopor"]);
        }
        Ds.Contrato.AddContratoRow(drContrato);

        DropDownList DDLInsertContra = (DropDownList)this.dvContratos.FindControl("DDLInsertContratista");

        DSConosud.ContratoEmpresasRow drEmpresaContrato = Ds.ContratoEmpresas.NewContratoEmpresasRow();
        drEmpresaContrato.EsContratista = true;
        drEmpresaContrato.IdContrato    = drContrato.IdContrato;
        drEmpresaContrato.IdEmpresa     = Convert.ToInt32(DDLInsertContra.SelectedValue);
        Ds.ContratoEmpresas.AddContratoEmpresasRow(drEmpresaContrato);

        DSConosudTableAdapters.ContratoTableAdapter TAContrato = new DSConosudTableAdapters.ContratoTableAdapter();
        TAContrato.Update(Ds);

        DSConosudTableAdapters.ContratoEmpresasTableAdapter TAContratoEmpresa = new DSConosudTableAdapters.ContratoEmpresasTableAdapter();
        TAContratoEmpresa.Update(Ds);

        DSConosudTableAdapters.EmpresaTableAdapter TAEmpresas = new DSConosudTableAdapters.EmpresaTableAdapter();
        TAEmpresas.FillByIdEmpresa(Ds.Empresa, Convert.ToInt32(drEmpresaContrato.IdEmpresa));

        DateTime FFin = DateTime.Now;

        if (drContrato.IsProrrogaNull())
        {
            FFin = drContrato.FechaVencimiento;
        }
        else
        {
            FFin = drContrato.Prorroga;
        }

        Helpers.GenerarHojadeRuta(Ds, drContrato.FechaInicio, FFin, drEmpresaContrato.IdContratoEmpresas);

        DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabHojaRuta = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
        DSConosudTableAdapters.HojasDeRutaTableAdapter         TAHojaRuta    = new DSConosudTableAdapters.HojasDeRutaTableAdapter();
        TACabHojaRuta.Update(Ds);
        TAHojaRuta.Update(Ds);

        e.Cancel = true;
        dvContratos.ChangeMode(DetailsViewMode.ReadOnly);

        _datos = ODSSelContratos.Select();
        gvContratos.DataSource = _datos;
        gvContratos.DataBind();
    }
    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);
        }
    }