static public String GetArticuloParaFrontStatic(long id) { SQLToJSON ArticuloParaFront = new SQLToJSON(); SQLToJSON RecetaParaFront = new SQLToJSON(); var parametros = new Dictionary <String, object>(); parametros["@pricePoint"] = id; ArticuloParaFront.Agregar("EXECUTE ArticuloParaFront @pricePoint", parametros); ArticuloParaFront.Agregar("ingredientes", "EXECUTE IngredientesParaFront @pricePoint", parametros, true); return(ArticuloParaFront.JSON()); }
public String StockTotalParaArticulosNoManufacturados(long id) { SQLToJSON stockTotalParaArticulosNoManufacturados = new SQLToJSON(); var parametros = new Dictionary <String, object>(); parametros["@IdArticulo"] = id; stockTotalParaArticulosNoManufacturados.Agregar("EXECUTE StockTotalParaArticulosNoManufacturados @IdArticulo", parametros, true); return(stockTotalParaArticulosNoManufacturados.JSON()); }
public String GetArticulosParaFront() { SQLToJSON ArticuloParaFront = new SQLToJSON(); SQLToJSON RecetaParaFront = new SQLToJSON(); ArticuloParaFront.Agregar("EXECUTE TodosLosArticulosAlaVentaParaFront", true); RecetaParaFront.Agregar("EXECUTE TodosLosIngredientesParaFront", true); String resultado = SQLToJSON.VincularArrayDeJSON(ArticuloParaFront.JSON(), "id", RecetaParaFront.JSON(), "ArticuloID", "Ingredientes"); return(resultado); }
public async Task <ActionResult <PedidoDTO> > FinalizarPedido(long id) { var pedido = await _context.Pedidos .Include(p => p.DetallesPedido) .ThenInclude(d => d.Articulo) .Include(p => p.Domicilio) //.AsNoTracking() .FirstOrDefaultAsync(c => c.Id == id); /* * Finalizada la carga del pedido el sistema le informara al cliente * cuanto es el tiempo estimado para el retiro o entrega de su pedido, * este tiempo surgirá de la siguiente formula: * Σ Sumatoria del tiempo estimado de los artículos manufacturados * solicitados por el cliente en el pedido actual + + Σ Sumatoria del tiempo estimado de los artículos manufacturados + que se encuentran en la cocina / cantidad cocineros + + 10 Minutos de entrega por Delivery, solo si corresponde. */ SQLToJSON TiempoEstimadoCocinaPedidoActual = new SQLToJSON(); SQLToJSON TiempoEstimadoCocinaPedidosConEstado = new SQLToJSON(); var parametroIdPedidoActual = new Dictionary <String, object>(); parametroIdPedidoActual["@IdPedido"] = pedido.Id; TiempoEstimadoCocinaPedidoActual.Agregar("EXECUTE TiempoEstimadoCocinaPedidoActual @IdPedido", parametroIdPedidoActual); TiempoEstimadoCocinaPedidoActual.JSON(); var parametroEstadoActual = new Dictionary <String, object>(); parametroEstadoActual["@estado"] = APROBADO; TiempoEstimadoCocinaPedidosConEstado.Agregar("EXECUTE TiempoEstimadoCocinaPedidosConEstado @estado", parametroEstadoActual); TiempoEstimadoCocinaPedidosConEstado.JSON(); //agrega la fecha de hoy al pedido pedido.Fecha = DateTime.Now; //Agrega fecha estimada de finalizacion dynamic TECocinaPedidoActual = JsonConvert.DeserializeObject(TiempoEstimadoCocinaPedidoActual.JSON()); dynamic TECocinaPedidosConEstado = JsonConvert.DeserializeObject(TiempoEstimadoCocinaPedidosConEstado.JSON()); int tiempoEntregaDelivery = 0; //Si el pedido es a domicili0, sumar los 10min extras if (pedido.TipoEnvio == 1) { tiempoEntregaDelivery = 10; } Configuracion configuracion = await _context.Configuraciones.FirstOrDefaultAsync(); int CocinerosCant = configuracion.CantidadCocineros; // Si el pedido no tiene un art. manuf. TECPA.min da null (cuando se pide una cerverza y nada mas) long TECPA = TECocinaPedidoActual.min == null ? 0 : long.Parse(Convert.ToString(TECocinaPedidoActual.min)); long TECPCE = TECocinaPedidosConEstado.min == null ? 0 : long.Parse(Convert.ToString(TECocinaPedidosConEstado.min)); long FormulaTE = TECPA + TECPCE / CocinerosCant + tiempoEntregaDelivery; //Calcular total del pedido PedidoTotalModificar(ref pedido); pedido.HoraEstimadaFin = pedido.Fecha.AddMinutes(FormulaTE); //Los pedidos y sus detallesPedido se crean desabilitados inicialmente hasta que se finalizan pedido.Disabled = false; foreach (DetallePedido detallePedido in pedido.DetallesPedido) { detallePedido.Disabled = false; _context.Entry(detallePedido).State = EntityState.Modified; } _context.Entry(pedido).State = EntityState.Modified; await _context.SaveChangesAsync(); //await PutPedido(id, pedido); //-------notificacion String mensaje = ""; String grupoDestino = ""; PedidoDTO pedidoDTO = new(); pedidoDTO.Cliente = pedido.Cliente; pedidoDTO.Domicilio = pedido.Domicilio; pedidoDTO.Estado = pedido.Estado; pedidoDTO.Fecha = pedido.Fecha; pedidoDTO.HoraEstimadaFin = pedido.HoraEstimadaFin; pedidoDTO.Id = pedido.Id; pedidoDTO.TipoEnvio = pedido.TipoEnvio; pedidoDTO.Total = pedido.Total; //Si NO paga por mercadolibre, su estado es PENDIENTE if (pedidoDTO.Estado != PAGO_PENDIENTE_MP) { mensaje = "Ha ingresado un nuevo pedido"; grupoDestino = _context.Roles.Where(r => r.Nombre == "Cajero").FirstOrDefault().Id.ToString(); EnviarNotificacionRol(grupoDestino, mensaje, pedidoDTO); mensaje = "Su pedido esta pendiente de aprobacion"; grupoDestino = pedido.ClienteID.ToString(); EnviarNotificacionCliente(grupoDestino, mensaje, pedidoDTO); } //-------fin notificacion return(pedidoDTO); }