public int ProgramarActividadesRutinarias(string actividadesR, int AUDI_UsuarioEdita)
        {
            //Formato de actividadesR = HIAR_Interno|HIAR_Interno|HIAR_Interno
            int result = 0;

            if (actividadesR != "")
            {
                ProgramacionActividadesDAO progDAO = new ProgramacionActividadesDAO();
                HistorialAR  historialAR           = null;
                string[]     IDAct = actividadesR.Split('|');
                ControlGrupo CG    = new ControlGrupo();
                foreach (string IDs in IDAct)
                {
                    historialAR = new HistorialAR();
                    ActividadRDAO actDAO = new ActividadRDAO();
                    historialAR.HIAR_Interno = Convert.ToInt32(IDs);
                    //para el numero de la semana
                    DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
                    Calendar           cal = dfi.Calendar;
                    int anio = DateTime.Now.Year;
                    // System.Windows.Forms.MessageBox.Show(anio.ToString());
                    int NumSemana = cal.GetWeekOfYear(DateTime.Now.Date, dfi.CalendarWeekRule, dfi.FirstDayOfWeek);
                    //System.Windows.Forms.MessageBox.Show(NumSemana.ToString());

                    //Obtenemos el Id de la semana de programacion
                    ProgramaSemanal programa = new ProgramaSemanal();
                    programa.PERI_NumSemana = NumSemana;
                    programa.PERI_Anio      = anio;

                    ProgramaDAO progSemDAO = new ProgramaDAO();
                    int         IDprog     = progSemDAO.ObtenerIDProgramaSemanal(programa);

                    if (IDprog > 0)
                    {
                        historialAR.PERI_Interno = IDprog;
                    }
                    else
                    {
                        IDprog = progSemDAO.InsertarProgramaSemanal(programa);
                        if (IDprog > 0)
                        {
                            historialAR.PERI_Interno = IDprog;
                        }
                    }

                    //programamos la actividad rutinaria
                    int res = progDAO.ProgramarActividadesRutinarias(historialAR, AUDI_UsuarioEdita);

                    if (res > 0)
                    {
                        result++;
                    }
                }
                return(result);
            }
            else
            {
                return(0);
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario         = Utilerias.FiltrarUsuario(this);
            periodo         = usuario.ConsultarPeriodoActual();
            necesidadesArea = NecesidadDAO.Listar().Where(r => r.ClaveArea == usuario.ClaveArea).ToList();


            if (!IsPostBack)
            {
                string Filas = "";
                foreach (Necesidad n in necesidadesArea)
                {
                    List <Programa> programasAux = ProgramaDAO.Listar().Where(x => x.ClaveNecesidad == n.Clave).ToList();
                    foreach (Programa p in programasAux)
                    {
                        List <ProgramaDetalle> programaDetalle = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == p.Clave).ToList();
                        p.Rellenar();
                        n.Rellenar();
                        string url = ResolveUrl("~/App/Area/AsignarContratoANecesidad.aspx?id=" + p.Clave);

                        if (programaDetalle.Count == 0)
                        {
                            Mensaje mensaje = new Mensaje()
                            {
                                Titulo    = "ERROR!",
                                Contenido = "No hay contratos para asignar",
                                Tipo      = TipoMensaje.ERROR
                            };
                            litMensaje.Text = Disenio.GenerarMensaje(mensaje);
                            break;
                        }

                        if (programaDetalle.First().Rellenar().Contrato != null)
                        {
                            Filas += Disenio.GenerarFilaTabla(
                                p.FechaCreacion.ToShortDateString(),
                                n.FechaCreacion.ToShortDateString(),
                                n.Area.Rellenar().Nombre,
                                n.Periodo.Rellenar().Descripcion,
                                n.Estatus.Descripcion,
                                programaDetalle.First().Rellenar().Contrato.Rellenar().Codigo,
                                "<a href='" + url + "' class='btn btn-default btn-block'>Asignar contrato</a>");
                        }
                        else
                        {
                            Filas += Disenio.GenerarFilaTabla(
                                p.FechaCreacion.ToShortDateString(),
                                n.FechaCreacion.ToShortDateString(),
                                n.Area.Rellenar().Nombre,
                                n.Periodo.Rellenar().Descripcion,
                                n.Estatus.Descripcion,
                                "contrato sin asignar",
                                "<a href='" + url + "' class='btn btn-default btn-block'>Asignar contrato</a>");
                        }
                    }
                }
                litTBody.Text = Filas;
            }
        }
