add modified date to portfolio

This commit is contained in:
2023-02-13 07:35:08 +01:00
parent 1e9cb12565
commit e03b2ea353
4 changed files with 11 additions and 5 deletions

1
.gitignore vendored
View File

@@ -12,6 +12,7 @@ nosetests.xml
env*/
tmp/
Data.fs*
*.sqlite
*.sublime-project
*.sublime-workspace
.*.sw?

View File

@@ -70,7 +70,7 @@ class PFService(object):
})
return
def update_portefeuille(request):
def update_portefeuille(request, today):
# cumuler la valeur totale des actifs
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
TotalValue = result.TotalValue
@@ -78,7 +78,8 @@ class PFService(object):
items = PFService.get_actifs(request, '0')
for item in items:
pc_allocation = round(item.Actifs.valeur / TotalValue * 100, 3)
request.dbsession.query(Actifs).filter(Actifs.no_id == item.Actifs.no_id).update({'pc_allocation': pc_allocation})
request.dbsession.query(Actifs).filter(Actifs.no_id == item.Actifs.no_id).update({'pc_allocation': pc_allocation,
'modif_le': today})
# maj des allocations
items = PFService.get_allocation(request, '0')

View File

@@ -140,7 +140,7 @@
{% endfor %}
<tr>
<td class="text-right" colspan="4"><b>Total</b></td>
<td class="text-right" colspan="4"><b>Total au {{ maj_pf_le.strftime('%d/%m/%Y') }}</b></td>
<td>{{ '{0:0,.2f} €'.format(total_valeur).replace(',',' ') }}</td>
{% if total_pv >= 0 %}
<td class="text-right" style="color: green;">{{ '{0:0.2f} €'.format(total_pv) }}</td>

View File

@@ -69,7 +69,8 @@ def portfolio(request):
# time.sleep(1) # attendre 2 secondes
# update du portefeuille
PFService.update_portefeuille(request)
today = datetime.datetime.now()
PFService.update_portefeuille(request, today)
# relire les actifs
actifs = PFService.get_actifs(request, '0')
request.session.flash('Le portefeuille est mis à jour avec succès.', 'success')
@@ -77,8 +78,9 @@ def portfolio(request):
total_valeur = 0
total_pv = 0
total_rdt = 0
maj_pf_le = None
for item in actifs:
maj_pf_le = item.Actifs.modif_le
total_valeur += item.Actifs.valeur
total_pv += item.Actifs.plus_value
if total_valeur == 0:
@@ -109,6 +111,7 @@ def portfolio(request):
'total_pv': total_pv,
'total_pc_value': total_pc_value,
'total_rdt': total_rdt,
'maj_pf_le' : maj_pf_le,
'swr_rate' : swr_rate,
'swr_amount': float(total_valeur) * swr_rate / 100,
}
@@ -283,6 +286,7 @@ def actif_edit(request):
form.populate_obj(entry)
# récupérer le cours du symbole de Yahoo finance
ticker = yf.Ticker(entry.symbole)
import pdb;pdb.set_trace()
entry.cours = ticker.fast_info.get('lastPrice')
entry.devise = ticker.fast_info.get('currency')
entry.libelle = html.unescape(ticker.info.get('shortName'))