améliorer le rapport de génération des dossiers
This commit is contained in:
@@ -45,6 +45,11 @@ def get_dossier_by_sinistre(request,societe, nosin):
|
|||||||
results = request.dbsession.execute(query).first()
|
results = request.dbsession.execute(query).first()
|
||||||
return results
|
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):
|
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()
|
||||||
@@ -129,11 +134,12 @@ def insert_suivi(request, nodossier, comment):
|
|||||||
societe = nodossier[0:2]
|
societe = nodossier[0:2]
|
||||||
no_id = nodossier[3:]
|
no_id = nodossier[3:]
|
||||||
|
|
||||||
query = """
|
query = "INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, USERMAJ) VALUES (:societe, :no_id, CURRENT_DATE(), :comment, 'EMAIL');"
|
||||||
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;"
|
||||||
|
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 = """
|
||||||
@@ -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);"
|
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 truncate_log_nuit(request):
|
|
||||||
query = "TRUNCATE t_log_nuit;"
|
|
||||||
execute_query(request, query)
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<h2>Derniers traitements effectués</h2>
|
<h2>Rapport de génération</h2>
|
||||||
<table class="table table-condensed">
|
<table class="table table-condensed">
|
||||||
<tr tal:repeat="item log_creation">
|
<tr tal:repeat="item log_creation">
|
||||||
<td>${item.date.strftime('%d %b, %H:%M')}</td>
|
<td>${item.date.strftime('%d %b, %H:%M')}</td>
|
||||||
@@ -44,6 +44,16 @@
|
|||||||
<td>${item.user}</td>
|
<td>${item.user}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</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>
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|||||||
@@ -869,6 +869,7 @@ def demandes(request):
|
|||||||
cd_cli = 3209
|
cd_cli = 3209
|
||||||
|
|
||||||
# extraction OK ? oui, créer une dem_devis et récupèrer son no_id
|
# extraction OK ? oui, créer une dem_devis et récupèrer son no_id
|
||||||
|
traite = 0
|
||||||
if dem_info['c_nom'] != '':
|
if dem_info['c_nom'] != '':
|
||||||
# oui, rechercher la dem_devis concerné par le no de sinistre
|
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||||
nosin = dem_info['no_sinistre']
|
nosin = dem_info['no_sinistre']
|
||||||
@@ -878,24 +879,22 @@ def demandes(request):
|
|||||||
nochantier = dem_devis.NO_ID
|
nochantier = dem_devis.NO_ID
|
||||||
nodossier = "%s-%s" % (societe, nochantier)
|
nodossier = "%s-%s" % (societe, nochantier)
|
||||||
# insérer une ligne de suivi ANNULATION
|
# 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
|
# log de nuit
|
||||||
insert_log_nuit(request, 'GENERER', '--> MODIFIER DOSSIER sinistre %s' % nosin, nodossier)
|
print('--> MODIFIER DOSSIER sinistre %s <--' % nodossier)
|
||||||
else:
|
else:
|
||||||
# dem_devis n'existe pas, creer nouveau dossier
|
# 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'], \
|
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'])
|
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)
|
nodossier = "%s-%s" % (societe, nochantier)
|
||||||
# log de nuit
|
# 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
|
# récupère le nom du fichier et ajouter le no de dossier
|
||||||
filename = os.path.basename(temp_file_path)
|
filename = os.path.basename(temp_file_path)
|
||||||
filename = '%s-DD%s-%s' % (societe, nochantier, filename)
|
filename = '%s-DD%s-%s' % (societe, nochantier, filename)
|
||||||
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, nochantier, '0', 0, temp_file_path, filename, 'EMAIL')
|
||||||
traite = 1
|
traite = 1
|
||||||
else:
|
|
||||||
traite = 0
|
|
||||||
|
|
||||||
return traite
|
return traite
|
||||||
|
|
||||||
@@ -904,7 +903,7 @@ def demandes(request):
|
|||||||
dem_info = get_pdf_infos1(extracted_file)
|
dem_info = get_pdf_infos1(extracted_file)
|
||||||
# extraction OK ? oui, rechercher la dem_devis concerné
|
# extraction OK ? oui, rechercher la dem_devis concerné
|
||||||
|
|
||||||
# import pdb;pdb.set_trace()
|
traite = 0
|
||||||
if dem_info['c_nom'] != '':
|
if dem_info['c_nom'] != '':
|
||||||
# oui, rechercher la dem_devis concerné par le no de sinistre
|
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||||
nosin = dem_info['no_sinistre']
|
nosin = dem_info['no_sinistre']
|
||||||
@@ -918,15 +917,13 @@ def demandes(request):
|
|||||||
# insérer une ligne de suivi ANNULATION
|
# insérer une ligne de suivi ANNULATION
|
||||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
||||||
# log de nuit
|
# log de nuit
|
||||||
insert_log_nuit(request, 'GENERER', '--> ANNULATION DOSSIER sinistre %s - MAIF' % nosin, nodossier)
|
print('--> ANNULATION DOSSIER sinistre %s <--' % nodossier)
|
||||||
traite = 1
|
traite = 1
|
||||||
else:
|
|
||||||
traite = 0
|
|
||||||
|
|
||||||
return traite
|
return traite
|
||||||
|
|
||||||
def generer_annul_domus(request, societe, nosin, temp_file_path):
|
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
|
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||||
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||||
if dem_devis:
|
if dem_devis:
|
||||||
@@ -938,10 +935,8 @@ def demandes(request):
|
|||||||
# insérer une ligne de suivi ANNULATION
|
# insérer une ligne de suivi ANNULATION
|
||||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
||||||
# log de nuit
|
# log de nuit
|
||||||
insert_log_nuit(request, 'GENERER','--> ANNULATION DOSSIER sinistre %s - DOMUS' % nosin, nodossier)
|
print('--> CREER DOSSIER sinistre %s <--' % nodossier)
|
||||||
traite = 1
|
traite = 1
|
||||||
else:
|
|
||||||
traite = 0
|
|
||||||
|
|
||||||
return traite
|
return traite
|
||||||
|
|
||||||
@@ -995,30 +990,32 @@ def demandes(request):
|
|||||||
|
|
||||||
# convertir le fichier pdf en texte
|
# convertir le fichier pdf en texte
|
||||||
texte, extracted_file = pdf_convert_to_txt(temp_file_path)
|
texte, extracted_file = pdf_convert_to_txt(temp_file_path)
|
||||||
|
|
||||||
nbLus = nbLus + 1
|
nbLus = nbLus + 1
|
||||||
# mission annulée ?
|
# mission annulée ?
|
||||||
if 'Objet : ANNULATION MISSION' in texte :
|
if 'Objet : ANNULATION MISSION' in texte :
|
||||||
# genere ANNULATION mission MAIF
|
# genere ANNULATION mission MAIF
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
n = generer_annul_maif(request, societe, extracted_file, temp_file_path)
|
n = generer_annul_maif(request, societe, extracted_file, temp_file_path)
|
||||||
nbAnnules = nbAnnules + n
|
if n > 0:
|
||||||
# déplacer le message dans la poubelle
|
nbAnnules = nbAnnules + n
|
||||||
conn.store(num, '+FLAGS', '\\Deleted')
|
# déplacer le message dans la poubelle
|
||||||
|
conn.store(num, '+FLAGS', '\\Deleted')
|
||||||
elif 'ANNULATION ORDRE DE MISSION' in texte:
|
elif 'ANNULATION ORDRE DE MISSION' in texte:
|
||||||
# genere ANNULATION mission DOMUS
|
# genere ANNULATION mission DOMUS
|
||||||
nosin = str(body)[84:95]
|
nosin = str(body)[84:95]
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
n = generer_annul_domus(request, societe, nosin, temp_file_path)
|
n = generer_annul_domus(request, societe, nosin, temp_file_path)
|
||||||
nbAnnules = nbAnnules + n
|
if n > 0:
|
||||||
# déplacer le message dans la poubelle
|
nbAnnules = nbAnnules + n
|
||||||
conn.store(num, '+FLAGS', '\\Deleted')
|
# déplacer le message dans la poubelle
|
||||||
|
conn.store(num, '+FLAGS', '\\Deleted')
|
||||||
else:
|
else:
|
||||||
# genere le dossier d'après le mail
|
# genere le dossier d'après le mail
|
||||||
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
|
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
|
||||||
nbCrees = nbCrees + n
|
if n > 0:
|
||||||
# déplacer le message dans la poubelle
|
nbCrees = nbCrees + n
|
||||||
conn.store(num, '+FLAGS', '\\Deleted')
|
# déplacer le message dans la poubelle
|
||||||
|
conn.store(num, '+FLAGS', '\\Deleted')
|
||||||
|
|
||||||
conn.expunge()
|
conn.expunge()
|
||||||
conn.close()
|
conn.close()
|
||||||
@@ -1054,7 +1051,7 @@ def demandes(request):
|
|||||||
nbAnnules = nbAnnules + nAnnules
|
nbAnnules = nbAnnules + nAnnules
|
||||||
|
|
||||||
# log de nuit
|
# 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
|
message = "%s emails ont été traités." % nbLus
|
||||||
|
|
||||||
liste=[]
|
liste=[]
|
||||||
@@ -1066,6 +1063,7 @@ def demandes(request):
|
|||||||
msglus = bool(liste)
|
msglus = bool(liste)
|
||||||
# lire le log
|
# lire le log
|
||||||
log_creation = get_log_demandes(request)
|
log_creation = get_log_demandes(request)
|
||||||
|
dossiers_traites = get_dossiers_traites(request)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': "Liste des emails de demandes d'intervention",
|
'page_title': "Liste des emails de demandes d'intervention",
|
||||||
@@ -1074,6 +1072,7 @@ def demandes(request):
|
|||||||
'msglus': msglus,
|
'msglus': msglus,
|
||||||
'message': message,
|
'message': message,
|
||||||
'log_creation': log_creation,
|
'log_creation': log_creation,
|
||||||
|
'dossiers_traites': dossiers_traites,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user