fixed read, cread, cancel numbers
This commit is contained in:
@@ -126,7 +126,7 @@ def insert_suivi(request, nodossier, comment):
|
|||||||
|
|
||||||
query = """
|
query = """
|
||||||
INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, USERMAJ) VALUES
|
INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, USERMAJ) VALUES
|
||||||
(:societe, :no_id, CURRENT_DATE(), :comment, 'AUTO');"""
|
(:societe, :no_id, CURRENT_DATE(), :comment, 'MAIL');"""
|
||||||
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'comment': comment})
|
execute_query(request, query, {'societe': societe, 'no_id': no_id, 'comment': comment})
|
||||||
|
|
||||||
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):
|
||||||
@@ -302,3 +302,8 @@ def get_experts(request, code_cab, code_exp):
|
|||||||
query = "SELECT * FROM p_experts where code_cab = :code_cab AND code_exp = :code_exp;"
|
query = "SELECT * FROM p_experts where code_cab = :code_cab AND code_exp = :code_exp;"
|
||||||
results = request.dbsession.execute(query, {'code_cab': code_cab, 'code_exp': code_exp}).first()
|
results = request.dbsession.execute(query, {'code_cab': code_cab, 'code_exp': code_exp}).first()
|
||||||
return results
|
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})
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,11 @@ def includeme(config):
|
|||||||
config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
|
config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
|
||||||
# default
|
# default
|
||||||
config.add_route('home', '/')
|
config.add_route('home', '/')
|
||||||
|
config.add_route('affiche_message','/affiche_message/{login}')
|
||||||
config.add_route('changer_mdp', '/changer_mdp')
|
config.add_route('changer_mdp', '/changer_mdp')
|
||||||
config.add_route('envoyer_mdp', '/envoyer_mdp')
|
config.add_route('envoyer_mdp', '/envoyer_mdp')
|
||||||
config.add_route('login', '/login')
|
config.add_route('login', '/login')
|
||||||
|
config.add_route('login_as', '/login_as/{login}')
|
||||||
config.add_route('logout', '/logout')
|
config.add_route('logout', '/logout')
|
||||||
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
||||||
config.add_route('init_mdp', '/init_mdp/{user}/{lien}')
|
config.add_route('init_mdp', '/init_mdp/{user}/{lien}')
|
||||||
|
|||||||
18
mondumas/templates/default/affiche_message.pt
Normal file
18
mondumas/templates/default/affiche_message.pt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<metal:block use-macro="main_template">
|
||||||
|
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
<div class="alert alert-info"
|
||||||
|
tal:condition="messages"
|
||||||
|
tal:repeat="message messages">
|
||||||
|
<h4>${structure:message}</h4>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<br />
|
||||||
|
<a href="${url_identification}">Se connecter à mon compte</a>
|
||||||
|
<br /><br />
|
||||||
|
</p>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</metal:block>
|
||||||
@@ -101,8 +101,8 @@ Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser vot
|
|||||||
|
|
||||||
""" % (request.route_url('redefinir_mdp', lien=lien))
|
""" % (request.route_url('redefinir_mdp', lien=lien))
|
||||||
envoyerMail(request, member.email, "Demande de ré-initialisation du mot de passe", body)
|
envoyerMail(request, member.email, "Demande de ré-initialisation du mot de passe", body)
|
||||||
request.session.flash("Votre demande de ré-initialisation de mot de passe vous a été envoyée à %s." % member.email)
|
request.session.flash("Le lien permettant de redéfinir votre mot de passe vous a été envoyé à l'adresse : %s." % member.email, 'success')
|
||||||
return HTTPFound(location=request.route_url('login'))
|
return HTTPFound(location=request.route_url('affiche_message', login=login))
|
||||||
else:
|
else:
|
||||||
message = "Le mot de passe fourni est incorrect."
|
message = "Le mot de passe fourni est incorrect."
|
||||||
return {
|
return {
|
||||||
@@ -177,6 +177,7 @@ def redefinir_mdp(request):
|
|||||||
|
|
||||||
|
|
||||||
@view_config(route_name='login', renderer='../templates/default/login.pt', permission='view')
|
@view_config(route_name='login', renderer='../templates/default/login.pt', permission='view')
|
||||||
|
@view_config(route_name='login_as', renderer='../templates/default/login.pt', permission='view')
|
||||||
@forbidden_view_config(renderer='../templates/default/login.pt')
|
@forbidden_view_config(renderer='../templates/default/login.pt')
|
||||||
def login(request):
|
def login(request):
|
||||||
|
|
||||||
@@ -249,3 +250,17 @@ gestion.entreprise-dumas.com
|
|||||||
mailer.send_immediately(message)
|
mailer.send_immediately(message)
|
||||||
|
|
||||||
|
|
||||||
|
@view_config(route_name='affiche_message', renderer='../templates/default/affiche_message.pt')
|
||||||
|
def affiche_message(request):
|
||||||
|
|
||||||
|
login = request.matchdict['login']
|
||||||
|
messages = request.session.pop_flash()
|
||||||
|
|
||||||
|
return {
|
||||||
|
'page_title': "Demande effectuée",
|
||||||
|
'login': login,
|
||||||
|
'messages' : messages,
|
||||||
|
'url_identification': request.route_url('login_as', login=login)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -780,16 +780,22 @@ def demandes(request):
|
|||||||
|
|
||||||
# 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
|
||||||
if dem_info['c_nom'] != '':
|
if dem_info['c_nom'] != '':
|
||||||
|
nosin = dem_info['no_sinistre']
|
||||||
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['no_sinistre'], dem_info['c_obs'], dem_info['tx_trav'])
|
dem_info['c_cp'], dem_info['c_ville'], dem_info['c_telp'], nosin, dem_info['c_obs'], dem_info['tx_trav'])
|
||||||
nodossier = "%s-%s" % (societe, nochantier)
|
nodossier = "%s-%s" % (societe, nochantier)
|
||||||
|
|
||||||
# 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', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, nochantier, '0', temp_file_path, filename, 'EMAIL')
|
||||||
|
# log de nuit
|
||||||
return
|
insert_log_nuit(request, 'GENERER', '--> CREER DOSSIER sinistre %s - MAIF : No %s' % (nosin, nodossier))
|
||||||
|
traite = 1
|
||||||
|
else:
|
||||||
|
traite = 0
|
||||||
|
|
||||||
|
return traite
|
||||||
|
|
||||||
def generer_annul_maif(request, societe, extracted_file, temp_file_path):
|
def generer_annul_maif(request, societe, extracted_file, temp_file_path):
|
||||||
# extraire les infos de la demmande MAIF
|
# extraire les infos de la demmande MAIF
|
||||||
@@ -809,7 +815,13 @@ def demandes(request):
|
|||||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
||||||
# 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')
|
||||||
return
|
# log de nuit
|
||||||
|
insert_log_nuit(request, 'GENERER', '--> ANNULATION DOSSIER sinistre %s - MAIF : %s' % (nosin, nodossier))
|
||||||
|
traite = 1
|
||||||
|
else:
|
||||||
|
traite = 0
|
||||||
|
|
||||||
|
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()
|
# import pdb;pdb.set_trace()
|
||||||
@@ -823,13 +835,22 @@ def demandes(request):
|
|||||||
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
tempFile2Dossier(request, societe, dem_devis.NO_ID, '0', temp_file_path, filename, 'EMAIL')
|
||||||
# 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')
|
||||||
return
|
# log de nuit
|
||||||
|
insert_log_nuit(request, 'GENERER','--> ANNULATION DOSSIER sinistre %s - DOMUS : %s' % (nosin, nodossier))
|
||||||
|
traite = 1
|
||||||
|
else:
|
||||||
|
traite = 0
|
||||||
|
|
||||||
|
return traite
|
||||||
|
|
||||||
# connecter au serveur de mail
|
# connecter au serveur de mail
|
||||||
conn = mailbox_connect(societe)
|
conn = mailbox_connect(societe)
|
||||||
# select INBOX
|
# select INBOX
|
||||||
rv, data = conn.select('INBOX', readonly =True)
|
rv, data = conn.select('INBOX', readonly =True)
|
||||||
|
|
||||||
|
nbLus = 0
|
||||||
|
nbCrees = 0
|
||||||
|
nbAnnules = 0
|
||||||
for criteria in search_criteria:
|
for criteria in search_criteria:
|
||||||
# rechercher les emails de demandes dans le INBOX
|
# rechercher les emails de demandes dans le INBOX
|
||||||
rv, data = conn.search(None, criteria)
|
rv, data = conn.search(None, criteria)
|
||||||
@@ -838,7 +859,6 @@ def demandes(request):
|
|||||||
return HTTPFound(location=request.route_url('home'))
|
return HTTPFound(location=request.route_url('home'))
|
||||||
|
|
||||||
mail_ids = data[0]
|
mail_ids = data[0]
|
||||||
nbMessages = len(mail_ids)
|
|
||||||
for num in mail_ids.split():
|
for num in mail_ids.split():
|
||||||
rv, msg_data = conn.fetch(num, '(RFC822)')
|
rv, msg_data = conn.fetch(num, '(RFC822)')
|
||||||
if rv != 'OK':
|
if rv != 'OK':
|
||||||
@@ -866,22 +886,26 @@ 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
|
||||||
# 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()
|
||||||
generer_annul_maif(request, societe, extracted_file, temp_file_path)
|
n = generer_annul_maif(request, societe, extracted_file, temp_file_path)
|
||||||
|
nbAnnules = nbAnnules + n
|
||||||
# conn.store(num, '+FLAGS', r'(\Deleted)')
|
# conn.store(num, '+FLAGS', r'(\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()
|
||||||
generer_annul_domus(request, societe, nosin, temp_file_path)
|
n = generer_annul_domus(request, societe, nosin, temp_file_path)
|
||||||
|
nbAnnules = nbAnnules + n
|
||||||
# conn.store(num, '+FLAGS', r'(\Deleted)')
|
# conn.store(num, '+FLAGS', r'(\Deleted)')
|
||||||
else:
|
else:
|
||||||
# genere le dossier d'après le mail
|
# genere le dossier d'après le mail
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
generer_mission(request, societe, criteria, extracted_file, temp_file_path)
|
n = generer_mission(request, societe, criteria, extracted_file, temp_file_path)
|
||||||
|
nbCrees = nbCrees + n
|
||||||
# marquer le message comme supprimé
|
# marquer le message comme supprimé
|
||||||
# conn.store(num, '+FLAGS', r'(\Deleted)')
|
# conn.store(num, '+FLAGS', r'(\Deleted)')
|
||||||
|
|
||||||
@@ -889,8 +913,8 @@ def demandes(request):
|
|||||||
conn.close()
|
conn.close()
|
||||||
# deconnexion du serveur
|
# deconnexion du serveur
|
||||||
conn.logout()
|
conn.logout()
|
||||||
|
|
||||||
return nbMessages
|
return nbLus, nbCrees, nbAnnules
|
||||||
|
|
||||||
|
|
||||||
# ------- main -------
|
# ------- main -------
|
||||||
@@ -901,17 +925,26 @@ def demandes(request):
|
|||||||
societes = ['PE','ME','PL']
|
societes = ['PE','ME','PL']
|
||||||
|
|
||||||
# critères de recherche des demandes d'interventions de la MAIF
|
# critères de recherche des demandes d'interventions de la MAIF
|
||||||
# search_criteria = ['FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier"']
|
# search_criteria = ['FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier"'] "
|
||||||
search_criteria = ['FROM gestionsinistre@maif.fr SUBJECT "Intervention entreprise partenaire"',
|
search_criteria = ['FROM gestionsinistre@maif.fr SUBJECT "Intervention entreprise partenaire"',
|
||||||
'FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier"']
|
'FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier"']
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
# traiter les demandes de la MAIF puis de DOMUS pour toutes les sociétes
|
# traiter les demandes de la MAIF puis de DOMUS pour toutes les sociétes
|
||||||
nbMessages = 0
|
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:
|
for societe in societes:
|
||||||
nb = demandes_generer(request, societe, search_criteria)
|
nLus, nCrees, nAnnules = demandes_generer(request, societe, search_criteria)
|
||||||
nbMessages = nbMessages + nb
|
nbLus = nbLus + nLus
|
||||||
message = "%s demandes de devis a été crées." % nbMessages
|
nbCrees = nbCrees + nCrees
|
||||||
|
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))
|
||||||
|
message = "%s emails ont été traités." % nbLus
|
||||||
|
|
||||||
liste=[]
|
liste=[]
|
||||||
# lister les demandes par societe
|
# lister les demandes par societe
|
||||||
@@ -1047,8 +1080,14 @@ def get_pdf_infos1(extracted_file):
|
|||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
no_sinistre = line[:-1]
|
no_sinistre = line[:-1]
|
||||||
if line.find('Bénéficiaire des travaux :') == 0:
|
if line.find('Bénéficiaire des travaux :') == 0:
|
||||||
elt = line.split(' : ')
|
elt = line[-1].split(' :')
|
||||||
c_nom = elt[1][:-1]
|
if len(elt) == 1:
|
||||||
|
# le nom du chantier est sur la ligne suivante
|
||||||
|
line = fp.readline()
|
||||||
|
c_nom = line[-1]
|
||||||
|
else:
|
||||||
|
# le nom du chantier est sur la même ligne
|
||||||
|
c_nom = elt[1][:-1]
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
|
|||||||
Reference in New Issue
Block a user