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
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);
}
}
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
(https://preview.ibb.co/byvKRQ/venta_codigobarra.jpg) (https://ibb.co/iYA8Lk)
portal de imagenes gratis (https://es.imgbb.com/)
el codigo que quiero insertar con else para que cumpla la condicion que sea igual a idmedida = 3 kilogramo
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
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);
}
}
Cita de: djnilo en 1 Mayo 2017, 23:43 PM
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
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);
}
}
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
(https://preview.ibb.co/byvKRQ/venta_codigobarra.jpg) (https://ibb.co/iYA8Lk)
portal de imagenes gratis (https://es.imgbb.com/)
el codigo que quiero insertar con else para que cumpla la condicion que sea igual a idmedida = 3 kilogramo
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
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!