public JsonResult PostGuardarProducto(ProductoForm xoProducto) { string xsError = ""; xoProductoCtrl.GuardarProducto(xoProducto, out xsError); return(Json(xsError)); }
private void productosToolStripMenuItem_Click(object sender, EventArgs e) { ProductoForm pf = new ProductoForm(); pf.Show(); }
public void GuardarProducto(ProductoForm xoProducto, out string xsError) { xsError = ""; using (BD_Entities xoDB = new BD_Entities()) { var producto = xoDB.producto.Find(xoProducto.Id); if (producto != null) { producto.prod_marca = xoProducto.Marca; producto.prod_modelo = xoProducto.Modelo; producto.prod_envase = xoProducto.Envase; producto.prod_tamanio = xoProducto.Tamanio; producto.prod_tipo = xoProducto.Tipo; producto.prod_pack = xoProducto.CantidadPack; xoDB.SaveChanges(); } else { var prodExistente = xoDB.producto.SingleOrDefault(x => x.prod_marca == xoProducto.Marca && x.prod_modelo == xoProducto.Modelo && x.prod_envase == xoProducto.Envase && x.prod_tamanio == xoProducto.Tamanio); if (prodExistente != null) { xsError = "El producto ya existe"; } else { if (xoProducto.Modelo == 0) { xoProducto.Modelo = xoDB.modelo.FirstOrDefault(x => x.mod_marca == xoProducto.Marca).mod_id; } using (var xoTransaccion = xoDB.Database.BeginTransaction()) { try { var retVal = new SqlParameter("@RetVal", SqlDbType.Int); retVal.Direction = ParameterDirection.ReturnValue; xoDB.Database.ExecuteSqlCommand("exec spAgregarProducto @Marca, @Modelo, @Envase, @Tamanio, @Tipo, @Cantidad, @Costo, @Porcentaje, @PrecioVenta", new SqlParameter("@Marca", xoProducto.Marca), new SqlParameter("@Modelo", xoProducto.Modelo), new SqlParameter("@Envase", xoProducto.Envase), new SqlParameter("@Tamanio", xoProducto.Tamanio), new SqlParameter("@Tipo", xoProducto.Tipo), new SqlParameter("@Cantidad", xoProducto.CantidadPack), new SqlParameter("@Costo", xoProducto.Costo), new SqlParameter("@Porcentaje", xoProducto.Porcentaje), new SqlParameter("@PrecioVenta", xoProducto.PrecioVenta), retVal); if ((int)retVal.Value != 0) { xsError = "Error al agregar el producto"; xoTransaccion.Rollback(); } else { xoTransaccion.Commit(); } } catch (Exception ex) { xsError = ex.Message; xoTransaccion.Rollback(); } } } } } }