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, }