| 1234567891011121314151617181920212223242526272829303132333435 |
- from django.contrib import messages
- from django.shortcuts import redirect, render
- from .services import actualizar_precios, desglose_fifo, posiciones, resumen_fiscal, totales
- def dashboard(request):
- pos = posiciones()
- context = {
- 'posiciones': pos,
- 'abiertas': [p for p in pos if p['acciones'] > 0],
- 'cerradas': [p for p in pos if p['acciones'] == 0],
- 'totales': totales(pos),
- }
- return render(request, 'cartera/dashboard.html', context)
- def actualizar(request):
- if request.method == 'POST':
- correctos, errores = actualizar_precios()
- if correctos:
- messages.success(request, f'Precios actualizados: {correctos}')
- for ticker, motivo in errores:
- messages.warning(request, f'{ticker}: {motivo}')
- return redirect('cartera:dashboard')
- def fifo(request):
- filas = desglose_fifo()
- context = {
- 'filas': filas,
- 'fiscal': resumen_fiscal(filas),
- 'total': sum((f['resultado'] or 0 for f in filas), start=0),
- }
- return render(request, 'cartera/fifo.html', context)
|