améliorer le rapport de génération des dossiers

This commit is contained in:
2020-08-23 14:46:10 +02:00
parent 74cd9bab55
commit 6ab71bb412
3 changed files with 43 additions and 32 deletions

View File

@@ -45,6 +45,11 @@ def get_dossier_by_sinistre(request,societe, nosin):
results = request.dbsession.execute(query).first()
return results
def get_dossiers_traites(request):
query = "SELECT * FROM dem_devis WHERE usermaj='EMAIL'";
results = request.dbsession.execute(query).fetchall()
return results
def get_clients_byName(request, societe, nom):
query = "SELECT * FROM clients WHERE societe = '%s' and nom LIKE '%s';" % (societe, nom + '%');
results = request.dbsession.execute(query).fetchall()
@@ -129,10 +134,11 @@ def insert_suivi(request, nodossier, comment):
societe = nodossier[0:2]
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})
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})
def get_similaires_byChantier(request, societe, C_NOM, C_ADR, C_CP, C_VILLE):
@@ -329,10 +335,6 @@ def insert_log_nuit(request, 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})
def truncate_log_nuit(request):
query = "TRUNCATE t_log_nuit;"
execute_query(request, query)
def get_log_demandes(request, ):
# 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

View File

@@ -34,7 +34,7 @@
</div>
<div class="row">
<h2>Derniers traitements effectués</h2>
<h2>Rapport de génération</h2>
<table class="table table-condensed">
<tr tal:repeat="item log_creation">
<td>${item.date.strftime('%d %b, %H:%M')}</td>
@@ -44,6 +44,16 @@
<td>${item.user}</td>
</tr>
</table>
<h2>Dossiers générés à contrôler</h2>
<table class="table table-condensed">
<tr tal:repeat="item dossiers_traites">
<td>${item.DATE.strftime('%d %b')}</td>
<td><a href="${request.application_url}/dossier_view/${item.societe}-${item.NO_ID}">${item.societe}-${item.NO_ID}</td>
<td>${item.NOMCLI}</td>
<td>${item.C_NOM}</td>
<td>${item.USERMAJ}</td>
</tr>
</table>
</div>
<br />

View File

@@ -869,6 +869,7 @@ def demandes(request):
cd_cli = 3209
# extraction OK ? oui, créer une dem_devis et récupèrer son no_id
traite = 0
if dem_info['c_nom'] != '':
# oui, rechercher la dem_devis concerné par le no de sinistre
nosin = dem_info['no_sinistre']
@@ -878,24 +879,22 @@ def demandes(request):
nochantier = dem_devis.NO_ID
nodossier = "%s-%s" % (societe, nochantier)
# insérer une ligne de suivi ANNULATION
insert_suivi(request, nodossier, '!!MISSION MODIFIEE PAR la MAIF')
insert_suivi(request, nodossier, '!!MISSION CONFIRMEE ou MODIFIEE PAR la MAIF')
# log de nuit
insert_log_nuit(request, 'GENERER', '--> MODIFIER DOSSIER sinistre %s' % nosin, nodossier)
print('--> MODIFIER DOSSIER sinistre %s <--' % nodossier)
else:
# dem_devis n'existe pas, creer nouveau dossier
nochantier = insert_dossier(request, societe, cd_cli, dem_info['c_nom'], dem_info['c_adr'], dem_info['c_adr2'], \
dem_info['c_cp'], dem_info['c_ville'], dem_info['c_telp'], dem_info['c_email'], nosin, dem_info['c_obs'], dem_info['tx_trav'])
nodossier = "%s-%s" % (societe, nochantier)
# log de nuit
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s' % nosin, nodossier)
print('--> CREER DOSSIER sinistre %s <--' % nodossier)
# récupère le nom du fichier et ajouter le no de dossier
filename = os.path.basename(temp_file_path)
filename = '%s-DD%s-%s' % (societe, nochantier, filename)
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file_path, filename, 'EMAIL')
traite = 1
else:
traite = 0
return traite
@@ -904,7 +903,7 @@ def demandes(request):
dem_info = get_pdf_infos1(extracted_file)
# extraction OK ? oui, rechercher la dem_devis concerné
# import pdb;pdb.set_trace()
traite = 0
if dem_info['c_nom'] != '':
# oui, rechercher la dem_devis concerné par le no de sinistre
nosin = dem_info['no_sinistre']
@@ -918,15 +917,13 @@ def demandes(request):
# insérer une ligne de suivi ANNULATION
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
# log de nuit
insert_log_nuit(request, 'GENERER', '--> ANNULATION DOSSIER sinistre %s - MAIF' % nosin, nodossier)
print('--> ANNULATION DOSSIER sinistre %s <--' % nodossier)
traite = 1
else:
traite = 0
return traite
def generer_annul_domus(request, societe, nosin, temp_file_path):
# import pdb;pdb.set_trace()
traite = 0
# oui, rechercher la dem_devis concerné par le no de sinistre
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
if dem_devis:
@@ -938,10 +935,8 @@ def demandes(request):
# insérer une ligne de suivi ANNULATION
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
# log de nuit
insert_log_nuit(request, 'GENERER','--> ANNULATION DOSSIER sinistre %s - DOMUS' % nosin, nodossier)
print('--> CREER DOSSIER sinistre %s <--' % nodossier)
traite = 1
else:
traite = 0
return traite
@@ -995,30 +990,32 @@ def demandes(request):
# convertir le fichier pdf en texte
texte, extracted_file = pdf_convert_to_txt(temp_file_path)
nbLus = nbLus + 1
# mission annulée ?
if 'Objet : ANNULATION MISSION' in texte :
# genere ANNULATION mission MAIF
# import pdb;pdb.set_trace()
n = generer_annul_maif(request, societe, extracted_file, temp_file_path)
nbAnnules = nbAnnules + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
if n > 0:
nbAnnules = nbAnnules + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
elif 'ANNULATION ORDRE DE MISSION' in texte:
# genere ANNULATION mission DOMUS
nosin = str(body)[84:95]
# import pdb;pdb.set_trace()
n = generer_annul_domus(request, societe, nosin, temp_file_path)
nbAnnules = nbAnnules + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
if n > 0:
nbAnnules = nbAnnules + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
else:
# genere le dossier d'après le mail
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
nbCrees = nbCrees + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
if n > 0:
nbCrees = nbCrees + n
# déplacer le message dans la poubelle
conn.store(num, '+FLAGS', '\\Deleted')
conn.expunge()
conn.close()
@@ -1054,7 +1051,7 @@ def demandes(request):
nbAnnules = nbAnnules + nAnnules
# log de nuit
insert_log_nuit(request, 'GENERER','- Fin GENERATION : %s emails traités, %s dossiers créés, %s dossiers annulés' % (nbLus, nbCrees, nbAnnules), '')
insert_log_nuit(request, 'GENERER','- Fin GENERATION : %s emails traités, %s dossiers créés/modifiés, %s dossiers annulés' % (nbLus, nbCrees, nbAnnules), '')
message = "%s emails ont été traités." % nbLus
liste=[]
@@ -1066,6 +1063,7 @@ def demandes(request):
msglus = bool(liste)
# lire le log
log_creation = get_log_demandes(request)
dossiers_traites = get_dossiers_traites(request)
return {
'page_title': "Liste des emails de demandes d'intervention",
@@ -1074,6 +1072,7 @@ def demandes(request):
'msglus': msglus,
'message': message,
'log_creation': log_creation,
'dossiers_traites': dossiers_traites,
}