Générer les dossiers par email un à un et non en lot
This commit is contained in:
@@ -773,34 +773,34 @@ def rdf_bill(request):
|
||||
'article' : article,
|
||||
}
|
||||
|
||||
def mailbox_connect(societe):
|
||||
# connecter au serveur IMAP de la societe
|
||||
if societe == 'PE':
|
||||
mbx_name = 'peinture-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
elif societe == 'ME':
|
||||
mbx_name = 'menuiserie-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
elif societe == 'PL':
|
||||
mbx_name = 'versanit-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
else:
|
||||
request.session.flash("Cette société est inconnue ou non traitée : %s" % societe, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
conn = imaplib.IMAP4_SSL('imap.entreprise-dumas.com')
|
||||
try:
|
||||
# se connecter à la mailbox
|
||||
conn.login(mbx_name, mbx_pwd)
|
||||
except imaplib.IMAP4.error:
|
||||
request.session.flash("ERREUR connexion au compte %s" % mbx_name, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
return conn
|
||||
|
||||
@view_config(route_name='demandes', renderer='../templates/dossier/demandes.pt', permission='view')
|
||||
def demandes(request):
|
||||
|
||||
def mailbox_connect(societe):
|
||||
# connecter au serveur IMAP de la societe
|
||||
if societe == 'PE':
|
||||
mbx_name = 'peinture-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
elif societe == 'ME':
|
||||
mbx_name = 'menuiserie-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
elif societe == 'PL':
|
||||
mbx_name = 'versanit-dumas@entreprise-dumas.com'
|
||||
mbx_pwd = 'sasdumas'
|
||||
else:
|
||||
request.session.flash("Cette société est inconnue ou non traitée : %s" % societe, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
conn = imaplib.IMAP4_SSL('imap.entreprise-dumas.com')
|
||||
try:
|
||||
# se connecter à la mailbox
|
||||
conn.login(mbx_name, mbx_pwd)
|
||||
except imaplib.IMAP4.error:
|
||||
request.session.flash("ERREUR connexion au compte %s" % mbx_name, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
return conn
|
||||
|
||||
def demandes_lister(societe, search_criteria):
|
||||
# connecter au serveur de mail
|
||||
conn = mailbox_connect(societe)
|
||||
@@ -816,10 +816,10 @@ def demandes(request):
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
mail_ids = data[0]
|
||||
for num in mail_ids.split():
|
||||
rv, msg_data = conn.fetch(num, '(RFC822)')
|
||||
for email_UID in mail_ids.split():
|
||||
rv, msg_data = conn.fetch(email_UID, '(RFC822)')
|
||||
if rv != 'OK':
|
||||
request.session.flash("ERREUR de lecture du message %s" % num, 'danger')
|
||||
request.session.flash("ERREUR de lecture du message %s" % email_UID, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
msg = email.message_from_bytes(msg_data[0][1])
|
||||
@@ -833,196 +833,19 @@ def demandes(request):
|
||||
else:
|
||||
email_date = datetime.now()
|
||||
|
||||
d = (societe, email_date.strftime('%d-%m-%Y %H:%M:%S'), email_from, email_subject)
|
||||
d = {
|
||||
"email_societe": societe,
|
||||
"email_date": email_date,
|
||||
"email_from": email_from.split('@')[1],
|
||||
'email_subject':email_subject,
|
||||
"email_uid": email_UID
|
||||
}
|
||||
liste.append(d)
|
||||
|
||||
# deconnexion du serveur
|
||||
conn.close()
|
||||
conn.logout()
|
||||
return liste
|
||||
|
||||
def demandes_generer(request, societe, search_criteria):
|
||||
|
||||
def generer_mission(request, societe, mbx_search, extracted_file, temp_file_path):
|
||||
|
||||
if 'maif.fr' in mbx_search:
|
||||
# extraire les infos de la demmande MAIF
|
||||
dem_info = get_pdf_infos1(extracted_file)
|
||||
if societe == 'PE':
|
||||
cd_cli = 2813
|
||||
elif societe == 'ME':
|
||||
cd_cli = 3428
|
||||
else:
|
||||
# VERSANIT
|
||||
cd_cli = 1743
|
||||
elif 'domus-services.fr' in mbx_search:
|
||||
# extraire les infos de la demmande DOMUS
|
||||
dem_info = get_pdf_infos2(extracted_file)
|
||||
if societe == 'PE':
|
||||
cd_cli = 8991
|
||||
elif societe == 'ME':
|
||||
cd_cli = 5276
|
||||
else:
|
||||
# VERSANIT
|
||||
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']
|
||||
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||
if dem_devis:
|
||||
# dem_devis existe, ajouter le PDF dans ce dossier
|
||||
nochantier = dem_devis.NO_ID
|
||||
nodossier = "%s-%s" % (societe, nochantier)
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION CONFIRMEE ou MODIFIEE PAR la MAIF')
|
||||
# log de nuit
|
||||
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
|
||||
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, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
def generer_annul_maif(request, societe, extracted_file, temp_file_path):
|
||||
# extraire les infos de la demmande MAIF
|
||||
dem_info = get_pdf_infos1(extracted_file)
|
||||
# extraction OK ? oui, rechercher la dem_devis concerné
|
||||
|
||||
traite = 0
|
||||
if dem_info['c_nom'] != '':
|
||||
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||
nosin = dem_info['no_sinistre']
|
||||
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||
if dem_devis:
|
||||
nodossier = "%s-%s" % (societe, dem_devis.NO_ID)
|
||||
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
||||
# log de nuit
|
||||
print('--> ANNULATION DOSSIER sinistre %s <--' % nodossier)
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
def generer_annul_domus(request, societe, nosin, temp_file_path):
|
||||
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:
|
||||
nodossier = "%s-%s" % (societe, dem_devis.NO_ID)
|
||||
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
|
||||
#import pdb;pdb.set_trace()
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
# connecter au serveur de mail
|
||||
conn = mailbox_connect(societe)
|
||||
# select INBOX
|
||||
rv, data = conn.select('INBOX')
|
||||
conn.expunge()
|
||||
|
||||
nbLus = 0
|
||||
nbCrees = 0
|
||||
nbAnnules = 0
|
||||
for criteria in search_criteria:
|
||||
# rechercher les emails de demandes dans le INBOX
|
||||
rv, data = conn.search(None, criteria)
|
||||
if rv != 'OK':
|
||||
request.session.flash("ERREUR de lecture de la boîte de réception", 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
mail_ids = data[0]
|
||||
# parcourir la liste des UID
|
||||
for num in mail_ids.split():
|
||||
rv, msg_data = conn.fetch(num, '(RFC822)')
|
||||
if rv != 'OK':
|
||||
request.session.flash("ERREUR de lecture du message %s" % num, 'danger')
|
||||
return HTTPFound(location=request.route_url('home'))
|
||||
|
||||
raw_email = msg_data[0][1]
|
||||
# converts byte literal to string removing b''
|
||||
try:
|
||||
raw_email_string = raw_email.decode('utf-8')
|
||||
except:
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(num, '+FLAGS', '\\Deleted')
|
||||
conn.expunge()
|
||||
else:
|
||||
email_message = email.message_from_string(raw_email_string)
|
||||
|
||||
# get the message's body
|
||||
body = ''
|
||||
for part in email_message.walk():
|
||||
ctype = part.get_content_type()
|
||||
cdispo = str(part.get('Content-Disposition'))
|
||||
|
||||
# skip any text/plain (txt) attachments
|
||||
if ctype == 'text/html' and 'attachment' not in cdispo:
|
||||
body = part.get_payload(decode=True) # decode
|
||||
break
|
||||
# downloading attachment
|
||||
temp_file_path = download_pdf_to_tmp(email_message)
|
||||
if temp_file_path != '':
|
||||
# si attachement existe, 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)
|
||||
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)
|
||||
if n > 0:
|
||||
nbAnnules = nbAnnules + n
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(num, '+FLAGS', '\\Deleted')
|
||||
else:
|
||||
#import pdb;pdb.set_trace()
|
||||
# genere le dossier d'après le mail
|
||||
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
|
||||
if n > 0:
|
||||
nbCrees = nbCrees + n
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(num, '+FLAGS', '\\Deleted')
|
||||
|
||||
conn.expunge()
|
||||
conn.close()
|
||||
# deconnexion du serveur
|
||||
conn.logout()
|
||||
|
||||
return nbLus, nbCrees, nbAnnules
|
||||
|
||||
return liste
|
||||
|
||||
# ------- main -------
|
||||
logged_in = request.authenticated_userid.upper()
|
||||
@@ -1035,45 +858,209 @@ def demandes(request):
|
||||
# search_criteria = ['FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier" UNDELETED'] "
|
||||
search_criteria = ['FROM gestionsinistre@maif.fr SUBJECT "Intervention entreprise partenaire"',
|
||||
'FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier" UNDELETED']
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
# traiter les demandes de la MAIF puis de DOMUS pour toutes les sociétes
|
||||
nbLus = 0
|
||||
nbCrees = 0
|
||||
nbAnnules = 0
|
||||
# log de nuit
|
||||
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
|
||||
nbCrees = nbCrees + nCrees
|
||||
nbAnnules = nbAnnules + nAnnules
|
||||
|
||||
# log de nuit
|
||||
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=[]
|
||||
|
||||
emails=[]
|
||||
# lister les demandes par societe
|
||||
for societe in societes:
|
||||
liste = liste + demandes_lister(societe, search_criteria)
|
||||
emails = emails + demandes_lister(societe, search_criteria)
|
||||
|
||||
# messages lus
|
||||
msglus = bool(liste)
|
||||
# lire le log
|
||||
log_creation = get_log_demandes(request)
|
||||
msglus = bool(emails)
|
||||
|
||||
dossiers_traites = get_dossiers_traites(request)
|
||||
|
||||
return {
|
||||
'page_title': "Liste des emails de demandes d'intervention",
|
||||
'url': url,
|
||||
'dt_data': json.dumps(liste),
|
||||
'msglus': msglus,
|
||||
'message': message,
|
||||
'log_creation': log_creation,
|
||||
'emails': emails,
|
||||
'dossiers_traites': dossiers_traites,
|
||||
}
|
||||
|
||||
@view_config(route_name='demandes_dl', permission='view')
|
||||
def demandes_dl(request):
|
||||
"""
|
||||
Lire le message et récupérer le PDF
|
||||
Analyser le PDF et génère le dossier
|
||||
"""
|
||||
|
||||
def generer_mission(request, societe, mbx_search, extracted_file, temp_file_path):
|
||||
|
||||
if 'maif.fr' in mbx_search:
|
||||
# extraire les infos de la demmande MAIF
|
||||
dem_info = get_pdf_infos1(extracted_file)
|
||||
if societe == 'PE':
|
||||
cd_cli = 2813
|
||||
elif societe == 'ME':
|
||||
cd_cli = 3428
|
||||
else:
|
||||
# VERSANIT
|
||||
cd_cli = 1743
|
||||
elif 'domus-services.fr' in mbx_search:
|
||||
# extraire les infos de la demmande DOMUS
|
||||
dem_info = get_pdf_infos2(extracted_file)
|
||||
if societe == 'PE':
|
||||
cd_cli = 8991
|
||||
elif societe == 'ME':
|
||||
cd_cli = 5276
|
||||
else:
|
||||
# VERSANIT
|
||||
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']
|
||||
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||
if dem_devis:
|
||||
# dem_devis existe, ajouter le PDF dans ce dossier
|
||||
nochantier = dem_devis.NO_ID
|
||||
nodossier = "%s-%s" % (societe, nochantier)
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION CONFIRMEE ou MODIFIEE PAR la MAIF')
|
||||
# log de nuit
|
||||
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
|
||||
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, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
def generer_annul_maif(request, societe, extracted_file, temp_file_path):
|
||||
# extraire les infos de la demmande MAIF
|
||||
dem_info = get_pdf_infos1(extracted_file)
|
||||
# extraction OK ? oui, rechercher la dem_devis concerné
|
||||
|
||||
traite = 0
|
||||
if dem_info['c_nom'] != '':
|
||||
# oui, rechercher la dem_devis concerné par le no de sinistre
|
||||
nosin = dem_info['no_sinistre']
|
||||
dem_devis = get_dossier_by_sinistre(request,societe, nosin)
|
||||
if dem_devis:
|
||||
nodossier = "%s-%s" % (societe, dem_devis.NO_ID)
|
||||
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR la MAIF')
|
||||
# log de nuit
|
||||
print('--> ANNULATION DOSSIER sinistre %s <--' % nodossier)
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
def generer_annul_domus(request, societe, nosin, temp_file_path):
|
||||
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:
|
||||
nodossier = "%s-%s" % (societe, dem_devis.NO_ID)
|
||||
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, dem_devis.NO_ID, 'ANNULATION.pdf')
|
||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', 0, 'CLT', temp_file_path, filename, 'EMAIL')
|
||||
|
||||
#import pdb;pdb.set_trace()
|
||||
# insérer une ligne de suivi ANNULATION
|
||||
insert_suivi(request, nodossier, '!!MISSION ANNULEE PAR DOMUS')
|
||||
traite = 1
|
||||
|
||||
return traite
|
||||
|
||||
|
||||
# ------- main -------
|
||||
societe = request.matchdict['societe']
|
||||
email_from = request.matchdict['email_from']
|
||||
email_uid = request.matchdict['email_uid']
|
||||
logged_in = request.authenticated_userid.upper()
|
||||
message = ''
|
||||
|
||||
if 'maif' in email_from:
|
||||
search_criteria = 'FROM gestionsinistre@maif.fr SUBJECT "Intervention entreprise partenaire" UNDELETED'
|
||||
else:
|
||||
search_criteria = 'FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier" UNDELETED'
|
||||
|
||||
# connecter au serveur de mail
|
||||
conn = mailbox_connect(societe)
|
||||
# select INBOX
|
||||
rv, data = conn.select('INBOX')
|
||||
conn.expunge()
|
||||
|
||||
# rechercher les emails de demandes dans le INBOX
|
||||
rv, data = conn.search(None, search_criteria)
|
||||
if rv != 'OK':
|
||||
request.session.flash("ERREUR de lecture de la boîte de réception", 'danger')
|
||||
return HTTPFound(location=request.route_url('messages'))
|
||||
|
||||
# lire le message avec UID
|
||||
rv, msg_data = conn.fetch(email_uid, '(RFC822)')
|
||||
if rv != 'OK':
|
||||
request.session.flash("ERREUR de lecture du message %s" % email_uid, 'danger')
|
||||
return HTTPFound(location=request.route_url('messages'))
|
||||
|
||||
raw_email = msg_data[0][1]
|
||||
# converts byte literal to string removing b''
|
||||
raw_email_string = raw_email.decode('utf-8')
|
||||
email_message = email.message_from_string(raw_email_string)
|
||||
|
||||
# get the message's body
|
||||
body = ''
|
||||
for part in email_message.walk():
|
||||
ctype = part.get_content_type()
|
||||
cdispo = str(part.get('Content-Disposition'))
|
||||
|
||||
# skip any text/plain (txt) attachments
|
||||
if ctype == 'text/html' and 'attachment' not in cdispo:
|
||||
body = part.get_payload(decode=True) # decode
|
||||
break
|
||||
# downloading attachment
|
||||
temp_file_path = download_pdf_to_tmp(email_message)
|
||||
if temp_file_path != '':
|
||||
# si attachement existe, convertir le fichier pdf en texte
|
||||
texte, extracted_file = pdf_convert_to_txt(temp_file_path)
|
||||
# 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)
|
||||
if n > 0:
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(email_uid, '+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)
|
||||
if n > 0:
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(email_uid, '+FLAGS', '\\Deleted')
|
||||
else:
|
||||
#import pdb;pdb.set_trace()
|
||||
# genere le dossier d'après le mail
|
||||
n = generer_mission(request, societe, email_from, extracted_file, temp_file_path)
|
||||
if n > 0:
|
||||
# déplacer le message dans la poubelle
|
||||
conn.store(email_uid, '+FLAGS', '\\Deleted')
|
||||
|
||||
conn.expunge()
|
||||
conn.close()
|
||||
# deconnexion du serveur
|
||||
conn.logout()
|
||||
|
||||
request.session.flash("La mission a été importée avec succès", 'success')
|
||||
return HTTPFound(request.route_url('demandes'))
|
||||
|
||||
|
||||
def downloadFile2Temp(input_file, input_name, ext_allowed):
|
||||
# récupère son extension
|
||||
|
||||
Reference in New Issue
Block a user