fixed histo_edit
This commit is contained in:
@@ -4,7 +4,6 @@ from ..models.portfolio import Actifs, Allocation, Histo
|
||||
|
||||
class PFService(object):
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_actifs(cls, request, no_id):
|
||||
if no_id == '0':
|
||||
@@ -41,9 +40,15 @@ class PFService(object):
|
||||
items = request.dbsession.query(Histo).filter(Histo.no_id == no_id).first()
|
||||
return items
|
||||
|
||||
@classmethod
|
||||
def get_last_histo(cls, request):
|
||||
# lire le dernier histo créé
|
||||
items = request.dbsession.query(Histo).order_by(sa.desc(Histo.date)).first()
|
||||
return items
|
||||
|
||||
@classmethod
|
||||
def delete_allocation(cls, request, no_id):
|
||||
request.dbsession.query(Allocation).filter(Histo.no_ == no_id).delete(synchronize_session=False)
|
||||
request.dbsession.query(Allocation).filter(Allocation.no_ == no_id).delete(synchronize_session=False)
|
||||
return
|
||||
|
||||
@classmethod
|
||||
@@ -52,37 +57,49 @@ class PFService(object):
|
||||
return
|
||||
|
||||
@classmethod
|
||||
def update_actif_devise(request, devise, taux):
|
||||
def update_actif_devise(cls, request, devise, taux):
|
||||
request.dbsession.query(Actifs).filter(Actifs.devise == devise).update({'parite': taux})
|
||||
request.dbsession.commit()
|
||||
return
|
||||
|
||||
def update_actif_valeur(request, symbole, cours, dividends):
|
||||
request.dbsession.query(Actifs).filter(Actifs.symbole == symbole).update({'symbole': symbole, 'cours': cours, 'dividends': dividends})
|
||||
request.dbsession.commit()
|
||||
request.dbsession.query(Actifs).filter(Actifs.symbole == symbole).update({'cours': cours, 'rendement': dividends})
|
||||
return
|
||||
|
||||
def update_portefeuille(request):
|
||||
TotalValue = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
||||
|
||||
# cumuler la valeur totale des actifs
|
||||
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")).first()
|
||||
TotalValue = result.TotalValue
|
||||
# maj du pourcentage d'allocation des lignes du portefeuille
|
||||
request.dbsession.query(Actifs).update({'pc_allocation': Actifs.valeur / TotalValue * 100})
|
||||
request.dbsession.commit()
|
||||
|
||||
# maj des allocations
|
||||
items = PFService.get_allocation(request, '0')
|
||||
for item in items:
|
||||
TotalClasse = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalValue")
|
||||
# cumuler la valeur totale des actifs de cette classe
|
||||
result = request.dbsession.query(Actifs, func.sum(Actifs.valeur).label("TotalClasse")
|
||||
).filter(Actifs.classe == item.classe).first()
|
||||
item.valeur = TotalClasse,
|
||||
item.pc_atteint = item.valeur / TotalValue * 100;
|
||||
request.dbsession.commit()
|
||||
TotalClasse = result.TotalClasse
|
||||
# maj du pourcentage d'allocation de cette classe
|
||||
request.dbsession.query(Allocation).filter(Allocation.classe == item.classe
|
||||
).update({'valeur': TotalClasse, 'pc_atteint': TotalClasse / TotalValue * 100})
|
||||
|
||||
return
|
||||
|
||||
def delete_actif(request, no_id):
|
||||
def delete_actif(cls, request, no_id):
|
||||
request.dbsession.query(Actifs).filter(Actifs.no_id == no_id).delete(synchronize_session=False)
|
||||
return
|
||||
|
||||
def get_dividends(ticker):
|
||||
d = 0
|
||||
# le ticker a des dividendes ?
|
||||
if len(ticker.dividends) > 0:
|
||||
# oui, cumuler les dividendes sur un an
|
||||
h = ticker.history(period="1y")
|
||||
nb = len(ticker.dividends)
|
||||
for i in range(nb):
|
||||
d += ticker.dividends[nb - 1 - i]
|
||||
|
||||
return d
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user