0
I have following problem, when I place an order in the quantity field when I place a certain number I have to arrive if I have in stock in the bank, and if I have to reduce the quantity in the bank.However I do not know how to pass the value of the view to my controller verify this.
@using (Html.BeginForm()) { @Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Pedido</h4>
<hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<label class="control-label col-md-2" for="Pedido_ProdutoId">Cliente</label>
<div class="col-md-10">
@Html.DropDownList("ClienteId", null, htmlAttributes: new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Pedido.ClienteId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2" for="Pedido_ProdutoId">Produto</label>
<div class="col-md-10">
@Html.DropDownList("ProdutoId", null, htmlAttributes: new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Pedido.ProdutoId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Pedido.Quantidade, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Pedido.Quantidade, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Pedido.Quantidade, "", new { @class = "text-danger" })
</div>
</div>
@*
<div class="form-group">
@Html.LabelFor(model => model.Pedido.PrecoUnidade, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Pedido.PrecoUnidade, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Pedido.PrecoUnidade, "", new { @class = "text-danger" })
</div>
</div>*@
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
// GET: Pedidos/Create
public ActionResult Create()
{
Db db = new Db();
ViewBag.ClienteId = new SelectList(db.Cliente, "Id", "Nome");
ViewBag.ProdutoId = new SelectList(db.Produto, "Id", "Nome");
return View();
}
// POST: Pedidos/Create
[HttpPost]
public ActionResult Create(PedidoVM model)
{
ViewBag.ClienteId = new SelectList(db.Cliente, "Id", "Nome");
ViewBag.ProdutoId = new SelectList(db.Produto, "Id", "Nome");
db.Pedido.Add(model.Pedido);
db.SaveChanges();
return View(model);
}
Stockpile
[Table("Estoque")]
public class Estoque
{
[Key]
public int Id { get; set; }
public int DepositoId { get; set; }
public int ProdutoId { get; set; }
public int Quantidade { get; set; }
[ForeignKey("DepositoId")]
public virtual Deposito Deposito { get; set; }
[ForeignKey("ProdutoId")]
public virtual Produto Produto { get; set; }
}
Request:
[Table("Pedido")]
public class Pedido
{
public int Id { get; set; }
public int ClienteId { get; set; }
public int ProdutoId { get; set; }
public string Quantidade { get; set; }
public decimal PrecoUnidade { get; set; }
[ForeignKey("ProdutoId")]
public virtual Produto Produto { get; set; }
[ForeignKey("ClienteId")]
public virtual Cliente Cliente { get; set; }
}
I don’t understand, you want to discount the stock when creating the order or you want to check the availability as validation of the order creation and inform the user the limit available if the desired quantity is greater than the stock?
– Leandro Angelo
@ Leandro Angelo I need to do the 2, for example if I type 5 as I try to create, it already check if you have in stock and cash, if you do not have in stock I inform the msg, I am only lost in this.
– Cesar Augusto