ref.py
3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from tangsel.pbb.models import BaseJenisPelayanan, BaseSeksi, BasePbb
from . import PbbmBase, PbbmDBSession, PBBM_ARGS
from sqlalchemy import Column, String, ForeignKeyConstraint
from sqlalchemy.ext.hybrid import hybrid_property
class JenisPelayanan(PbbmBase, BaseJenisPelayanan):
__tablename__ = 'ref_jns_pelayanan'
__table_args__ = (PBBM_ARGS,)
class Seksi(PbbmBase, BaseSeksi):
__tablename__ = 'ref_seksi'
__table_args__ = (PBBM_ARGS,)
@classmethod
def get_list(cls):
query = PbbmDBSession.query(cls.kd_seksi,
cls.nm_seksi)
return [(row.kd_seksi, row.nm_seksi) for row in query.all()]
class LookupGroup(PbbmBase, BasePbb):
__tablename__ = 'lookup_group'
kd_lookup_group = Column(String(2), primary_key=True)
nm_lookup_group = Column(String(50))
__table_args__ = (PBBM_ARGS,)
@hybrid_property
def kode(self):
return self.kd_lookup_group
@classmethod
def query_kode(cls, kode):
return cls.query().filter_by(kd_lookup_group=kode)
@classmethod
def query_id(cls, id):
return cls.query_kode(id)
@classmethod
def query_nama(cls, nama):
return cls.query().filter_by(nm_lookup_group=nama)
@classmethod
def query_nama_like(cls, nama):
return cls.query().filter(cls.nm_lookup_group.like("%{}%".format(nama)))
class LookupItem(PbbmBase, BasePbb):
__tablename__ = 'lookup_item'
kd_lookup_group = Column(String(2), primary_key=True)
kd_lookup_item = Column(String(1), primary_key=True)
nm_lookup_item = Column(String(225))
__table_args__ = (
ForeignKeyConstraint(['kd_lookup_group'],
[LookupGroup.kd_lookup_group]),
PBBM_ARGS)
@hybrid_property
def id(self):
return self.kd_lookup_group + self.kd_lookup_item
@hybrid_property
def nama(self):
return self.nm_lookup_item
@hybrid_property
def kode(self):
return "{}.{}".format(self.kd_lookup_group, self.kd_lookup_item)
@classmethod
def query_group(cls, group_id):
return cls.query().filter(cls.kd_lookup_group == group_id)
@classmethod
def query_kode(cls, kode):
kd_lookup_group = kode[:2]
kd_lookup_item = kode[2:4]
return cls.query_group(kd_lookup_group). \
filter_by(kd_lookup_item=kd_lookup_item)
@classmethod
def query_id(cls, id):
return cls.query_kode(id)
@classmethod
def query_nama(cls, nama):
return cls.query().filter_by(nm_lookup_item=nama)
@classmethod
def query_nama_like(cls, nama):
return cls.query().filter(cls.nm_lookup_item.like("%{}%".format(nama)))
@classmethod
def query_group_list_item(cls, group_id):
return PbbmDBSession.query(cls.kd_lookup_item, cls.nm_lookup_item). \
filter(cls.kd_lookup_group == group_id)
# @classmethod
# def query_group(cls, gid):
# return cls.query().filter(kd_lookup_group=gid)
@classmethod
def get_list(cls, gid):
return cls.query_group_list_item(gid)