Esempio n. 3
0
 public Necesidad Rellenar()
 {
     try
     {
         Area      = AreaDAO.Get(ClaveArea);
         Periodo   = PeriodoDAO.Get(ClavePeriodo);
         Estatus   = EstatusNecesidadDAO.Get(ClaveEstatus);
         Detalles  = NecesidadDetalleDAO.Listar().Where(n => n.ClaveNecesidad == Clave).ToList();
         Programas = ProgramaDAO.Listar().Where(p => p.ClaveNecesidad == Clave).ToList();
         return(this);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Esempio n. 4
0
 public ProgramaDetalle Rellenar()
 {
     try
     {
         Programa     = ProgramaDAO.Get(ClavePrograma);
         Circuito     = CircuitoDAO.Get(ClaveCircuito);
         Contrato     = ContratoDAO.Get(ClaveContrato);
         Concepto     = ConceptoDAO.Get(ClaveConcepto);
         TipoConcepto = TipoConceptoDAO.Get(ClaveTipoConcepto);
         Meses        = MesDAO.Listar().Where(m => m.ClaveDetallePrograma == Clave).ToList();
         return(this);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Esempio n. 5
0
        protected void btnCrearPrograma_Click(object sender, EventArgs e)
        {
            try
            {
                Programa Programa = new Programa();
                Programa.FechaCreacion = Utilerias.ParsearFecha(txtFechaCreacion.Text);
                //falta agregar que solamente la necesidad aprobada sea a la que se le signara el programa de ejecucion  && r.ClaveEstatus == 1
                Modelo.Area Area            = AreaDAO.Get(Convert.ToInt32(Usuario.ClaveArea)).Rellenar();
                Necesidad   NecesidadActual = Area.NecesidadActual(Periodo.Clave) ?? new Necesidad();

                Necesidades             = NecesidadDAO.Listar().Where(r => r.ClaveArea == Usuario.ClaveArea).ToList();
                Programa.ClaveNecesidad = NecesidadActual.Clave;

                Programa ProgramaNuevo = ProgramaDAO.Insertar(Programa);

                if (ProgramaNuevo == null)
                {
                    Mensaje Mensaje = new Mensaje()
                    {
                        Titulo    = "Algo salió mal",
                        Contenido = "El programa no pudo guardarse. Para más información consulte al administrador del sistema",
                        Tipo      = TipoMensaje.ALERTA
                    };
                    litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                    return;
                }
                else
                {
                    Response.Redirect(ResolveUrl("~/App/Area/CrearProgramaDetalle.aspx?id=" + ProgramaNuevo.Clave + "&idNec=" + NecesidadActual.Clave));
                }
            }
            catch (Exception Ex)
            {
                Mensaje Mensaje = new Mensaje()
                {
                    Titulo    = "Error al guardar el programa",
                    Contenido = Ex.Message,
                    Tipo      = TipoMensaje.ERROR
                };

                litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
            }
        }
Esempio n. 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario = Utilerias.FiltrarUsuario(this);
            periodo = usuario.ConsultarPeriodoActual();

            string idArea = Request.QueryString["id"];

            if (!IsPostBack)
            {
                necesidades = NecesidadDAO.Listar().Where(r => ((r.ClaveArea == Convert.ToInt32(idArea)))).ToList();


                string Filas = "";
                foreach (Necesidad p in necesidades)
                {
                    if (ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == p.Clave).Count() != 0)
                    {
                        p.Rellenar();
                        string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                        Filas += Disenio.GenerarFilaTabla(
                            p.FechaCreacion.ToShortDateString(),
                            p.Area.Rellenar().Nombre,
                            p.Periodo.Rellenar().Descripcion,
                            p.Estatus.Rellenar().Descripcion,
                            "<a href='" + url + "' class='btn btn-default btn-block'>Seleccionar</a>");
                    }
                    else
                    {
                        p.Rellenar();
                        string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                        Filas += Disenio.GenerarFilaTabla(
                            p.FechaCreacion.ToShortDateString(),
                            p.Area.Rellenar().Nombre,
                            p.Periodo.Rellenar().Descripcion,
                            p.Estatus.Rellenar().Descripcion,
                            "programa de ejecucion sin asignar");
                    }
                }
                litTBody.Text = Filas;
            }
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Usuario = Utilerias.FiltrarUsuario(this);
            Periodo = Usuario.ConsultarPeriodoActual();



            if (!IsPostBack)
            {
                Modelo.Area Area            = AreaDAO.Get(Convert.ToInt32(Usuario.ClaveArea)).Rellenar();
                Necesidad   NecesidadActual = Area.NecesidadActual(Periodo.Clave) ?? new Necesidad();

                txtFechaCreacion.Text = DateTime.Today.Date.ToShortDateString();
                //falta agregar que solamente la necesidad aprobada sea a la que se le signara el programa de ejecucion  && r.ClaveEstatus == 1
                Necesidades = NecesidadDAO.Listar().Where(r => r.ClaveArea == Usuario.ClaveArea).ToList();

                txtNecesidad.Text = NecesidadActual.FechaCreacion.ToString();
                List <Programa> Programas = new List <Programa>();


                foreach (Necesidad nec in Necesidades)
                {
                    try
                    {
                        Programas.Add(ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == nec.Clave).First());
                    }
                    catch (Exception ex)
                    {
                        break;
                    }
                }



                if (NecesidadActual.ClaveEstatus != 1)
                {
                    btnCrearPrograma.Visible = false;
                }
                else if (NecesidadActual.ClaveEstatus == 1)
                {
                    btnCrearPrograma.Visible = true;
                }

                string Filas = "";

                if (Programas.Count != 0)
                {
                    foreach (Programa p in Programas)
                    {
                        string    url       = ResolveUrl("~/App/Area/CrearProgramaDetalle.aspx?id=" + p.Clave + "&idNec=" + p.ClaveNecesidad);
                        Necesidad Necesidad = NecesidadDAO.Get(p.ClaveNecesidad);
                        Filas += Disenio.GenerarFilaTabla(p.FechaCreacion.ToShortDateString(),
                                                          Necesidad.FechaCreacion.ToShortDateString(),
                                                          "<a href='" + url + "' class='btn btn-default btn-block'>Editar</a>");
                    }
                }



                litTBody.Text = Filas;
            }
        }
Esempio n. 8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario = Utilerias.FiltrarUsuario(this);
            periodo = usuario.ConsultarPeriodoActual();

            string idNecesidad = Request.QueryString["id"];

            if (!IsPostBack)
            {
                programa = ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == Convert.ToInt32(idNecesidad)).First();

                string Filas = "";

                programa.Rellenar();
                Filas += Disenio.GenerarFilaTabla(
                    programa.FechaCreacion.ToShortDateString(),
                    programa.Necesidad.Rellenar().FechaCreacion.ToShortDateString());
                litTBody.Text = Filas;

                programaDetalles = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == programa.Clave).ToList();

                Filas = "";
                foreach (ProgramaDetalle p in programaDetalles)
                {
                    if (p.Rellenar().Contrato != null)
                    {
                        if (p.Rellenar().TipoConcepto != null)
                        {
                            p.Rellenar();
                            string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                            Filas += Disenio.GenerarFilaTabla(
                                p.Cantidad.ToString(),
                                p.FechaInicio.ToShortDateString(),
                                p.PrecioUnitario.ToString(),
                                p.Circuito.Rellenar().Descripcion,
                                p.Contrato.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                p.TipoConcepto.Rellenar().Descripcion);
                        }
                        else
                        {
                            p.Rellenar();
                            string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                            Filas += Disenio.GenerarFilaTabla(
                                p.Cantidad.ToString(),
                                p.FechaInicio.ToShortDateString(),
                                p.PrecioUnitario.ToString(),
                                p.Circuito.Rellenar().Descripcion,
                                p.Contrato.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                "");
                        }
                    }
                    else
                    {
                        Mensaje Mensaje = new Mensaje()
                        {
                            Titulo    = "Error!",
                            Contenido = "Esta necesidad no tiene un contrato asignado",
                            Tipo      = TipoMensaje.ERROR
                        };

                        litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                    }
                }
                litTBody2.Text = Filas;
            }
        }
