ajout bouton changement de statut pour dossier
This commit is contained in:
@@ -1,77 +0,0 @@
|
|||||||
###
|
|
||||||
# app configuration
|
|
||||||
# http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/narr/environment.html
|
|
||||||
###
|
|
||||||
|
|
||||||
[app:main]
|
|
||||||
use = egg:mondumas
|
|
||||||
|
|
||||||
pyramid.reload_templates = true
|
|
||||||
pyramid.debug_authorization = false
|
|
||||||
pyramid.debug_notfound = false
|
|
||||||
pyramid.debug_routematch = false
|
|
||||||
pyramid.default_locale_name = en
|
|
||||||
pyramid.includes =
|
|
||||||
pyramid_chameleon
|
|
||||||
pyramid_debugtoolbar
|
|
||||||
pyramid_layout
|
|
||||||
pyramid_mailer
|
|
||||||
pyramid_tm
|
|
||||||
|
|
||||||
|
|
||||||
sqlalchemy.url = mysql://phuoc:phuoc!@192.168.1.17/bddevfac?charset=utf8
|
|
||||||
# sqlalchemy.url = mysql://phuoc:phuoc!@192.168.0.31/bddevfac?charset=utf8
|
|
||||||
|
|
||||||
mondumas.admin_email = cao.thien-phuoc@orange.fr
|
|
||||||
mondumas.devfac_url = mondumas:static/DEVFAC/DOCS_ATTACHES/
|
|
||||||
mondumas.devfac_dir = /DEVFAC14/DOCS_ATTACHES
|
|
||||||
|
|
||||||
# Mailer configuration
|
|
||||||
mail.host = smtp.orange.fr
|
|
||||||
mail.port = 25
|
|
||||||
mail.username = cao.thien-phuoc@orange.fr
|
|
||||||
|
|
||||||
[server:main]
|
|
||||||
use = egg:waitress#main
|
|
||||||
host = 0.0.0.0
|
|
||||||
port = 9180
|
|
||||||
|
|
||||||
###
|
|
||||||
# logging configuration
|
|
||||||
# http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/narr/logging.html
|
|
||||||
###
|
|
||||||
|
|
||||||
[loggers]
|
|
||||||
keys = root, mondumas, sqlalchemy
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys = console
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys = generic
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level = INFO
|
|
||||||
handlers = console
|
|
||||||
|
|
||||||
[logger_mondumas]
|
|
||||||
level = DEBUG
|
|
||||||
handlers =
|
|
||||||
qualname = mondumas
|
|
||||||
|
|
||||||
[logger_sqlalchemy]
|
|
||||||
level = INFO
|
|
||||||
handlers =
|
|
||||||
qualname = sqlalchemy.engine
|
|
||||||
# "level = INFO" logs SQL queries.
|
|
||||||
# "level = DEBUG" logs SQL queries and results.
|
|
||||||
# "level = WARN" logs neither. (Recommended for production systems.)
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
class = StreamHandler
|
|
||||||
args = (sys.stderr,)
|
|
||||||
level = NOTSET
|
|
||||||
formatter = generic
|
|
||||||
|
|
||||||
[formatter_generic]
|
|
||||||
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s
|
|
||||||
+331
-326
@@ -1,326 +1,331 @@
|
|||||||
# -*- coding: utf8 -*-
|
# -*- coding: utf8 -*-
|
||||||
from sqlalchemy import text
|
from sqlalchemy import text
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy.orm import (
|
from sqlalchemy.orm import (
|
||||||
scoped_session,
|
scoped_session,
|
||||||
sessionmaker,
|
sessionmaker,
|
||||||
)
|
)
|
||||||
from zope.sqlalchemy import (
|
from zope.sqlalchemy import (
|
||||||
ZopeTransactionExtension,
|
ZopeTransactionExtension,
|
||||||
mark_changed
|
mark_changed
|
||||||
)
|
)
|
||||||
|
|
||||||
from datetime import *
|
from datetime import *
|
||||||
import transaction
|
import transaction
|
||||||
import os
|
import os
|
||||||
|
|
||||||
def execute_query(request, query, params):
|
def execute_query(request, query, params):
|
||||||
"""Execute query and mark session as changed"""
|
"""Execute query and mark session as changed"""
|
||||||
request.dbsession.execute(query, params)
|
request.dbsession.execute(query, params)
|
||||||
mark_changed(request.dbsession)
|
mark_changed(request.dbsession)
|
||||||
transaction.commit()
|
transaction.commit()
|
||||||
|
|
||||||
def get_chantiers_byName(request, societe, name):
|
def get_chantiers_byName(request, societe, name):
|
||||||
|
|
||||||
query = "CALL spGET_CHANTIERS_byName('%s','%s');" % (societe, name)
|
query = "CALL spGET_CHANTIERS_byName('%s','%s');" % (societe, name)
|
||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_dossier_by_no(request,nodossier):
|
def get_dossier_by_no(request,nodossier):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
query = """
|
query = """
|
||||||
SELECT d.*, a.NOM as nom_cabinet, e.NOM as nom_expert,
|
SELECT d.*, a.NOM as nom_cabinet, e.NOM as nom_expert,
|
||||||
c.QUALITE AS cli_QUALITE, c.NOM AS cli_NOM, c.ADRESSE AS cli_ADRESSE, c.ADRESSE2 AS cli_ADRESSE2, c.CP AS cli_CP, c.VILLE AS cli_VILLE,
|
c.QUALITE AS cli_QUALITE, c.NOM AS cli_NOM, c.ADRESSE AS cli_ADRESSE, c.ADRESSE2 AS cli_ADRESSE2, c.CP AS cli_CP, c.VILLE AS cli_VILLE,
|
||||||
c.TEL1 AS cli_TEL1, c.TEL2 AS cli_TEL2, c.TELP AS cli_TELP, c.FAX AS cli_FAX, c.NOMRESP AS cli_NOMRESP
|
c.TEL1 AS cli_TEL1, c.TEL2 AS cli_TEL2, c.TELP AS cli_TELP, c.FAX AS cli_FAX, c.NOMRESP AS cli_NOMRESP
|
||||||
FROM dem_devis d
|
FROM dem_devis d
|
||||||
INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli
|
INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli
|
||||||
INNER JOIN p_cabinet a ON d.cabinet = a.code
|
INNER JOIN p_cabinet a ON d.cabinet = a.code
|
||||||
INNER JOIN p_experts e ON d.cabinet = e.code_cab and d.expert = e.code_exp
|
INNER JOIN p_experts e ON d.cabinet = e.code_cab and d.expert = e.code_exp
|
||||||
where d.societe = '%s' and d.no_id=%s;""" % (societe, no_id);
|
where d.societe = '%s' and d.no_id=%s;""" % (societe, no_id);
|
||||||
results = request.dbsession.execute(query).first()
|
results = request.dbsession.execute(query).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_dossier_by_sinistre(request,societe, nosin):
|
def get_dossier_by_sinistre(request,societe, nosin):
|
||||||
query = "SELECT * FROM dem_devis WHERE societe = '%s' and LEFT(REPLACE(nosin,' ', ''),11) = LEFT(REPLACE('%s',' ', ''),11);" % (societe, nosin);
|
query = "SELECT * FROM dem_devis WHERE societe = '%s' and LEFT(REPLACE(nosin,' ', ''),11) = LEFT(REPLACE('%s',' ', ''),11);" % (societe, nosin);
|
||||||
results = request.dbsession.execute(query).first()
|
results = request.dbsession.execute(query).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_dossiers_traites(request):
|
def get_dossiers_traites(request):
|
||||||
query = "SELECT * FROM dem_devis WHERE usermaj='EMAIL' ORDER BY DATEMAJ";
|
query = "SELECT * FROM dem_devis WHERE usermaj='EMAIL' ORDER BY DATEMAJ";
|
||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_clients_byName(request, societe, nom):
|
def get_clients_byName(request, societe, nom):
|
||||||
query = "SELECT * FROM clients WHERE societe = '%s' and nom LIKE '%s';" % (societe, nom + '%');
|
query = "SELECT * FROM clients WHERE societe = '%s' and nom LIKE '%s';" % (societe, nom + '%');
|
||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_dossier_rdv_by_no(request,nodossier, nolig):
|
def get_dossier_rdv_by_no(request,nodossier, nolig):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
|
|
||||||
if nolig == '0':
|
if nolig == '0':
|
||||||
query = "SELECT * FROM dem_lig WHERE societe = :societe AND no_id = :no_id;"
|
query = "SELECT * FROM dem_lig WHERE societe = :societe AND no_id = :no_id;"
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall()
|
||||||
else:
|
else:
|
||||||
query = """
|
query = """
|
||||||
SELECT l.*, d.C_QUALITE, d.C_NOM FROM dem_lig l INNER JOIN dem_devis d ON l.societe = d.societe and l.no_id = d.no_id
|
SELECT l.*, d.C_QUALITE, d.C_NOM FROM dem_lig l INNER JOIN dem_devis d ON l.societe = d.societe and l.no_id = d.no_id
|
||||||
where l.societe = '%s' and l.no_id=%s and l.nolig=%s;""" % (societe, no_id, nolig)
|
where l.societe = '%s' and l.no_id=%s and l.nolig=%s;""" % (societe, no_id, nolig)
|
||||||
results = request.dbsession.execute(query).first()
|
results = request.dbsession.execute(query).first()
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_documents_byChantier(request,nodossier):
|
def get_documents_byChantier(request,nodossier):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
|
|
||||||
query = "CALL spGET_DOSSIERS_byNumeo('%s',%s);" % (societe, no_id)
|
query = "CALL spGET_DOSSIERS_byNumeo('%s',%s);" % (societe, no_id)
|
||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def update_suivi(request, nodossier, nolig, new_values):
|
def update_suivi(request, nodossier, nolig, new_values):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
|
|
||||||
new_values['societe'] = societe
|
new_values['societe'] = societe
|
||||||
new_values['no_id'] = no_id
|
new_values['no_id'] = no_id
|
||||||
s = ''
|
s = ''
|
||||||
for param in new_values.keys():
|
for param in new_values.keys():
|
||||||
if s:
|
if s:
|
||||||
s += ",%s=:%s" % (param, param)
|
s += ",%s=:%s" % (param, param)
|
||||||
else:
|
else:
|
||||||
s = "%s=:%s" % (param, param)
|
s = "%s=:%s" % (param, param)
|
||||||
|
|
||||||
if nolig == '0':
|
if nolig == '0':
|
||||||
query = "INSERT INTO dem_lig SET %s" % s
|
query = "INSERT INTO dem_lig SET %s" % s
|
||||||
else:
|
else:
|
||||||
new_values['nolig'] = nolig
|
new_values['nolig'] = nolig
|
||||||
query = "UPDATE dem_lig SET %s WHERE societe = :societe AND NO_ID = :no_id AND NOLIG = :nolig ;" % s
|
query = "UPDATE dem_lig SET %s WHERE societe = :societe AND NO_ID = :no_id AND NOLIG = :nolig ;" % s
|
||||||
|
|
||||||
execute_query(request, query, new_values)
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
def insert_suivi(request, nodossier, comment):
|
def insert_suivi(request, nodossier, comment):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
|
|
||||||
query = "INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, USERMAJ) VALUES (:societe, :no_id, CURRENT_DATE(), :comment, 'EMAIL');"
|
query = "INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, USERMAJ) VALUES (:societe, :no_id, CURRENT_DATE(), :comment, 'EMAIL');"
|
||||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'comment': comment})
|
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'comment': comment})
|
||||||
|
|
||||||
query = "UPDATE dem_devis SET usermaj = 'EMAIL' WHERE SOCIETE=:societe AND NO_ID=:no_id;"
|
query = "UPDATE dem_devis SET usermaj = 'EMAIL' WHERE SOCIETE=:societe AND NO_ID=:no_id;"
|
||||||
execute_query(request, query, {'societe': societe, 'no_id': no_id})
|
execute_query(request, query, {'societe': societe, 'no_id': no_id})
|
||||||
|
|
||||||
def get_similaires_byChantier(request, societe, C_NOM, C_ADR, C_CP, C_VILLE):
|
def get_similaires_byChantier(request, societe, C_NOM, C_ADR, C_CP, C_VILLE):
|
||||||
|
|
||||||
query = """
|
query = """
|
||||||
SELECT CONCAT(societe,'-',NO_ID) AS nodossier, dem_devis.* FROM dem_devis
|
SELECT CONCAT(societe,'-',NO_ID) AS nodossier, dem_devis.* FROM dem_devis
|
||||||
WHERE societe<>:societe AND C_NOM=:C_NOM AND C_ADR=:C_ADR AND C_CP=:C_CP AND C_VILLE=:C_VILLE;"""
|
WHERE societe<>:societe AND C_NOM=:C_NOM AND C_ADR=:C_ADR AND C_CP=:C_CP AND C_VILLE=:C_VILLE;"""
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'C_NOM': C_NOM, 'C_ADR': C_ADR, 'C_CP': C_CP, 'C_VILLE': C_VILLE}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'C_NOM': C_NOM, 'C_ADR': C_ADR, 'C_CP': C_CP, 'C_VILLE': C_VILLE}).fetchall()
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_docs_attaches(request, nodossier, norapport, origine, filename):
|
def get_docs_attaches(request, nodossier, norapport, origine, filename):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
if filename == '':
|
if filename == '':
|
||||||
query = "SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier AND nodossier=0 AND origine = :origine ORDER BY cree_le;"
|
query = "SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier AND nodossier=0 AND origine = :origine ORDER BY cree_le;"
|
||||||
else:
|
else:
|
||||||
query = """SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier
|
query = """SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier
|
||||||
AND nodossier = :norapport AND origine = :origine AND nomfichier = :filename ORDER BY cree_le;"""
|
AND nodossier = :norapport AND origine = :origine AND nomfichier = :filename ORDER BY cree_le;"""
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier,
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier,
|
||||||
'norapport': norapport, 'origine': origine, 'filename': filename}).fetchall()
|
'norapport': norapport, 'origine': origine, 'filename': filename}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_photos(request, nodossier, norapport, origine):
|
def get_photos(request, nodossier, norapport, origine):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
query = """SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier
|
query = """SELECT * FROM dossier_attaches WHERE societe = :societe AND nochantier = :nochantier
|
||||||
AND nodossier = :norapport AND origine = :origine AND UPPER(RIGHT(nomfichier,3)) <> 'PDF' ORDER BY cree_le;"""
|
AND nodossier = :norapport AND origine = :origine AND UPPER(RIGHT(nomfichier,3)) <> 'PDF' ORDER BY cree_le;"""
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def delete_photos(request, nodossier, norapport, origine, nomfic):
|
def delete_photos(request, nodossier, norapport, origine, nomfic):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
# supprimer d'abord le fichier
|
# supprimer d'abord le fichier
|
||||||
if len(origine) > 1:
|
if len(origine) > 1:
|
||||||
file_path = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, nomfic)
|
file_path = '%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, nomfic)
|
||||||
else:
|
else:
|
||||||
file_path = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, nomfic)
|
file_path = '%s/%s/%s/%s/%s' % (request.registry.settings['mondumas.devfac_dir'], societe, nochantier, norapport, nomfic)
|
||||||
if os.path.exists(file_path):
|
if os.path.exists(file_path):
|
||||||
os.remove(file_path)
|
os.remove(file_path)
|
||||||
|
|
||||||
query = "DELETE FROM dossier_attaches WHERE societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;"
|
query = "DELETE FROM dossier_attaches WHERE societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine, 'nomfic': nomfic})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport, 'origine': origine, 'nomfic': nomfic})
|
||||||
|
|
||||||
def rename_photos(request, nodossier, norapport, origine, nomfic, new_nomfic):
|
def rename_photos(request, nodossier, norapport, origine, nomfic, new_nomfic):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
query = """
|
query = """
|
||||||
UPDATE dossier_attaches SET nomfichier = :new_nomfic
|
UPDATE dossier_attaches SET nomfichier = :new_nomfic
|
||||||
WHERE societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;
|
WHERE societe=:societe AND nochantier=:nochantier AND nodossier=:norapport AND origine=:origine AND nomfichier=:nomfic;
|
||||||
"""
|
"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
||||||
'origine': origine, 'nomfic': nomfic, 'new_nomfic': new_nomfic})
|
'origine': origine, 'nomfic': nomfic, 'new_nomfic': new_nomfic})
|
||||||
|
|
||||||
def update_dossier(request, nodossier, new_values):
|
def update_dossier(request, nodossier, new_values):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
s = ''
|
s = ''
|
||||||
for param in new_values.keys():
|
for param in new_values.keys():
|
||||||
if param == 'C_VILLE':
|
if param == 'C_VILLE':
|
||||||
new_values['C_VILLE'] = new_values['C_VILLE'].upper()
|
new_values['C_VILLE'] = new_values['C_VILLE'].upper()
|
||||||
|
|
||||||
if s:
|
if s:
|
||||||
s += ",%s=:%s" % (param, param)
|
s += ",%s=:%s" % (param, param)
|
||||||
else:
|
else:
|
||||||
s = "%s=:%s" % (param, param)
|
s = "%s=:%s" % (param, param)
|
||||||
new_values['societe'] = societe
|
new_values['societe'] = societe
|
||||||
new_values['nochantier'] = nochantier
|
new_values['nochantier'] = nochantier
|
||||||
query = "UPDATE dem_devis SET %s WHERE societe=:societe AND no_id=:nochantier" % s
|
query = "UPDATE dem_devis SET %s WHERE societe=:societe AND no_id=:nochantier" % s
|
||||||
execute_query(request, query, new_values)
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
query = "CALL spUPD_CHANTIER_COORD(:societe, :nochantier);"
|
query = "CALL spUPD_CHANTIER_COORD(:societe, :nochantier);"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier})
|
||||||
|
|
||||||
def update_dossier_cloture(request, nodossier, logged_in):
|
def update_dossier_cloture(request, nodossier, status, logged_in):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
# met le montant regle à 1 centime pour terminé le dossier
|
# met le montant regle à 1 centime pour terminé le dossier
|
||||||
query = "UPDATE dem_devis SET STATUS = 'Annulée', USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier"
|
query = "UPDATE dem_devis SET STATUS = :status, USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'logged_in': logged_in})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'status': status, 'logged_in': logged_in})
|
||||||
|
|
||||||
def insert_dossier_attaches(request, nodossier, norapport, origine, filename, filesize, user):
|
def insert_dossier_attaches(request, nodossier, norapport, origine, filename, filesize, user):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
# fichier existe ?
|
# fichier existe ?
|
||||||
item = get_docs_attaches(request, nodossier, norapport, origine, filename)
|
item = get_docs_attaches(request, nodossier, norapport, origine, filename)
|
||||||
if item:
|
if item:
|
||||||
return
|
return
|
||||||
# enregistrer dans la table dossier_attaches
|
# enregistrer dans la table dossier_attaches
|
||||||
query = """INSERT INTO dossier_attaches (societe, nochantier, nodossier, origine, nomfichier, taillefichier, cree_le, usermaj)
|
query = """INSERT INTO dossier_attaches (societe, nochantier, nodossier, origine, nomfichier, taillefichier, cree_le, usermaj)
|
||||||
VALUES(:societe,:nochantier,:norapport,:origine,:filename,:filesize,NOW(),:user);"""
|
VALUES(:societe,:nochantier,:norapport,:origine,:filename,:filesize,NOW(),:user);"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'norapport': norapport,
|
||||||
'origine': origine, 'filename': filename, 'filesize': filesize, 'user': user})
|
'origine': origine, 'filename': filename, 'filesize': filesize, 'user': user})
|
||||||
|
|
||||||
def get_rapport_by_no(request,nodossier,date_inter):
|
def get_rapport_by_no(request,nodossier,date_inter):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = nodossier[3:]
|
nochantier = nodossier[3:]
|
||||||
if date_inter == '':
|
if date_inter == '':
|
||||||
query = "SELECT * FROM dem_rdf WHERE societe = :societe AND nochantier = :nochantier;"
|
query = "SELECT * FROM dem_rdf WHERE societe = :societe AND nochantier = :nochantier;"
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).fetchall()
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).fetchall()
|
||||||
else:
|
else:
|
||||||
query = "SELECT * FROM dem_rdf WHERE societe = :societe AND nochantier = :nochantier AND date_inter=:date_inter;"
|
query = "SELECT * FROM dem_rdf WHERE societe = :societe AND nochantier = :nochantier AND date_inter=:date_inter;"
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'date_inter': date_inter}).first()
|
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier, 'date_inter': date_inter}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_rapport_by_no_id(request,no_id):
|
def get_rapport_by_no_id(request,no_id):
|
||||||
query = "SELECT * FROM dem_rdf WHERE no_id = :no_id;"
|
query = "SELECT * FROM dem_rdf WHERE no_id = :no_id;"
|
||||||
results = request.dbsession.execute(query, {'no_id': no_id}).first()
|
results = request.dbsession.execute(query, {'no_id': no_id}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_articles_rdf(request):
|
def get_articles_rdf(request):
|
||||||
query = "SELECT * FROM articles WHERE REF LIKE 'RDF%';"
|
query = "SELECT * FROM articles WHERE REF LIKE 'RDF%';"
|
||||||
results = request.dbsession.execute(query).fetchall()
|
results = request.dbsession.execute(query).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_rapport_rdf(request):
|
def get_rapport_rdf(request):
|
||||||
# les rapports de RDF (100 derniers)
|
# les rapports de RDF (100 derniers)
|
||||||
query = "SELECT * FROM dem_rdf ORDER BY societe, no_id DESC LIMIT 100;"
|
query = "SELECT * FROM dem_rdf ORDER BY societe, no_id DESC LIMIT 100;"
|
||||||
results = request.dbsession.execute(query, ).fetchall()
|
results = request.dbsession.execute(query, ).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def insert_rapport(request,nodossier,logged_in):
|
def insert_rapport(request,nodossier,logged_in):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = nodossier[3:]
|
nochantier = nodossier[3:]
|
||||||
|
|
||||||
query = """INSERT INTO dem_rdf (societe, nochantier, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, auteur_code)
|
query = """INSERT INTO dem_rdf (societe, nochantier, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, auteur_code)
|
||||||
SELECT societe, no_id, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, :auteur_code FROM dem_devis WHERE societe = :societe AND no_id = :nochantier;"""
|
SELECT societe, no_id, cd_cli, nomcli, c_qualite, c_nom, c_adr, c_adr2, c_cp, c_ville, c_tel1, c_telp, nosin, :auteur_code FROM dem_devis WHERE societe = :societe AND no_id = :nochantier;"""
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'auteur_code': logged_in})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'auteur_code': logged_in})
|
||||||
|
|
||||||
def get_rdf_causes(request, code):
|
def get_rdf_causes(request, code):
|
||||||
query = "SELECT libelle FROM rdf_causes where code LIKE :code;"
|
query = "SELECT libelle FROM rdf_causes where code LIKE :code;"
|
||||||
results = request.dbsession.execute(query, {'code': code + '%'}).fetchall()
|
results = request.dbsession.execute(query, {'code': code + '%'}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def update_rapport(request, nodossier, dateinter, new_values):
|
def update_rapport(request, nodossier, dateinter, new_values):
|
||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
nochantier = int(nodossier[3:])
|
nochantier = int(nodossier[3:])
|
||||||
|
|
||||||
s = ''
|
s = ''
|
||||||
for param in new_values.keys():
|
for param in new_values.keys():
|
||||||
if s:
|
if s:
|
||||||
s += ",%s=:%s" % (param, param)
|
s += ",%s=:%s" % (param, param)
|
||||||
else:
|
else:
|
||||||
s = "%s=:%s" % (param, param)
|
s = "%s=:%s" % (param, param)
|
||||||
new_values['societe'] = societe
|
new_values['societe'] = societe
|
||||||
new_values['nochantier'] = nochantier
|
new_values['nochantier'] = nochantier
|
||||||
new_values['dateinter'] = dateinter
|
new_values['dateinter'] = dateinter
|
||||||
|
|
||||||
query = "UPDATE dem_rdf SET %s WHERE societe=:societe AND nochantier=:nochantier AND date_inter=:dateinter;" % s
|
query = "UPDATE dem_rdf SET %s WHERE societe=:societe AND nochantier=:nochantier AND date_inter=:dateinter;" % s
|
||||||
execute_query(request, query, new_values)
|
execute_query(request, query, new_values)
|
||||||
|
|
||||||
def delete_rapport(request, no_id):
|
def delete_rapport(request, no_id):
|
||||||
|
|
||||||
query = "DELETE FROM dem_rdf WHERE no_id = :no_id"
|
query = "DELETE FROM dem_rdf WHERE no_id = :no_id"
|
||||||
execute_query(request, query, {'no_id': no_id})
|
execute_query(request, query, {'no_id': no_id})
|
||||||
|
|
||||||
def update_rapport_validate(request, no_id):
|
def update_rapport_validate(request, no_id):
|
||||||
query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE no_id = :no_id"
|
query = "UPDATE dem_rdf SET date_relu=CURRENT_DATE WHERE no_id = :no_id"
|
||||||
execute_query(request, query, {'no_id': no_id})
|
execute_query(request, query, {'no_id': no_id})
|
||||||
|
|
||||||
def update_rapport_facture(request, no_id):
|
def update_rapport_facture(request, no_id):
|
||||||
query = "UPDATE dem_rdf SET date_facture=CURRENT_DATE WHERE no_id = :no_id"
|
query = "UPDATE dem_rdf SET date_facture=CURRENT_DATE WHERE no_id = :no_id"
|
||||||
execute_query(request, query, {'no_id': no_id})
|
execute_query(request, query, {'no_id': no_id})
|
||||||
|
|
||||||
def update_rapport_client(request, norapport, nomClient, codeClient):
|
def update_rapport_client(request, norapport, nomClient, codeClient):
|
||||||
societe = codeClient[0:2]
|
societe = codeClient[0:2]
|
||||||
cd_cli = int(codeClient[3:])
|
cd_cli = int(codeClient[3:])
|
||||||
query = "UPDATE dem_rdf SET CD_CLI = :cd_cli, NOMCLI = :nomClient WHERE no_id = :norapport"
|
query = "UPDATE dem_rdf SET CD_CLI = :cd_cli, NOMCLI = :nomClient WHERE no_id = :norapport"
|
||||||
execute_query(request, query, {'norapport': norapport, 'cd_cli': cd_cli, 'nomClient': nomClient})
|
execute_query(request, query, {'norapport': norapport, 'cd_cli': cd_cli, 'nomClient': nomClient})
|
||||||
|
|
||||||
def insert_facture_rdf(request, societe, nochantier, cd_cli, nomcli, user, ref, date_rapport):
|
def insert_facture_rdf(request, societe, nochantier, cd_cli, nomcli, user, ref, date_rapport):
|
||||||
# créer une facture vierge à partir du dossier
|
# créer une facture vierge à partir du dossier
|
||||||
query = "CALL spINS_FACTURE_RDF(:societe, :nochantier, :cd_cli, :nomcli, :user, :ref, :date_rapport)"
|
query = "CALL spINS_FACTURE_RDF(:societe, :nochantier, :cd_cli, :nomcli, :user, :ref, :date_rapport)"
|
||||||
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'cd_cli': cd_cli, 'nomcli': nomcli, 'user': user, 'ref': ref, 'date_rapport': date_rapport})
|
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'cd_cli': cd_cli, 'nomcli': nomcli, 'user': user, 'ref': ref, 'date_rapport': date_rapport})
|
||||||
|
|
||||||
def insert_dossier(request, societe, cd_cli, c_nom, c_adr, c_adr2, c_cp, c_ville, c_telp, c_email, nosin, nopol, c_obs, tx_trav):
|
def insert_dossier(request, societe, cd_cli, c_nom, c_adr, c_adr2, c_cp, c_ville, c_telp, c_email, nosin, nopol, c_obs, tx_trav):
|
||||||
# créer une dem_devis selon l'email de l'OS
|
# créer une dem_devis selon l'email de l'OS
|
||||||
query = """CALL spINS_DEMANDES(:societe, :cd_cli, :c_nom, :c_adr, :c_adr2, :c_cp, :c_ville, :c_telp, :c_email, 'MR', 6, :nosin, :nopol, :c_obs, :tx_trav, 'EMAIL');"""
|
query = """CALL spINS_DEMANDES(:societe, :cd_cli, :c_nom, :c_adr, :c_adr2, :c_cp, :c_ville, :c_telp, :c_email, 'MR', 6, :nosin, :nopol, :c_obs, :tx_trav, 'EMAIL');"""
|
||||||
execute_query(request, query, {'societe': societe, 'cd_cli': cd_cli, 'c_nom': c_nom, 'c_adr': c_adr, 'c_adr2': c_adr2, 'c_cp': c_cp,
|
execute_query(request, query, {'societe': societe, 'cd_cli': cd_cli, 'c_nom': c_nom, 'c_adr': c_adr, 'c_adr2': c_adr2, 'c_cp': c_cp,
|
||||||
'c_ville': c_ville,'c_telp': c_telp, 'nosin': nosin, 'nopol': nopol, 'c_obs': c_obs, 'tx_trav': tx_trav, 'c_email': c_email})
|
'c_ville': c_ville,'c_telp': c_telp, 'nosin': nosin, 'nopol': nopol, 'c_obs': c_obs, 'tx_trav': tx_trav, 'c_email': c_email})
|
||||||
|
|
||||||
query = "SELECT no_id FROM dem_devis WHERE societe = :societe AND date = curdate() AND cd_cli = :cd_cli ORDER BY no_id desc LIMIT 1;"
|
query = "SELECT no_id FROM dem_devis WHERE societe = :societe AND date = curdate() AND cd_cli = :cd_cli ORDER BY no_id desc LIMIT 1;"
|
||||||
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
||||||
return results.no_id
|
return results.no_id
|
||||||
|
|
||||||
def get_cabinet(request, code):
|
def get_cabinet(request, code):
|
||||||
query = "SELECT * FROM p_cabinet where code = :code;"
|
query = "SELECT * FROM p_cabinet where code = :code;"
|
||||||
results = request.dbsession.execute(query, {'code': code}).first()
|
results = request.dbsession.execute(query, {'code': code}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_experts(request, code_cab, code_exp):
|
def get_experts(request, code_cab, code_exp):
|
||||||
if code_exp == 0:
|
if code_exp == 0:
|
||||||
query = "SELECT * FROM p_experts where code_cab = :code_cab;"
|
query = "SELECT * FROM p_experts where code_cab = :code_cab;"
|
||||||
results = request.dbsession.execute(query, {'code_cab': code_cab}).fetchall()
|
results = request.dbsession.execute(query, {'code_cab': code_cab}).fetchall()
|
||||||
else:
|
else:
|
||||||
query = "SELECT * FROM p_experts where code_cab = :code_cab AND code_exp = :code_exp;"
|
query = "SELECT * FROM p_experts where code_cab = :code_cab AND code_exp = :code_exp;"
|
||||||
results = request.dbsession.execute(query, {'code_cab': code_cab, 'code_exp': code_exp}).first()
|
results = request.dbsession.execute(query, {'code_cab': code_cab, 'code_exp': code_exp}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def insert_log_nuit(request, proc, msg, nodossier):
|
def insert_log_nuit(request, proc, msg, nodossier):
|
||||||
query = "INSERT INTO t_log_nuit (proc,msg, nodossier) VALUES (:proc, :msg, :nodossier);"
|
query = "INSERT INTO t_log_nuit (proc,msg, nodossier) VALUES (:proc, :msg, :nodossier);"
|
||||||
execute_query(request, query, {'proc': proc, 'msg': msg, 'nodossier': nodossier})
|
execute_query(request, query, {'proc': proc, 'msg': msg, 'nodossier': nodossier})
|
||||||
|
|
||||||
def get_log_demandes(request, ):
|
def get_log_demandes(request, ):
|
||||||
# lire le log de nuit
|
# lire le log de nuit
|
||||||
query = """SELECT *, (SELECT usermaj FROM dem_devis WHERE societe=LEFT(nodossier,2) AND no_id=RIGHT(nodossier,6)) AS user
|
query = """SELECT *, (SELECT usermaj FROM dem_devis WHERE societe=LEFT(nodossier,2) AND no_id=RIGHT(nodossier,6)) AS user
|
||||||
FROM t_log_nuit WHERE proc = 'GENERER';"""
|
FROM t_log_nuit WHERE proc = 'GENERER';"""
|
||||||
results = request.dbsession.execute(query, )
|
results = request.dbsession.execute(query, )
|
||||||
return results.fetchall()
|
return results.fetchall()
|
||||||
|
|
||||||
|
def get_status_by_id(request, code):
|
||||||
|
query = """SELECT libelle FROM bddevfac.p_statuts WHERE code = :code"""
|
||||||
|
results = request.dbsession.execute(query, {'code': code})
|
||||||
|
return results.fetchall()
|
||||||
@@ -329,20 +329,30 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<p class="text-center"><b>Voulez-vous clôturer le dossier ?</b></p>
|
<p class="text-center"><b>Voulez-vous clôturer le dossier ?</b></p>
|
||||||
</div>
|
</div>
|
||||||
<label class="control-label col-xs-4">Sélectionner le type de clôture :</label>
|
<div class="row">
|
||||||
<div class="col-xs-8">
|
<label class="control-label col-xs-4" for="status">Sélectionner le statut :</label>
|
||||||
<label class="radio"><input type="radio" name="type_act" value="annulé" checked>Annulé</label>
|
<div class="col-xs-8">
|
||||||
<label class="radio"><input type="radio" name="type_act" value="refusé">Refusé</label>
|
<select class="form-control" id="status" name="status">
|
||||||
<label class="radio"><input type="radio" name="type_act" value="en attente">En attente</label>
|
<div tal:repeat="item status">
|
||||||
|
<option value="${item}" tal:attributes="selected dossier.STATUS==item[0] and 'selected' or None">${item}</option>
|
||||||
|
</div>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<label class="control-label col-xs-4">Motif :</label>
|
<br>
|
||||||
<div class="col-xs-8">
|
<div class="row">
|
||||||
<input class="form-control" type="text" id="motif" name="motif" value=""
|
<label class="control-label col-xs-4" for="motif">Motif :</label>
|
||||||
placeholder="65 caractères maximum"
|
<div class="col-xs-8">
|
||||||
data-fv-stringlength="true"
|
<input class="form-control" type="text" id="motif" name="motif" value=""
|
||||||
data-fv-stringlength-max="65"
|
placeholder="65 caractères maximum"
|
||||||
data-fv-stringlength-message="65 caractères maximum"/>
|
data-fv-notempty="true"
|
||||||
|
data-fv-notempty-message="Veuillez remplir un motif"
|
||||||
|
data-fv-stringlength="true"
|
||||||
|
data-fv-stringlength-max="65"
|
||||||
|
data-fv-stringlength-message="65 caractères maximum"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<br>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
|
||||||
<button type="submit" class="btn btn-warning" name="form.close">Clôturer</button>
|
<button type="submit" class="btn btn-warning" name="form.close">Clôturer</button>
|
||||||
|
|||||||
@@ -126,15 +126,25 @@ def dossier_view(request):
|
|||||||
# select background color according to society
|
# select background color according to society
|
||||||
bg_color = "bg-%s" % societe
|
bg_color = "bg-%s" % societe
|
||||||
|
|
||||||
if 'form.close' in request.params:
|
status = ["0 | Non traité", "1 | Contact pris", "2 | RDV pris", "3 | Devis établi", "4 | Devis accepté", "5 | Trav. plan",
|
||||||
|
"6 | Facturé", "7 | Réglé part.", "8 | Réglé", "10 | Annulé", "11 | Refusé", "12 | Attente"]
|
||||||
|
|
||||||
action = request.params["type_act"]
|
if 'form.close' in request.params:
|
||||||
|
status = request.params["status"]
|
||||||
motif = request.params["motif"]
|
motif = request.params["motif"]
|
||||||
|
|
||||||
comment = 'Le dossier est' + action + 'car' + motif
|
code = status[:2].strip()
|
||||||
|
|
||||||
|
action = str(get_status_by_id(request, code)[0].libelle)
|
||||||
|
|
||||||
|
if int(code) < 10:
|
||||||
|
comment = action + " pour ce dossier car " + motif
|
||||||
|
else:
|
||||||
|
comment = 'Le dossier est ' + action + ' car ' + motif
|
||||||
|
|
||||||
insert_suivi(request, nodossier, comment)
|
insert_suivi(request, nodossier, comment)
|
||||||
|
|
||||||
update_dossier_cloture(request, nodossier, logged_in)
|
update_dossier_cloture(request, nodossier, code, logged_in)
|
||||||
request.session.flash(u"Le dossier a été cloturé avec succès.", 'success')
|
request.session.flash(u"Le dossier a été cloturé avec succès.", 'success')
|
||||||
return HTTPFound(url)
|
return HTTPFound(url)
|
||||||
|
|
||||||
@@ -153,6 +163,7 @@ def dossier_view(request):
|
|||||||
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
|
||||||
'bg_color': bg_color,
|
'bg_color': bg_color,
|
||||||
'access': access,
|
'access': access,
|
||||||
|
'status': status,
|
||||||
}
|
}
|
||||||
|
|
||||||
@view_config(route_name='dossier_selected', permission='view')
|
@view_config(route_name='dossier_selected', permission='view')
|
||||||
|
|||||||
Reference in New Issue
Block a user