ajout ajax_article pour remplir le formulaire

This commit is contained in:
2020-10-05 17:30:43 +02:00
parent 9aa6c8985e
commit 9b6f016c32
5 changed files with 91 additions and 12 deletions

View File

@@ -113,8 +113,15 @@ def delete_membre(request, cd_uti):
query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;" query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;"
execute_query(request, query, {'cd_uti': cd_uti}) execute_query(request, query, {'cd_uti': cd_uti})
def get_article(request, libelle): def get_article(request, type, libelle):
query = "SELECT * FROM articles WHERE libart like :libelle;" if type == 'TX':
results = request.dbsession.execute(query, {'libelle': libelle + "%"}) query = "SELECT * FROM articles WHERE fam='T' and libart like :libelle;"
return results.fetchall() 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

View File

@@ -7,6 +7,7 @@ def includeme(config):
# default # default
config.add_route('home', '/') config.add_route('home', '/')
config.add_route('affiche_message','/affiche_message/{login}') 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_client', '/ajax_client')
config.add_route('ajax_codepostal', '/ajax_codepostal') config.add_route('ajax_codepostal', '/ajax_codepostal')
config.add_route('ajax_lookup', '/ajax_lookup') config.add_route('ajax_lookup', '/ajax_lookup')

View File

@@ -35,13 +35,19 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Article</label> <label class="control-label col-sm-2">Article</label>
<div class="col-xs-6"> <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> </div>
<div class="form-group"> <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"> <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> </div>
<div class="form-group"> <div class="form-group">
@@ -132,7 +138,7 @@ $(document).ready(function() {
url:'/ajax_texte', url:'/ajax_texte',
dataType: 'json', dataType: 'json',
data: { data: {
recherche: request.term, recherche: 'TX' + request.term,
}, },
success: function (data) { success: function (data) {
response( data ); response( data );
@@ -142,6 +148,48 @@ $(document).ready(function() {
minLength: 3, minLength: 3,
appendTo: "#TX" 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> </script>
</div> </div>

View File

@@ -317,16 +317,34 @@ def ajax_client(request):
@view_config(route_name='ajax_texte') @view_config(route_name='ajax_texte')
def ajax_texte(request): def ajax_texte(request):
recherche = request.GET['recherche'] recherche = request.GET['recherche']
type = recherche[:2]
lib = recherche[2:]
# import pdb;pdb.set_trace()
# lire les codes postaux commencant par # lire les articles commencant par
items = get_article(request, recherche) items = get_article(request, type, lib)
liste=[] liste=[]
for row in items: for row in items:
d = row.LIBART d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
liste.append(d) liste.append(d)
return Response(json.dumps(liste)) 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))

View File

@@ -165,7 +165,10 @@ def devis_ligne(request):
ligne = {} ligne = {}
ligne['type_ligne'] = type_ligne ligne['type_ligne'] = type_ligne
ligne['ref'] = '' ligne['ref'] = ''
ligne['qte'] = 0 if type_ligne == 'AR':
ligne['qte'] = 1
else:
ligne['qte'] = 0
ligne['prixht'] = 0 ligne['prixht'] = 0
ligne['libelle'] = '' ligne['libelle'] = ''
ligne['usermaj'] = logged_in ligne['usermaj'] = logged_in
@@ -175,6 +178,7 @@ def devis_ligne(request):
# lire la ligne du devis # lire la ligne du devis
ligne = get_devis_lignes_by_no(request, nodossier, nolig) ligne = get_devis_lignes_by_no(request, nodossier, nolig)
page_title= "Modification de la ligne %s" % (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() # import pdb;pdb.set_trace()
# -- ajouter une ligne # -- ajouter une ligne
@@ -226,5 +230,6 @@ def devis_ligne(request):
'nolig': nolig, 'nolig': nolig,
'dossier': dossier, 'dossier': dossier,
'ligne': ligne, 'ligne': ligne,
'article': article,
'type_ligne': type_ligne, 'type_ligne': type_ligne,
} }