Exemplo n.º 1
0
        protected void btAgregarMovimiento_Click(object sender, EventArgs e)
        {
            DataTable Temporal = (DataTable)Session["tablaActos"];

            if (!ddlActos.SelectedValue.ToString().Equals("0") && !txValorBase.Text.Equals("0.00"))
            {
                Parametro par  = new Parametro();
                Acto      acto = new Acto();
                Tarifa    tar  = acto.ObtenerTarifa(int.Parse(ddlActos.SelectedValue.ToString()));

                //Llenar el grid con los datos del movimiento
                if (Temporal.Rows[0][0].ToString().Equals(""))
                {
                    Temporal.Rows.Clear();
                }

                int repetir = 1;

                if (txRepetir.Text.Length > 0)
                {
                    repetir = int.Parse(txRepetir.Text);
                }

                for (int i = 0; i < repetir; i++)
                {
                    DataRow dr = Temporal.NewRow();
                    dr["Id"]          = Temporal.Rows.Count + 1;
                    dr["Acto"]        = ddlActos.SelectedValue.ToString();
                    dr["Movimiento"]  = ddlMovimientos.SelectedValue.ToString();
                    dr["Descripcion"] = ddlMovimientos.SelectedItem.Text.ToString();
                    dr["ValorBase"]   = txValorBase.Text;

                    //calcular el costo del movimiento
                    String cant = "";
                    if (!(tar.SmFijo.ToString()).Equals("0"))
                    {
                        float salMin = float.Parse(par.ObtenerSalario());
                        cant = ((float.Parse(tar.SmFijo.ToString())) * salMin).ToString("0.00");
                    }
                    else
                    {
                        float valorC = (tar.Porcentaje * float.Parse(txValorBase.Text)) / 100;
                        float salMax = tar.SmMaximo * (float.Parse(par.ObtenerSalario()));
                        if (valorC > salMax)
                        {
                            cant = salMax.ToString("0.00");
                        }
                        else
                        {
                            cant = valorC.ToString("0.00");
                        }
                    }
                    dr["Cantidad"]  = cant;
                    dr["Descuento"] = tar.Descuento.ToString();
                    dr["Subtotal"]  = (float.Parse(cant) - tar.Descuento).ToString("0.00");
                    Temporal.Rows.Add(dr);
                    Session["tablaActos"]    = Temporal;
                    gvMovimientos.DataSource = Temporal;
                    gvMovimientos.DataBind();
                }

                float total = 0;
                foreach (DataRow row in Temporal.Rows)
                {
                    total += float.Parse(row["Subtotal"].ToString());
                }
                txTotal.Text           = "$" + total.ToString("0.00");
                ddlActos.SelectedIndex = 0;
                ddlMovimientos.Items.Clear();
                ddlMovimientos.Items.Add("Listado de movimientos");
                ddlMovimientos.SelectedIndex = 0;
            }
        }