Example #1
0
        public async Task ToggleProducto(ProductoPresentacion producto)
        {
            decimal costoFormulado = 0.00M;

            if (ListaPrecios.DetalleListaPrecios.Where(x => x.ProductoPresentacionId == producto.Id).Count() == 0)
            {
                if (producto.esFormulado)
                {
#line default
#line hidden
#line 276 "C:\Users\agust\source\repos\SurcosBlazor\Client\Pages\BackOffice\Configuracion\ListaDePreciosC\ListaPreciosForm.razor"
                    if (producto.FormulaProducto != null)
                    {
                        costoFormulado = await http.GetJsonAsync <decimal>($"api/FormulaProducto/CostoFormula?FormulaId={producto.FormulaProducto.Id}");
                    }

#line default
#line hidden
#line 279 "C:\Users\agust\source\repos\SurcosBlazor\Client\Pages\BackOffice\Configuracion\ListaDePreciosC\ListaPreciosForm.razor"
                }


                ListaPrecios.DetalleListaPrecios.Add(new DetalleListaPrecios
                {
                    ProductoPresentacionId = producto.Id,
                    precioCosto            = producto.esFormulado ? costoFormulado : producto.costo
                });
            }

            else
            {
                ListaPrecios.DetalleListaPrecios.Remove(ListaPrecios.DetalleListaPrecios.FirstOrDefault(x => x.ProductoPresentacionId == producto.Id));
            }
            this.StateHasChanged();
        }
