// GET: TransaccionDetail/Create public IActionResult Create(int transID) { TransaccionDetail detail = new TransaccionDetail() { Parent = this._context.TransaccionHeaders.FirstOrDefault(h => h.TransID == transID), TransID = transID }; ViewData["VINVehiculo"] = new SelectList(_context.Vehiculos.Where(v => !v.ApartadoYN && !v.VendidoYN), "VIN", "Descripcion"); return(View(detail)); }
public async Task <IActionResult> Create(TransaccionDetail transaccionDetail) { ViewData["VINVehiculo"] = new SelectList(_context.Vehiculos.Where(v => (!v.ApartadoYN && !v.VendidoYN) || v.VIN == transaccionDetail.VINVehiculo), "VIN", "Descripcion", transaccionDetail.VINVehiculo); if (ModelState.IsValid) { transaccionDetail.Parent = await this._context.TransaccionHeaders.FirstOrDefaultAsync(t => t.TransID == transaccionDetail.TransID); if (transaccionDetail.Parent == null) { ModelState.AddModelError("VINVehiculo", "Error con la transacción."); return(View(transaccionDetail)); } if (transaccionDetail.PrecioAcordado < transaccionDetail.PrecioMinimo) { ModelState.AddModelError("PrecioAcordado", "El precio acordado no puede ser menor que el precio mínimo."); return(View(transaccionDetail)); } Vehiculo vehiculo = await this._context.Vehiculos.AsNoTracking().FirstOrDefaultAsync(v => v.VIN == transaccionDetail.VINVehiculo); if (vehiculo != null) { if (vehiculo.VendidoYN || vehiculo.ApartadoYN) { ModelState.AddModelError("VINVehiculo", "El vehículo se encuentra apartado o ya está vendido."); return(View(transaccionDetail)); } if (transaccionDetail.Parent.TipoTransaccion == TipoTransaccion.Venta) { vehiculo.VendidoYN = true; } else if (transaccionDetail.Parent.TipoTransaccion == TipoTransaccion.Apartado) { vehiculo.ApartadoYN = true; } this._context.Vehiculos.Update(vehiculo); _context.Add(transaccionDetail); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Edit), "TransaccionHeader", new { @id = transaccionDetail.TransID })); } ModelState.AddModelError("VINVehiculo", "Error al encontrar el vehículo."); return(View(transaccionDetail)); } return(View(transaccionDetail)); }
public async Task <IActionResult> Edit(int id, TransaccionDetail transaccionDetail) { //ViewData["VINVehiculo"] = new SelectList(_context.Vehiculos, "VIN", "Descripcion", transaccionDetail.VINVehiculo); ViewData["VINVehiculo"] = new SelectList(_context.Vehiculos.Where(v => (!v.ApartadoYN && !v.VendidoYN) || v.VIN == transaccionDetail.VINVehiculo), "VIN", "Descripcion", transaccionDetail.VINVehiculo); if (id != transaccionDetail.ID) { return(NotFound()); } if (ModelState.IsValid) { try { if (transaccionDetail.PrecioAcordado < transaccionDetail.PrecioMinimo) { ModelState.AddModelError("PrecioAcordado", "El precio acordado no puede ser menor que el precio mínimo."); return(View(transaccionDetail)); } _context.Update(transaccionDetail); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TransaccionDetailExists(transaccionDetail.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Edit), "TransaccionHeader", new { @id = transaccionDetail.TransID })); //return RedirectToAction(nameof(Index)); } return(View(transaccionDetail)); }