64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
# -*- 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 dateutil.relativedelta
|
|
import transaction
|
|
|
|
def execute_query(request, query, params):
|
|
"""Execute query and mark session as changed"""
|
|
request.dbsession.execute(query, params)
|
|
mark_changed(request.dbsession)
|
|
transaction.commit()
|
|
|
|
def insert_log(request, proc, msg):
|
|
query = "INSERT t_log_nuit (proc,msg) VALUES (:proc,:msg);"
|
|
execute_query(request, query, {'proc': proc, 'msg' :msg})
|
|
|
|
def truncate_log(request):
|
|
query = "TRUNCATE t_log_nuit;"
|
|
execute_query(request, query, {})
|
|
|
|
def get_log(request):
|
|
# lire les rappels non envoyés
|
|
query = "SELECT * FROM t_log_nuit;"
|
|
results = request.dbsession.execute(query, {}).fetchall()
|
|
return results
|
|
|
|
def get_email_rappels(request):
|
|
# lire les rappels non envoyés
|
|
query = """ SELECT r.*, e.c_qualite, e.c_nom, e.c_adr, e.c_adr2, e.c_ville, e.c_email, s.tel, s.nom as nom_societe
|
|
FROM email_rappels r
|
|
INNER JOIN dem_devis e ON r.societe = e.societe AND r.nochantier = e.no_id
|
|
INNER JOIN p_societe s ON r.societe = s.societe
|
|
WHERE ISNULL(envoye_le) ORDER BY no_id;"""
|
|
results = request.dbsession.execute(query, {}).fetchall()
|
|
return results
|
|
|
|
def update_rappels(request):
|
|
query = "CALL spUPD_RAPPELS();"
|
|
execute_query(request, query, {})
|
|
|
|
def update_email_rappels(request, no_id):
|
|
query = "UPDATE email_rappels SET envoye_le = NOW() WHERE no_id = :no_id;"
|
|
execute_query(request, query, {'no_id': no_id})
|
|
|
|
def get_societes(request, societe):
|
|
|
|
if societe == '0':
|
|
query = "SELECT * FROM p_societe;"
|
|
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall()
|
|
else:
|
|
query = "SELECT * FROM p_societe WHERE societe = :societe;"
|
|
results = request.dbsession.execute(query, {'societe': societe}).first()
|
|
return results
|