Esempio n. 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario = Utilerias.FiltrarUsuario(this);
            periodo = usuario.ConsultarPeriodoActual();
            string idArea = Request.QueryString["id"];


            if (!IsPostBack)
            {
                int necesidadC = NecesidadDAO.Listar().Where(r => r.ClaveArea == Convert.ToInt32(idArea) && r.ClavePeriodo == periodo.Clave).Count();
                if (necesidadC == 0)
                {
                    Mensaje mensaje = new Mensaje()
                    {
                        Titulo    = "ADVERTENCIA!",
                        Contenido = "No hay necesidades registradas",
                        Tipo      = TipoMensaje.ERROR
                    };
                    litMensaje.Text = Disenio.GenerarMensaje(mensaje);
                }
                else
                {
                    Necesidad necesidad = NecesidadDAO.Listar().Where(r => r.ClaveArea == Convert.ToInt32(idArea) && r.ClavePeriodo == periodo.Clave).First();
                    int       id        = necesidad.Rellenar().Clave;
                    int       programaC = ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == Convert.ToInt32(id)).Count();
                    if (programaC == 0)
                    {
                        Mensaje mensaje = new Mensaje()
                        {
                            Titulo    = "ADVERTENCIA!",
                            Contenido = "No hay programa de ejecucion registrado",
                            Tipo      = TipoMensaje.ERROR
                        };
                        litMensaje.Text = Disenio.GenerarMensaje(mensaje);
                    }
                    else
                    {
                        programa         = ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == Convert.ToInt32(id)).First();
                        programaDetalles = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == programa.Clave).ToList();


                        string Fila  = "";
                        string Fila2 = "";
                        foreach (ProgramaDetalle p in programaDetalles)
                        {
                            p.Rellenar();
                            int mesC = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).Count();
                            if (mesC == 0)
                            {
                                break;
                            }
                            Mes mes = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).First();
                            meses.Add(mes);
                            int programC = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).Count();
                            if (programC == 0)
                            {
                                break;
                            }
                            Programacion program = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).First();

                            int av = AvanceDAO.Listar().Where(r => r.ClaveProgramacion == program.Clave).Count();
                            if (av != 0)
                            {
                                Avance avances = AvanceDAO.Listar().Where(r => r.ClaveProgramacion == program.Rellenar().Clave).First();
                                Fila2 += Disenio.GenerarFilaTabla(
                                    avances.Ejecutado.ToString(),
                                    avances.Observacioens,
                                    avances.FechaCreacion.ToString(),
                                    mes.Rellenar().NombreMes
                                    );
                            }


                            if (p.TipoConcepto != null)
                            {
                                Fila += Disenio.GenerarFilaTabla(
                                    mes.NombreMes,
                                    program.Programado.ToString(),
                                    p.Circuito.Rellenar().Codigo,
                                    p.Concepto.Rellenar().Descripcion,
                                    p.TipoConcepto.Rellenar().Descripcion);
                            }
                            else
                            {
                                Fila += Disenio.GenerarFilaTabla(
                                    mes.NombreMes,
                                    program.Programado.ToString(),
                                    p.Circuito.Rellenar().Codigo,
                                    p.Concepto.Rellenar().Descripcion,
                                    "");
                            }
                        }

                        litTBody.Text  = Fila;
                        litTBody2.Text = Fila2;
                    }
                }
            }
        }
