tuning purge mensuelle
This commit is contained in:
@@ -132,35 +132,35 @@ def get_chantiers_dates(request, societe, nochantier):
|
|||||||
date_facture = None
|
date_facture = None
|
||||||
return date_contact, date_rdv, date_devis, date_facture
|
return date_contact, date_rdv, date_devis, date_facture
|
||||||
|
|
||||||
def purge_annuelle(request):
|
def purge_mensuelle(request, until_date):
|
||||||
|
|
||||||
# ----- Purger les DEVIS dont la facture est réglée de plus 10 ans
|
# ----- Purger les DEVIS dont la facture est réglée antérieure à until_date
|
||||||
query = """DELETE devis.* FROM devis INNER JOIN facture ON devis.societe = facture.societe and devis.no_id = facture.nodevis
|
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;"""
|
WHERE facture.date < :until_date AND ABS(facture.totalttc - facture.mtregl) < 1;"""
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
|
|
||||||
# ----- Purger les FACTURES réglées de plus 10 ans
|
# ----- Purger les FACTURES réglées antérieure à until_date
|
||||||
query = """DELETE FROM facture WHERE YEAR(facture.date) < YEAR(CURRENT_DATE()) - 10 AND ABS(facture.totalttc - facture.mtregl) < 1;"""
|
query = """DELETE FROM facture WHERE facture.date < :until_date AND ABS(facture.totalttc - facture.mtregl) < 1;"""
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
|
|
||||||
# ----- Purger les DEVIS de + de 10 ans n'ayant pas de facture
|
# ----- Purger les DEVIS n'ayant pas de facture antérieure à until_date
|
||||||
query = """DELETE FROM devis WHERE YEAR(date) < YEAR(CURRENT_DATE()) - 10 AND nofact=0;"""
|
query = """DELETE FROM devis WHERE devis.date < :until_date AND nofact=0;"""
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
|
|
||||||
# -- RAZ les liens FACTURE et DEVIS
|
# -- RAZ les liens FACTURE et DEVIS
|
||||||
query = "UPDATE dem_devis SET nodevis = 0, nofact = 0, datemaj=datemaj WHERE YEAR(date) < YEAR(CURRENT_DATE()) - 10;"
|
query = "UPDATE dem_devis SET nodevis = 0, nofact = 0, datemaj=datemaj WHERE dem_devis.date < :until_date;"
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
# -- recreer les lien DEVIS
|
# -- recreer les lien DEVIS
|
||||||
query = """UPDATE dem_devis INNER JOIN facture ON dem_devis.societe = facture.societe and dem_devis.no_id = facture.nochantier
|
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;"""
|
SET dem_devis.nofact = facture.no_id, dem_devis.datemaj=dem_devis.datemaj WHERE dem_devis.date < :until_date;"""
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
# -- recreer les lien factures
|
# -- recreer les lien factures
|
||||||
query = """UPDATE dem_devis INNER JOIN devis ON dem_devis.societe = devis.societe and dem_devis.no_id = devis.nochantier
|
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;"""
|
SET dem_devis.nodevis = devis.no_id, dem_devis.datemaj=dem_devis.datemaj WHERE dem_devis.date < :until_date"""
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
# ---- Purger les DEM_DEVIS n'ayant aucun DEVIS ni FACTURE
|
# ---- 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;"
|
query = "DELETE FROM dem_devis WHERE date < :until_date AND nodevis = 0 AND nofact = 0;"
|
||||||
execute_query(request, query, {})
|
execute_query(request, query, {'until_date': until_date})
|
||||||
|
|
||||||
|
|
||||||
def get_all_clients(request):
|
def get_all_clients(request):
|
||||||
@@ -173,6 +173,11 @@ def get_last_facture_client(request, societe, cd_cli):
|
|||||||
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
|
return results
|
||||||
|
|
||||||
|
def get_last_payment_client(request, societe, cd_cli):
|
||||||
|
query = "SELECT * FROM liv_bnq 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):
|
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;"
|
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()
|
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
|
||||||
|
|||||||
@@ -32,14 +32,28 @@ def batch_nuit(request):
|
|||||||
# ----- effacer le log
|
# ----- effacer le log
|
||||||
truncate_log(request)
|
truncate_log(request)
|
||||||
|
|
||||||
# ----- PURGE des données obsolètes LE SAMEDI
|
# ----- PURGE des données obsolètes
|
||||||
insert_log(request, 'PURGE','- Début PURGE DES DONNEES OBSOLETES')
|
insert_log(request, 'PURGE','- Début PURGE DES DONNEES OBSOLETES')
|
||||||
TODAY = date.today()
|
TODAY = date.today()
|
||||||
if TODAY.weekday() == 5 :
|
# purger tous les 1er du mois
|
||||||
# purge_annuelle(request)
|
if TODAY.day() == 1 :
|
||||||
# purge_clients(request)
|
until_date = date(TODAY.year, TODAY.month, 1).strftime('%Y-%m-%d')
|
||||||
|
purge_mensuelle(request, until_date)
|
||||||
|
purge_clients(request)
|
||||||
delete_orphan_attached_files(request)
|
delete_orphan_attached_files(request)
|
||||||
|
|
||||||
|
# ----- MAJ STATS DELAIS de traitements des dossiers sur 1 an
|
||||||
|
insert_log(request, 'STATS', '- Début MAJ STATS DES PERFORMANCES')
|
||||||
|
societes = ['PL', 'ME', 'PE']
|
||||||
|
datejour = TODAY
|
||||||
|
groupes = ['MAIF', 'AXA', 'X']
|
||||||
|
for i in range(12):
|
||||||
|
for societe in societes:
|
||||||
|
for groupe in groupes:
|
||||||
|
update_stats_delais(request, societe, datejour.strftime('%Y-%m-%d'), groupe)
|
||||||
|
# recule d'un mois
|
||||||
|
datejour = datejour + relativedelta(months=-1)
|
||||||
|
|
||||||
# ----- RAPPELS DES RENDEZ-VOUS
|
# ----- RAPPELS DES RENDEZ-VOUS
|
||||||
update_rappels(request)
|
update_rappels(request)
|
||||||
# attendre 5 secondes
|
# attendre 5 secondes
|
||||||
@@ -177,17 +191,12 @@ def batch_test(request):
|
|||||||
|
|
||||||
# à revoir
|
# à revoir
|
||||||
# update_chantiers_status(request)
|
# update_chantiers_status(request)
|
||||||
# update_chantiers_delais(request, '2020/12/01')
|
|
||||||
# calculer les délais de traitements des dossiers sur 1 an
|
TODAY = date.today()
|
||||||
societes = ['PL', 'ME', 'PE']
|
until_date = date(TODAY.year - 10, TODAY.month, 1)
|
||||||
datejour = date.today()
|
purge_mensuelle(request, until_date)
|
||||||
groupes = ['MAIF', 'AXA', 'X']
|
purge_clients(request)
|
||||||
for i in range(12):
|
delete_orphan_attached_files(request)
|
||||||
for societe in societes:
|
|
||||||
for groupe in groupes:
|
|
||||||
update_stats_delais(request, societe, datejour.strftime('%Y%m%d'), groupe)
|
|
||||||
# recule d'un mois
|
|
||||||
datejour = datejour + relativedelta(months=-1)
|
|
||||||
|
|
||||||
|
|
||||||
return Response('Batch nuit terminé OK')
|
return Response('Batch nuit terminé OK')
|
||||||
@@ -330,15 +339,20 @@ def purge_clients(request):
|
|||||||
if facture:
|
if facture:
|
||||||
dern_operation = facture.DATE
|
dern_operation = facture.DATE
|
||||||
else:
|
else:
|
||||||
# lire le devis le + récent
|
# lire le réglemnet le + récent
|
||||||
devis = get_last_devis_client(request, client.societe, client.CD_CLI)
|
payment = get_last_payment_client(request, client.societe, client.CD_CLI)
|
||||||
if devis:
|
if payment:
|
||||||
dern_operation = devis.DATE
|
dern_operation = payment.DATE
|
||||||
else:
|
else:
|
||||||
# lire le chantier le + récent
|
# lire le devis le + récent
|
||||||
chantier = get_last_chantier_client(request, client.societe, client.CD_CLI)
|
devis = get_last_devis_client(request, client.societe, client.CD_CLI)
|
||||||
if chantier:
|
if devis:
|
||||||
dern_operation = chantier.DATE
|
dern_operation = devis.DATE
|
||||||
|
else:
|
||||||
|
# lire le chantier le + récent
|
||||||
|
chantier = get_last_chantier_client(request, client.societe, client.CD_CLI)
|
||||||
|
if chantier:
|
||||||
|
dern_operation = chantier.DATE
|
||||||
|
|
||||||
# mémoriser dernière opération
|
# mémoriser dernière opération
|
||||||
update_client_dern_operation(request, client.societe, client.CD_CLI, dern_operation)
|
update_client_dern_operation(request, client.societe, client.CD_CLI, dern_operation)
|
||||||
|
|||||||
Reference in New Issue
Block a user