private decimal CalcularCumplimiento(E_RESULTADO_META pMeta) { decimal resultado = 0; resultado = pMeta.PONDERACION * pMeta.RANGOVALOR / 100; return(resultado); }
private decimal ValidarRangoDeMetaPorcentual(decimal valorMeta, E_RESULTADO_META pMeta) { decimal resultado; pMeta.RESULTADO = valorMeta.ToString(); if (Convert.ToDecimal(pMeta.MINIMO) < Convert.ToDecimal(pMeta.SATISFACTORIO)) { if (valorMeta < Convert.ToDecimal(pMeta.MINIMO)) { pMeta.CL_META = 1; pMeta.RANGOVALOR = 0; } else if (valorMeta >= Convert.ToDecimal(pMeta.MINIMO) && valorMeta < Convert.ToDecimal(pMeta.SATISFACTORIO)) { pMeta.CL_META = 2; pMeta.RANGOVALOR = 50; } else if (valorMeta >= Convert.ToDecimal(pMeta.SATISFACTORIO) && valorMeta < Convert.ToDecimal(pMeta.SOBRESALIENTE)) { pMeta.CL_META = 3; pMeta.RANGOVALOR = 75; } else if (valorMeta >= Convert.ToDecimal(pMeta.SOBRESALIENTE)) { pMeta.CL_META = 4; pMeta.RANGOVALOR = 100; } } else if (Convert.ToDecimal(pMeta.MINIMO) > Convert.ToDecimal(pMeta.SATISFACTORIO)) { if (valorMeta > Convert.ToDecimal(pMeta.MINIMO)) { pMeta.CL_META = 1; pMeta.RANGOVALOR = 0; } else if (valorMeta <= Convert.ToDecimal(pMeta.MINIMO) && valorMeta > Convert.ToDecimal(pMeta.SATISFACTORIO)) { pMeta.CL_META = 2; pMeta.RANGOVALOR = 50; } else if (valorMeta <= Convert.ToDecimal(pMeta.SATISFACTORIO) && valorMeta > Convert.ToDecimal(pMeta.SOBRESALIENTE)) { pMeta.CL_META = 3; pMeta.RANGOVALOR = 75; } else if (valorMeta <= Convert.ToDecimal(pMeta.SOBRESALIENTE)) { pMeta.CL_META = 4; pMeta.RANGOVALOR = 100; } } resultado = CalcularCumplimiento(pMeta); return(resultado); }
protected void btnGuardar_Click(object sender, EventArgs e) { List <E_RESULTADO_META> metas = new List <E_RESULTADO_META>(); foreach (GridDataItem item in grdResultados.MasterTableView.Items) { int id_evaluado_meta = Convert.ToInt32(item.GetDataKeyValue("ID_EVALUADO_META").ToString()); string cl_tipo_meta = (item.GetDataKeyValue("CL_TIPO_META").ToString()); decimal ponderacion = Convert.ToDecimal(item.GetDataKeyValue("PR_EVALUADO").ToString()); string minimo = ((item.GetDataKeyValue("NB_CUMPLIMIENTO_MINIMO")) != null) ? (item.GetDataKeyValue("NB_CUMPLIMIENTO_MINIMO").ToString()) : ""; string satisfactorio = ((item.GetDataKeyValue("NB_CUMPLIMIENTO_SATISFACTORIO")) != null) ? (item.GetDataKeyValue("NB_CUMPLIMIENTO_SATISFACTORIO").ToString()) : ""; string sobresaliente = ((item.GetDataKeyValue("NB_CUMPLIMIENTO_SOBRESALIENTE")) != null) ? (item.GetDataKeyValue("NB_CUMPLIMIENTO_SOBRESALIENTE").ToString()) : ""; E_RESULTADO_META meta = new E_RESULTADO_META { ID_EVALUADO_META = id_evaluado_meta, CL_META = 0, PONDERACION = ponderacion, MINIMO = minimo, SATISFACTORIO = satisfactorio, SOBRESALIENTE = sobresaliente, CUMPLIMIENTO = 0, RANGOVALOR = 0, RESULTADO = String.Empty }; if (cl_tipo_meta == "Porcentual") { RadNumericTextBox txtResultadoPorcentual = (RadNumericTextBox)item.FindControl("txtResultadoPorcentual"); if (txtResultadoPorcentual.Text == String.Empty) { meta.CUMPLIMIENTO = 0; } else { meta.CUMPLIMIENTO = ValidarRangoDeMetaPorcentual(Convert.ToDecimal(txtResultadoPorcentual.Text), meta); } } else if (cl_tipo_meta == "Cantidad") { RadNumericTextBox txtResultadoMonto = (RadNumericTextBox)item.FindControl("txtResultadoMonto"); if (txtResultadoMonto.Text == String.Empty) { meta.CUMPLIMIENTO = 0; } else { meta.CUMPLIMIENTO = ValidarRangoDeMetaPorcentual(Convert.ToDecimal(txtResultadoMonto.Text), meta); } } else if (cl_tipo_meta == "Fecha") { RadDatePicker dtpResultaFecha = (RadDatePicker)item.FindControl("dtpResultaFecha"); if (dtpResultaFecha.SelectedDate.ToString() == String.Empty) { meta.CUMPLIMIENTO = 0; } else { DateTime fecha = Convert.ToDateTime(dtpResultaFecha.SelectedDate); meta.CUMPLIMIENTO = ValidarRangoDeMetaFecha(Convert.ToDateTime(fecha), meta); } } else if (cl_tipo_meta == "Si/No") { RadComboBox cmbrResultadoSiNo = (RadComboBox)item.FindControl("cmbrResultadoSiNo"); if (cmbrResultadoSiNo.SelectedIndex == 0) { meta.RANGOVALOR = 0; meta.CUMPLIMIENTO = 0; } else if (cmbrResultadoSiNo.SelectedIndex == 1) { meta.RANGOVALOR = 100; meta.CUMPLIMIENTO = CalcularCumplimiento(meta); } else if (cmbrResultadoSiNo.SelectedIndex == 2) { meta.RANGOVALOR = 0; meta.CUMPLIMIENTO = CalcularCumplimiento(meta); } meta.CL_META = Convert.ToInt32(cmbrResultadoSiNo.SelectedValue); meta.RESULTADO = cmbrResultadoSiNo.SelectedItem.Text; } metas.Add(meta); var vXelements = metas.Select(x => new XElement("META", new XAttribute("ID_EVALUADO_META", x.ID_EVALUADO_META), new XAttribute("CL_NIVEL", x.CL_META), new XAttribute("NB_RESULTADO", x.RESULTADO), new XAttribute("PR_CUMPLIMIENTO_META", x.CUMPLIMIENTO) )); RESULTADOS = new XElement("CUMPLIMIENTO", vXelements ); } decimal sumaCumplimiento = 0; foreach (E_RESULTADO_META item in metas) { sumaCumplimiento = sumaCumplimiento + Convert.ToDecimal(item.CUMPLIMIENTO); } decimal cumplimientoTotal = CalcularCumplimientoPuesto(sumaCumplimiento); //var vXelementsBono = (new XElement("BONO", // new XAttribute("MIN_INDEPENDIENTE", vMontoMnInd), // new XAttribute("MIN_DEPENDIENTE", vMontoMnDep), // new XAttribute("MIN_GRUPAL", vMontoGrup) // )); //RESULTADOSBONOS = //new XElement("BONOS", vXelementsBono //); PeriodoDesempenoNegocio neg = new PeriodoDesempenoNegocio(); if (RESULTADOS != null) { E_RESULTADO vResultado = neg.ActualizaResultadosMetas(vIdPeriodo, vsIdEvaluado, RESULTADOS, vClUsuario, vNbPrograma, cumplimientoTotal); string vMensaje = vResultado.MENSAJE.Where(w => w.CL_IDIOMA.Equals(vClIdioma.ToString())).FirstOrDefault().DS_MENSAJE; UtilMensajes.MensajeResultadoDB(rnMensaje, vMensaje, vResultado.CL_TIPO_ERROR, pCallBackFunction: "CloseWindow"); } else { } }
private void CalculaResultado() { string cl_tipo_meta; string vCumplimientoMin; string vCumplimientoSatisfactorio; string vCumplimientoSobresaliente; metas = new List <E_RESULTADO_META>(); foreach (GridDataItem item in grdMetas.MasterTableView.Items) { cl_tipo_meta = (item.GetDataKeyValue("CL_TIPO_META").ToString()); vCumplimientoMin = (item.GetDataKeyValue("NB_CUMPLIMIENTO_MINIMO").ToString()); vCumplimientoSatisfactorio = (item.GetDataKeyValue("NB_CUMPLIMIENTO_SATISFACTORIO").ToString()); vCumplimientoSobresaliente = (item.GetDataKeyValue("NB_CUMPLIMIENTO_SOBRESALIENTE").ToString()); //VALORES decimal ponderacion = Convert.ToDecimal(item.GetDataKeyValue("PR_EVALUADO").ToString()); int id_evaluado_meta = Convert.ToInt32(item.GetDataKeyValue("ID_META_EVALUADO").ToString()); E_RESULTADO_META meta = new E_RESULTADO_META { ID_EVALUADO_META = id_evaluado_meta, CL_META = 0, PONDERACION = ponderacion, MINIMO = vCumplimientoMin, SATISFACTORIO = vCumplimientoSatisfactorio, SOBRESALIENTE = vCumplimientoSobresaliente, CUMPLIMIENTO = 0, RANGOVALOR = 0, RESULTADO = String.Empty }; if (cl_tipo_meta == "Porcentual") { RadNumericTextBox txtResultadoPorcentual = (RadNumericTextBox)item.FindControl("txtResultadoPorcentual"); if (txtResultadoPorcentual.Text == String.Empty) { meta.CUMPLIMIENTO = 0; } else { meta.CUMPLIMIENTO = ValidarRangoDeMetaPorcentual(Convert.ToDecimal(txtResultadoPorcentual.Text), meta); } } else if (cl_tipo_meta == "Cantidad") { RadNumericTextBox txtResultadoMonto = (RadNumericTextBox)item.FindControl("txtResultadoMonto"); if (txtResultadoMonto.Text == String.Empty) { meta.CUMPLIMIENTO = 0; } else { meta.CUMPLIMIENTO = ValidarRangoDeMetaPorcentual(Convert.ToDecimal(txtResultadoMonto.Text), meta); } } else if (cl_tipo_meta == "Fecha") { RadDatePicker dtpResultaFecha = (RadDatePicker)item.FindControl("dtpResultaFecha"); if (dtpResultaFecha.SelectedDate.ToString() == String.Empty) { meta.CUMPLIMIENTO = 0; } else { DateTime fecha = Convert.ToDateTime(dtpResultaFecha.SelectedDate); meta.CUMPLIMIENTO = ValidarRangoDeMetaFecha(Convert.ToDateTime(fecha), meta); } } else if (cl_tipo_meta == "Si/No") { RadComboBox cmbrResultadoSiNo = (RadComboBox)item.FindControl("cmbrResultadoSiNo"); if (cmbrResultadoSiNo.SelectedIndex == 0) { meta.RANGOVALOR = 0; meta.CUMPLIMIENTO = 0; } else if (cmbrResultadoSiNo.SelectedIndex == 1) { meta.RANGOVALOR = 100; meta.CUMPLIMIENTO = CalcularCumplimiento(meta); } else if (cmbrResultadoSiNo.SelectedIndex == 2) { meta.RANGOVALOR = 0; meta.CUMPLIMIENTO = CalcularCumplimiento(meta); } meta.CL_META = Convert.ToInt32(cmbrResultadoSiNo.SelectedValue); meta.RESULTADO = cmbrResultadoSiNo.SelectedItem.Text; } metas.Add(meta); } decimal sumaCumplimiento = 0; foreach (E_RESULTADO_META item in metas) { sumaCumplimiento = sumaCumplimiento + Convert.ToDecimal(item.CUMPLIMIENTO); } txtTotal.Text = sumaCumplimiento.ToString() + "%"; }