creation ligne devis article
This commit is contained in:
@@ -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))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user