コード例 #1
0
        private decimal CalcularCumplimiento(E_RESULTADO_META pMeta)
        {
            decimal resultado = 0;

            resultado = pMeta.PONDERACION * pMeta.RANGOVALOR / 100;

            return(resultado);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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
            {
            }
        }
コード例 #4
0
        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() + "%";
        }