public void OrdenarDetalle()
 {
     clsSolicitudDet osolicitud_det = new clsSolicitudDet();
     int filas = 0;
     filas = lista_Nueva.Count();
     int i = 0;
     while (i < filas)
     {
         int numero = lista_Nueva[i].Numero;
         int id_articulo = lista_Nueva[i].id_articulo;
         string nombre_articulo = lista_Nueva[i].Articulo;
         int cantidad = lista_Nueva[i].Cantidad;
         int id_empresa = lista_Nueva[i].Id_empresa;
         string nombre_empresa = lista_Nueva[i].Empresa;
         //realizo el ingreso del detalle a una tabla de manera ordenada
         lista_Ordenada.Add(new clsSolicitudDet(numero, i+1, id_articulo, nombre_articulo, cantidad, id_empresa, nombre_empresa));
         i++;
     }
 }
        private void btnRevisarSolicitudes_Click(object sender, EventArgs e)
        {
            veces++;
            datSolicitud oDatSolicitud = new datSolicitud();
            clsSolicitudDet obj = new clsSolicitudDet();
            frmConsultaSolicitud f = new frmConsultaSolicitud();
            f.ShowDialog();
            cmbTipoArticulo.SelectedIndex = frmConsultaSolicitud.tipo_articulo - 1;
            listaSolicitudDet = oDatSolicitud.Detalle_Solicitud(frmConsultaSolicitud.numero, frmConsultaSolicitud.id_empresa);
            int cantidad = listaSolicitudDet.Count();
            int i = 0;
            while (i < cantidad)
            {
                obj = listaSolicitudDet[i];
                lista_Nueva.Add(obj);
                i++;

            }
            //Guardando los números de detalle de las solicitudes para consolidarlas
            clsSolicitudDet obj1 = new clsSolicitudDet();
            int j = 0;

            while (j < cantidad)
            {
                    numero_solicitud[j] = listaSolicitudDet[j].Numero;
                    j++;
            }

            //dtgPedidoDetalle.DataSource = oDatSolicitud.Detalle_Solicitud(frmConsultaSolicitud.numero, frmConsultaSolicitud.id_empresa);
            if (veces > 1)
            {
                OrdenarDetalle();
                dtgPedidoDetalle.DataSource = lista_Ordenada;
            }
            else
            {
                dtgPedidoDetalle.DataSource = lista_Nueva;
            }
        }
        //metodo que retorna el detalle de una solicitud según su cabecera
        public List<clsSolicitudDet> Detalle_Solicitud(int numero_detalle, int id_empresa)
        {
            try
            {
                using (CompraEntities ent = new CompraEntities())
                {
                    List<clsSolicitudDet> listaSolicitudDet = new List<clsSolicitudDet>();
                    var x = (from a in ent.SolicitudDetalle  where a.numero == numero_detalle && a.idEmpresa == id_empresa select a);
                    foreach (var item in x)
                    {
                        clsSolicitudDet e = new clsSolicitudDet();
                        e.Numero = Convert.ToInt32(item.numero);
                        e.linea = Convert.ToInt32(item.Linea);
                        e.id_articulo = Convert.ToInt32(item.idArticulo);
                        e.Articulo = Convert.ToString(item.Articulo);
                        e.Cantidad = Convert.ToInt32(item.Cantidad);
                        e.Id_empresa = Convert.ToInt32(item.idEmpresa);
                        e.Empresa = Convert.ToString(item.Empresa);
                        listaSolicitudDet.Add(e);
                    }
                    return listaSolicitudDet;
                }

            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
                return null;
            }
        }