# -*- coding: utf8 -*- from sqlalchemy import text from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import ( scoped_session, sessionmaker, ) from zope.sqlalchemy import ZopeTransactionExtension, mark_changed from datetime import * import transaction from .default import ( execute_query, ) def get_actifs(request, no_id): if no_id == '0': query = "SELECT * FROM actifs ORDER BY categorie, symbole" results = request.dbsession.execute(query).fetchall() else: # lire le actif par son identifiant query = """SELECT * FROM actifs WHERE no_id=:no_id;""" results = request.dbsession.execute(query, {'no_id': no_id}).first() return results def update_actif(request, no_id, new_values): # formater les champs s = '' for param in new_values.keys(): if param == 'symbole': new_values['symbole'] = new_values['symbole'].upper() if s: s += ",%s=:%s" % (param, param) else: s = "%s=:%s" % (param, param) if no_id == '0': query = "INSERT INTO actifs SET %s" % s else: new_values['no_id'] = no_id query = "UPDATE actifs SET %s WHERE no_id = :no_id;" % s execute_query(request, query, new_values) def update_actif_devise(request, devise, taux): query = "UPDATE actifs SET parite = :taux WHERE devise = :devise;" execute_query(request, query, {'taux': taux, 'devise': devise}) def update_actif_valeur(request, symbole, cours): query = "UPDATE actifs SET cours = :cours WHERE symbole = :symbole;" execute_query(request, query, {'symbole': symbole, 'cours': cours}) def delete_actif(request, no_id): query = "DELETE FROM actifs WHERE no_id = :no_id ;" execute_query(request, query, {'no_id': no_id})