public async Task <IActionResult> Send(string id, SeguimientoVM seguimiento) { if (ModelState.IsValid) { var invoice = await _api.GetInvoice("http://facturacion-utn-amazon.herokuapp.com", "/api/invoice", id); if (invoice == null) { return(NotFound()); } var email = User.Identity.Name; if (invoice.user_client.email != email) { return(Forbid()); } try { var now = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local); var tipoT = seguimiento.PedTipoEnvio.Equals("T"); var regalo = seguimiento.PedRegalo.Equals("S"); var extra = 0; if (!tipoT) { extra = 5; } if (regalo) { extra += 10; } var pedido = new Pedidos { InvoiceNumber = id, ClienteEmail = email, PedTotal = decimal.Parse(invoice.total), PedFechaEnvio = now, PedFase = 'P', PedLugarOrigen = seguimiento.PedLugarOrigen, PedLugarDestino = seguimiento.PedLugarDestino, PedEnvioEstandar = tipoT, PedCostoExtra = extra, PedRegalo = regalo, PedTarjeta = seguimiento.PedTarjeta }; _context.Add(pedido); await _context.SaveChangesAsync(); _flashMessage.Confirmation("Pedido enviado."); return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException) { throw; } } seguimiento.InvoiceNumber = id; return(View(seguimiento)); }
public async Task <IActionResult> Delivery(string id, EntregaVM _entrega) { if (_entrega.Estado && _entrega.PersonaPresente) { if (!ModelState.IsValid) { return(View(_entrega)); } } try { var seguimiento = await _context.Pedidos.FirstOrDefaultAsync(i => i.InvoiceNumber == id); if (seguimiento == null) { return(NotFound()); } if (seguimiento.PedFase == 'E' || seguimiento.PedFase == 'N' || seguimiento.PedFechaFin == null) { return(Forbid()); } if (_entrega.Estado) { seguimiento.Mensajero = User.Identity.Name; seguimiento.PedFase = 'E'; seguimiento.PedFechaEntrega = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local); if (!_entrega.PersonaPresente) { seguimiento.PedDireccionEntrega = _entrega.Direccion; } else { var entrega = new Entregas { PedId = seguimiento.PedId, EntCelular = _entrega.Celular, EntParentesco = _entrega.Parentesco, EntPerApellidos = _entrega.Apellidos, EntPerNombres = _entrega.Nombres, EntPerIdentificacion = _entrega.Identificacion }; _context.Add(entrega); } await _context.SaveChangesAsync(); _flashMessage.Confirmation($"Pedido con Factura Nro {seguimiento.InvoiceNumber} entregado."); } else { seguimiento.PedFase = 'N'; seguimiento.PedDescripcion = _entrega.Descripcion; await _context.SaveChangesAsync(); _flashMessage.Confirmation($"Pedido con Factura Nro {seguimiento.InvoiceNumber} registrado como no entregado."); } return(RedirectToAction(nameof(Index))); } catch { _flashMessage.Danger($"Error al registrar la entrega."); } return(View(_entrega)); }