Example #2
0
        public async Task RecuperarCarritoLocalStore()
        {
            string carrito = await js.GetFromLocalStorage("Carrito");

            string lista = await js.GetFromLocalStorage("lista");

            if (!string.IsNullOrWhiteSpace(carrito) && !string.IsNullOrWhiteSpace(lista))
            {
                if (listaVigente.Id == (Convert.ToInt32(lista)))
                {
                    var elemCarrito = carrito.Split(',');

                    foreach (string producto in elemCarrito)
                    {
                        var detalle = producto.Split('-');
                        try
                        {
                            ProductoPresentacion productoPresentacion = listaVigente.DetalleListaPrecios.Single(x => x.ProductoPresentacionId == Convert.ToInt32(detalle[0])).ProductoPresentacion;
                            await AgregarProductoLocalStore(productoPresentacion, Convert.ToInt32(detalle[1]), Convert.ToInt32(lista));
                        }
                        catch (Exception)
                        {
                            toastService.ShowWarning("Algunos productos que estaban en el carrito ya no existen en esta lista");
                        }
                    }
                }
                else
                {
                    toastService.ShowWarning("La lista de precios con la que estaba cargada tu carrito no está habilitado para este usuario/localidad, por favor ingresa con tu usuario.");
                }
            }
            await callback.InvokeAsync(new Object());
        }
        public async Task <IActionResult> PutProductoPresentacion(int id, ProductoPresentacion productoPresentacion)
        {
            if (id != productoPresentacion.Id)
            {
                return(BadRequest());
            }

            _context.Entry(productoPresentacion).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductoPresentacionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public void verCantidadEnCarrito(ProductoPresentacion productoPresentacion)
 {
     if (productosEnCarrito.FirstOrDefault(x => x.producto.Id == productoPresentacion.Id) != null)
     {
         cantidad = productosEnCarrito.FirstOrDefault(x => x.producto.Id == productoPresentacion.Id).cantidad;
     }
     else
     {
         cantidad = 0;
     }
 }
Example #5
0
 public decimal descuento(ProductoPresentacion prod)
 {
     try
     {
         return(lista.DetalleListaPrecios.FirstOrDefault(x => x.ProductoPresentacionId == prod.Id).porcentajeDescuento);
     }
     catch (Exception)
     {
         return(0.00M);
     }
 }
Example #6
0
 public decimal calcularPrecio(ProductoPresentacion prod)
 {
     try
     {
         return(lista.DetalleListaPrecios.FirstOrDefault(x => x.ProductoPresentacionId == prod.Id).precioUnitarioFinal);
     }
     catch (Exception)
     {
         return(0.00M);
     }
 }
Example #7
0
 public async Task <decimal> BuscarCosto(ProductoPresentacion producto)
 {
     if (producto.esFormulado && producto.FormulaProducto != null)
     {
         return(await http.GetJsonAsync <decimal>($"api/FormulaProducto/CostoFormula?FormulaId={producto.FormulaProducto?.Id}"));
     }
     else
     {
         return(producto.costo);
     }
 }
Example #8
0
        public async Task AgregarProducto(ProductoPresentacion prod, int cantidad, int listaId)
        {
            int cantidadAnterior = 0;

            if (pedido.ListaPreciosId != 0 && pedido.ListaPreciosId != listaId && pedido.detallePedido.Count > 0)
            {
                toastService.ShowWarning("No puede agregar productos de listas distintas. Para cambiar de lista tienes que vaciar el carrito primero");
            }
            else
            {
                pedido.ListaPreciosId = listaId;
                pedido.ListaPrecios   = listaVigente;
                await js.SetInLocalStorage("lista", Convert.ToString(listaId));

                if (pedido.detallePedido.Where(x => x.ProductoPresentacion.Id == prod.Id).Count() > 0)
                {
                    cantidadAnterior = pedido.detallePedido.FirstOrDefault(x => x.ProductoPresentacion.Id == prod.Id).cantidad;

                    pedido.detallePedido.FirstOrDefault(x => x.ProductoPresentacion.Id == prod.Id).cantidad = cantidad;
                }
                else
                {
                    decimal precio = listaVigente.DetalleListaPrecios.Single(x => x.ProductoPresentacionId == prod.Id).precioUnitarioFinal;

                    pedido.detallePedido.Add(new DetallePedido {
                        ProductoPresentacionId = prod.Id, ProductoPresentacion = prod, cantidad = cantidad, precioUnitario = precio
                    });
                }


                CalcularTotal();
                notificacion notificacion = new notificacion
                {
                    productoPresentacion = prod,
                    entra    = cantidad > cantidadAnterior ? true : false,
                    sale     = cantidad < cantidadAnterior ? true : false,
                    cantidad = Math.Abs(cantidadAnterior - cantidad)
                };


                notificaciones.Add(notificacion);
                LimpiarNotifiacion(notificacion);
                await carritoInLocalStore();

                //await mostrarNotificacion();
            }
        }
Example #9
0
        public async Task EliminarProductoPresentacion(ProductoPresentacion productoPresentacion)
        {
            //toastService.ShowError(result.Content.ReadAsStringAsync().Result);

            //Console.WriteLine(result.ReasonPhrase);
            //Console.WriteLine(result.);

            var result = await repositorio.Delete($"api/productoPresentacion/{productoPresentacion.Id}");

            if (result.Error)
            {
                error = result.HttpResponseMessage.Content.ReadAsStringAsync().Result;
                Console.WriteLine(error);
                toastService.ShowError(error);
            }
            await BuscarProducto();
        }
Example #10
0
 public async Task AgregarProductoLocalStore(ProductoPresentacion prod, int cantidad, int listaId)
 {
     pedido.ListaPreciosId = listaId;
     if (pedido.detallePedido.Where(x => x.ProductoPresentacion.Id == prod.Id).Count() > 0)
     {
         pedido.detallePedido.FirstOrDefault(x => x.ProductoPresentacion.Id == prod.Id).cantidad = cantidad;
     }
     else
     {
         decimal precio = listaVigente.DetalleListaPrecios.Single(x => x.ProductoPresentacionId == prod.Id).precioUnitarioFinal;
         pedido.detallePedido.Add(new DetallePedido {
             ProductoPresentacionId = prod.Id, ProductoPresentacion = prod, cantidad = cantidad, precioUnitario = precio
         });
     }
     CalcularTotal();
     this.producto = prod;
     this.cantidad = cantidad;
 }
        public async Task <ActionResult <ProductoPresentacion> > GetproductoPresentacionesUnica(int productoPresentacionId)
        {
            var queryble = _context.productoPresentacion.Where(x => x.Id == productoPresentacionId)
                           .Include(x => x.PresentacionProducto).Include(x => x.Proveedor)
                           .Include(x => x.FormulaProducto)
                           .ThenInclude(y => y.DetallesFormula)
                           .Include(x => x.Producto)
                           .ThenInclude(y => y.CategoriaProducto)
                           .OrderBy(x => x.PresentacionProducto.cantidad).AsQueryable();

            ProductoPresentacion productoPresentacion = await queryble.FirstOrDefaultAsync();

            if (productoPresentacion.esFormulado && productoPresentacion.FormulaProducto != null)
            {
                productoPresentacion.FormulaProducto.DetallesFormula = GetdetalleFormula(productoPresentacion.FormulaProducto.Id);
            }


            return(productoPresentacion);
        }
Example #12
0
        public async Task removeFromProducCard(ProductoPresentacion producto)
        {
            int cantidad = pedido.detallePedido.Single(x => x.ProductoPresentacionId == producto.Id).cantidad;

            pedido.detallePedido.Remove(pedido.detallePedido.Single(x => x.ProductoPresentacionId == producto.Id));
            await carritoInLocalStore();

            CalcularTotal();

            notificacion notificacion = new notificacion
            {
                productoPresentacion = producto,
                entra    = false,
                sale     = true,
                cantidad = Math.Abs(cantidad)
            };


            notificaciones.Add(notificacion);
            LimpiarNotifiacion(notificacion);
        }
        public async Task <ActionResult <ProductoPresentacion> > PostProductoPresentacion(ProductoPresentacion productoPresentacion)
        {
            _context.productoPresentaciones.Add(productoPresentacion);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetProductoPresentacion", new { id = productoPresentacion.Id }, productoPresentacion));
        }
Example #14
0
 public ProductoPresentacion ProductoPresentacionSeleccionado(ProductoPresentacion productoPresentacion)
 {
     this.productoPresentacion = productoPresentacion;
     this.StateHasChanged();
     return(productoPresentacion);
 }