move line up and down

This commit is contained in:
2020-10-16 16:39:47 +02:00
parent 50fea4710e
commit 71305e8002
5 changed files with 122 additions and 29 deletions

View File

@@ -139,6 +139,7 @@ def devis_web(request):
'dossier': dossier,
'details': details,
'bg_color': bg_color,
'max_no': len(details),
}
@view_config(route_name='devis_ligne', renderer='../templates/devis/devis_ligne.pt', permission='view')
@@ -210,24 +211,30 @@ def devis_ligne(request):
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
# calcul métrage
# calcul métrage si saisi
metrage = 0
try:
metrage = eval(request.params['metrage'])
except SyntaxError:
request.session.flash("Erreur de syntaxe dans la formule de calcul", 'danger')
return HTTPFound(location=url)
deduc = 0
try:
deduc = eval(request.params['deduction'])
except SyntaxError:
request.session.flash("Erreur de syntaxe dans la formule de calcul", 'danger')
return HTTPFound(location=url)
if deduc < 0 :
metrage += deduc
else:
metrage -= deduc
new_values['qte'] = metrage
saisie = request.params['metrage']
if len(saisie) > 0:
try:
metrage = eval(saisie)
except (SyntaxError, NameError, TypeError, ZeroDivisionError):
message = "Erreur de syntaxe dans la formule de calcul"
# calcul deduction si saisi
saisie = request.params['deduction']
if len(saisie) > 0:
deduc = 0
try:
deduc = eval(saisie)
except (SyntaxError, NameError, TypeError, ZeroDivisionError):
message = "Erreur de syntaxe dans la formule de calcul"
if deduc < 0 :
metrage += deduc
else:
metrage -= deduc
# si metrage saisi, le mettre dans qte
if metrage > 0:
new_values['qte'] = metrage
new_values['type_ligne'] = type_ligne
new_values['usermaj'] = logged_in
new_values['societe'] = societe
@@ -239,6 +246,12 @@ def devis_ligne(request):
update_devis_ligne(request, nodossier, nolig, new_values)
request.session.flash(u"La ligne de devis a été mis à jour avec succès.", 'success')
return HTTPFound(location=request.route_url("devis_web", nodossier=nodossier))
# -- ajouter une ligne
if 'form.deleted' in request.params:
delete_devis_ligne(request, nodossier, nolig)
request.session.flash(u"La ligne de devis a été supprimée avec succès.", 'success')
return HTTPFound(location=request.route_url("devis_web", nodossier=nodossier))
return {
@@ -249,7 +262,7 @@ def devis_ligne(request):
'nolig': nolig,
'dossier': dossier,
'ligne': ligne,
'type_ligne': type_ligne,
'type_ligne': type_ligne,
}
@view_config(route_name='devis_preview', renderer='../templates/devis/devis_preview.pt', permission='view')
@@ -262,6 +275,8 @@ def devis_preview(request):
# calculer les totaux HT et TTC
sum_devis_totaux(request, nodossier)
# select logo according to society
logo_url = request.static_url('mondumas:static/img/Logo-%s.jpg' % societe)
dossier = get_devis_by_no(request, nodossier)
# import pdb;pdb.set_trace()
@@ -271,8 +286,27 @@ def devis_preview(request):
# lire tous les lignes du devis
details = get_devis_lignes_by_no(request, nodossier, '0')
# select logo according to society
logo_url = request.static_url('mondumas:static/img/Logo-%s.jpg' % societe)
# générer les détails en HTML
dt_html = ''
for ligne in details:
if ligne.ref == 'T1':
dt_html += '<h4 class="text-center">%s</h4>' % ligne.libelle
elif ligne.ref == 'T2':
dt_html += '<p><b>%s</b></p>' % ligne.libelle
elif ligne.ref == 'TX':
dt_html += '<div class="col-sm-7"><p>%s</p></div>' % ligne.libelle
elif ligne.type_ligne == 'AR':
dt_html += '<div class="col-sm-7"><p>%s<br />' % ligne.libelle
if ligne.metrage:
dt_html += '<i>%s</i><br />' % ligne.metrage
if ligne.deduction:
dt_html += 'déduction :<br />'
dt_html += '<i>%s</i><br />' % ligne.deduction
dt_html += '</p></div>'
dt_html += '<div class="col-sm-1"><p class="text-right">%s</p></div>' % ligne.qte
dt_html += '<div class="col-sm-2"><p class="text-right">%s</p></div>' % ligne.prixht
dt_html += '<div class="col-sm-2"><p class="text-right">%s</p></div>' % ligne.mtht
return {
'page_title': '',
@@ -281,5 +315,18 @@ def devis_preview(request):
'nodossier': nodossier,
'dossier': dossier,
'details': details,
'dt_html': dt_html,
}
@view_config(route_name='devis_lig_mv', permission='view')
def devis_lig_mv(request):
move = request.matchdict['move']
nodossier = request.matchdict['nodossier']
nolig = request.matchdict['nolig']
societe = nodossier[0:2]
no_id = nodossier[5:]
logged_in = request.authenticated_userid.upper()
move_devis_ligne(request, nodossier, int(nolig), move)
request.session.flash(u"La ligne de devis a été déplacée avec succès.", 'success')
return HTTPFound(location=request.route_url("devis_web", nodossier=nodossier))