add modified date to portfolio
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,6 +12,7 @@ nosetests.xml
|
|||||||
env*/
|
env*/
|
||||||
tmp/
|
tmp/
|
||||||
Data.fs*
|
Data.fs*
|
||||||
|
*.sqlite
|
||||||
*.sublime-project
|
*.sublime-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
.*.sw?
|
.*.sw?
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ class PFService(object):
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
|
||||||
def update_portefeuille(request):
|
def update_portefeuille(request, today):
|
||||||
# cumuler la valeur totale des actifs
|
# cumuler la valeur totale des actifs
|
||||||
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
||||||
TotalValue = result.TotalValue
|
TotalValue = result.TotalValue
|
||||||
@@ -78,7 +78,8 @@ class PFService(object):
|
|||||||
items = PFService.get_actifs(request, '0')
|
items = PFService.get_actifs(request, '0')
|
||||||
for item in items:
|
for item in items:
|
||||||
pc_allocation = round(item.Actifs.valeur / TotalValue * 100, 3)
|
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
|
# maj des allocations
|
||||||
items = PFService.get_allocation(request, '0')
|
items = PFService.get_allocation(request, '0')
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<tr>
|
<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>
|
<td>{{ '{0:0,.2f} €'.format(total_valeur).replace(',',' ') }}</td>
|
||||||
{% if total_pv >= 0 %}
|
{% if total_pv >= 0 %}
|
||||||
<td class="text-right" style="color: green;">{{ '{0:0.2f} €'.format(total_pv) }}</td>
|
<td class="text-right" style="color: green;">{{ '{0:0.2f} €'.format(total_pv) }}</td>
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ def portfolio(request):
|
|||||||
# time.sleep(1) # attendre 2 secondes
|
# time.sleep(1) # attendre 2 secondes
|
||||||
|
|
||||||
# update du portefeuille
|
# update du portefeuille
|
||||||
PFService.update_portefeuille(request)
|
today = datetime.datetime.now()
|
||||||
|
PFService.update_portefeuille(request, today)
|
||||||
# relire les actifs
|
# relire les actifs
|
||||||
actifs = PFService.get_actifs(request, '0')
|
actifs = PFService.get_actifs(request, '0')
|
||||||
request.session.flash('Le portefeuille est mis à jour avec succès.', 'success')
|
request.session.flash('Le portefeuille est mis à jour avec succès.', 'success')
|
||||||
@@ -77,8 +78,9 @@ def portfolio(request):
|
|||||||
total_valeur = 0
|
total_valeur = 0
|
||||||
total_pv = 0
|
total_pv = 0
|
||||||
total_rdt = 0
|
total_rdt = 0
|
||||||
|
maj_pf_le = None
|
||||||
for item in actifs:
|
for item in actifs:
|
||||||
|
maj_pf_le = item.Actifs.modif_le
|
||||||
total_valeur += item.Actifs.valeur
|
total_valeur += item.Actifs.valeur
|
||||||
total_pv += item.Actifs.plus_value
|
total_pv += item.Actifs.plus_value
|
||||||
if total_valeur == 0:
|
if total_valeur == 0:
|
||||||
@@ -109,6 +111,7 @@ def portfolio(request):
|
|||||||
'total_pv': total_pv,
|
'total_pv': total_pv,
|
||||||
'total_pc_value': total_pc_value,
|
'total_pc_value': total_pc_value,
|
||||||
'total_rdt': total_rdt,
|
'total_rdt': total_rdt,
|
||||||
|
'maj_pf_le' : maj_pf_le,
|
||||||
'swr_rate' : swr_rate,
|
'swr_rate' : swr_rate,
|
||||||
'swr_amount': float(total_valeur) * swr_rate / 100,
|
'swr_amount': float(total_valeur) * swr_rate / 100,
|
||||||
}
|
}
|
||||||
@@ -283,6 +286,7 @@ def actif_edit(request):
|
|||||||
form.populate_obj(entry)
|
form.populate_obj(entry)
|
||||||
# récupérer le cours du symbole de Yahoo finance
|
# récupérer le cours du symbole de Yahoo finance
|
||||||
ticker = yf.Ticker(entry.symbole)
|
ticker = yf.Ticker(entry.symbole)
|
||||||
|
import pdb;pdb.set_trace()
|
||||||
entry.cours = ticker.fast_info.get('lastPrice')
|
entry.cours = ticker.fast_info.get('lastPrice')
|
||||||
entry.devise = ticker.fast_info.get('currency')
|
entry.devise = ticker.fast_info.get('currency')
|
||||||
entry.libelle = html.unescape(ticker.info.get('shortName'))
|
entry.libelle = html.unescape(ticker.info.get('shortName'))
|
||||||
|
|||||||
Reference in New Issue
Block a user