elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  hacer dos consultas diferentes en entity framework
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hacer dos consultas diferentes en entity framework  (Leído 269 veces)
djnilo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
hacer dos consultas diferentes en entity framework
« en: 1 Mayo 2017, 23:43 »

buenas
tardes amigos del foro estoy haciendo una aplicación de venta de productos
esta mi tabla con los campos productos
idproducto, codigobarra, precio , idmedida,stock,idsubfamilia
y tengo un formulario  ventas me problema surge cuando quiero vender productos granel
entonces estaba pensando cuando el codigo = codigobusqueda y el idmedida = 3 que es lo mismo a kilogramo me muestre un formulario modal
entoces un else que sea distinto a kilogramo por que no seria a granel si no = unidad
codigo para
buscar productos por codigo esto funciona correctamente
entoces quiero agregar un else para que me busque segun la otra condicion que seria por el idmedida = 3 esto es kilogramo

en esta linea busco el producto eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text);
y lo me trae
Código:
  public PRODUCTO GetByCodigoBarras(string Codigo)
        {
            DAL.IRepository repository = new Modelo.Repository();
            try
            {
                var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras ==Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto");
                if (producto != null)
                {
                    producto.IdFamilia = producto.SubFamiliaProducto.IdFamilia;
                    var fami = new FamiliaProducto();
                    fami = repository.FindEntity<FamiliaProducto>(x => x.IdFamilia == producto.SubFamiliaProducto.IdFamilia);
                    producto.NombreFamilia = fami.NombreFamilia;
                    producto.NombreMedida = producto.Medida.Medida1;
                    producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;
                           

                }
                else
                {
                    producto = null;
                }
                return producto;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }


Código:
private void TxtCodigoBarras_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(TxtCodigoBarras.Text.Length>0)
            {
                if (e.KeyChar == Convert.ToChar(Keys.Return))
                {

                    DetalleVentaDTO eDeta = new DetalleVentaDTO();
                    PRODUCTO eProd = new PRODUCTO();
                    eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text);
                    if (eProd == null)
                    {
                        if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos);
                            if (frm != null)
                            {
                                frm.BringToFront();
                                return;
                            }
                            frm = new FrmProductos(idUsuario);
                            frm.MdiParent = this.MdiParent;
                            frm.Show();
                        }
                        return;
                    }
                    if (eProd.Stock <= 0)
                    {
                        MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }





                    eDeta.Cantidad = 1;

                    eDeta.CodigoBarras = eProd.CodigoBarras;
                    eDeta.FechaReg = DateTime.Now;
                    eDeta.IdDetalle = 0;
                    eDeta.IdProducto = eProd.IdProducto;
                    eDeta.IdVenta = 0;
                    eDeta.Importe = eProd.Precio * eDeta.Cantidad;
                    eDeta.NombreProducto = eProd.NombreProducto;
                    eDeta.PorcentajeIVA = eImpuesto.TasaImpuesto;
                    eDeta.Precio = eProd.Precio;
                    Detalles.Add(eDeta);
                    //DgvDetalle.DataSource = null;
                    DgvDetalle.DataSource = Detalles;
                    TxtCodigoBarras.Clear();
                    TxtCodigoBarras.Focus();
                }
este lo carga en la grilla perfecto lo que necesito con la condicion



portal de imagenes gratis

