fournisseur.show() renvoie toutes les adresses d'un fournisseur
[restcoda.git] / fournisseur.py
index dd7cd03..597588e 100644 (file)
@@ -26,8 +26,7 @@ class fournisseur(Objet):
        cursor = self.cursor()
        if self.sqlwhere != '':
            self.sqlwhere = ' where ' + self.sqlwhere
-       # extraction des données
-       request = "select top %d * from auf_v_acces_fournisseurs %s order by nom desc" % ( self.sqllimit, self.sqlwhere )
+       request = "select top %d * from auf_v_acces_fournisseurs %s order by date_creation desc" % ( self.sqllimit, self.sqlwhere )
        cursor.execute( request )
        items = []
        while 1:
@@ -35,20 +34,42 @@ class fournisseur(Objet):
            if item == None: break
            items.append(item)
        index = {}
-       index['filtres'] = self.filters
        index['fournisseurs'] = items
+       index['nombre_fournisseurs'] = len(items)
+       index['limite_fournisseurs'] = self.sqllimit,
+       index['filtres'] = self.filters
        index['requete_sql'] = request
        return index
 
     def _get_fournisseur(self,code):
         """renvoie un fournisseur"""
+       # note : renvoie aussi la liste des adresses et pas seulement la premiere iteration trouvée
        cursor = self.cursor()
-       if self.sqlwhere != '': self.sqlwhere = ' and ' + self.sqlwhere
-       request = "select top 1 * from auf_v_acces_fournisseurs where (code like '%s') %s" % (code, self.sqlwhere)
+       request = "select * from auf_v_acces_fournisseurs where (code = '%s') order by addresse_defaut desc" % code
        cursor.execute( request )
+       # le premier resultat est normalement l'adresse par defaut
         fournisseur = dict_fetchone(cursor)
        if fournisseur == None:
            raise ObjetInconnu('fournisseur')
+       autres_adresses = []
+       while 1:
+           # les resultats suivant contiennent les autres adresses
+           adr = dict_fetchone( cursor )
+           if adr == None: break
+           adr_extraite = { 'categorie': adr['categorie'] ,
+                            'adresse1': adr['addresse1'],
+                            'adresse2': adr['addresse2'],
+                            'adresse3': adr['addresse3'],
+                            'adresse4': adr['addresse4'],
+                            'adresse5': adr['addresse5'],
+                            'adresse6': adr['addresse6'],
+                            'adresse_code_postal': adr['addresse_code_postal'],
+                            'adresse_pays': adr['addresse_pays'],
+                            'adresse_telephone': adr['addresse_telephone'],
+                            'adresse_telecopie': adr['addresse_telecopie'],
+                            } 
+           autres_adresses.append(adr_extraite)
+        fournisseur['autres_adresses'] = autres_adresses
        fournisseur['requete_sql'] = request
         return fournisseur
 
@@ -61,7 +82,7 @@ class fournisseur(Objet):
 
     def show(self):
         """renvoie un fournisseur formaté"""
-        code = self.environ['wsgiorg.routing_args'][1]['id'].replace('*','%').upper()
+        code = self.environ['wsgiorg.routing_args'][1]['id'].upper()
         template = self.template( 'fournisseur' )
         fournisseur = self._get_fournisseur( code )
         output = template.render( fournisseur )