Commit | Line | Data |
---|---|---|
d374db4d TN |
1 | #!/usr/bin/python |
2 | # -*- coding: utf-8 -*- | |
3 | ||
4 | # | |
5 | # Classe pour un fournisseur | |
6 | # (export de la vue auf_v_acces_fournisseur) | |
7 | ||
8 | from objet import Objet, ObjetInconnu | |
9 | from utils import dict_fetchone | |
10 | ||
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) ' | |
20 | else: | |
21 | self.sqlwhere = ' (addresse_defaut = 1) ' | |
22 | ||
23 | def _get_index(self): | |
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 | |
ecb895d1 | 30 | request = "select top %d * from auf_v_acces_fournisseurs %s order by date_creation desc" % ( self.sqllimit, self.sqlwhere ) |
d374db4d TN |
31 | cursor.execute( request ) |
32 | items = [] | |
33 | while 1: | |
34 | item = dict_fetchone( cursor ) | |
35 | if item == None: break | |
36 | items.append(item) | |
37 | index = {} | |
38 | index['filtres'] = self.filters | |
39 | index['fournisseurs'] = items | |
40 | index['requete_sql'] = request | |
41 | return index | |
42 | ||
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 | |
53 | return fournisseur | |
54 | ||
55 | def index(self): | |
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 | |
61 | ||
62 | def show(self): | |
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 | |
69 |