public IngredienteFactura Add(IngredienteFactura p) { IngredienteFactura obj = nowBDEntities.IngredienteFactura.Add(p); nowBDEntities.SaveChanges(); return(obj); }
public void Remove(int id) { IngredienteFactura p = Find(id); nowBDEntities.IngredienteFactura.Remove(p); nowBDEntities.SaveChanges(); }
public void UpdateIngrediente(IngredienteFactura obj, int idTipoMedicion) { Ingrediente ingrediente = nowBDEntities.Ingrediente.Find((int)obj.Ingrediente); double? precioPromedioActual = ingrediente.ValorNeto != null ? ingrediente.ValorNeto * ingrediente.Stock : null; double precioTotalFactura = (double)(obj.Precio * obj.Cantidad); double precioPromedioTotal = precioPromedioActual != null ? (double)(precioTotalFactura + precioPromedioActual) / ((int)obj.Cantidad + (int)ingrediente.Stock) : (double)obj.Precio; if (ingrediente.IdTipoMedicionPorcion != null) { ingrediente.Stock += tMDAL.GetConvertedStock(idTipoMedicion, ingrediente, obj.Cantidad.Value); } else { ingrediente.Stock += obj.Cantidad.Value; } ingrediente.ValorNeto = Math.Round(precioPromedioTotal, 2); nowBDEntities.SaveChanges(); }
public IngredienteFactura Find(int id) { IngredienteFactura m = nowBDEntities.IngredienteFactura.FirstOrDefault(obj => obj.IdIngredienteFactura == id); return(m); }
private void SaveIngredients(Factura obj) { DataTable dt = ViewState["Data"] as DataTable; foreach (DataRow row in dt.Rows) { #region Declaración de variables string rowNombre = row["Nombre"] as string; string rowDescripción = (row["Descripción"] as string); string rowCantidad = row["Cantidad"] as string; string rowMarca = row["Marca"] as string; string rowTipoAlimento = row["TipoAlimento"] as string; string rowTipoMedicion = row["TipoMedicion"] as string; string rowPrecio = row["Precio"] as string; string rowTotal = row["Total"] as string; string rowCantPorPack = row["CantidadPack"] as string; #endregion Marca marca = mDAL.FindByName(rowMarca); TipoAlimento tipoAlimento = tADAL.FindByName(rowTipoAlimento); TipoMedicion tipoMedicion = tMDAL.FindByName(rowTipoMedicion); List <Ingrediente> ingredientesDeMismoNombre = iDAL.FindAllByName(rowNombre); DetalleIngrediente detalleIn = new DetalleIngrediente(); Ingrediente ingrediente = iDAL.FindByName(rowNombre); TipoMedicion tipoMedicionIng = ingrediente != null?tMDAL.Find(ingrediente.IdTipoMedicion.Value) : null; int cantidad = string.IsNullOrEmpty(rowCantPorPack) ? Convert.ToInt32(rowCantidad) : Convert.ToInt32(rowCantidad) * Convert.ToInt32(rowCantPorPack); bool convertido = false; marca = marca == null?mDAL.Add(new Marca() { Nombre = rowMarca, Estado = 1 }) : marca; tipoAlimento = tipoAlimento == null?tADAL.Add(new TipoAlimento() { Descripcion = rowTipoAlimento, Estado = 1 }) : tipoAlimento; tipoMedicion = tipoMedicion == null?tMDAL.Add(new TipoMedicion() { Descripcion = rowTipoMedicion, Estado = 1 }) : tipoMedicion; //SetEquivalence(cantidad, tipoMedicionIng, tipoMedicion, out cantidad, out convertido); //Verificar si ya existe //Ingreso del ingrediente y del detalle bool existe = ingrediente != null; if (ingredientesDeMismoNombre.Count > 1) { Ingrediente ingredienteConMismaDescripcion = iDAL.GetAll().FirstOrDefault(x => x.Descripcion == rowDescripción); if (ingredienteConMismaDescripcion != null) { ingrediente = ingredienteConMismaDescripcion; } } if (!existe) { ingrediente = new Ingrediente() { Nombre = rowNombre, Descripcion = rowDescripción, Stock = 0, IdTipoAlimento = tipoAlimento.IdTipoAlimento, IdTipoMedicion = tipoMedicion.IdTipoMedicion }; detalleIn = new DetalleIngrediente() { CantidadIngresada = cantidad, Descripcion = rowDescripción, IdMarca = marca.IdMarca, Estado = 1 }; ingrediente = iDAL.Add(ingrediente, detalleIn); } IngredienteFactura ingredienteFactura = new IngredienteFactura(); ingredienteFactura.Factura = obj.IdFactura; ingredienteFactura.Ingrediente = ingrediente.IdIngrediente; ingredienteFactura.Precio = Convert.ToInt32(rowPrecio); ingredienteFactura.Cantidad = cantidad; ingredienteFactura.Impuesto = 0; iFDAL.Add(ingredienteFactura); iFDAL.UpdateIngrediente(ingredienteFactura, tipoMedicion.IdTipoMedicion); } }