private void comboBox3_SelectionChangeCommitted(object sender, EventArgs e)
        {
            panel1.Controls.Clear();

            DataRowView row = cbCuenta.SelectedItem as DataRowView;

            txtCuenta.Text = row["Codigo"].ToString();
            txtTipo.Text   = row["Tipo"].ToString();

            Clases.Requisicion.Cuenta = row["Codigo"].ToString();
            __Type = row["Tipo"].ToString();

            if (row["Tipo"].ToString().Equals("GENERAL"))
            {
                ctrG      = new ctrlGeneral();
                ctrG.Dock = DockStyle.Fill;
                panel1.Controls.Add(ctrG);
            }
            if (row["Tipo"].ToString().Equals("ESPECIFICA"))
            {
                ctrE      = new ctrlEspecifico();
                ctrE.Dock = DockStyle.Fill;
                panel1.Controls.Add(ctrE);
            }
        }
        public void Save(ctrlEspecifico ctrEsp)
        {
            ctrEsp = panel1.Controls[0] as ctrlEspecifico;
            DataGridView dgv = ctrEsp.Controls["dgvDetalle"] as DataGridView;

            __Proveedor = ctrEsp.__Proveedor;

            if (!string.IsNullOrEmpty(__Proveedor))
            {
                if (!cbCuenta.SelectedValue.ToString().Equals("0"))
                {
                    Clases.Requisicion.Estatus      = "0";
                    Clases.Requisicion.ID           = 0;
                    Clases.Requisicion.Fecha        = DateTime.Now;
                    Clases.Requisicion.Cuenta       = string.Empty;
                    Clases.Requisicion.Tipo         = string.Empty;
                    Clases.Requisicion.Modificacion = DateTime.Now;

                    Clases.Requisicion.Fecha        = dateTimePicker1.Value;
                    Clases.Requisicion.Total        = dgv.Rows.Cast <DataGridViewRow>().Sum(x => Convert.ToDecimal(x.Cells["LineTotal"].Value)) * (decimal)1.16;
                    Clases.Requisicion.Iva          = dgv.Rows.Cast <DataGridViewRow>().Sum(x => Convert.ToDecimal(x.Cells["LineTotal"].Value)) * (decimal)0.16;
                    Clases.Requisicion.Cuenta       = cbCuenta.SelectedValue.ToString();
                    Clases.Requisicion.Tipo         = txtTipo.Text == "ESPECIFICA" ? "E" : "G";
                    Clases.Requisicion.Modificacion = DateTime.Now;

                    if (Clases.Requisicion.Total != 0 && dgv.Rows.Count > 1)
                    {
                        Clases.Requisicion.ExecuteReader();

                        txtFolio.Text = Clases.Requisicion.ID.ToString();

                        for (int i = 0; i < dgv.Rows.Count - 1; i++)
                        {
                            Clases.Objetos.DetalleRequisicion dreq = new Clases.Objetos.DetalleRequisicion();
                            dreq.ID          = Clases.Requisicion.ID;
                            dreq.NumProv     = 1;
                            dreq.Proveedor   = __Proveedor;
                            dreq.Linea       = Convert.ToInt32(dgv.Rows[i].Cells["Linea"].Value);
                            dreq.Articulo    = Convert.ToString(dgv.Rows[i].Cells["ItemCode"].Value);
                            dreq.Descripcion = Convert.ToString(dgv.Rows[i].Cells["ItemName"].Value);
                            dreq.Cantidad    = Convert.ToDecimal(dgv.Rows[i].Cells["Quantity"].Value);
                            dreq.Precio      = Convert.ToDecimal(dgv.Rows[i].Cells["Price"].Value);
                            dreq.LineTotal   = Convert.ToDecimal(dgv.Rows[i].Cells["LineTotal"].Value);

                            dreq.ExecuteNonQuery(dreq);
                        }

                        lblEstatus.Text = "Listo";
                    }
                    else
                    {
                        lblEstatus.Text = "El total de la requisición no puede ser cero, debe ingresar al menos un artículo o servicio";
                    }
                }
                else
                {
                    lblEstatus.Text = "Error: Selecciona una cuenta.";
                }
            }
            else
            {
                lblEstatus.Text = "Error: Selecciona un Proveedor.";
            }
        }