Esempio n. 10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario = Utilerias.FiltrarUsuario(this);
            periodo = usuario.ConsultarPeriodoActual();



            if (!IsPostBack)
            {
                Mensaje m = new Mensaje()
                {
                    Titulo    = "ADVERTENCIA!",
                    Contenido = "SEA CUIDADOSO AL CREAR UNA PROGRAMACION YA QUE NO PODRÁ SER MODIFICADA UNA VES QUE SE REGISTRE, si comete un error contacte al administrador",
                    Tipo      = TipoMensaje.ALERTA
                };
                advertencia.Text = Disenio.GenerarMensaje(m);

                int necesidadC = NecesidadDAO.Listar().Where(r => r.ClaveArea == usuario.ClaveArea && r.ClavePeriodo == periodo.Clave).Count();
                if (necesidadC == 0)
                {
                    Mensaje me = new Mensaje()
                    {
                        Titulo    = "ADVERTENCIA!",
                        Contenido = "no hay necesidades registradas o aprobadas para el periodo en curso",
                        Tipo      = TipoMensaje.ALERTA
                    };
                    advertencia.Text = Disenio.GenerarMensaje(me);
                }
                else
                {
                    Necesidad necesidad = NecesidadDAO.Listar().Where(r => r.ClaveArea == usuario.ClaveArea && r.ClavePeriodo == periodo.Clave).First();
                    int       id        = necesidad.Rellenar().Clave;

                    programa = ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == Convert.ToInt32(id)).First();

                    programaDetalles = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == programa.Clave).ToList();

                    string Filas = "";
                    foreach (ProgramaDetalle p in programaDetalles)
                    {
                        if (p.Rellenar().Contrato != null)
                        {
                            if (p.Rellenar().TipoConcepto != null)
                            {
                                p.Rellenar();
                                string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                                Filas += Disenio.GenerarFilaTabla(
                                    p.Cantidad.ToString(),
                                    p.FechaInicio.ToShortDateString(),
                                    p.PrecioUnitario.ToString(),
                                    p.Circuito.Rellenar().Descripcion,
                                    p.Contrato.Rellenar().Codigo,
                                    p.Concepto.Rellenar().Descripcion,
                                    p.TipoConcepto.Rellenar().Descripcion);
                            }
                            else
                            {
                                p.Rellenar();
                                string url = ResolveUrl("~/App/Division/Programa.aspx?id=" + p.Clave);
                                Filas += Disenio.GenerarFilaTabla(
                                    p.Cantidad.ToString(),
                                    p.FechaInicio.ToShortDateString(),
                                    p.PrecioUnitario.ToString(),
                                    p.Circuito.Rellenar().Descripcion,
                                    p.Contrato.Rellenar().Codigo,
                                    p.Concepto.Rellenar().Descripcion,
                                    "");
                            }
                        }
                        else
                        {
                            Mensaje Mensaje = new Mensaje()
                            {
                                Titulo    = "Error!",
                                Contenido = "Esta necesidad no tiene un contrato asignado",
                                Tipo      = TipoMensaje.ERROR
                            };

                            litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                        }
                    }
                    litTBody.Text = Filas;

                    cmbProgramacion.DataSource = programaDetalles;
                    cmbProgramacion.DataBind();

                    string Fila = "";
                    foreach (ProgramaDetalle p in programaDetalles)
                    {
                        p.Rellenar();
                        int mesC = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).Count();
                        if (mesC == 0)
                        {
                            break;
                        }
                        Mes mes      = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).First();
                        int programC = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).Count();
                        if (programC == 0)
                        {
                            break;
                        }
                        Programacion program = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).First();

                        if (p.TipoConcepto != null)
                        {
                            Fila += Disenio.GenerarFilaTabla(
                                mes.NombreMes,
                                program.Programado.ToString(),
                                p.Circuito.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                p.TipoConcepto.Rellenar().Descripcion);
                        }
                        else
                        {
                            Fila += Disenio.GenerarFilaTabla(
                                mes.NombreMes,
                                program.Programado.ToString(),
                                p.Circuito.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                "");
                        }
                    }

                    litTBody2.Text = Fila;
                }
            }
        }
