ajout devis_preview.pt

This commit is contained in:
2020-10-16 10:27:05 +02:00
parent 9b6f016c32
commit 50fea4710e
14 changed files with 221 additions and 33 deletions

View File

@@ -47,7 +47,7 @@ def to_euroz(x):
if x == 0:
return ""
else:
return ("%.2f" % x).replace('.', ',')
return ("%9.2f" % x).replace('.', ',')
def to_decz(x):
"""Takes a decimal and returns a string"""
@@ -326,7 +326,10 @@ def ajax_texte(request):
liste=[]
for row in items:
d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
if type == 'AR':
d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
else:
d = row.LIBART
liste.append(d)
return Response(json.dumps(liste))
@@ -335,9 +338,9 @@ def ajax_texte(request):
def ajax_article(request):
ref = request.GET['ref']
# lire les articles commencant par
# lire l'article
items = get_article(request, 'REF', ref)
# puis retourne son libellé et son prixht
liste=[]
d = {}
d['ref'] = items.ref_cli2

View File

@@ -167,6 +167,8 @@ def devis_ligne(request):
ligne['ref'] = ''
if type_ligne == 'AR':
ligne['qte'] = 1
ligne['metrage'] = ''
ligne['deduction'] = ''
else:
ligne['qte'] = 0
ligne['prixht'] = 0
@@ -178,7 +180,6 @@ def devis_ligne(request):
# lire la ligne du devis
ligne = get_devis_lignes_by_no(request, nodossier, nolig)
page_title= "Modification de la ligne %s" % (nolig)
article = '%s | %s | %s' % (ligne.ref, ligne.libelle, to_euro(ligne.prixht))
# import pdb;pdb.set_trace()
# -- ajouter une ligne
@@ -199,7 +200,7 @@ def devis_ligne(request):
else:
new_values['nolig'] = nolig
update_devis_ligne(request, nodossier, nolig, new_values)
request.session.flash(u"La ligne de texte a été mis à jour avec succès.", 'success')
request.session.flash("La ligne de texte a été mis à jour avec succès.", 'success')
return HTTPFound(location=request.route_url("devis_web", nodossier=nodossier))
elif type_ligne == 'AR':
@@ -209,6 +210,24 @@ def devis_ligne(request):
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
# calcul métrage
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
new_values['type_ligne'] = type_ligne
new_values['usermaj'] = logged_in
new_values['societe'] = societe
@@ -230,6 +249,37 @@ def devis_ligne(request):
'nolig': nolig,
'dossier': dossier,
'ligne': ligne,
'article': article,
'type_ligne': type_ligne,
'type_ligne': type_ligne,
}
@view_config(route_name='devis_preview', renderer='../templates/devis/devis_preview.pt', permission='view')
def devis_preview(request):
nodossier = request.matchdict['nodossier']
societe = nodossier[0:2]
no_id = nodossier[5:]
url = request.route_url("devis_preview", nodossier=nodossier)
logged_in = request.authenticated_userid.upper()
# calculer les totaux HT et TTC
sum_devis_totaux(request, nodossier)
dossier = get_devis_by_no(request, nodossier)
# import pdb;pdb.set_trace()
if dossier is None:
request.session.flash(u"Le document no %s est introuvable" % (nodossier), 'danger')
return HTTPFound(location=request.route_url("dossier_lookup"))
# 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)
return {
'page_title': '',
'url': url,
'logo_url': logo_url,
'nodossier': nodossier,
'dossier': dossier,
'details': details,
}