add rdv_edit.pt
This commit is contained in:
@@ -18,8 +18,8 @@ pyramid.includes =
|
|||||||
pyramid_mailer
|
pyramid_mailer
|
||||||
pyramid_tm
|
pyramid_tm
|
||||||
|
|
||||||
# sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
|
sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
|
||||||
sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8
|
# sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8
|
||||||
|
|
||||||
mondumas.admin_email = ctphuoc@bbox.fr
|
mondumas.admin_email = ctphuoc@bbox.fr
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from zope.sqlalchemy import (
|
|||||||
mark_changed
|
mark_changed
|
||||||
)
|
)
|
||||||
|
|
||||||
import datetime
|
from datetime import *
|
||||||
import dateutil.relativedelta
|
import dateutil.relativedelta
|
||||||
import transaction
|
import transaction
|
||||||
|
|
||||||
@@ -96,30 +96,30 @@ def get_rendez_vous(request, itc):
|
|||||||
results = request.dbsession.execute(query, {'datedeb': datedeb, 'itc': itc}).fetchall()
|
results = request.dbsession.execute(query, {'datedeb': datedeb, 'itc': itc}).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def delete_don(request, mbr_id, don_id):
|
def delete_rdv(request, nodossier, nolig):
|
||||||
query = "DELETE FROM mbr_dons WHERE mbr_id = :mbr_id and don_id = :don_id;"
|
societe = nodossier[0:2]
|
||||||
execute_query(request, query, {'mbr_id': mbr_id, 'don_id': don_id})
|
table = get_table_details(nodossier[3:5])
|
||||||
|
no_id = nodossier[6:]
|
||||||
|
|
||||||
|
query = "DELETE FROM %s where societe = '%s' and no_id=%s and nolig=%s;" % (table, societe, no_id, nolig)
|
||||||
|
execute_query(request, query, {})
|
||||||
|
|
||||||
|
def update_rdv(request, nodossier, nolig, comment, commentvi, date_rdv):
|
||||||
|
societe = nodossier[0:2]
|
||||||
|
table = get_table_details(nodossier[3:5])
|
||||||
|
no_id = nodossier[6:]
|
||||||
|
|
||||||
def update_don(request, mbr_id, don_id, new_values):
|
|
||||||
# formater les champs
|
# formater les champs
|
||||||
s = ''
|
ddate = datetime.strptime(date_rdv, '%d-%m-%Y %H:%M')
|
||||||
for param in new_values.keys():
|
datevi = ddate.strftime("%Y-%m-%d")
|
||||||
if param == 'date':
|
heurevi = date_rdv[-5:]
|
||||||
ddate = datetime.strptime(new_values['date'], '%d/%m/%Y')
|
|
||||||
new_values['date'] = ddate.strftime("%Y/%m/%d")
|
|
||||||
if s:
|
|
||||||
s += ",%s=:%s" % (param, param)
|
|
||||||
else:
|
|
||||||
s = "%s=:%s" % (param, param)
|
|
||||||
|
|
||||||
if don_id == '0':
|
if nolig == '0':
|
||||||
new_values['mbr_id'] = mbr_id
|
query = "INSERT INTO %s SET societe='%s', datevi='%s', heurevi='%s', comment='%s', commentvi='%s'" % (table, societe, datevi, heurevi, comment, commentvi)
|
||||||
query = "INSERT INTO mbr_dons SET %s" % s
|
|
||||||
else:
|
else:
|
||||||
new_values['mbr_id'] = mbr_id
|
query = "UPDATE %s SET datevi='%s', heurevi='%s', comment='%s', commentvi='%s' where societe = '%s' and no_id=%s and nolig=%s;" % (table, datevi, heurevi, comment, commentvi, societe, no_id, nolig)
|
||||||
new_values['don_id'] = don_id
|
|
||||||
query = "UPDATE mbr_dons SET %s WHERE mbr_id = :mbr_id and don_id = :don_id;" % s
|
execute_query(request, query, {})
|
||||||
execute_query(request, query, new_values)
|
|
||||||
|
|
||||||
def update_journal(request, jnl, no_id, new_values):
|
def update_journal(request, jnl, no_id, new_values):
|
||||||
# formater les champs
|
# formater les champs
|
||||||
@@ -151,28 +151,6 @@ def delete_membre(request, mbr_id):
|
|||||||
query = "DELETE FROM membres WHERE mbr_id = :mbr_id ;"
|
query = "DELETE FROM membres WHERE mbr_id = :mbr_id ;"
|
||||||
execute_query(request, query, {'mbr_id': mbr_id})
|
execute_query(request, query, {'mbr_id': mbr_id})
|
||||||
|
|
||||||
def insert_gift_to_account(request, libelle_esp, libelle_chq):
|
|
||||||
import pdb;pdb.set_trace()
|
|
||||||
# genere une écriture dans le journal de caisse pour les espèces
|
|
||||||
query = "SELECT sum(montant) as total FROM mbr_dons where valide_le IS NULL and mode='ESPECE';"
|
|
||||||
result = request.dbsession.execute(query).first()
|
|
||||||
if result.total > 0:
|
|
||||||
query = """INSERT INTO jnl_caisse (date, compte, libelle, recette, valide_le)
|
|
||||||
VALUES (CURRENT_DATE, '7540', :libelle_esp, :total_esp, CURRENT_DATE);"""
|
|
||||||
execute_query(request, query, {'libelle_esp': libelle_esp, 'total_esp': result.total})
|
|
||||||
|
|
||||||
# genere une écriture dans le journal de banque pour les chèques
|
|
||||||
query = "SELECT sum(montant) as total FROM mbr_dons where valide_le IS NULL and mode='CHEQUE';"
|
|
||||||
result = request.dbsession.execute(query).first()
|
|
||||||
if result.total > 0:
|
|
||||||
query = """INSERT INTO jnl_banque (date, compte, libelle, recette, valide_le)
|
|
||||||
VALUES (CURRENT_DATE, '7540', :libelle_chq, :total_chq, CURRENT_DATE);"""
|
|
||||||
execute_query(request, query, {'libelle_chq': libelle_chq, 'total_chq': result.total})
|
|
||||||
|
|
||||||
# valider les dons
|
|
||||||
query = "UPDATE mbr_dons SET valide_le = CURRENT_DATE WHERE valide_le IS NULL;"
|
|
||||||
execute_query(request, query, {})
|
|
||||||
|
|
||||||
def update_membre(request, mbr_id, new_values):
|
def update_membre(request, mbr_id, new_values):
|
||||||
# formater les champs
|
# formater les champs
|
||||||
s = ''
|
s = ''
|
||||||
|
|||||||
@@ -4,41 +4,31 @@
|
|||||||
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
|
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
|
||||||
<br />
|
<br />
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<form id="empl_edit-form" class="form-horizontal" action="${url}" method="post" tal:condition="rdv"
|
<form id="rdv_edit-form" class="form-horizontal" action="${url}" method="post"
|
||||||
data-fv-framework="bootstrap"
|
data-fv-framework="bootstrap"
|
||||||
data-fv-icon-valid="glyphicon glyphicon-ok"
|
data-fv-icon-valid="glyphicon glyphicon-ok"
|
||||||
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
data-fv-icon-invalid="glyphicon glyphicon-remove"
|
||||||
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
data-fv-icon-validating="glyphicon glyphicon-refresh">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-xs-2 control-label" for="date_vi">Date</label>
|
<label class="col-xs-2 control-label" for="date_rdv">Date et heure</label>
|
||||||
<div class="col-xs-3 date">
|
<div class="col-xs-3 input-group date" id="date_rdv_picker">
|
||||||
<input class="form-control" type="text" name="date_vi"
|
<input class="form-control" type="text" name="date_rdv" value="${date_rdv.strftime('%d-%m-%Y %H:%M')}"
|
||||||
value="${rdv.DATEVI.strftime('%d-%m-%Y')}"
|
|
||||||
data-fv-notempty="true"
|
data-fv-notempty="true"
|
||||||
data-fv-notempty-message="La date est obligatoire"
|
data-fv-notempty-message="La date et l'heure sont obligatoires"
|
||||||
data-fv-date="true"
|
data-fv-date="true"
|
||||||
data-fv-date-format="DD-MM-YYYY"
|
data-fv-date-format="DD-MM-YYYY HH:mm"
|
||||||
data-fv-date-message="La date n'est pas valide" />
|
data-fv-date-message="La date et l'heure ne sont pas valides" />
|
||||||
|
<span class="input-group-addon add-on">
|
||||||
|
<span class="glyphicon glyphicon-calendar"></span>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-2" for="heurevi">Heure</label>
|
|
||||||
<div class="col-xs-3">
|
|
||||||
<input class="form-control" type="text" name="heurevi"
|
|
||||||
value="${rdv.HEUREVI.strftime('%H:%M')}"
|
|
||||||
data-fv-notempty="true"
|
|
||||||
data-fv-notempty-message="L'heure est obligatoire"
|
|
||||||
data-fv-date="true"
|
|
||||||
data-fv-date-format="h:m"
|
|
||||||
data-fv-date-message="L'heure n'est pas valide" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="comment">Commentaire 1</label>
|
<label class="control-label col-xs-2" for="comment">Commentaire 1</label>
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<input class="form-control" type="text" id="comment" name="comment" value="${rdv.COMMENT}"
|
<input class="form-control" type="text" id="comment" name="comment" value="${comment}"
|
||||||
placeholder="30 caractères maximum"
|
placeholder="30 caractères maximum"
|
||||||
data-fv-notempty="true"
|
data-fv-notempty="true"
|
||||||
data-fv-notempty-message="Un commentaire est obligatoire"
|
data-fv-notempty-message="Un commentaire est obligatoire"
|
||||||
@@ -50,7 +40,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-xs-2" for="commentvi">Commentaire 2</label>
|
<label class="control-label col-xs-2" for="commentvi">Commentaire 2</label>
|
||||||
<div class="col-xs-5">
|
<div class="col-xs-5">
|
||||||
<input class="form-control" type="text" id="commentvi" name="commentvi" value="${rdv.COMMENTVI}"
|
<input class="form-control" type="text" id="commentvi" name="commentvi" value="${commentvi}"
|
||||||
placeholder="30 caractères maximum"
|
placeholder="30 caractères maximum"
|
||||||
data-fv-stringlength="true"
|
data-fv-stringlength="true"
|
||||||
data-fv-stringlength-max="30"
|
data-fv-stringlength-max="30"
|
||||||
@@ -66,7 +56,7 @@
|
|||||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||||
<button class="btn btn-warning" type="submit" name="form.deleted"
|
<button class="btn btn-warning" type="submit" name="form.deleted"
|
||||||
tal:condition="python: rdv.NOLIG <> '0'">
|
tal:condition="python: nolig <> '0'">
|
||||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -80,7 +70,17 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#empl_edit-form').formValidation();
|
$('#date_rdv_picker').datetimepicker({
|
||||||
|
format: 'DD-MM-YYYY HH:mm',
|
||||||
|
showClear: true,
|
||||||
|
allowInputToggle: true,
|
||||||
|
stepping: 15,
|
||||||
|
});
|
||||||
|
$('#rdv_edit-form').formValidation();
|
||||||
|
$('#date_rdv_picker').on('changeDate', function(e) {
|
||||||
|
// Revalidate the date field
|
||||||
|
$('#rdv_edit-form').formValidation('revalidateField', 'date_rdv');
|
||||||
|
});
|
||||||
$('form input').on('keypress', function(e) {
|
$('form input').on('keypress', function(e) {
|
||||||
return e.which !== 13;
|
return e.which !== 13;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,8 +9,9 @@
|
|||||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" />
|
||||||
|
|
||||||
<!-- Bootstrap core + Plug-ins CSS -->
|
<!-- Bootstrap core + Plug-ins CSS -->
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.css" rel="stylesheet">
|
<link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.css" rel="stylesheet">
|
||||||
|
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
||||||
<!-- link href="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.css')}" rel="stylesheet" media="all" -->
|
<!-- link href="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.css')}" rel="stylesheet" media="all" -->
|
||||||
<link href="${request.static_url('mondumas:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet">
|
<link href="${request.static_url('mondumas:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet">
|
||||||
<!-- Custom CSS -->
|
<!-- Custom CSS -->
|
||||||
@@ -24,6 +25,8 @@
|
|||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script>
|
||||||
<script src="${request.static_url('mondumas:static/dist/fullcalendar/fr.js')}"></script>
|
<script src="${request.static_url('mondumas:static/dist/fullcalendar/fr.js')}"></script>
|
||||||
|
<!-- Bootstrap Datepicker plugin -->
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
|
||||||
<!-- Datatable
|
<!-- Datatable
|
||||||
<script src="${request.static_url('mondumas:static/dist/datatable/jquery.dataTables.js')}"></script>
|
<script src="${request.static_url('mondumas:static/dist/datatable/jquery.dataTables.js')}"></script>
|
||||||
<script src="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.js')}"></script>
|
<script src="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.js')}"></script>
|
||||||
|
|||||||
@@ -38,12 +38,9 @@ def rdv_edit(request):
|
|||||||
message = ''
|
message = ''
|
||||||
if nolig == '0':
|
if nolig == '0':
|
||||||
# nouveau
|
# nouveau
|
||||||
rdv = {}
|
comment = ''
|
||||||
rdv['NOLIG'] = 0
|
commentvi = ''
|
||||||
rdv['COMMENT'] = ''
|
date_rdv = datetime.now()
|
||||||
rdv['COMMENTVI'] = ''
|
|
||||||
rdv['DATEVI'] = date.today()
|
|
||||||
rdv['HEUREVI'] = '09:00'
|
|
||||||
page_title= 'Nouveau rendez-vous'
|
page_title= 'Nouveau rendez-vous'
|
||||||
else:
|
else:
|
||||||
# lire le rendez-vous
|
# lire le rendez-vous
|
||||||
@@ -51,16 +48,18 @@ def rdv_edit(request):
|
|||||||
if not rdv:
|
if not rdv:
|
||||||
request.session.flash(u"Rendez-vous non trouvé : %s" % nodossier, 'warning')
|
request.session.flash(u"Rendez-vous non trouvé : %s" % nodossier, 'warning')
|
||||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
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'))
|
|
||||||
|
comment = rdv.COMMENT
|
||||||
|
commentvi = rdv.COMMENTVI
|
||||||
|
date_rdv = rdv.rdv_debut
|
||||||
|
page_title= u"Modification du rdv du %s" % (rdv.rdv_debut.strftime('%d-%m-%Y %H:%M'))
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
comment = request.params['comment']
|
||||||
for param, db_value in rdv.items():
|
commentvi = request.params['commentvi']
|
||||||
if param in request.params and request.params[param] != db_value:
|
date_rdv = request.params['date_rdv']
|
||||||
new_values[param] = request.params[param]
|
|
||||||
|
|
||||||
if new_values:
|
update_rdv(request, nodossier, nolig, comment, commentvi, date_rdv)
|
||||||
update_rdv(request, nodossier, nolig, new_values)
|
|
||||||
request.session.flash(u"Le rendez-vous a été mis à jour avec succès.", 'success')
|
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))
|
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||||
|
|
||||||
@@ -73,7 +72,10 @@ def rdv_edit(request):
|
|||||||
'page_title': page_title,
|
'page_title': page_title,
|
||||||
'url': url,
|
'url': url,
|
||||||
'nodossier': nodossier,
|
'nodossier': nodossier,
|
||||||
'rdv': rdv,
|
'nolig': nolig,
|
||||||
|
'comment': comment,
|
||||||
|
'commentvi': commentvi,
|
||||||
|
'date_rdv': date_rdv,
|
||||||
'message': message,
|
'message': message,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,13 +128,13 @@ def agenda(request):
|
|||||||
# déterminer la couleur de l'event selon la societe
|
# déterminer la couleur de l'event selon la societe
|
||||||
societe = row.nodossier[0:2]
|
societe = row.nodossier[0:2]
|
||||||
if societe == "PE":
|
if societe == "PE":
|
||||||
color = "#ff4444" # rouge danger
|
color = "#d9534f" # rouge danger
|
||||||
elif societe == "PL":
|
elif societe == "PL":
|
||||||
color = "#00C851" # vert success
|
color = "#5cb85c" # vert success
|
||||||
elif societe == "PL":
|
elif societe == "PL":
|
||||||
color = "#33b5e5" # bleu info
|
color = "#5bc0de" # bleu info
|
||||||
else:
|
else:
|
||||||
color = "#ffbb33" # orange warning
|
color = "#f0ad4e" # orange warning
|
||||||
|
|
||||||
json_event = {
|
json_event = {
|
||||||
'title': event_title,
|
'title': event_title,
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ def envoyer_mdp(request):
|
|||||||
lien = update_membre_mdp_oublie(request, login)
|
lien = update_membre_mdp_oublie(request, login)
|
||||||
body = u"""
|
body = u"""
|
||||||
|
|
||||||
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « mon.entreprise-dumas.com » :
|
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « gestion.entreprise-dumas.com » :
|
||||||
|
|
||||||
|
|
||||||
%s
|
%s
|
||||||
@@ -194,11 +194,11 @@ def envoyerMail(request, destinataire, objet, corps):
|
|||||||
%s
|
%s
|
||||||
|
|
||||||
Cordialement,
|
Cordialement,
|
||||||
mon.entreprise-dumas.com
|
gestion.entreprise-dumas.com
|
||||||
|
|
||||||
""" % (corps)
|
""" % (corps)
|
||||||
|
|
||||||
message = Message(subject=u"[Ent. Duams] %s" % objet,
|
message = Message(subject=u"[Ent. Dumas] %s" % objet,
|
||||||
sender=request.registry.settings['mondumas.admin_email'],
|
sender=request.registry.settings['mondumas.admin_email'],
|
||||||
body=body)
|
body=body)
|
||||||
message.add_recipient(destinataire)
|
message.add_recipient(destinataire)
|
||||||
|
|||||||
Reference in New Issue
Block a user