Esempio n. 11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            usuario = Utilerias.FiltrarUsuario(this);
            periodo = usuario.ConsultarPeriodoActual();

            Mensaje mensaje = new Mensaje()
            {
                Titulo    = "ADVERTENCIA!",
                Contenido = "SEA CUIDADOSO AL REGISTRAR EL AVANCE YA QUE NO PODRÁ SER MODIFICADO",
                Tipo      = TipoMensaje.ERROR
            };

            litMensaje.Text = Disenio.GenerarMensaje(mensaje);



            if (!IsPostBack)
            {
                int necesidadC = NecesidadDAO.Listar().Where(r => r.ClaveArea == usuario.ClaveArea && r.ClavePeriodo == periodo.Clave).Count();

                if (necesidadC == 0)
                {
                    Mensaje m = new Mensaje()
                    {
                        Titulo    = "ADVERTENCIA!",
                        Contenido = "No hay una necesidad creada o aprobada para el periodo en curso",
                        Tipo      = TipoMensaje.ERROR
                    };
                    litMensaje.Text = Disenio.GenerarMensaje(m);
                }
                else
                {
                    Necesidad necesidad = NecesidadDAO.Listar().Where(r => r.ClaveArea == usuario.ClaveArea && r.ClavePeriodo == periodo.Clave).First();
                    int       id        = necesidad.Rellenar().Clave;
                    programa         = ProgramaDAO.Listar().Where(r => r.ClaveNecesidad == Convert.ToInt32(id)).First();
                    programaDetalles = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == programa.Clave).ToList();

                    txtFechaCreacion.Text     = DateTime.Today.ToShortDateString();
                    txtFechaCreacion.ReadOnly = true;

                    string Fila  = "";
                    string Fila2 = "";
                    foreach (ProgramaDetalle p in programaDetalles)
                    {
                        p.Rellenar();
                        int mesC = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).Count();
                        if (mesC == 0)
                        {
                            break;
                        }
                        Mes mes = MesDAO.Listar().Where(r => r.ClaveDetallePrograma == p.Clave).First();
                        meses.Add(mes);
                        int programC = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).Count();
                        if (programC == 0)
                        {
                            break;
                        }
                        Programacion program = ProgramacionDAO.Listar().Where(x => x.ClaveMes == mes.Rellenar().Clave).First();

                        int av = AvanceDAO.Listar().Where(r => r.ClaveProgramacion == program.Clave).Count();
                        if (av != 0)
                        {
                            Avance avances = AvanceDAO.Listar().Where(r => r.ClaveProgramacion == program.Rellenar().Clave).First();
                            Fila2 += Disenio.GenerarFilaTabla(
                                avances.Ejecutado.ToString(),
                                avances.Observacioens,
                                avances.FechaCreacion.ToString(),
                                mes.Rellenar().NombreMes
                                );
                        }


                        if (p.TipoConcepto != null)
                        {
                            Fila += Disenio.GenerarFilaTabla(
                                mes.NombreMes,
                                program.Programado.ToString(),
                                p.Circuito.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                p.TipoConcepto.Rellenar().Descripcion);
                        }
                        else
                        {
                            Fila += Disenio.GenerarFilaTabla(
                                mes.NombreMes,
                                program.Programado.ToString(),
                                p.Circuito.Rellenar().Codigo,
                                p.Concepto.Rellenar().Descripcion,
                                "");
                        }
                    }

                    litTBody.Text     = Fila;
                    litTBody2.Text    = Fila2;
                    cmbMes.DataSource = meses;
                    cmbMes.DataBind();
                }
            }
        }