ajout stats sur les délais de traitements dossier
This commit is contained in:
@@ -198,3 +198,17 @@ def delete_expert(request, code_cab, code_exp):
|
||||
query = "DELETE FROM p_experts WHERE code_cab = :code_cab AND code_exp = :code_exp;"
|
||||
execute_query(request, query, {'code_cab': code_cab, 'code_exp': code_exp})
|
||||
|
||||
def get_stats_delai_groupe(request, societe, datedeb, datefin):
|
||||
query = """SELECT group2, group2_lib FROM stats_delais
|
||||
WHERE societe=:societe AND id='delai_contact' AND group1 >= :datedeb AND group1 < :datefin GROUP BY group2 ORDER BY group2_lib;"""
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y%m"), 'datefin': datefin.strftime("%Y%m")})
|
||||
return results.fetchall()
|
||||
|
||||
def get_stats_delais(request, societe, datedeb, datefin, groupe):
|
||||
# lire les examens sur 12 mois glissants par moniteur
|
||||
query = """SELECT * FROM stats_delais
|
||||
WHERE societe=:societe AND id='delai_contact' AND group1 >= :datedeb AND group1 < :datefin AND group2=:groupe order by group1;"""
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y%m"),
|
||||
'datefin': datefin.strftime("%Y%m"), 'groupe': groupe})
|
||||
return results.fetchall()
|
||||
|
||||
|
||||
@@ -75,6 +75,14 @@ def get_all_chantiers(request,societe):
|
||||
results = request.dbsession.execute(query, {'societe': societe}).fetchall()
|
||||
return results
|
||||
|
||||
def get_chantiers_month(request, societe, date_sel):
|
||||
# provisoire : toute l'année -> AND MONTH(date)=MONTH(:date_sel)
|
||||
query = """SELECT * FROM dem_devis WHERE societe = :societe AND YEAR(date)=YEAR(:date_sel)
|
||||
AND delai_facture = 0 AND nomcli NOT IN ('DUMAS JEAN MICHEL','DUMAS MENUISERIE','DUMAS PEINTURE');
|
||||
"""
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'date_sel': date_sel}).fetchall()
|
||||
return results
|
||||
|
||||
def get_last_facture(request, societe, nochantier):
|
||||
query = "SELECT * FROM facture WHERE societe = :societe AND nochantier = :nochantier order by date DESC LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).first()
|
||||
@@ -89,3 +97,102 @@ def update_chantier_status(request, societe, no_id, status):
|
||||
query = "UPDATE dem_devis SET status = :status, DATEMAJ = DATEMAJ WHERE societe = :societe AND no_id = :no_id AND status <> :status;"
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'status': status})
|
||||
|
||||
def update_chantier_delais(request, societe, no_id, delai_contact, delai_rdv, delai_devis, delai_facture):
|
||||
query = """UPDATE dem_devis SET delai_contact = :delai_contact, delai_rdv = :delai_rdv, delai_devis = :delai_devis,
|
||||
delai_facture = :delai_facture, DATEMAJ = DATEMAJ
|
||||
WHERE societe = :societe AND no_id = :no_id;"""
|
||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'delai_contact': delai_contact, 'delai_rdv': delai_rdv,
|
||||
'delai_devis': delai_devis, 'delai_facture': delai_facture})
|
||||
|
||||
def get_chantiers_dates(request, societe, nochantier):
|
||||
# lire 1er contact du chantier
|
||||
query = "SELECT date, datevi FROM dem_lig WHERE societe = :societe AND no_id = :nochantier AND datevi IS NOT NULL;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).first()
|
||||
if results:
|
||||
date_contact = results.date
|
||||
date_rdv = results.datevi
|
||||
else:
|
||||
date_contact = None
|
||||
date_rdv = None
|
||||
|
||||
# lire 1er devis du chantier
|
||||
query = "SELECT date FROM devis WHERE societe = :societe AND nochantier = :nochantier order by date LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).first()
|
||||
if results:
|
||||
date_devis = results.date
|
||||
else:
|
||||
date_devis = None
|
||||
|
||||
# lire 1ere facture du chantier
|
||||
query = "SELECT date FROM facture WHERE societe = :societe AND nochantier = :nochantier order by date LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'nochantier': nochantier}).first()
|
||||
if results:
|
||||
date_facture = results.date
|
||||
else:
|
||||
date_facture = None
|
||||
return date_contact, date_rdv, date_devis, date_facture
|
||||
|
||||
def purge_annuelle(request):
|
||||
|
||||
# ----- Purger les DEVIS dont la facture est réglée de plus 10 ans
|
||||
query = """DELETE devis.* FROM devis INNER JOIN facture ON devis.societe = facture.societe and devis.no_id = facture.nodevis
|
||||
WHERE YEAR(facture.date) < YEAR(CURRENT_DATE()) - 10 AND ABS(facture.totalttc - facture.mtregl) < 1;"""
|
||||
execute_query(request, query, {})
|
||||
|
||||
# ----- Purger les FACTURES réglées de plus 10 ans
|
||||
query = """DELETE FROM facture WHERE YEAR(facture.date) < YEAR(CURRENT_DATE()) - 10 AND ABS(facture.totalttc - facture.mtregl) < 1;"""
|
||||
execute_query(request, query, {})
|
||||
|
||||
# ----- Purger les DEVIS de + de 10 ans n'ayant pas de facture
|
||||
query = """DELETE FROM devis WHERE YEAR(date) < YEAR(CURRENT_DATE()) - 10 AND nofact=0;"""
|
||||
execute_query(request, query, {})
|
||||
|
||||
# -- RAZ les liens FACTURE et DEVIS
|
||||
query = "UPDATE dem_devis SET nodevis = 0, nofact = 0, datemaj=datemaj WHERE YEAR(date) < YEAR(CURRENT_DATE()) - 10;"
|
||||
execute_query(request, query, {})
|
||||
# -- recreer les lien DEVIS
|
||||
query = """UPDATE dem_devis INNER JOIN facture ON dem_devis.societe = facture.societe and dem_devis.no_id = facture.nochantier
|
||||
SET dem_devis.nofact = facture.no_id, datemaj=datemaj WHERE YEAR(dem_devis.date) < YEAR(CURRENT_DATE()) - 10;"""
|
||||
execute_query(request, query, {})
|
||||
# -- recreer les lien factures
|
||||
query = """UPDATE dem_devis INNER JOIN devis ON dem_devis.societe = devis.societe and dem_devis.no_id = devis.nochantier
|
||||
SET dem_devis.nodevis = devis.no_id, datemaj=datemaj WHERE YEAR(dem_devis.date) < YEAR(CURRENT_DATE()) - 10;"""
|
||||
execute_query(request, query, {})
|
||||
# ---- Purger les DEM_DEVIS n'ayant aucun DEVIS ni FACTURE
|
||||
query = "DELETE FROM dem_devis WHERE YEAR(dem_devis.date) < YEAR(CURRENT_DATE()) - 10 AND nodevis = 0 AND nofact = 0;"
|
||||
execute_query(request, query, {})
|
||||
|
||||
|
||||
def get_all_clients(request):
|
||||
query = "SELECT * FROM clients;"
|
||||
results = request.dbsession.execute(query, {}).fetchall()
|
||||
return results
|
||||
|
||||
def get_last_facture_client(request, societe, cd_cli):
|
||||
query = "SELECT * FROM facture WHERE societe = :societe AND cd_cli = :cd_cli order by date DESC LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
||||
return results
|
||||
|
||||
def get_last_devis_client(request, societe, cd_cli):
|
||||
query = "SELECT * FROM devis WHERE societe = :societe AND cd_cli = :cd_cli order by date DESC LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
||||
return results
|
||||
|
||||
def get_last_chantier_client(request, societe, cd_cli):
|
||||
query = "SELECT * FROM dem_devis WHERE societe = :societe AND cd_cli = :cd_cli order by date DESC LIMIT 1;"
|
||||
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
||||
return results
|
||||
|
||||
def update_client_dern_operation(request, societe, cd_cli, dern_operation):
|
||||
if dern_operation != None:
|
||||
d_operation = dern_operation.strftime('%Y/%m/%d')
|
||||
query = "UPDATE clients SET dern_operation = :dern_operation, modif_le = modif_le WHERE societe=:societe AND cd_cli=:cd_cli;"
|
||||
execute_query(request, query, {'societe': societe, 'cd_cli': cd_cli, 'dern_operation': d_operation})
|
||||
else:
|
||||
query = "UPDATE clients SET dern_operation = NULL, modif_le = modif_le WHERE societe=:societe AND cd_cli=:cd_cli;"
|
||||
execute_query(request, query, {'societe': societe, 'cd_cli': cd_cli})
|
||||
|
||||
def delete_client_unused(request):
|
||||
query = "DELETE FROM clients WHERE cd_cli <> 1 AND dern_operation IS NULL AND YEAR(cree_le) < YEAR(CURRENT_DATE()) - 2;"
|
||||
execute_query(request, query, {})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user