améliorer update_portefeuille
This commit is contained in:
@@ -52,9 +52,9 @@ def update_actif_valeur(request, symbole, cours):
|
|||||||
query = "UPDATE actifs SET cours = :cours WHERE symbole = :symbole;"
|
query = "UPDATE actifs SET cours = :cours WHERE symbole = :symbole;"
|
||||||
execute_query(request, query, {'symbole': symbole, 'cours': cours})
|
execute_query(request, query, {'symbole': symbole, 'cours': cours})
|
||||||
|
|
||||||
def update_portefeuille(request):
|
def update_portefeuille(request, logged_in):
|
||||||
query = "CALL spUPD_PORTEFEUILLE();"
|
query = "CALL spUPD_PORTEFEUILLE(:logged_in);"
|
||||||
execute_query(request, query, '')
|
execute_query(request, query, {'logged_in': logged_in})
|
||||||
|
|
||||||
def delete_actif(request, no_id):
|
def delete_actif(request, no_id):
|
||||||
query = "DELETE FROM actifs WHERE no_id = :no_id ;"
|
query = "DELETE FROM actifs WHERE no_id = :no_id ;"
|
||||||
|
|||||||
@@ -66,28 +66,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="pru">PRU</label>
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<div class="input-group">
|
|
||||||
<div class="input-group-addon">€</div>
|
|
||||||
<input class="form-control" type="text" id="pru" name="pru" value="${actif.pru}"
|
|
||||||
data-fv-numeric="true"
|
|
||||||
data-fv-numeric-message="Le nombre doit être composé de chiffres et/ou de ." />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="ter">TER</label>
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<div class="input-group">
|
|
||||||
<div class="input-group-addon">%</div>
|
|
||||||
<input class="form-control" type="text" id="ter" name="ter" value="${actif.ter}"
|
|
||||||
data-fv-numeric="true"
|
|
||||||
data-fv-numeric-message="Le nombre doit être composé de chiffres et/ou de ." />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="pc_rdt">% Rendement</label>
|
<label class="control-label col-xs-2" for="pc_rdt">% Rendement</label>
|
||||||
<div class="col-xs-2">
|
<div class="col-xs-2">
|
||||||
|
|||||||
@@ -39,6 +39,13 @@
|
|||||||
<div id="donutchart" style="width: 100%; height: 500px;"></div>
|
<div id="donutchart" style="width: 100%; height: 500px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<p><b>Notes :</b></p>
|
||||||
|
<ul>
|
||||||
|
<li>Mon allocation est inspirée de celle du <b>Dr. Bernstein's No Brainer</b> qui a, à mon avis,
|
||||||
|
le mérite d'être le plus simple à implémenter parmi les <a href="http://www.marketwatch.com/lazyportfolio" target="_blank">8 Lazy portfolios</a> suivi par Market Watch</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<a href="${request.application_url}/" class="btn btn-default" role="button">
|
<a href="${request.application_url}/" class="btn btn-default" role="button">
|
||||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||||
<a href="histo_edit/0" class="btn btn-success" role="button">
|
<a href="histo_edit/0" class="btn btn-success" role="button">
|
||||||
<span class="glyphicon glyphicon-plus"></span> Ajout/retrait de cash</a>
|
<span class="glyphicon glyphicon-plus"></span> Maj valeur part</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="histo_list" class="table table-striped table-bordered">
|
<table id="histo_list" class="table table-striped table-bordered">
|
||||||
|
|||||||
@@ -81,10 +81,10 @@
|
|||||||
<th class="text-right">Valeur</th>
|
<th class="text-right">Valeur</th>
|
||||||
<th class="text-right">+/- Valeur</th>
|
<th class="text-right">+/- Valeur</th>
|
||||||
<th class="text-right">% de +/-</th>
|
<th class="text-right">% de +/-</th>
|
||||||
<th class="text-right">% PF</th>
|
|
||||||
<th class="text-right">TER</th>
|
|
||||||
<th class="text-right">Rdt brut</th>
|
<th class="text-right">Rdt brut</th>
|
||||||
<th class="text-right">% Rdt</th>
|
<th class="text-right">% Rdt</th>
|
||||||
|
<th class="text-right">% PF</th>
|
||||||
|
<th class="text-right">TER</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -96,20 +96,20 @@
|
|||||||
<td tal:condition="ligne.plus_value <0" class="text-right" style="color: red;">${layout.to_euro(ligne.plus_value)}</td>
|
<td tal:condition="ligne.plus_value <0" class="text-right" style="color: red;">${layout.to_euro(ligne.plus_value)}</td>
|
||||||
<td tal:condition="ligne.pc_plusvalue>=0" class="text-right" style="color: green;">${layout.to_percent(ligne.pc_plusvalue,1)}</td>
|
<td tal:condition="ligne.pc_plusvalue>=0" class="text-right" style="color: green;">${layout.to_percent(ligne.pc_plusvalue,1)}</td>
|
||||||
<td tal:condition="ligne.pc_plusvalue <0" class="text-right" style="color: red;">${layout.to_percent(ligne.pc_plusvalue,1)}</td>
|
<td tal:condition="ligne.pc_plusvalue <0" class="text-right" style="color: red;">${layout.to_percent(ligne.pc_plusvalue,1)}</td>
|
||||||
<td class="text-right">${ligne.pc_allocation} %</td>
|
|
||||||
<td class="text-right">${layout.to_percent(ligne.ter,2)}</td>
|
|
||||||
<td class="text-right">${u'%.0f €' % (ligne.rendement)}</td>
|
<td class="text-right">${u'%.0f €' % (ligne.rendement)}</td>
|
||||||
<td class="text-right">${layout.to_percent(ligne.pc_rdt,1)}</td>
|
<td class="text-right">${layout.to_percent(ligne.pc_rdt,1)}</td>
|
||||||
|
<td class="text-right">${ligne.pc_allocation} %</td>
|
||||||
|
<td class="text-right">${layout.to_percent(ligne.ter,2)}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-right" colspan="2"><b>Total</b></td>
|
<td class="text-right" colspan="2"><b>Total</b></td>
|
||||||
<td class="text-right"><b>${layout.to_euro(total_valeur)}</b></td>
|
<td class="text-right"><b>${layout.to_euro(total_valeur)}</b></td>
|
||||||
<td class="text-right"><b>${layout.to_euro(total_pv)}</b></td>
|
<td class="text-right"><b>${layout.to_euro(total_pv)}</b></td>
|
||||||
<td class="text-right"><b>${layout.to_percent(total_pc_value, 1)}</b></td>
|
<td class="text-right"><b>${layout.to_percent(total_pc_value, 1)}</b></td>
|
||||||
|
<td class="text-right"><b>${total_rdt} €</b></td>
|
||||||
|
<td></td>
|
||||||
<td class="text-right"><b>100.0 %</b></td>
|
<td class="text-right"><b>100.0 %</b></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
|
||||||
<td class="text-right"><b>${total_rdt} €</b></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ import json
|
|||||||
@view_config(route_name='actifs_list', renderer='../templates/actifs/actifs_list.pt', permission='view')
|
@view_config(route_name='actifs_list', renderer='../templates/actifs/actifs_list.pt', permission='view')
|
||||||
def actifs_list(request):
|
def actifs_list(request):
|
||||||
url = request.route_url('actifs_list')
|
url = request.route_url('actifs_list')
|
||||||
|
logged_in = authenticated_userid(request)
|
||||||
|
|
||||||
message = ''
|
message = ''
|
||||||
|
|
||||||
# lire les actifs
|
# lire les actifs
|
||||||
@@ -57,11 +59,11 @@ def actifs_list(request):
|
|||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
update_actif_valeur(request, item.symbole, sym.get_price())
|
update_actif_valeur(request, item.symbole, sym.get_price())
|
||||||
|
|
||||||
|
# update du portefeuille
|
||||||
|
update_portefeuille(request, logged_in)
|
||||||
# relire les actifs
|
# relire les actifs
|
||||||
items = get_actifs(request, '0')
|
items = get_actifs(request, '0')
|
||||||
message = u'Le portefeuille est mis à jour avec succès.'
|
message = u'Le portefeuille est mis à jour avec succès.'
|
||||||
# update du portefeuille
|
|
||||||
update_portefeuille(request)
|
|
||||||
|
|
||||||
total_valeur = 0
|
total_valeur = 0
|
||||||
total_pv = 0
|
total_pv = 0
|
||||||
@@ -93,7 +95,7 @@ def actif_edit(request):
|
|||||||
actif = {}
|
actif = {}
|
||||||
actif['no_id'] = '0'
|
actif['no_id'] = '0'
|
||||||
actif['symbole'] = ''
|
actif['symbole'] = ''
|
||||||
actif['classe'] = 'Europe Large'
|
actif['classe'] = ''
|
||||||
actif['nombre'] = '0'
|
actif['nombre'] = '0'
|
||||||
actif['pru'] = '0'
|
actif['pru'] = '0'
|
||||||
actif['ter'] = '0'
|
actif['ter'] = '0'
|
||||||
@@ -158,7 +160,7 @@ def actif2_edit(request):
|
|||||||
actif = {}
|
actif = {}
|
||||||
actif['no_id'] = '0'
|
actif['no_id'] = '0'
|
||||||
actif['symbole'] = ''
|
actif['symbole'] = ''
|
||||||
actif['classe'] = 'Obligations'
|
actif['classe'] = ''
|
||||||
actif['libelle'] = ''
|
actif['libelle'] = ''
|
||||||
actif['pru'] = '0'
|
actif['pru'] = '0'
|
||||||
actif['cours'] = '0'
|
actif['cours'] = '0'
|
||||||
@@ -178,7 +180,6 @@ def actif2_edit(request):
|
|||||||
for param, db_value in actif.items():
|
for param, db_value in actif.items():
|
||||||
if param in request.params and request.params[param] != db_value:
|
if param in request.params and request.params[param] != db_value:
|
||||||
new_values[param] = request.params[param]
|
new_values[param] = request.params[param]
|
||||||
|
|
||||||
if new_values:
|
if new_values:
|
||||||
new_values['nombre'] = 1000
|
new_values['nombre'] = 1000
|
||||||
new_values['devise'] = 'EUR'
|
new_values['devise'] = 'EUR'
|
||||||
@@ -308,14 +309,14 @@ def histo_edit(request):
|
|||||||
item['date'] = today
|
item['date'] = today
|
||||||
item['mvt_cash'] = 0.0
|
item['mvt_cash'] = 0.0
|
||||||
item['nb_part'] = 0.0
|
item['nb_part'] = 0.0
|
||||||
page_title= u'Nouveau mouvement'
|
page_title= u'Nouvelle valeur part'
|
||||||
else:
|
else:
|
||||||
# lire la fiche de la categorie
|
# lire la fiche de la categorie
|
||||||
item = get_histo(request, no_id)
|
item = get_histo(request, no_id)
|
||||||
if not item:
|
if not item:
|
||||||
request.session.flash(u"Histo non trouvé : %s" % no_id, 'warning')
|
request.session.flash(u"Histo non trouvé : %s" % no_id, 'warning')
|
||||||
return HTTPFound(location=request.route_url('histo_list'))
|
return HTTPFound(location=request.route_url('histo_list'))
|
||||||
page_title= u"Mouvement %s du %s" % (item.no_id, item.date.strftime('%d/%m/%Y'))
|
page_title= u"Valeur part au %s" % (item.date.strftime('%d/%m/%Y'))
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user