Example #1
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;
            }
        }
Example #2
0
 public Programa Rellenar()
 {
     try
     {
         Necesidad = NecesidadDAO.Get(ClaveNecesidad);
         Detalles  = ProgramaDetalleDAO.Listar().Where(p => p.ClavePrograma == Clave).ToList();
         return(this);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Example #3
0
        public Mes Rellenar()
        {
            try
            {
                DetallePrograma = ProgramaDetalleDAO.Get(ClaveDetallePrograma);
                Programaciones  = ProgramacionDAO.Listar().Where(p => p.ClaveMes == Clave).ToList();

                return(this);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #4
0
 public TipoConcepto Rellenar()
 {
     try
     {
         Concepto          = ConceptoDAO.Get(ClaveConcepto);
         DetallesPrograma  = ProgramaDetalleDAO.Listar().Where(d => d.ClaveTipoConcepto == Clave).ToList();
         DetallesNecesidad = NecesidadDetalleDAO.Listar().Where(n => n.ClaveTipoConcepto == Clave).ToList();
         DetallesAumento   = AumentoDetalleDAO.Listar().Where(a => a.ClaveTipoConcepto == Clave).ToList();
         return(this);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Example #5
0
        public Circuito Rellenar()
        {
            try
            {
                Area             = AreaDAO.Get(ClaveArea);
                DetallesPrograma = ProgramaDetalleDAO.Listar().Where(p => p.ClaveCircuito == Clave).ToList();
                Aumentos         = AumentoCircuitoDAO.Listar().Where(a => a.ClaveCircuito == Clave).ToList();

                return(this);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #6
0
        protected void btnAgregarMes_Click(object sender, EventArgs e)
        {
            try
            {
                detallesNecesidad = NecesidadDetalleDAO.Listar().Where(w => w.ClaveNecesidad == Convert.ToInt32(claveNec)).ToList();

                ProgramaDetalle programaDetalle = new ProgramaDetalle();
                programaDetalle.Cantidad          = Convert.ToDouble(cantidadProg.Text);
                programaDetalle.FechaInicio       = Utilerias.ParsearFecha(txtFechaCreacion.Text);
                programaDetalle.PrecioUnitario    = Convert.ToDecimal(precioUnit.Text);
                programaDetalle.ClavePrograma     = Convert.ToInt32(claveProg);
                programaDetalle.ClaveCircuito     = Convert.ToInt32(cmbCircuito.SelectedValue);
                programaDetalle.ClaveContrato     = null;
                programaDetalle.ClaveConcepto     = Convert.ToInt32(cmbConcepto.SelectedValue);
                programaDetalle.ClaveTipoConcepto = Convert.ToInt32(cmbTipoConcepto.SelectedValue);


                ProgramaDetalle programaNuevo = ProgramaDetalleDAO.Insertar(programaDetalle);
                if (programaNuevo == null)
                {
                    Mensaje Mensaje = new Mensaje()
                    {
                        Titulo    = "Algo salió mal",
                        Contenido = "La Necesidad no pudo guardarse. Para más información consulte al administrador del sistema",
                        Tipo      = TipoMensaje.ALERTA
                    };
                    litPrueba.Text = Disenio.GenerarMensaje(Mensaje);
                    return;
                }
                else
                {
                    Response.Redirect(ResolveUrl("~/App/Area/CrearProgramaDetalle.aspx?id=" + claveProg + "&idNec=" + claveNec));
                }
            }
            catch (Exception Ex)
            {
                Mensaje Mensaje = new Mensaje()
                {
                    Titulo    = "Error al crear el programa",
                    Contenido = Ex.Message,
                    Tipo      = TipoMensaje.ERROR
                };

                litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
            }
        }
        protected void btnVincular_Click(object sender, EventArgs e)
        {
            claveP           = Request.QueryString["id"];
            programasDetalle = ProgramaDetalleDAO.Listar().Where(r => r.ClavePrograma == Convert.ToInt32(claveP)).ToList();

            foreach (ProgramaDetalle pd in programasDetalle)
            {
                pd.Rellenar();
                pd.ClaveContrato = Convert.ToInt32(cmbContrato.SelectedValue);
                try
                {
                    ProgramaDetalle programaActualizado = ProgramaDetalleDAO.Actualizar(pd.Clave, pd);

                    if (programaActualizado != null)
                    {
                        Mensaje Mensaje = new Mensaje()
                        {
                            Titulo    = "Programa acutalizado",
                            Contenido = "El programa se vinculo correctamente con el contrato seleccionado",
                            Tipo      = TipoMensaje.EXITO
                        };
                        litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                    }
                }catch (Exception ex)
                {
                    Mensaje Mensaje = new Mensaje()
                    {
                        Titulo    = "Error con el programa acutalizado",
                        Contenido = "El programa no se vinculo correctamente con el contrato seleccionado" + ex.Message,
                        Tipo      = TipoMensaje.ALERTA
                    };
                    litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                    return;
                }
            }
        }
Example #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Usuario = Utilerias.FiltrarUsuario(this);
            Periodo = Usuario.ConsultarPeriodoActual();

            string claveProgramaDetalle = Request.QueryString["idPD"];

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

            claveProg = clave;
            string necId = Request.QueryString["idNec"];

            claveNec = necId;
            string tipo  = Request.QueryString["tipo"];
            string Filas = "";

            if (!IsPostBack)
            {
                try
                {
                    detallesNecesidad = NecesidadDetalleDAO.Listar().Where(w => w.ClaveNecesidad == Convert.ToInt32(necId)).ToList();

                    if (clave != null && tipo == "eliminar")
                    {
                        int resultado = ProgramaDetalleDAO.Eliminar(Convert.ToInt32(claveProgramaDetalle));
                        if (resultado == 0)
                        {
                            Mensaje Mensaje = new Mensaje()
                            {
                                Titulo    = "Algo salió mal",
                                Contenido = "El programa no pudo eliminarse. Para más información consulte al administrador del sistema",
                                Tipo      = TipoMensaje.ALERTA
                            };
                            litPrueba.Text = Disenio.GenerarMensaje(Mensaje);
                            return;
                        }

                        Response.Redirect(ResolveUrl("~/App/Area/CrearProgramaDetalle.aspx?id=" + clave + "&idNec=" + necId));
                    }
                    else if (clave != null)
                    {
                        foreach (NecesidadDetalle det in detallesNecesidad)
                        {
                            det.Rellenar();

                            if (det.TipoConcepto == null)
                            {
                                Filas += Disenio.GenerarFilaTabla(det.Volumen.ToString(),
                                                                  det.PrecioUnitario.ToString(),
                                                                  Utilerias.ToCurrency(det.CalcularImporte()),
                                                                  det.Concepto.ToString(),
                                                                  "");
                                conceptosDisponibles.Add(det.Concepto);
                            }
                            else
                            {
                                Filas += Disenio.GenerarFilaTabla(det.Volumen.ToString(),
                                                                  det.PrecioUnitario.ToString(),
                                                                  Utilerias.ToCurrency(det.CalcularImporte()),
                                                                  det.Concepto.ToString(),
                                                                  det.TipoConcepto.ToString());
                                tipoConceptoDisponible.Add(det.TipoConcepto);
                            }
                        }

                        litTBody.Text = Filas;



                        Conceptos = ConceptoDAO.Listar().ToList();

                        cmbConcepto.DataSource = Conceptos;
                        cmbConcepto.DataBind();
                        Concepto Concepto = new Concepto();
                        Concepto                   = ConceptoDAO.Get(Convert.ToInt32(cmbConcepto.SelectedValue));
                        TiposConceptos             = Concepto.Rellenar().Tipos;
                        cmbTipoConcepto.DataSource = TiposConceptos;
                        cmbTipoConcepto.DataBind();

                        Circuitos = CircuitoDAO.Listar().Where(z => z.ClaveArea == Usuario.ClaveArea).ToList();
                        cmbCircuito.DataSource = Circuitos;
                        cmbCircuito.DataBind();


                        List <ProgramaDetalle> progDets = ProgramaDetalleDAO.Listar().Where(p => p.ClavePrograma == Convert.ToInt32(clave)).ToList();
                        string FilasDetalles            = "";

                        foreach (ProgramaDetalle p in progDets)
                        {
                            p.Rellenar();


                            string urlDelete = ResolveUrl("~/App/Area/CrearProgramaDetalle.aspx?idPD=" + p.Clave + "&id=" + clave + "&idNec=" + necId + "&tipo=eliminar");


                            if (p.TipoConcepto == null)
                            {
                                FilasDetalles += Disenio.GenerarFilaTabla(
                                    p.Cantidad.ToString(),
                                    p.FechaInicio.ToString(),
                                    p.PrecioUnitario.ToString(),
                                    p.Circuito.Descripcion.ToString(),
                                    p.Concepto.ToString(),
                                    "",
                                    "<a href='" + urlDelete + "' class='btn btn-default btn-block'>Eliminar</a>");
                            }
                            else
                            {
                                FilasDetalles += Disenio.GenerarFilaTabla(
                                    p.Cantidad.ToString(),
                                    p.FechaInicio.ToString(),
                                    p.PrecioUnitario.ToString(),
                                    p.Circuito.Descripcion.ToString(),
                                    p.Concepto.ToString(),
                                    p.TipoConcepto.ToString(),
                                    "<a href='" + urlDelete + "' class='btn btn-default btn-block'>Eliminar</a>"
                                    );
                            }
                        }

                        LitDetalles.Text = FilasDetalles;
                    }
                }



                catch (Exception Ex)
                {
                    Mensaje Mensaje = new Mensaje()
                    {
                        Titulo    = "Error en el proceso del detalle de programa de ejecucion",
                        Contenido = Ex.Message,
                        Tipo      = TipoMensaje.ERROR
                    };

                    litMensaje.Text = Disenio.GenerarMensaje(Mensaje);
                }
            }
        }
Example #9
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;
            }
        }
Example #10
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;
                    }
                }
            }
        }
Example #11
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;
                }
            }
        }
        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();
                }
            }
        }