From 8ef2cc49f2457d1a59446c92a0094716f0aba1e1 Mon Sep 17 00:00:00 2001 From: Phuoc Cao Date: Fri, 24 Mar 2017 13:39:35 +0100 Subject: [PATCH] ajout dossier_view --- mondumas/models/agenda.py | 44 ++++++ mondumas/routes.py | 3 +- mondumas/templates/agenda/dossier_view.pt | 163 +++++++++++++--------- mondumas/templates/agenda/rdv_edit.pt | 91 ++++++++++++ mondumas/views/agenda.py | 102 ++++++-------- 5 files changed, 279 insertions(+), 124 deletions(-) create mode 100644 mondumas/templates/agenda/rdv_edit.pt diff --git a/mondumas/models/agenda.py b/mondumas/models/agenda.py index 489aa04..d0ec9ea 100644 --- a/mondumas/models/agenda.py +++ b/mondumas/models/agenda.py @@ -29,6 +29,50 @@ def get_agendas(request,code): results = request.dbsession.execute(query, {'code': code}).first() return results +def get_table(code): + if code == 'DD': + table = 'dem_devis' + elif code == 'OS': + table = 'ordres' + else: + table = 'rdvous' + return table + +def get_table_details(code): + if code == 'DD': + table = 'dem_lig' + elif code == 'OS': + table = 'ordres_lig' + else: + table = 'rdvous_lig' + return table + + +def get_dossier_by_no(request,nodossier): + societe = nodossier[0:2] + table = get_table(nodossier[3:5]) + no_id = nodossier[6:] + query = """ +SELECT d.*, c.*, a.NOM as nom_cabinet, e.NOM as nom_expert FROM %s d +INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli +INNER JOIN p_cabinet a ON d.societe = a.societe and d.cabinet = a.code +INNER JOIN p_experts e ON d.societe = e.societe and d.cabinet = e.code_cab and d.expert = e.code_exp +where d.societe = '%s' and d.no_id=%s;""" % (table, societe, no_id); + results = request.dbsession.execute(query).first() + return results + +def get_dossier_rdv_by_no(request,nodossier, nolig): + societe = nodossier[0:2] + table = get_table_details(nodossier[3:5]) + no_id = nodossier[6:] + if nolig == '0': + query = "SELECT * FROM %s where societe = '%s' and no_id=%s;" % (table, societe, no_id) + results = request.dbsession.execute(query).fetchall() + else: + query = "SELECT * FROM %s where societe = '%s' and no_id=%s and nolig=%s;" % (table, societe, no_id, nolig) + results = request.dbsession.execute(query).first() + return results + def get_rendez_vous(request, itc): d = datetime.datetime.today() d = d - dateutil.relativedelta.relativedelta(months=2) diff --git a/mondumas/routes.py b/mondumas/routes.py index f8e76c6..8d13932 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -3,7 +3,8 @@ def includeme(config): config.add_route('home', '/') config.add_route('agenda', '/agenda') config.add_route('changer_mdp', '/changer_mdp') - config.add_route('dossier_view', '/dossier_view/{mbr_id}') + config.add_route('dossier_view', '/dossier_view/{nodossier}') + config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}') config.add_route('envoyer_mdp', '/envoyer_mdp') config.add_route('login', '/login') config.add_route('logout', '/logout') diff --git a/mondumas/templates/agenda/dossier_view.pt b/mondumas/templates/agenda/dossier_view.pt index d9acbb7..ca9a58c 100644 --- a/mondumas/templates/agenda/dossier_view.pt +++ b/mondumas/templates/agenda/dossier_view.pt @@ -1,78 +1,111 @@

- - - - - - - - - - - - - - - - -
Số hồ sơ : ${member.mbr_id} - ${member.civilite} ${member.nom} ${member.prenom}
- ${member.adresse}
- ${member.adresse2}
- ${member.cp} ${member.ville}
-
- - Modifier - - Danh sách -
- Điện thoại (mobile - nhà)
- Email
- Pháp danh
- Ghi Chú
-
- ${member.tel_mobile} - ${member.tel_fixe}
- ${member.email}
- ${member.phap_danh}
- ${member.notes}
-
- Trang thái
- Niên liễm
- Ngày thay đổi
-
- ${member.statut}
- ${member.cotise_en}
- ${member.modif_le.strftime('%d-%m-%Y %H:%M')} - [Ngày tạo : ${member.cree_le.strftime('%d-%m-%Y')}] -
+ +
+ +
+ + + + + + + + + + + + + + + + + +

