ajout bouton changement de statut pour dossier

This commit is contained in:
thienan
2021-06-23 10:43:43 +02:00
parent c7f30b1555
commit df8753b1b7
4 changed files with 368 additions and 419 deletions

View File

@@ -1,77 +0,0 @@
###
# app configuration
# http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/narr/environment.html
###
[app:main]
use = egg:mondumas
pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
pyramid_chameleon
pyramid_debugtoolbar
pyramid_layout
pyramid_mailer
pyramid_tm
sqlalchemy.url = mysql://phuoc:phuoc!@192.168.1.17/bddevfac?charset=utf8
# sqlalchemy.url = mysql://phuoc:phuoc!@192.168.0.31/bddevfac?charset=utf8
mondumas.admin_email = cao.thien-phuoc@orange.fr
mondumas.devfac_url = mondumas:static/DEVFAC/DOCS_ATTACHES/
mondumas.devfac_dir = /DEVFAC14/DOCS_ATTACHES
# Mailer configuration
mail.host = smtp.orange.fr
mail.port = 25
mail.username = cao.thien-phuoc@orange.fr
[server:main]
use = egg:waitress#main
host = 0.0.0.0
port = 9180
###
# logging configuration
# http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/narr/logging.html
###
[loggers]
keys = root, mondumas, sqlalchemy
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[logger_mondumas]
level = DEBUG
handlers =
qualname = mondumas
[logger_sqlalchemy]
level = INFO
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither. (Recommended for production systems.)
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s

View File

@@ -188,12 +188,12 @@ def update_dossier(request, nodossier, new_values):
query = "CALL spUPD_CHANTIER_COORD(:societe, :nochantier);" query = "CALL spUPD_CHANTIER_COORD(:societe, :nochantier);"
execute_query(request, query, {'societe': societe, 'nochantier': nochantier}) execute_query(request, query, {'societe': societe, 'nochantier': nochantier})
def update_dossier_cloture(request, nodossier, logged_in): def update_dossier_cloture(request, nodossier, status, logged_in):
societe = nodossier[0:2] societe = nodossier[0:2]
nochantier = int(nodossier[3:]) nochantier = int(nodossier[3:])
# met le montant regle à 1 centime pour terminé le dossier # met le montant regle à 1 centime pour terminé le dossier
query = "UPDATE dem_devis SET STATUS = 'Annulée', USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier" query = "UPDATE dem_devis SET STATUS = :status, USERMAJ = :logged_in WHERE societe=:societe AND no_id=:nochantier"
execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'logged_in': logged_in}) execute_query(request, query, {'societe': societe, 'nochantier': nochantier, 'status': status, 'logged_in': logged_in})
def insert_dossier_attaches(request, nodossier, norapport, origine, filename, filesize, user): def insert_dossier_attaches(request, nodossier, norapport, origine, filename, filesize, user):
societe = nodossier[0:2] societe = nodossier[0:2]
@@ -324,3 +324,8 @@ def get_log_demandes(request, ):
FROM t_log_nuit WHERE proc = 'GENERER';""" FROM t_log_nuit WHERE proc = 'GENERER';"""
results = request.dbsession.execute(query, ) results = request.dbsession.execute(query, )
return results.fetchall() return results.fetchall()
def get_status_by_id(request, code):
query = """SELECT libelle FROM bddevfac.p_statuts WHERE code = :code"""
results = request.dbsession.execute(query, {'code': code})
return results.fetchall()

View File

@@ -329,20 +329,30 @@
<div class="form-group"> <div class="form-group">
<p class="text-center"><b>Voulez-vous clôturer le dossier ?</b></p> <p class="text-center"><b>Voulez-vous clôturer le dossier ?</b></p>
</div> </div>
<label class="control-label col-xs-4">Sélectionner le type de clôture :</label> <div class="row">
<label class="control-label col-xs-4" for="status">Sélectionner le statut :</label>
<div class="col-xs-8"> <div class="col-xs-8">
<label class="radio"><input type="radio" name="type_act" value="annulé" checked>Annulé</label> <select class="form-control" id="status" name="status">
<label class="radio"><input type="radio" name="type_act" value="refusé">Refusé</label> <div tal:repeat="item status">
<label class="radio"><input type="radio" name="type_act" value="en attente">En attente</label> <option value="${item}" tal:attributes="selected dossier.STATUS==item[0] and 'selected' or None">${item}</option>
</div> </div>
<label class="control-label col-xs-4">Motif :</label> </select>
</div>
</div>
<br>
<div class="row">
<label class="control-label col-xs-4" for="motif">Motif :</label>
<div class="col-xs-8"> <div class="col-xs-8">
<input class="form-control" type="text" id="motif" name="motif" value="" <input class="form-control" type="text" id="motif" name="motif" value=""
placeholder="65 caractères maximum" placeholder="65 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="Veuillez remplir un motif"
data-fv-stringlength="true" data-fv-stringlength="true"
data-fv-stringlength-max="65" data-fv-stringlength-max="65"
data-fv-stringlength-message="65 caractères maximum"/> data-fv-stringlength-message="65 caractères maximum"/>
</div> </div>
</div>
<br>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button> <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="submit" class="btn btn-warning" name="form.close">Clôturer</button> <button type="submit" class="btn btn-warning" name="form.close">Clôturer</button>

View File

@@ -126,15 +126,25 @@ def dossier_view(request):
# select background color according to society # select background color according to society
bg_color = "bg-%s" % societe bg_color = "bg-%s" % societe
if 'form.close' in request.params: status = ["0 | Non traité", "1 | Contact pris", "2 | RDV pris", "3 | Devis établi", "4 | Devis accepté", "5 | Trav. plan",
"6 | Facturé", "7 | Réglé part.", "8 | Réglé", "10 | Annulé", "11 | Refusé", "12 | Attente"]
action = request.params["type_act"] if 'form.close' in request.params:
status = request.params["status"]
motif = request.params["motif"] motif = request.params["motif"]
comment = 'Le dossier est' + action + 'car' + motif code = status[:2].strip()
action = str(get_status_by_id(request, code)[0].libelle)
if int(code) < 10:
comment = action + " pour ce dossier car " + motif
else:
comment = 'Le dossier est ' + action + ' car ' + motif
insert_suivi(request, nodossier, comment) insert_suivi(request, nodossier, comment)
update_dossier_cloture(request, nodossier, logged_in) update_dossier_cloture(request, nodossier, code, logged_in)
request.session.flash(u"Le dossier a été cloturé avec succès.", 'success') request.session.flash(u"Le dossier a été cloturé avec succès.", 'success')
return HTTPFound(url) return HTTPFound(url)
@@ -153,6 +163,7 @@ def dossier_view(request):
'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']), 'docs_url': request.static_url(request.registry.settings['mondumas.devfac_url']),
'bg_color': bg_color, 'bg_color': bg_color,
'access': access, 'access': access,
'status': status,
} }
@view_config(route_name='dossier_selected', permission='view') @view_config(route_name='dossier_selected', permission='view')