models_eis.py
4 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
BigInteger,
SmallInteger,
Text,
DateTime,
String,
UniqueConstraint,
ForeignKey,
Index,
create_engine,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship, backref
)
from models_default import (DefaultModel as BaseDefaultModel,
NamaModel)
from conf import eis_url
EisBase = declarative_base()
EisDBSession = scoped_session(sessionmaker())
engine = create_engine(eis_url, echo=False)
EisDBSession.configure(bind=engine)
EisBase.metadata.bind = engine
TABLE_ARGS = {'extend_existing':True,
'schema':'eis'
}
class DefaultModel(BaseDefaultModel):
@classmethod
def query(cls):
return EisDBSession.query(cls)
@classmethod
def count(cls):
return EisDBSession.query(func.count('id')).scalar()
class Anggaran(NamaModel, EisBase):
__tablename__ = 'sipkd_anggaran'
tahun = Column(String(4))
departemen_kd = Column(String(16))
departemen_nm = Column(String(255))
jumlah = Column(BigInteger)
murni = Column(BigInteger)
perubahan = Column(BigInteger)
level_id = Column(Integer)
__table_args__ = (UniqueConstraint('tahun', 'kode', 'departemen_kd'),
TABLE_ARGS)
class ArPayment(NamaModel, EisBase):
__tablename__ = 'sipkd_ar_payment'
tanggal = Column(DateTime(timezone=False))
departemen_kd = Column(String(16))
departemen_nm = Column(String(255))
jumlah = Column(BigInteger)
level_id = Column(Integer)
tahun = Column(String(4))
__table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
TABLE_ARGS)
class ApPayment(NamaModel, EisBase):
__tablename__ = 'sipkd_ap_payment'
tanggal = Column(DateTime(timezone=False))
tanggal = Column(DateTime(timezone=False))
departemen_kd = Column(String(16))
departemen_nm = Column(String(255))
jumlah = Column(BigInteger)
level_id = Column(Integer)
tahun = Column(String(4))
__table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
TABLE_ARGS)
class ByPayment(NamaModel, EisBase):
__tablename__ = 'sipkd_pb_payment'
tanggal = Column(DateTime(timezone=False))
tanggal = Column(DateTime(timezone=False))
departemen_kd = Column(String(16))
departemen_nm = Column(String(255))
jumlah = Column(BigInteger)
level_id = Column(Integer)
tahun = Column(String(4))
__table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
TABLE_ARGS)
class Rekening(NamaModel, EisBase):
__tablename__ = 'sipkd_rekening'
tahun = Column(Integer)
level_id = Column(SmallInteger, default=1)
parent_id = Column(Integer, ForeignKey('eis.sipkd_rekening.id'),)
status = Column(SmallInteger, default=1)
defsign = Column(SmallInteger, default=1)
children = relationship("Rekening",
backref=backref('parent', remote_side='Rekening.id'))
__table_args__= (
UniqueConstraint('kode', 'tahun', name='rekening_uq'),
#ForeignKeyConstraint(['parent_id'], ForeignKey('rekening.id')),
TABLE_ARGS
)
class Opd(NamaModel, EisBase):
__tablename__ = 'sipkd_opd'
tahun = Column(Integer)
level_id = Column(SmallInteger, default=1)
parent_id = Column(Integer, ForeignKey('eis.sipkd_rekening.id'),)
status = Column(SmallInteger, default=1)
defsign = Column(SmallInteger, default=1)
# children = relationship("Rekening",
# backref=backref('parent', remote_side='Rekening.id'))
__table_args__= (
UniqueConstraint('kode', 'tahun', name='sipkd_opd_uq'),
TABLE_ARGS
)
EisBase.metadata.create_all(engine)