diff --git a/mondumas/models/default.py b/mondumas/models/default.py
index 226cab7..659a0db 100644
--- a/mondumas/models/default.py
+++ b/mondumas/models/default.py
@@ -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
diff --git a/mondumas/routes.py b/mondumas/routes.py
index 051a952..e261ffb 100644
--- a/mondumas/routes.py
+++ b/mondumas/routes.py
@@ -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')
diff --git a/mondumas/templates/devis/devis_ligne.pt b/mondumas/templates/devis/devis_ligne.pt
index 3194a2a..9c29e01 100644
--- a/mondumas/templates/devis/devis_ligne.pt
+++ b/mondumas/templates/devis/devis_ligne.pt
@@ -35,13 +35,19 @@
+
@@ -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;
+ }
+ });
});
diff --git a/mondumas/views/default.py b/mondumas/views/default.py
index 776c436..175e6ff 100644
--- a/mondumas/views/default.py
+++ b/mondumas/views/default.py
@@ -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))
diff --git a/mondumas/views/devis.py b/mondumas/views/devis.py
index faac862..6e2de72 100644
--- a/mondumas/views/devis.py
+++ b/mondumas/views/devis.py
@@ -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,
}