private void Dgv_detalle_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string Id_reference  = "";                                                                                                      // FUNCION PARA ELIMINAR EL DETALLE, POR MEDIO DEL CODIGO DEL DETALLE Y EL DE EL NUMERO DE ORDEN, SE ELIMINA DANDO DOBLE CLICK EN EL REGISTRO QUE SE DESEA ELIMINAR
            string Id_reference2 = "";                                                                                                      // VARIABLES QUE GUARDAN EL ID

            if (Dgv_detalle.SelectedCells.Count > 0)                                                                                        // SELECCION DEL REGISTRO QUE SE DESEA ELIMINAR
            {
                int             selectedrowindex = Dgv_detalle.SelectedCells[0].RowIndex;
                DataGridViewRow selectedRow      = Dgv_detalle.Rows[selectedrowindex];
                Id_reference  = Convert.ToString(selectedRow.Cells[0].Value);
                Id_reference2 = Convert.ToString(selectedRow.Cells[1].Value);
            }
            CapaDatosCompras cd = new CapaDatosCompras();                                                                                   // INSTANCIA A LA CAPA DE DATOS

            cd.EliminarDatosDetalle1(Id_reference, Id_reference2);                                                                          // LLAMADA A FUNCION DE ELIMINAR
            DataSet ds;

            ds = cd.ConsultarDatos1(Txt_NOrden.Text);
            Dgv_detalle.DataSource = ds.Tables[0];


            double suma = 0;

            foreach (DataGridViewRow row in Dgv_detalle.Rows)
            {
                if (row.Cells[4].Value != null)
                {
                    suma += Convert.ToDouble(row.Cells[4].Value);                       // SUMA DE SUBTOTALES PARA GENERAR EL TOTAL
                }
            }
            this.Txt_total.Text = Convert.ToString(suma);

            // GUARDADO DE DATOS
            cd.ActualizarTotal(Txt_total.Text, "PK_NumeroOrden", "TBL_OrdenDeDevolucionEncabezado", Txt_NOrden.Text);               /// ACTUALIZAR LOS TOTALES DEL ENCABEZADO
        }
 private void Dgv_detalle_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     string Id_reference = "";                                                                                                       // FUNCION PARA ELIMINAR EL DETALLE, POR MEDIO DEL CODIGO DEL DETALLE Y EL DE EL NUMERO DE ORDEN, SE ELIMINA DANDO DOBLE CLICK EN EL REGISTRO QUE SE DESEA ELIMINAR
     string Id_reference2 = "";                                                                                                      // VARIABLES QUE GUARDAN EL ID
     if (Dgv_detalle.SelectedCells.Count > 0)                                                                                        // SELECCION DEL REGISTRO QUE SE DESEA ELIMINAR   
     {
         int selectedrowindex = Dgv_detalle.SelectedCells[0].RowIndex;
         DataGridViewRow selectedRow = Dgv_detalle.Rows[selectedrowindex];
         Id_reference = Convert.ToString(selectedRow.Cells[0].Value);
         Id_reference2 = Convert.ToString(selectedRow.Cells[1].Value);
     }
     CapaDatosCompras cd = new CapaDatosCompras();                                                                                   // INSTANCIA A LA CAPA DE DATOS
     cd.EliminarDatosDetalle1(Id_reference, Id_reference2);                                                                          // LLAMADA A FUNCION DE ELIMINAR
     DataSet ds;
     ds = cd.ConsultarDatos1(Txt_NOrden.Text);
     Dgv_detalle.DataSource = ds.Tables[0];
 }