private bool ingresarHistoricoIndicador(HistoricoIndicadorGenericoModel _historicoIndicadorDTO)
        {
            bool ingresado = false;

            using (FonadeDBLightDataContext db = new FonadeDBLightDataContext(_cadenaConex))
            {
                HistoricoIndicadorGenerico historico = new HistoricoIndicadorGenerico {
                    CodContactoCambio    = _historicoIndicadorDTO.CodContactoCambio,
                    CodEmpresa           = _historicoIndicadorDTO.CodEmpresa,
                    Denominador_New      = _historicoIndicadorDTO.Denominador_New,
                    Denominador_Old      = _historicoIndicadorDTO.Denominador_Old,
                    Descripcion          = _historicoIndicadorDTO.Descripcion,
                    Evaluacion_New       = _historicoIndicadorDTO.Evaluacion_New,
                    Evaluacion_Old       = _historicoIndicadorDTO.Evaluacion_Old,
                    FechaCambio          = _historicoIndicadorDTO.FechaCambio,
                    id_IndicadorGenerico = _historicoIndicadorDTO.id_IndicadorGenerico,
                    MotivoCambio         = _historicoIndicadorDTO.MotivoCambio,
                    NombreIndicador      = _historicoIndicadorDTO.NombreIndicador,
                    Numerador_New        = _historicoIndicadorDTO.Numerador_New,
                    Numerador_Old        = _historicoIndicadorDTO.Numerador_Old,
                    Observacion_New      = _historicoIndicadorDTO.Observacion_New,
                    Observacion_Old      = _historicoIndicadorDTO.Observacion_Old
                };

                db.HistoricoIndicadorGenerico.InsertOnSubmit(historico);
                db.SubmitChanges();
                ingresado = true;
            }

            return(ingresado);
        }
        private bool ModificarIndicador(int _idIndicador, float _valNumerador, float _valDenominador
                                        , string _obsersavcion, string _motivo)
        {
            bool modificado = false;

            float division;

            var evaluacion = string.Empty;

            if (_valDenominador > 0)
            {
                division = (_valNumerador / _valDenominador);
            }
            else
            {
                division = 0;
            }

            switch (lblIndice.Text)
            {
            // Empleo
            case "16":
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division > 1)
                    {
                        evaluacion = "Más que Efectivo";
                    }
                    else
                    {
                        if (division >= 0.66 && division <= 1)
                        {
                            evaluacion = "Efectivo";
                        }
                        else
                        {
                            evaluacion = "Inefectivo";
                        }
                    }
                }
                break;

            //Presupuesto
            case "17":
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division >= 0.7)
                    {
                        evaluacion = "Efectivo";
                    }
                    else
                    {
                        evaluacion = "Inefectivo";
                    }
                }
                break;

            //Mercadeo
            case ("18"):
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division >= 1)
                    {
                        evaluacion = "Eficiente";
                    }
                    else
                    {
                        evaluacion = "Ineficiente";
                    }
                }
                break;

            //Ventas
            case ("19"):
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division > 1)
                    {
                        evaluacion = "Meta altamente eficiente";
                    }
                    else
                    {
                        if (division >= 0.55 && division <= 1)
                        {
                            evaluacion = "Meta eficiente";
                        }
                        else
                        {
                            evaluacion = "Meta Deficiente";
                        }
                    }
                }
                break;

            //Produccion
            case ("20"):
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division > 1)
                    {
                        evaluacion = "Más que efectivo";
                    }
                    else
                    {
                        if (division >= 0.6 && division <= 1)
                        {
                            evaluacion = "Efectivo";
                        }
                        else
                        {
                            evaluacion = "Inefectivo";
                        }
                    }
                }
                break;

            //Comercial
            case ("21"):
                if (_valDenominador == 0 && _valNumerador == 0)
                {
                    evaluacion = "Sin evaluación";
                }
                else
                {
                    if (division > 1)
                    {
                        evaluacion = "Más que eficiente";
                    }
                    else
                    {
                        if (division >= 0.7 && division <= 1)
                        {
                            evaluacion = "Eficiente";
                        }
                        else
                        {
                            evaluacion = "Ineficiente";
                        }
                    }
                }
                break;
            }

            using (FonadeDBDataContext db = new FonadeDBDataContext(_cadenaConex))
            {
                var query = (from ca in db.IndicadorGenericos
                             where ca.Id_IndicadorGenerico == _idIndicador
                             select ca).FirstOrDefault();
                //Agregamos al historico
                HistoricoIndicadorGenericoModel historicoIndicadorDTO = new HistoricoIndicadorGenericoModel();

                historicoIndicadorDTO.CodContactoCambio    = usuario.IdContacto;
                historicoIndicadorDTO.CodEmpresa           = query.CodEmpresa;
                historicoIndicadorDTO.Denominador_New      = Convert.ToInt32(_valDenominador);
                historicoIndicadorDTO.Denominador_Old      = query.Denominador ?? 0;
                historicoIndicadorDTO.Descripcion          = query.Descripcion;
                historicoIndicadorDTO.Evaluacion_New       = evaluacion;
                historicoIndicadorDTO.Evaluacion_Old       = query.Evaluacion;
                historicoIndicadorDTO.FechaCambio          = DateTime.Now;
                historicoIndicadorDTO.id_IndicadorGenerico = _idIndicador;
                historicoIndicadorDTO.MotivoCambio         = _motivo;
                historicoIndicadorDTO.NombreIndicador      = query.NombreIndicador;
                historicoIndicadorDTO.Numerador_New        = Convert.ToInt32(_valNumerador);
                historicoIndicadorDTO.Numerador_Old        = query.Numerador ?? 0;
                historicoIndicadorDTO.Observacion_New      = _obsersavcion;
                historicoIndicadorDTO.Observacion_Old      = query.Observacion;

                if (ingresarHistoricoIndicador(historicoIndicadorDTO))
                {
                    //Realizamos el update
                    query.Numerador   = Convert.ToInt32(_valNumerador);
                    query.Denominador = Convert.ToInt32(_valDenominador);
                    query.Observacion = _obsersavcion;
                    query.Evaluacion  = evaluacion;

                    db.SubmitChanges();

                    cargarGrid();

                    modificado = true;
                }
            }
            return(modificado);
        }