2 # -*- coding: utf-8 -*-
5 # Classe pour un fournisseur
6 # (export de la vue auf_v_acces_fournisseur)
8 from objet
import Objet
, ObjetInconnu
9 from utils
import dict_fetchone
11 class fournisseur(Objet
):
12 """objet fournisseur CODA"""
13 accept_like_filters
= [ 'code', 'nom', 'nom_complet', 'categorie', 'addresse_pays' ]
14 def __init__(self
, environ
):
15 super(fournisseur
, self
).__init__(environ
)
16 # finition sur le where : si aucune categorie d'adresse n'est demandee, on envoie celle par defaut
17 if not 'categorie' in self
.filters
:
18 if self
.sqlwhere
!= '':
19 self
.sqlwhere
+= ' and (addresse_defaut = 1) '
21 self
.sqlwhere
= ' (addresse_defaut = 1) '
24 """renvoie une liste de fournisseur"""
25 # connexion a la base de données
26 cursor
= self
.cursor()
27 if self
.sqlwhere
!= '':
28 self
.sqlwhere
= ' where ' + self
.sqlwhere
29 # extraction des données
30 request
= "select top %d * from auf_v_acces_fournisseurs %s order by nom desc" % ( self
.sqllimit
, self
.sqlwhere
)
31 cursor
.execute( request
)
34 item
= dict_fetchone( cursor
)
35 if item
== None: break
38 index
['filtres'] = self
.filters
39 index
['fournisseurs'] = items
40 index
['requete_sql'] = request
43 def _get_fournisseur(self
,code
):
44 """renvoie un fournisseur"""
45 cursor
= self
.cursor()
46 if self
.sqlwhere
!= '': self
.sqlwhere
= ' and ' + self
.sqlwhere
47 request
= "select top 1 * from auf_v_acces_fournisseurs where (code like '%s') %s" % (code
, self
.sqlwhere
)
48 cursor
.execute( request
)
49 fournisseur
= dict_fetchone(cursor
)
50 if fournisseur
== None:
51 raise ObjetInconnu('fournisseur')
52 fournisseur
['requete_sql'] = request
56 """renvoie une liste de fournisseurs formatée"""
57 template
= self
.template('fournisseur-index') # préparation du modèle
58 index
= self
._get_index( ) # extraction des documents concernés
59 output
= template
.render( index
) # formattage via le modèle
60 return self
.outputformat
, output
63 """renvoie un fournisseur formaté"""
64 code
= self
.environ
['wsgiorg.routing_args'][1]['id'].replace('*','%').upper()
65 template
= self
.template( 'fournisseur' )
66 fournisseur
= self
._get_fournisseur( code
)
67 output
= template
.render( fournisseur
)
68 return self
.outputformat
, output