creation ligne devis article

This commit is contained in:
2020-10-04 16:44:57 +02:00
parent 500e07c810
commit 9aa6c8985e
12 changed files with 340 additions and 25 deletions

View File

@@ -314,4 +314,19 @@ def ajax_client(request):
return Response(json.dumps(liste))
@view_config(route_name='ajax_texte')
def ajax_texte(request):
recherche = request.GET['recherche']
# lire les codes postaux commencant par
items = get_article(request, recherche)
liste=[]
for row in items:
d = row.LIBART
liste.append(d)
return Response(json.dumps(liste))

View File

@@ -95,25 +95,42 @@ def devis_view(request):
'bg_color': bg_color,
}
@view_config(route_name='devis_lignes', renderer='../templates/devis/devis_lignes.pt', permission='view')
def devis_lignes(request):
@view_config(route_name='devis_web', renderer='../templates/devis/devis_web.pt', permission='view')
def devis_web(request):
nodossier = request.matchdict['nodossier']
societe = nodossier[0:2]
url = request.route_url("devis_lignes", nodossier=nodossier)
no_id = nodossier[5:]
url = request.route_url("devis_web", nodossier=nodossier)
logged_in = request.authenticated_userid.upper()
dossier = get_devis_by_no(request, nodossier)
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_lig_by_no(request, nodossier)
details = get_devis_lignes_by_no(request, nodossier, '0')
# select background color according to society
bg_color = "bg-%s" % societe
# -- ajouter une ligne
if 'form.added' in request.params:
if 'form.submited' in request.params:
type_lig = request.params['type_lig']
import pdb;pdb.set_trace()
if type_lig == 'ST':
# ajout d'un SOUS-TOTAL
new_values = {}
new_values['type_ligne'] = 'ST'
new_values['ref'] = 'ST'
new_values['libelle'] = 'Sous-total'
new_values['usermaj'] = logged_in
new_values['societe'] = societe
new_values['no_id'] = no_id
new_values['nolig'] = len(details) + 1
update_devis_ligne(request, nodossier, '0', new_values)
return HTTPFound(location=url)
else:
return HTTPFound(request.route_url("devis_ligne", type_ligne=type_lig, nodossier=nodossier, nolig='0'))
return {
'page_title': "Devis no : %s W" % (nodossier),
@@ -123,3 +140,91 @@ def devis_lignes(request):
'details': details,
'bg_color': bg_color,
}
@view_config(route_name='devis_ligne', renderer='../templates/devis/devis_ligne.pt', permission='view')
def devis_ligne(request):
type_ligne = request.matchdict['type_ligne']
nodossier = request.matchdict['nodossier']
nolig = request.matchdict['nolig']
societe = nodossier[0:2]
no_id = nodossier[5:]
url = request.route_url("devis_ligne", type_ligne=type_ligne, nodossier=nodossier, nolig=nolig)
logged_in = request.authenticated_userid.upper()
message = ''
dossier = get_devis_by_no(request, nodossier)
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 le nombre total de lignes du devis
lignes = get_devis_lignes_by_no(request, nodossier, '0')
nb_lignes = len(lignes)
if nolig == '0':
# nouveau
ligne = {}
ligne['type_ligne'] = type_ligne
ligne['ref'] = ''
ligne['qte'] = 0
ligne['prixht'] = 0
ligne['libelle'] = ''
ligne['usermaj'] = logged_in
ligne['datemaj'] = datetime.now()
page_title= 'Nouvelle ligne %s' % type_ligne
else:
# lire la ligne du devis
ligne = get_devis_lignes_by_no(request, nodossier, nolig)
page_title= "Modification de la ligne %s" % (nolig)
# import pdb;pdb.set_trace()
# -- ajouter une ligne
if 'form.submited' in request.params:
if type_ligne == 'TX':
# ajout d'un TEXTE
new_values = {}
for param, db_value in ligne.items():
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
new_values['type_ligne'] = type_ligne
new_values['usermaj'] = logged_in
new_values['societe'] = societe
new_values['no_id'] = no_id
if nolig == '0':
new_values['nolig'] = nb_lignes + 1
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')
return HTTPFound(location=request.route_url("devis_web", nodossier=nodossier))
elif type_ligne == 'AR':
# ajout d'un article
new_values = {}
for param, db_value in ligne.items():
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
new_values['type_ligne'] = type_ligne
new_values['usermaj'] = logged_in
new_values['societe'] = societe
new_values['no_id'] = no_id
if nolig == '0':
new_values['nolig'] = nb_lignes + 1
else:
new_values['nolig'] = nolig
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))
return {
'page_title': page_title,
'url': url,
'message': message,
'nodossier': nodossier,
'nolig': nolig,
'dossier': dossier,
'ligne': ligne,
'type_ligne': type_ligne,
}