Exemplo n.º 1
0
        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,
                }));
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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"));
            }
        }