CHANTIER

+

${dossier.C_QUALITE} ${dossier.C_NOM}

+ ${dossier.C_ADR}
+ ${dossier.C_ADR2}
+ ${dossier.C_CP} ${dossier.C_VILLE}
+
+ Etage - Code
+ Tél. domicile - prof.
+ Tél. mobile - fax +
+ ${dossier.C_ETAGE} - ${dossier.C_CODE}
+ ${dossier.C_TEL1} - ${dossier.C_TEL2}
+ ${dossier.C_TELP} - ${dossier.C_FAX} +
+ Cabinet
+ Expert
+ Référence expert +
+ ${dossier.nom_cabinet}
+ ${dossier.nom_expert}
+ ${dossier.REF_EXPERT}
+
+ Police
+ Sinistre
+ Votre référence
+
+ ${dossier.NOPOL}
+ ${dossier.NOSIN}
+ ${dossier.VREF}
+
+
-

Cúng dường

-

- Thêm cúng dường

+ +
+ + + + + + + + + +

CLIENT

+

${dossier.QUALITE} ${dossier.NOM}

+ ${dossier.ADRESSE}
+ ${dossier.ADRESSE2}
+ ${dossier.CP} ${dossier.VILLE}
+
+ Responsable
+ Tél. 1 - 2
+ Tél. mobile - fax +
+ ${dossier.NOMRESP}
+ ${dossier.TEL1} - ${dossier.TEL2}
+ ${dossier.TELP} - ${dossier.FAX} +
+
+
+ +

SUIVI

+

+ Nouvelle ligne

-
- - - - - + + + + - - - - - + + - + +
Ngày thuLoạiSố tiềnBằngVào QUỸDateVisiteActionAvec
  - ${don.mode} +
