|
2 | 2 | from auth import auth |
3 | 3 | from dataclasses import dataclass |
4 | 4 | from datetime import datetime |
5 | | -from orm import povezi, stolpec, Entiteta, Funkcija, sql, field, fields |
| 5 | +from orm import povezi, stolpec, Seznam, Entiteta, Funkcija, sql, field, fields |
6 | 6 |
|
7 | 7 | @dataclass |
8 | 8 | class Kraj(Entiteta): |
@@ -43,31 +43,44 @@ def z_uporabniskim_imenom(cls, up_ime): |
43 | 43 | """ |
44 | 44 | return cls._s_kljucem('up_ime', up_ime) |
45 | 45 |
|
46 | | - def racuni(self): |
| 46 | + @Seznam |
| 47 | + def racuni(self, cur): |
47 | 48 | """ |
48 | 49 | Vrni račune osebe. |
49 | 50 | """ |
50 | | - with conn.cursor() as cur: |
51 | | - cur.execute(""" |
52 | | - SELECT stevilka, COALESCE(SUM(znesek), 0) AS stanje |
53 | | - FROM racun LEFT JOIN transakcija ON stevilka = racun |
54 | | - WHERE lastnik = %s |
55 | | - GROUP BY stevilka |
56 | | - """, [self.emso]) |
57 | | - yield from (Racun(stevilka, self, stanje) |
58 | | - for stevilka, stanje in cur) |
| 51 | + yield from (Racun(stevilka, self, stanje) for stevilka, stanje in cur) |
59 | 52 |
|
60 | | - def transakcije(self): |
| 53 | + @racuni.poizvedba |
| 54 | + def racuni(self): |
| 55 | + return dict(stolpci=sql.SQL("stevilka, COALESCE(SUM(znesek), 0) AS stanje"), |
| 56 | + tabela=Racun._tabela(), |
| 57 | + join=sql.SQL("LEFT JOIN transakcija ON stevilka = racun"), |
| 58 | + pogoji=sql.SQL("WHERE lastnik = {lastnik}").format( |
| 59 | + lastnik=sql.Placeholder() |
| 60 | + ), |
| 61 | + zdruzevanje=sql.SQL("GROUP BY stevilka"), |
| 62 | + podatki=[self.emso], |
| 63 | + objekt=Racun) |
| 64 | + |
| 65 | + |
| 66 | + @Seznam |
| 67 | + def transakcije(self, cur): |
61 | 68 | """ |
62 | 69 | Vrni transakcije osebe. |
63 | 70 | """ |
64 | | - with conn.cursor() as cur: |
65 | | - cur.execute(""" |
66 | | - SELECT id, racun, znesek, cas, opis |
67 | | - FROM racun JOIN transakcija ON stevilka = racun |
68 | | - WHERE lastnik = %s |
69 | | - """, [self.emso]) |
70 | | - yield from (Transakcija(*vrstica) for vrstica in cur) |
| 71 | + yield from (Transakcija(*vrstica) for vrstica in cur) |
| 72 | + |
| 73 | + @transakcije.poizvedba |
| 74 | + def transakcije(self): |
| 75 | + return dict(stolpci=sql.SQL("id, racun, znesek, cas, opis"), |
| 76 | + tabela=sql.SQL(""" |
| 77 | + racun JOIN transakcija ON stevilka = racun |
| 78 | + """), |
| 79 | + pogoji=sql.SQL("WHERE lastnik = {lastnik}").format( |
| 80 | + lastnik=sql.Placeholder() |
| 81 | + ), |
| 82 | + podatki=[self.emso], |
| 83 | + objekt=Transakcija) |
71 | 84 |
|
72 | 85 | @classmethod |
73 | 86 | def _stolpci(cls): |
@@ -176,18 +189,23 @@ class Racun(Entiteta): |
176 | 189 | lastnik: Oseba = stolpec(obvezen=True) |
177 | 190 | stanje: int = field(default=0) |
178 | 191 |
|
179 | | - def transakcije(self): |
| 192 | + @Seznam |
| 193 | + def transakcije(self, cur): |
180 | 194 | """ |
181 | 195 | Vrni transakcije osebe. |
182 | 196 | """ |
183 | | - with conn.cursor() as cur: |
184 | | - cur.execute(""" |
185 | | - SELECT id, znesek, cas, opis |
186 | | - FROM transakcija |
187 | | - WHERE racun = %s |
188 | | - """, [self.stevilka]) |
189 | | - yield from (Transakcija(id, self, znesek, cas, opis) |
190 | | - for id, znesek, cas, opis in cur) |
| 197 | + yield from (Transakcija(id, self, znesek, cas, opis) |
| 198 | + for id, znesek, cas, opis in cur) |
| 199 | + |
| 200 | + @transakcije.poizvedba |
| 201 | + def transakcije(self): |
| 202 | + return dict(stolpci=sql.SQL("id, znesek, cas, opis"), |
| 203 | + tabela=Transakcija._tabela(), |
| 204 | + pogoji=sql.SQL("WHERE racun = {racun}").format( |
| 205 | + racun=sql.Placeholder() |
| 206 | + ), |
| 207 | + podatki=[self.stevilka], |
| 208 | + objekt=Transakcija) |
191 | 209 |
|
192 | 210 | @classmethod |
193 | 211 | def _stolpci(cls): |
|
0 commit comments