Пример #1
0
        public JsonResult PostGuardarProducto(ProductoForm xoProducto)
        {
            string xsError = "";

            xoProductoCtrl.GuardarProducto(xoProducto, out xsError);
            return(Json(xsError));
        }
Пример #2
0
        private void productosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProductoForm pf = new ProductoForm();

            pf.Show();
        }
Пример #3
0
        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();
                            }
                        }
                    }
                }
            }
        }