récupérer l'email de la demande d'intervention

This commit is contained in:
2020-07-14 17:59:13 +02:00
parent 7c3e484bb0
commit 78a8d46322
4 changed files with 39 additions and 25 deletions

View File

@@ -301,11 +301,11 @@ def insert_facture_rdf(request, societe, nochantier, cd_cli, nomcli, user, ref,
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})
def insert_dossier(request, societe, cd_cli, c_nom, c_adr, c_adr2, c_cp, c_ville, c_telp, nosin, 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, c_obs, tx_trav):
# 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, 'MR', 6, :nosin, :c_obs, :tx_trav, :logged_in);"""
query = """CALL spINS_DEMANDES(:societe, :cd_cli, :c_nom, :c_adr, :c_adr2, :c_cp, :c_ville, :c_telp, :c_email, 'MR', 6, :nosin, :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,
'c_ville': c_ville,'c_telp': c_telp, 'nosin': nosin, 'c_obs': c_obs, 'tx_trav': tx_trav, 'logged_in': 'EMAIL'})
'c_ville': c_ville,'c_telp': c_telp, 'nosin': nosin, '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;"
results = request.dbsession.execute(query, {'societe': societe, 'cd_cli': cd_cli}).first()
@@ -325,12 +325,13 @@ def get_experts(request, code_cab, code_exp):
results = request.dbsession.execute(query, {'code_cab': code_cab, 'code_exp': code_exp}).first()
return results
def insert_log_nuit(request, proc, msg):
query = "INSERT INTO t_log_nuit (proc,msg) VALUES (:proc, :msg);"
execute_query(request, query, {'proc': proc, 'msg': msg})
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 get_log_demandes(request, ):
# lire le log de nuit
query = """SELECT * FROM t_log_nuit WHERE proc = 'GENERER';"""
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';"""
results = request.dbsession.execute(query, )
return results.fetchall()

View File

@@ -40,6 +40,8 @@
<td>${item.date.strftime('%d %b, %H:%M')}</td>
<td>${item.proc}</td>
<td>${item.msg}</td>
<td><a href="${request.application_url}/dossier_view/${item.nodossier}">${item.nodossier}</td>
<td>${item.user}</td>
</tr>
</table>
</div>

View File

@@ -30,8 +30,8 @@
</td>
<td>
${dossier.C_ETAGE} - ${dossier.C_CODE}<br />
<span tal:condition="dossier.c_ascenseur==0">NON</span><br />
<span tal:condition="dossier.c_ascenseur!=0">OUI</span><br />
<span tal:condition="dossier.c_ascenseur==0">NON<br /></span>
<span tal:condition="dossier.c_ascenseur!=0">OUI<br /></span>
${dossier.C_TEL1} - ${dossier.C_TEL2}<br />
${dossier.C_TELP} - ${dossier.C_FAX}
</td>

View File