el codigo que quiero insertar con else para que cumpla la condicion que sea igual a idmedida = 3 kilogramo
Código:
PRODUCTO eProds = new PRODUCTO();
                    eProds = objProducto.GetByCodigoBarrasKilogramo(TxtCodigoBarras.Text);
                    if (eProds == null)

                    {
                        if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos);
                            if (frm != null)
                            {
                                frm.BringToFront();
                                return;
                            }
                            frm = new FrmProductos(idUsuario);
                            frm.MdiParent = this.MdiParent;
                            frm.Show();
                        }
                        return;
                    }
                    if (eProds.Stock <= 0)
                    {
                        MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    string idbusqueda = Convert.ToString(TxtCodigoBarras.Text);
                    NombreProductos = eProds.NombreProducto;
                    Precioss = Convert.ToString(eProds.Precio);



                    FrmGranel form = new FrmGranel(idbusqueda, NombreProductos, Precioss);
                    form.MdiParent = this.MdiParent;
                    form.Show();

codigo busqueda idmedida = 3
Código:
public PRODUCTO GetByCodigoBarrasKilogramo(string Codigo)
        {
           

            DAL.IRepository repository = new Modelo.Repository();
            try
            {
                var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras == Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto");
                if (producto != null)
                {
                 
                    producto.IdMedida = producto.Medida.IdMedida;
                    var Medidas = new Medida();
                    Medidas = repository.FindEntity<Medida>(x => x.IdMedida == 3);
                   
                    producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;



                }
                else
                {
                    producto = null;
                }
                return producto;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }






En línea

TickTack

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: hacer dos consultas diferentes en entity framework
« Respuesta #1 en: 9 Mayo 2017, 14:41 »

buenas
tardes amigos del foro estoy haciendo una aplicación de venta de productos
esta mi tabla con los campos productos
idproducto, codigobarra, precio , idmedida,stock,idsubfamilia
y tengo un formulario  ventas me problema surge cuando quiero vender productos granel
entonces estaba pensando cuando el codigo = codigobusqueda y el idmedida = 3 que es lo mismo a kilogramo me muestre un formulario modal
entoces un else que sea distinto a kilogramo por que no seria a granel si no = unidad
codigo para
buscar productos por codigo esto funciona correctamente
entoces quiero agregar un else para que me busque segun la otra condicion que seria por el idmedida = 3 esto es kilogramo

en esta linea busco el producto eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text);
y lo me trae
Código:
  public PRODUCTO GetByCodigoBarras(string Codigo)
        {
            DAL.IRepository repository = new Modelo.Repository();
            try
            {
                var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras ==Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto");
                if (producto != null)
                {
                    producto.IdFamilia = producto.SubFamiliaProducto.IdFamilia;
                    var fami = new FamiliaProducto();
                    fami = repository.FindEntity<FamiliaProducto>(x => x.IdFamilia == producto.SubFamiliaProducto.IdFamilia);
                    producto.NombreFamilia = fami.NombreFamilia;
                    producto.NombreMedida = producto.Medida.Medida1;
                    producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;
                           

                }
                else
                {
                    producto = null;
                }
                return producto;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }


Código:
private void TxtCodigoBarras_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(TxtCodigoBarras.Text.Length>0)
            {
                if (e.KeyChar == Convert.ToChar(Keys.Return))
                {

                    DetalleVentaDTO eDeta = new DetalleVentaDTO();
                    PRODUCTO eProd = new PRODUCTO();
                    eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text);
                    if (eProd == null)
                    {
                        if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos);
                            if (frm != null)
                            {
                                frm.BringToFront();
                                return;
                            }
                            frm = new FrmProductos(idUsuario);
                            frm.MdiParent = this.MdiParent;
                            frm.Show();
                        }
                        return;
                    }
                    if (eProd.Stock <= 0)
                    {
                        MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }





                    eDeta.Cantidad = 1;

                    eDeta.CodigoBarras = eProd.CodigoBarras;
                    eDeta.FechaReg = DateTime.Now;
                    eDeta.IdDetalle = 0;
                    eDeta.IdProducto = eProd.IdProducto;
                    eDeta.IdVenta = 0;
                    eDeta.Importe = eProd.Precio * eDeta.Cantidad;
                    eDeta.NombreProducto = eProd.NombreProducto;
                    eDeta.PorcentajeIVA = eImpuesto.TasaImpuesto;
                    eDeta.Precio = eProd.Precio;
                    Detalles.Add(eDeta);
                    //DgvDetalle.DataSource = null;
                    DgvDetalle.DataSource = Detalles;
                    TxtCodigoBarras.Clear();
                    TxtCodigoBarras.Focus();
                }
este lo carga en la grilla perfecto lo que necesito con la condicion



portal de imagenes gratis

el codigo que quiero insertar con else para que cumpla la condicion que sea igual a idmedida = 3 kilogramo
Código:
PRODUCTO eProds = new PRODUCTO();
                    eProds = objProducto.GetByCodigoBarrasKilogramo(TxtCodigoBarras.Text);
                    if (eProds == null)

                    {
                        if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos);
                            if (frm != null)
                            {
                                frm.BringToFront();
                                return;
                            }
                            frm = new FrmProductos(idUsuario);
                            frm.MdiParent = this.MdiParent;
                            frm.Show();
                        }
                        return;
                    }
                    if (eProds.Stock <= 0)
                    {
                        MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    string idbusqueda = Convert.ToString(TxtCodigoBarras.Text);
                    NombreProductos = eProds.NombreProducto;
                    Precioss = Convert.ToString(eProds.Precio);



                    FrmGranel form = new FrmGranel(idbusqueda, NombreProductos, Precioss);
                    form.MdiParent = this.MdiParent;
                    form.Show();

codigo busqueda idmedida = 3
Código:
public PRODUCTO GetByCodigoBarrasKilogramo(string Codigo)
        {
           

            DAL.IRepository repository = new Modelo.Repository();
            try
            {
                var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras == Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto");
                if (producto != null)
                {
                 
                    producto.IdMedida = producto.Medida.IdMedida;
                    var Medidas = new Medida();
                    Medidas = repository.FindEntity<Medida>(x => x.IdMedida == 3);
                   
                    producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;



                }
                else
                {
                    producto = null;
                }
                return producto;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }






Entonces, cual es tu problema. Creo que estas haciendo un tutorial de como solucionar tu problema. Es eso asi?

Saludos!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con Entity Framework
.NET
Fabricio Degano 1 2,302 Último mensaje 4 Mayo 2010, 03:17
por MANULOMM
problema al hacer consultas con la edad
Bases de Datos
xexio 0 990 Último mensaje 12 Junio 2010, 20:12
por xexio
ADO.NET Entity Framework en C#
.NET
Basil 3 3,502 Último mensaje 5 Febrero 2011, 20:29
por [D4N93R]
¿Entity Framework o MySql? (Pregunta)
.NET
YuseTist 1 462 Último mensaje 15 Septiembre 2015, 22:57
por dato000
Compilar APP compatibles con diferentes Framework
.NET
Tomas1982 0 108 Último mensaje 8 Noviembre 2016, 17:36
por Tomas1982
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines