public async Task <IActionResult> Edit(int id, [Bind("CodFactura,FecEmision,TotalVendido,TotalCosto,CodEmpleado,CodCliente,CodEstado")] PredidoFactura predidoFactura) { ClaimsPrincipal currentUser = this.User; var identity = (ClaimsIdentity)currentUser.Identity; var hola = Int32.Parse(identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value); var rol = Int32.Parse(identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Role)?.Value); if (id != predidoFactura.CodFactura) { return(NotFound()); } if (ModelState.IsValid) { try { despensa1Context db = new despensa1Context(); var aux = await db.PredidoFactura.FindAsync(id); if (rol == 3) { aux.CodEstado = predidoFactura.CodEstado; } aux.CodEstado = 2; aux.CodEmpleado = hola; Factura factura = new Factura(); factura.Fecha = DateTime.Now; factura.CodEmpleado = aux.CodEmpleado; factura.CodCliente = aux.CodCliente; _context.Update(aux); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PredidoFacturaExists(predidoFactura.CodFactura)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(PedidosPendientes))); } ViewData["CodCliente"] = new SelectList(_context.Usuario, "CodUsuario", "CodUsuario", predidoFactura.CodCliente); ViewData["CodEmpleado"] = new SelectList(_context.Usuario, "CodUsuario", "CodUsuario", predidoFactura.CodEmpleado); ViewData["CodEstado"] = new SelectList(_context.EstadoPedido, "CodEstado", "CodEstado", predidoFactura.CodEstado); return(View(predidoFactura)); }
public async Task <IActionResult> Create([Bind("CodFactura,Direccion_entrega,FecEmision,TotalVendido,TotalCosto,CodEmpleado,CodCliente,CodEstado")] PredidoFactura predidoFactura) { ClaimsPrincipal currentUser = this.User; var identity = (ClaimsIdentity)currentUser.Identity; decimal? totalxproducto = 0; decimal? totalxproducto1 = 0; decimal? totalventa = 0; decimal? totalcosto = 0; List <DetalleFactura> lista = new List <DetalleFactura>(); try { var entradas = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, "cart"); if (entradas == null) { ViewBag.ErrorCarrito = 3; return(View()); } foreach (var item in entradas) { if (item.Quantity == 0) { ViewBag.ErrorCarrito = 4; return(View()); } lista.Add(new DetalleFactura { Precio = item.Product.PrecioVenta, Costo = item.Product.PrecioCosto, CodProducto = item.Product.CodProducto, Cantidad = item.Quantity }); totalxproducto = item.Product.PrecioVenta * item.Quantity; totalxproducto1 = item.Product.PrecioCosto * item.Quantity; totalventa = totalventa + totalxproducto; totalcosto = totalcosto + totalxproducto1; var producto = await _context.Producto.FindAsync(item.Product.CodProducto); if (producto.Cantidad < item.Quantity) { ViewBag.Inexistencia = producto; ViewBag.ErrorCarrito = 2; return(View()); } } if (totalventa < 50) { ViewBag.ErrorCarrito = 1; return(View()); } else { foreach (var item in entradas) { var producto = await _context.Producto.FindAsync(item.Product.CodProducto); producto.Cantidad = producto.Cantidad - item.Quantity; _context.Update(producto); await _context.SaveChangesAsync(); } } } catch { ViewBag.ErrorCarrito = 3; return(View()); } if (ModelState.IsValid) { string fecha = DateTime.Now.ToString("dd/MM/yyyy"); predidoFactura.FecEmision = DateTime.Now; predidoFactura.TotalVendido = totalventa; predidoFactura.TotalCosto = totalcosto; predidoFactura.CodCliente = Int32.Parse(identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value); predidoFactura.CodEstado = 1; predidoFactura.DetalleFactura = lista; _context.Add(predidoFactura); await _context.SaveChangesAsync(); limpiarCarrito(); return(RedirectToAction("Index", "Categorias", new { a = "PedidoSatisfactorio", b = predidoFactura.TotalVendido, c = fecha })); } ViewBag.Pedidofactura = "entre aqui"; ViewData["CodCliente"] = new SelectList(_context.Usuario, "CodUsuario", "CodUsuario", predidoFactura.CodCliente); ViewData["CodEmpleado"] = new SelectList(_context.Usuario, "CodUsuario", "CodUsuario", predidoFactura.CodEmpleado); ViewData["CodEstado"] = new SelectList(_context.EstadoPedido, "CodEstado", "CodEstado", predidoFactura.CodEstado); Console.WriteLine("no entre"); return(View(predidoFactura)); }