@@ -271,13 +271,14 @@ def dossier_edit(request):
else:
new_values['c_cp'] = cp[0]
new_values['c_ville'] = cp[1]
new_values['USERMAJ'] = logged_in.upper()
# ascenseur coché ?
if 'ascenseur' in request.params:
new_values['c_ascenseur'] = 1
else:
new_values['c_ascenseur'] = 0
update_dossier(request, nodossier, new_values)
request.session.flash(u"Le dossier a été mis à jour avec succès.", 'success')
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
@@ -873,14 +874,14 @@ def demandes(request):
# insérer une ligne de suivi ANNULATION
insert_suivi(request, nodossier, '!!MISSION MODIFIEE PAR la MAIF')
# log de nuit
insert_log_nuit(request, 'GENERER', '--> MODIFIER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
insert_log_nuit(request, 'GENERER', '--> MODIFIER DOSSIER sinistre %s' % nosin, 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'], 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)
# log de nuit
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s' % nosin, nodossier)
# récupère le nom du fichier et ajouter le no de dossier
filename = os.path.basename(temp_file_path)
@@ -897,7 +898,7 @@ def demandes(request):
dem_info = get_pdf_infos1(extracted_file)
# extraction OK ? oui, rechercher la dem_devis concerné
import pdb;pdb.set_trace()
# import pdb;pdb.set_trace()
if dem_info['c_nom'] != '':
# oui, rechercher la dem_devis concerné par le no de sinistre
nosin = dem_info['no_sinistre']
@@ -911,7 +912,7 @@ 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 : %s' % (nosin, nodossier))
insert_log_nuit(request, 'GENERER', '--> ANNULATION DOSSIER sinistre %s - MAIF' % nosin, nodossier)
traite = 1
else:
traite = 0
@@ -919,7 +920,7 @@ def demandes(request):
return traite
def generer_annul_domus(request, societe, nosin, temp_file_path):
import pdb;pdb.set_trace()
# import pdb;pdb.set_trace()
# oui, rechercher la dem_devis concerné par le no de sinistre
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
if dem_devis:
@@ -931,7 +932,7 @@ 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 : %s' % (nosin, nodossier))
insert_log_nuit(request, 'GENERER','--> ANNULATION DOSSIER sinistre %s - DOMUS' % nosin, nodossier)
traite = 1
else:
traite = 0
@@ -985,20 +986,20 @@ def demandes(request):
# mission annulée ?
if 'Objet : ANNULATION MISSION' in texte :
# 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)
nbAnnules = nbAnnules + n
# conn.store(num, '+FLAGS', r'(\Deleted)')
elif 'ANNULATION ORDRE DE MISSION' in texte:
# genere ANNULATION mission DOMUS
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)
nbAnnules = nbAnnules + n
# conn.store(num, '+FLAGS', r'(\Deleted)')
else:
# genere le dossier d'après le mail
import pdb;pdb.set_trace()
# import pdb;pdb.set_trace()
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
nbCrees = nbCrees + n
# marquer le message comme supprimé
@@ -1030,7 +1031,7 @@ def demandes(request):
nbCrees = 0
nbAnnules = 0
# log de nuit
insert_log_nuit(request, 'GENERER','- Début GENERATION des dossiers à partir des EMAILS')
insert_log_nuit(request, 'GENERER','- Début GENERATION des dossiers à partir des EMAILS', '')
for societe in societes:
nLus, nCrees, nAnnules = demandes_generer(request, societe, search_criteria)
nbLus = nbLus + nLus
@@ -1038,7 +1039,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, %s dossiers annulés' % (nbLus, nbCrees, nbAnnules), '')
message = "%s emails ont été traités." % nbLus
liste=[]
@@ -1172,13 +1173,13 @@ def get_pdf_infos1(extracted_file):
c_obs = ''
tx_trav = ''
c_telp = ''
c_email = ''
while line:
if line.find('Nos références') == 0:
line = fp.readline()
line = fp.readline()
no_sinistre = line[:-1]
if line.find('Bénéficiaire des travaux :') == 0:
import pdb;pdb.set_trace()
elt = line[:-1].split(' :')
if len(elt) == 1:
# le nom du chantier est sur la ligne suivante
@@ -1207,7 +1208,14 @@ def get_pdf_infos1(extracted_file):
c_adr2 = ''
if ' téléphone : ' in line:
# les 10 derniers caratères
c_tel1 = line[-11:-1]
# import pdb;pdb.set_trace()
c_telp = line[-11:-1]
if 'E-mail : ' in line:
# séparer l'émail
# import pdb;pdb.set_trace()
elt = line[:-1].split(' : ')
if len(elt) == 2:
c_email = elt[1]
if 'une franchise de ' in line:
i1 = line.find('franchise de ')
i2 = line.find('')
@@ -1228,6 +1236,7 @@ def get_pdf_infos1(extracted_file):
'c_ville': c_ville,
'c_telp': c_telp,
'c_obs': c_obs,
'c_email': c_email,
'tx_trav': tx_trav,
'no_sinistre': no_sinistre,
}
@@ -1246,6 +1255,7 @@ def get_pdf_infos2(extracted_file):
c_obs = ''
tx_trav = ''
c_telp = ''
c_email = ''
while line:
if line.find('SINISTRE N°') == 0:
line = fp.readline()
@@ -1286,6 +1296,7 @@ def get_pdf_infos2(extracted_file):
'c_cp': c_cp[:5],
'c_ville': c_ville,
'c_telp': c_telp,
'c_email': c_email,
'c_obs': c_obs,
'tx_trav': tx_trav,
'no_sinistre': no_sinistre,