ajout ajax_article pour remplir le formulaire
This commit is contained in:
@@ -113,8 +113,15 @@ def delete_membre(request, cd_uti):
|
||||
query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;"
|
||||
execute_query(request, query, {'cd_uti': cd_uti})
|
||||
|
||||
def get_article(request, libelle):
|
||||
query = "SELECT * FROM articles WHERE libart like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"})
|
||||
return results.fetchall()
|
||||
def get_article(request, type, libelle):
|
||||
if type == 'TX':
|
||||
query = "SELECT * FROM articles WHERE fam='T' and libart like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||
elif type == 'AR':
|
||||
query = "SELECT * FROM articles WHERE ref_cli2 like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||
else:
|
||||
query = "SELECT * FROM articles WHERE ref_cli2 = :ref_cli2;"
|
||||
results = request.dbsession.execute(query, {'ref_cli2': libelle}).first()
|
||||
return results
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ def includeme(config):
|
||||
# default
|
||||
config.add_route('home', '/')
|
||||
config.add_route('affiche_message','/affiche_message/{login}')
|
||||
config.add_route('ajax_article', '/ajax_article')
|
||||
config.add_route('ajax_client', '/ajax_client')
|
||||
config.add_route('ajax_codepostal', '/ajax_codepostal')
|
||||
config.add_route('ajax_lookup', '/ajax_lookup')
|
||||
|
||||
@@ -35,13 +35,19 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Article</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="libelle" name="libelle" value="${ligne.libelle}">
|
||||
<input class="form-control" type="text" id="article" name="article" value="${article}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">ref</label>
|
||||
<label class="control-label col-sm-2">Référence</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="ref" name="ref" value="${ligne.ref}">
|
||||
<input class="form-control" type="text" id="ref" name="ref" value="${ligne.ref}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Libellé</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="libelle" name="libelle" value="${ligne.libelle}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -132,7 +138,7 @@ $(document).ready(function() {
|
||||
url:'/ajax_texte',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: request.term,
|
||||
recherche: 'TX' + request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
@@ -142,6 +148,48 @@ $(document).ready(function() {
|
||||
minLength: 3,
|
||||
appendTo: "#TX"
|
||||
});
|
||||
$('#article').autocomplete({
|
||||
minLength: 3,
|
||||
appendTo: "#TX",
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_texte',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: 'AR' + request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
},
|
||||
});
|
||||
},
|
||||
select: function(event, ui) {
|
||||
var ref = ui.item.value.split(' ')[0]; // selected ref
|
||||
|
||||
// lecture de l'article
|
||||
$.ajax({
|
||||
url: '/ajax_article',
|
||||
data: {ref:ref},
|
||||
dataType: 'json',
|
||||
success:function(response){
|
||||
var len = response.length;
|
||||
|
||||
if(len > 0){
|
||||
var ref = response[0]['ref'];
|
||||
var libelle = response[0]['libelle'];
|
||||
var prixht = response[0]['prixht'];
|
||||
|
||||
// Set value to textboxes
|
||||
document.getElementById('article').value = ref;
|
||||
document.getElementById('ref').value = ref;
|
||||
document.getElementById('libelle').value = libelle;
|
||||
document.getElementById('prixht').value = prixht;
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -317,16 +317,34 @@ def ajax_client(request):
|
||||
@view_config(route_name='ajax_texte')
|
||||
def ajax_texte(request):
|
||||
recherche = request.GET['recherche']
|
||||
type = recherche[:2]
|
||||
lib = recherche[2:]
|
||||
# import pdb;pdb.set_trace()
|
||||
|
||||
# lire les codes postaux commencant par
|
||||
items = get_article(request, recherche)
|
||||
# lire les articles commencant par
|
||||
items = get_article(request, type, lib)
|
||||
|
||||
liste=[]
|
||||
for row in items:
|
||||
d = row.LIBART
|
||||
d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
|
||||
liste.append(d)
|
||||
|
||||
return Response(json.dumps(liste))
|
||||
|
||||
@view_config(route_name='ajax_article')
|
||||
def ajax_article(request):
|
||||
ref = request.GET['ref']
|
||||
|
||||
# lire les articles commencant par
|
||||
items = get_article(request, 'REF', ref)
|
||||
|
||||
liste=[]
|
||||
d = {}
|
||||
d['ref'] = items.ref_cli2
|
||||
d['libelle'] = items.LIBART
|
||||
d['prixht'] = "%.2f" % items.PRIXHT2
|
||||
liste.append(d)
|
||||
|
||||
return Response(json.dumps(liste))
|
||||
|
||||
|
||||
|
||||
@@ -165,7 +165,10 @@ def devis_ligne(request):
|
||||
ligne = {}
|
||||
ligne['type_ligne'] = type_ligne
|
||||
ligne['ref'] = ''
|
||||
ligne['qte'] = 0
|
||||
if type_ligne == 'AR':
|
||||
ligne['qte'] = 1
|
||||
else:
|
||||
ligne['qte'] = 0
|
||||
ligne['prixht'] = 0
|
||||
ligne['libelle'] = ''
|
||||
ligne['usermaj'] = logged_in
|
||||
@@ -175,6 +178,7 @@ 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
|
||||
@@ -226,5 +230,6 @@ def devis_ligne(request):
|
||||
'nolig': nolig,
|
||||
'dossier': dossier,
|
||||
'ligne': ligne,
|
||||
'article': article,
|
||||
'type_ligne': type_ligne,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user