public async Task <JsonResult> ProcesarPedidoEnvio(string id, string tipo) { var sesionExpirada = false; try { var usuario = HttpContext.Session.GetString("IdEstablecimiento"); LoggerBase.WriteLog("Home-ProcesarPedidoEnvio-POST", "Usuario", "IdEstablecimiento", usuario, TypeError.Info); if (string.IsNullOrEmpty(usuario)) { sesionExpirada = true; throw new Exception("IdEstablecimiento no encontrado"); } var pedido = new SolicitudProcesarPedido { Id = id, Proceso = tipo, }; var respuestaPedido = await zohoApis.ProcesarPedido(pedido); return(Json(new { estado = respuestaPedido, sesionExpirada, mensaje = string.Empty, })); } catch (Exception ex) { LoggerBase.WriteLog("Home-ProcesarPedidoEnvio", "Usuario", "ProcesarPedidoEnvio", ex.Message, TypeError.Error); return(Json(new { estado = false, sesionExpirada, lista = string.Empty, mensaje = ex.Message, })); } }
public async Task <bool> ProcesarPedido(SolicitudProcesarPedido solicitudProcesarPedido) { var transaccion = LoggerBase.ObtenerIdTransaccion(); var nombreMetodo = "ProcesarPedido"; try { var request = JsonConvert.SerializeObject(solicitudProcesarPedido); var content = new StringContent(request, Encoding.UTF8, "application/json"); LoggerBase.WriteLog(nombreMetodo, transaccion, LoggerBase.urlBase, content, TypeError.Info, request); var response = await _clienteZoho.PostAsync($"{LoggerBase.urlBase}api/orders/WorkOrder", content); var resultado = await response.Content.ReadAsStringAsync(); LoggerBase.WriteLog(nombreMetodo, transaccion, LoggerBase.urlBase, resultado, TypeError.Info); var respuesta = JsonConvert.DeserializeObject <bool>(resultado); return(respuesta); } catch (Exception ex) { LoggerBase.WriteLog(nombreMetodo, transaccion, LoggerBase.urlBase, ex, TypeError.Error); throw new Exception(ex.Message); } }
public async Task <IActionResult> ProcesarPedido(SolicitudProcesarPedido solicitudProcesarPedido) { try { RespuestaDetallePedido ListaDetallePedido = new RespuestaDetallePedido(); var usuario = HttpContext.Session.GetString("IdEstablecimiento"); LoggerBase.WriteLog("Home-ProcesarPedido-POST", "Usuario", "IdEstablecimiento", usuario, TypeError.Info); if (string.IsNullOrEmpty(usuario)) { this.TempData["Mensaje"] = $"{Mensaje.Error}|{"Su sesión ha expirado"}"; return(RedirectToAction("Login", "Account")); } switch (solicitudProcesarPedido.Proceso) { case "Aceptar": solicitudProcesarPedido.Razon = string.Empty; solicitudProcesarPedido.Minutos = 0; break; case "AceptarAtraso": if (solicitudProcesarPedido.Minutos < 1 || string.IsNullOrWhiteSpace(solicitudProcesarPedido.Razon)) { ModelState.AddModelError(string.Empty, "Debe completar el formulario."); ViewData["IdAccion"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(LoggerBase.ListaAcciones, "Accion", "AccionNombre", solicitudProcesarPedido.Proceso); var detallePedido = await zohoApis.DetallePedido(solicitudProcesarPedido.Id); if (detallePedido == null || detallePedido.orderDetails.Count == 0) { this.TempData["Mensaje"] = $"{Mensaje.Error}|{"No se encontró detalle del pedido seleccionado"}"; return(RedirectToAction("Index", "Home")); } solicitudProcesarPedido.DetallePedidoLista = detallePedido; return(View(solicitudProcesarPedido)); } break; case "Negar": if (string.IsNullOrWhiteSpace(solicitudProcesarPedido.Razon)) { ModelState.AddModelError(string.Empty, "Debe completar el formulario."); ViewData["IdAccion"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(LoggerBase.ListaAcciones, "Accion", "AccionNombre", solicitudProcesarPedido.Proceso); var detallePedido = await zohoApis.DetallePedido(solicitudProcesarPedido.Id); if (detallePedido == null || detallePedido.orderDetails.Count == 0) { this.TempData["Mensaje"] = $"{Mensaje.Error}|{"No se encontró detalle del pedido seleccionado"}"; return(RedirectToAction("Index", "Home")); } solicitudProcesarPedido.DetallePedidoLista = detallePedido; return(View(solicitudProcesarPedido)); } break; } var pedido = await zohoApis.ProcesarPedido(solicitudProcesarPedido); if (pedido) { this.TempData["Mensaje"] = $"{Mensaje.MensajeSatisfactorio}|{LoggerBase.mensajePedidoProcesadoOk}"; return(RedirectToAction("Index", "Home"));// RedirectToAction("Index", "Home"); } this.TempData["Mensaje"] = $"{Mensaje.Error}|{LoggerBase.mensajePedidoProcesadoError}"; ViewData["IdAccion"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(LoggerBase.ListaAcciones, "Accion", "AccionNombre", solicitudProcesarPedido.Proceso); var detallePedidoActual = await zohoApis.DetallePedido(solicitudProcesarPedido.Id); var detalle = await zohoApis.DetallePedido(solicitudProcesarPedido.Id); if (detalle == null || detalle.orderDetails.Count == 0) { this.TempData["Mensaje"] = $"{Mensaje.Error}|{"No se encontró detalle del pedido seleccionado"}"; return(RedirectToAction("Index", "Home")); } solicitudProcesarPedido.DetallePedidoLista = detalle; return(View(solicitudProcesarPedido)); } catch (Exception ex) { this.TempData["Mensaje"] = $"{Mensaje.Error}|{ex.Message}"; return(RedirectToAction("Index", "Home")); } }