import-sipkd.py
4.24 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
120
from sipkd_models import Anggaran, Realisasi, Base, DBSession
from eis_models import (Anggaran as EisAnggaran, ApPayment as EisApPayment,
ArPayment as EisArPayment, ByPayment as EisByPayment,
EisBase, EisDBSession)
from conf import sipkd_url
from sqlalchemy import create_engine
from datetime import datetime
from datetime import date
engine = create_engine(sipkd_url)
DBSession.configure(bind=engine)
Base.metadata.bind = engine
Base.metadata.create_all(engine)
now = datetime.now()
tanggal = now.date()
tahun = now.strftime('%Y')
def import_anggaran():
query = DBSession.query(Anggaran).filter_by(tahun=tahun)
for row in query.all():
anggaran = EisDBSession.query(EisAnggaran).\
filter_by(tahun=row.tahun,
kode=row.kd_rekening,
departemen_kd = row.kd_opd,
).first()
if not anggaran:
anggaran = EisAnggaran()
anggaran.tahun = row.tahun
anggaran.kode = row.kd_rekening
anggaran.departemen_kd = row.kd_opd
anggaran.level_id = row.kd_rekening.count('.')
anggaran.nama = row.nm_rekening
anggaran.departemen_nm = row.nm_opd
anggaran.murni = row.ang_murni
anggaran.perubahan = row.ang_perubahan
EisDBSession.add(anggaran)
EisDBSession.flush()
EisDBSession.commit()
def import_ar(all=False):
query = DBSession.query(Realisasi)
if not all:
query = query.filter_by(tanggal=tanggal)
for row in query.filter(Realisasi.kd_rekening.like('4%')).all():
eis = EisDBSession.query(ArPayment).\
filter_by(tahun = row.tahun,
rekening_kd = row.kd_rekening,
departemen_kd = row.kd_opd,
tanggal = tanggal,
).first()
if not eis:
eis = EisArPayment()
eis.tahun = row.tahun
eis.kode = row.kd_rekening
eis.departemen_kd = row.kd_opd
eis.tanggal = tanggal
eis.level_id = row.kd_rekening.count('.')
eis.nama = row.nm_rekening
eis.departemen_nm = row.nm_opd
eis.jumlah = row.realisai
EisDBSession.add(anggaran)
EisDBSession.flush()
EisDBSession.commit()
def import_ap(all=False):
query = DBSession.query(Realisasi)
if not all:
query = query.filter_by(tanggal=tanggal)
for row in query.filter(Realisasi.kd_rekening.like('5%')).all():
eis = EisDBSession.query(ArPayment).\
filter_by(tahun = row.tahun,
rekening_kd = row.kd_rekening,
departemen_kd = row.kd_opd,
tanggal = tanggal,
).first()
if not eis:
eis = EisApPayment()
eis.tahun = row.tahun
eis.kode = row.kd_rekening
eis.departemen_kd = row.kd_opd
eis.tanggal = tanggal
eis.level_id = row.kd_rekening.count('.')
eis.nama = row.nm_rekening
eis.departemen_nm = row.nm_opd
eis.jumlah = row.realisai
EisDBSession.add(eis)
EisDBSession.flush()
EisDBSession.commit()
def import_by(all=False):
query = DBSession.query(Realisasi)
if not all:
query = query.filter_by(tanggal=tanggal)
for row in query.filter(Realisasi.kd_rekening.like('6%')).all():
eis = EisDBSession.query(ArPayment).\
filter_by(tahun = row.tahun,
rekening_kd = row.kd_rekening,
departemen_kd = row.kd_opd,
tanggal = tanggal,
).first()
if not eis:
eis = EisByPayment()
eis.tahun = row.tahun
eis.kode = row.kd_rekening
eis.departemen_kd = row.kd_opd
eis.tanggal = tanggal
eis.level_id = row.kd_rekening.count('.')
eis.nama = row.nm_rekening
eis.departemen_nm = row.nm_opd
eis.jumlah = row.realisai
EisDBSession.add(eis)
EisDBSession.flush()
EisDBSession.commit()
import_anggaran()
import_ap()
import_ar()