${detail.DATE.strftime('%d/%m/%Y')} + + + + ${detail.rdv_debut.strftime('%d/%m/%Y %H:%M')} + ${don.valide_le}${detail.COMMENT} ${detail.COMMENTVI}${detail.LISTE}
-
- +
diff --git a/mondumas/templates/agenda/rdv_edit.pt b/mondumas/templates/agenda/rdv_edit.pt new file mode 100644 index 0000000..4517b71 --- /dev/null +++ b/mondumas/templates/agenda/rdv_edit.pt @@ -0,0 +1,91 @@ + +
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+ + Annuler + + +
+
+
+ +
+
+
+
+
+ + + +
+ diff --git a/mondumas/views/agenda.py b/mondumas/views/agenda.py index 4c06eef..28c3013 100644 --- a/mondumas/views/agenda.py +++ b/mondumas/views/agenda.py @@ -15,7 +15,7 @@ from pyramid.httpexceptions import ( HTTPNotFound, HTTPForbidden, ) -from pyramid_mailer import get_mailer + from pyramid_mailer.message import Message, Attachment from datetime import * import hashlib @@ -29,85 +29,71 @@ from ..models.agenda import * from ..models.default import * -@view_config(route_name='member_edit', renderer='../templates/agenda/member_edit.pt', permission='view') -def member_edit(request): - mbr_id = request.matchdict['mbr_id'] - url = request.route_url("member_edit", mbr_id=mbr_id) +@view_config(route_name='rdv_edit', renderer='../templates/agenda/rdv_edit.pt', permission='view') +def rdv_edit(request): + nodossier = request.matchdict['nodossier'] + nolig = request.matchdict['nolig'] + url = request.route_url("rdv_edit", nodossier=nodossier, nolig=nolig) message = '' - civilites = ["M.","M.Mme","Mme"] - etats = [u"Actif",u"Décédé",u"NPAI"] - if mbr_id == '0': + if nolig == '0': # nouveau - membre = {} - membre['mbr_id'] = 0 - membre['civilite'] = 'Mme' - membre['nom'] = '' - membre['prenom'] = '' - membre['adresse'] = '' - membre['adresse2'] = '' - membre['cp'] = '' - membre['ville'] = '' - membre['email'] = '' - membre['tel_fixe'] = '' - membre['tel_mobile'] = '' - membre['phap_danh'] = '0' - membre['notes'] = '' - membre['etat'] = 'Actif' - membre['statut'] = 'HV' - page_title= 'Nouvelle Fiche' + rdv = {} + rdv['NOLIG'] = 0 + rdv['COMMENT'] = '' + rdv['COMMENTVI'] = '' + rdv['DATEVI'] = date.today() + rdv['HEUREVI'] = '09:00' + page_title= 'Nouveau rendez-vous' else: - # lire la fiche de l'membre - membre = get_member_by_id(request, mbr_id) - if not membre: - request.session.flash(u"Membre non trouvé : %s" % id, 'warning') - return HTTPFound(location=request.route_url('members')) - page_title= u"Modification de la fiche no %s" %(membre.mbr_id) + # lire le rendez-vous + rdv = get_dossier_rdv_by_no(request, nodossier, nolig) + if not rdv: + request.session.flash(u"Rendez-vous non trouvé : %s" % nodossier, 'warning') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) + page_title= u"Modification du rendez-vous du %s" % (rdv.rdv_debut.strftime('%Y-%m-%d %H:%M')) if 'form.submitted' in request.params: new_values = {} - for param, db_value in membre.items(): + for param, db_value in rdv.items(): if param in request.params and request.params[param] != db_value: new_values[param] = request.params[param] if new_values: - update_membre(request, mbr_id, new_values) - request.session.flash(u"La fiche a été mise à jour avec succès.", 'success') - if mbr_id == '0': - return HTTPFound(location=request.route_url('members')) - else: - return HTTPFound(location=request.route_url('member_view', mbr_id=mbr_id)) + update_rdv(request, nodossier, nolig, new_values) + request.session.flash(u"Le rendez-vous a été mis à jour avec succès.", 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) if 'form.deleted' in request.params: - delete_membre(request, mbr_id) - request.session.flash(u"La fiche a été supprimée avec succès.", 'success') - return HTTPFound(location=request.route_url('members')) + delete_rdv(request, nodossier, nolig) + request.session.flash(u"Le rendez-vous a été supprimé avec succès.", 'success') + return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) return { 'page_title': page_title, 'url': url, - 'membre': membre, - 'etats': etats, - 'civilites': civilites, + 'nodossier': nodossier, + 'rdv': rdv, 'message': message, } -@view_config(route_name='member_view', renderer='../templates/agenda/member_view.pt', permission='view') -def member_view(request): - mbr_id = request.matchdict['mbr_id'] - url = request.route_url("member_view", mbr_id=mbr_id) +@view_config(route_name='dossier_view', renderer='../templates/agenda/dossier_view.pt', permission='view') +def dossier_view(request): + nodossier = request.matchdict['nodossier'] + url = request.route_url("dossier_view", nodossier=nodossier) - member = get_member_by_id(request, mbr_id) - if member is None: - request.session.flash(u"La fiche no %s est introuvable" % (mbr_id), 'danger') - return HTTPFound(location=request.route_url("members")) - # lire tous les dons du membre - dons = get_dons_by_mbr(request, mbr_id, 0) + dossier = get_dossier_by_no(request, nodossier) + if dossier is None: + request.session.flash(u"Le dossier no %s est introuvable" % (nodossier), 'danger') + return HTTPFound(location=request.route_url("agenda")) + # lire tous le suivi du dossier + details = get_dossier_rdv_by_no(request, nodossier, '0') return { - 'page_title': u"[#%s] : %s %s" % (mbr_id, member.nom, member.prenom), - 'member': member, - 'dons': dons, + 'page_title': u"Dossier : %s" % (nodossier), + 'nodossier': nodossier, + 'dossier': dossier, + 'details': details, } @view_config(route_name='agenda', renderer='../templates/agenda/agenda.pt') @@ -134,7 +120,7 @@ def agenda(request): # construire la liste des events events = [] for row in rows: - event_url = 'agenda_event/%s' % (row.nodossier) + event_url = 'dossier_view/%s' % (row.nodossier) event_title = row.c_nom # déterminer la couleur de l'event selon la societe