--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+#
+# Classe pour un fournisseur
+# (export de la vue auf_v_acces_fournisseur)
+
+from objet import Objet, ObjetInconnu
+from utils import dict_fetchone
+
+class fournisseur(Objet):
+ """objet fournisseur CODA"""
+ accept_like_filters = [ 'code', 'nom', 'nom_complet', 'categorie', 'addresse_pays' ]
+ def __init__(self, environ):
+ super(fournisseur, self).__init__(environ)
+ # finition sur le where : si aucune categorie d'adresse n'est demandee, on envoie celle par defaut
+ if not 'categorie' in self.filters:
+ if self.sqlwhere != '':
+ self.sqlwhere += ' and (addresse_defaut = 1) '
+ else:
+ self.sqlwhere = ' (addresse_defaut = 1) '
+
+ def _get_index(self):
+ """renvoie une liste de fournisseur"""
+ # connexion a la base de données
+ 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 )
+ cursor.execute( request )
+ items = []
+ while 1:
+ item = dict_fetchone( cursor )
+ if item == None: break
+ items.append(item)
+ index = {}
+ index['filtres'] = self.filters
+ index['fournisseurs'] = items
+ index['requete_sql'] = request
+ return index
+
+ def _get_fournisseur(self,code):
+ """renvoie un fournisseur"""
+ 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)
+ cursor.execute( request )
+ fournisseur = dict_fetchone(cursor)
+ if fournisseur == None:
+ raise ObjetInconnu('fournisseur')
+ fournisseur['requete_sql'] = request
+ return fournisseur
+
+ def index(self):
+ """renvoie une liste de fournisseurs formatée"""
+ template = self.template('fournisseur-index') # préparation du modèle
+ index = self._get_index( ) # extraction des documents concernés
+ output = template.render( index ) # formattage via le modèle
+ return self.outputformat, output
+
+ def show(self):
+ """renvoie un fournisseur formaté"""
+ code = self.environ['wsgiorg.routing_args'][1]['id'].replace('*','%').upper()
+ template = self.template( 'fournisseur' )
+ fournisseur = self._get_fournisseur( code )
+ output = template.render( fournisseur )
+ return self.outputformat, output
+
mapper.resource('dem','dem')
mapper.resource('com','com')
mapper.resource('utilisateur','utilisateur')
+mapper.resource('fournisseur','fournisseur')
# objets disponibles
from document import demlog, comlog, demdep, comdep, dempub, compub, comare, comsre, comxre, dem, com
from utilisateur import utilisateur
+from fournisseur import fournisseur
def dispatcher(environ, start_response):
"""dispatch vers la bonne methode du bon objet, et retour WSGI"""