diff --git a/mondumas/models/agenda.py b/mondumas/models/agenda.py index c61c4fc..53b5675 100644 --- a/mondumas/models/agenda.py +++ b/mondumas/models/agenda.py @@ -26,6 +26,12 @@ def get_users_agenda(request): results = request.dbsession.execute(query).fetchall() return results +def get_types_rdv(request): + """ lire la liste des types de rendez-vous""" + query = "SELECT * FROM p_types_rdv ORDER BY LIB;" + results = request.dbsession.execute(query).fetchall() + return results + def get_rendez_vous(request, itc): d = datetime.now() d = d - dateutil.relativedelta.relativedelta(months=3) @@ -33,7 +39,7 @@ def get_rendez_vous(request, itc): datedeb = d.strftime('%Y-%m-01') # lire les rdv de l'ITC - query = """SELECT CONCAT(l.societe,"-",l.no_id) as nodossier, l.nolig, l.rdv_debut, l.rdv_fin, e.c_nom, e.c_ville FROM dem_lig l + query = """SELECT CONCAT(l.societe,"-",l.no_id) as nodossier, l.nolig, l.rdv_debut, l.rdv_fin, e.c_qualite, e.c_nom, e.c_ville FROM dem_lig l INNER JOIN dem_devis e ON l.societe=e.societe AND l.no_id=e.no_id WHERE l.datevi >= :datedeb AND l.liste=:itc ORDER BY l.datevi, l.heurevi """ @@ -71,3 +77,12 @@ def update_rdv(request, nodossier, nolig, new_values): query = "UPDATE dem_lig SET %s WHERE societe = :societe AND NO_ID = :no_id AND NOLIG = :nolig ;" % s execute_query(request, query, new_values) +def create_rdv(request, nodossier, dateRDV, heureRDV, type_rdv, agenda, logged_in): + societe = nodossier[0:2] + no_id = nodossier[3:] + + query = """ +INSERT INTO dem_lig (societe, NO_ID, DATE, COMMENT, DATEVI, HEUREVI, LISTE, USERMAJ) VALUES +(:societe, :no_id, CURRENT_DATE, :type_rdv, :dateRDV, :heureRDV, :agenda, :logged_in) ;""" + execute_query(request, query, {'societe': societe, 'no_id' :no_id, 'dateRDV': dateRDV, 'heureRDV': heureRDV, 'type_rdv': type_rdv, 'agenda': agenda, 'logged_in':logged_in}) + diff --git a/mondumas/models/default.py b/mondumas/models/default.py index 8586ff1..261d0b9 100644 --- a/mondumas/models/default.py +++ b/mondumas/models/default.py @@ -81,63 +81,3 @@ def delete_membre(request, cd_uti): query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;" execute_query(request, query, {'cd_uti': cd_uti}) -def get_chantiers_byName(request, societe, name, tous): - - query = "CALL spGET_CHANTIERS_byName('%s','%s');" % (societe, name) - results = request.dbsession.execute(query).fetchall() - return results - -def get_dossier_by_no(request,nodossier): - societe = nodossier[0:2] - no_id = nodossier[3:] - query = """ -SELECT d.*, c.*, a.NOM as nom_cabinet, e.NOM as nom_expert FROM dem_devis d -INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli -INNER JOIN p_cabinet a ON d.cabinet = a.code -INNER JOIN p_experts e ON d.cabinet = e.code_cab and d.expert = e.code_exp -where d.societe = '%s' and d.no_id=%s;""" % (societe, no_id); - results = request.dbsession.execute(query).first() - return results - -def get_dossier_rdv_by_no(request,nodossier, nolig): - societe = nodossier[0:2] - no_id = nodossier[3:] - - if nolig == '0': - query = "SELECT * FROM dem_lig where societe = '%s' and no_id=%s;" % (societe, no_id) - results = request.dbsession.execute(query).fetchall() - else: - query = "SELECT * FROM dem_lig where societe = '%s' and no_id=%s and nolig=%s;" % (societe, no_id, nolig) - results = request.dbsession.execute(query).first() - - return results - -def get_documents_byChantier(request,nodossier): - societe = nodossier[0:2] - no_id = nodossier[3:] - - query = "CALL spGET_DOSSIERS_byNumeo('%s',%s);" % (societe, no_id) - results = request.dbsession.execute(query).fetchall() - return results - -def update_suivi(request, nodossier, nolig, new_values): - societe = nodossier[0:2] - no_id = nodossier[3:] - - new_values['societe'] = societe - new_values['NO_ID'] = no_id - s = '' - for param in new_values.keys(): - if s: - s += ",%s=:%s" % (param, param) - else: - s = "%s=:%s" % (param, param) - - if nolig == '0': - query = "INSERT INTO dem_lig SET %s" % s - else: - new_values['nolig'] = nolig - query = "UPDATE dem_lig SET %s WHERE societe = :societe AND NO_ID = :no_id AND NOLIG = :nolig ;" % s - - execute_query(request, query, new_values) - diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py new file mode 100644 index 0000000..7d4c292 --- /dev/null +++ b/mondumas/models/dossier.py @@ -0,0 +1,83 @@ +# -*- coding: utf8 -*- +from sqlalchemy import text +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import ( + scoped_session, + sessionmaker, +) +from zope.sqlalchemy import ( + ZopeTransactionExtension, + mark_changed +) + +from datetime import * +import transaction + +def execute_query(request, query, params): + """Execute query and mark session as changed""" + request.dbsession.execute(query, params) + mark_changed(request.dbsession) + transaction.commit() + +def get_chantiers_byName(request, societe, name, tous): + + query = "CALL spGET_CHANTIERS_byName('%s','%s');" % (societe, name) + results = request.dbsession.execute(query).fetchall() + return results + +def get_dossier_by_no(request,nodossier): + societe = nodossier[0:2] + no_id = nodossier[3:] + query = """ +SELECT d.*, c.*, a.NOM as nom_cabinet, e.NOM as nom_expert FROM dem_devis d +INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli +INNER JOIN p_cabinet a ON d.cabinet = a.code +INNER JOIN p_experts e ON d.cabinet = e.code_cab and d.expert = e.code_exp +where d.societe = '%s' and d.no_id=%s;""" % (societe, no_id); + results = request.dbsession.execute(query).first() + return results + +def get_dossier_rdv_by_no(request,nodossier, nolig): + societe = nodossier[0:2] + no_id = nodossier[3:] + + if nolig == '0': + query = "SELECT * FROM dem_lig WHERE societe = :societe AND no_id = :no_id;" + results = request.dbsession.execute(query, {'societe': societe, 'no_id': no_id}).fetchall() + else: + query = """ +SELECT l.*, d.C_QUALITE, d.C_NOM FROM dem_lig l INNER JOIN dem_devis d ON l.societe = d.societe and l.no_id = d.no_id +where l.societe = '%s' and l.no_id=%s and l.nolig=%s;""" % (societe, no_id, nolig) + results = request.dbsession.execute(query).first() + + return results + +def get_documents_byChantier(request,nodossier): + societe = nodossier[0:2] + no_id = nodossier[3:] + + query = "CALL spGET_DOSSIERS_byNumeo('%s',%s);" % (societe, no_id) + results = request.dbsession.execute(query).fetchall() + return results + +def update_suivi(request, nodossier, nolig, new_values): + societe = nodossier[0:2] + no_id = nodossier[3:] + + new_values['societe'] = societe + new_values['NO_ID'] = no_id + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + if nolig == '0': + query = "INSERT INTO dem_lig SET %s" % s + else: + new_values['nolig'] = nolig + query = "UPDATE dem_lig SET %s WHERE societe = :societe AND NO_ID = :no_id AND NOLIG = :nolig ;" % s + + execute_query(request, query, new_values) + diff --git a/mondumas/static/css/style.less b/mondumas/static/css/style.less index 5f41384..4e0c942 100644 --- a/mondumas/static/css/style.less +++ b/mondumas/static/css/style.less @@ -46,6 +46,14 @@ color: #000000 !important; } +.modal-dialog { + position: absolute; + margin-left: 200px; + height: 500px; + top: 80px; + +} + #footer { text-align: center; color: #428BCA; diff --git a/mondumas/templates/agenda/agenda.pt b/mondumas/templates/agenda/agenda.pt index fd2216c..19aef5d 100644 --- a/mondumas/templates/agenda/agenda.pt +++ b/mondumas/templates/agenda/agenda.pt @@ -17,7 +17,7 @@
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} + |
+
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} + |
+
| Date | +Action | +Rendez-vous | +Réf. lettre | +Par | +|
|---|---|---|---|---|---|
| + + ${detail.DATE.strftime('%d-%m-%Y')} + | ++ ${detail.COMMENT} ${detail.COMMENTVI} + | ++ ${detail.COMMENT} ${detail.COMMENTVI} + | ++ + + ${detail.rdv_debut.strftime('%d-%m-%Y %H:%M')} avec ${detail.LISTE} + + | +${detail.REF_LET} | +${detail.USERMAJ} | +
| Numéro | +Date | +Client | +Montant | +Statut | +
|---|---|---|---|---|
| ${detail.TYPE}-${detail.numero} | +${detail.date.strftime('%d-%m-%Y')} | +${detail.nomcli} | +${layout.to_euro(detail.montant)} | +${detail.status} | +