posting_pbb_pay.py
6.6 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
kodekey = row.kode
#CEK DULU DATA SKP
#row_skp = SipkdDBSession.query(SipkdSkp).\
# filter_by(UNITKEY = unitkey,
# NOSKP = row.ref_kode) #cek by no bayar
#if row_skp:
# statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
#else:
# statuskd = '63' #Penerimaan (Rek.Bend)-Tanpa Penetapan
if not row.ref_kode or row.ref_kode=='0' or row.ref_kode=='00':
statuskd = '63' #Penerimaan (Rek.Bend)-Tanpa Penetapan
else:
statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter(SipkdTbp.notbp == kodekey,
SipkdTbp.unitkey == unitkey).first()
if not row_tbp:
row_tbp = SipkdTbp()
keybend = '2084_'
row_tbp.unitkey = unitkey
row_tbp.notbp = kodekey
row_tbp.keybend1 = keybend
row_tbp.kdstatus = statuskd
row_tbp.keybend2 = keybend
row_tbp.idxkode = '1' #pendapatan
row_tbp.tgltbp = row.tgl_trans
row_tbp.penyetor = row.nama
row_tbp.alamat = row.alamat
row_tbp.uraitbp = row.rekening_nm
row_tbp.tglvalid = row.tgl_trans
SipkdDBSession.add(row_tbp)
SipkdDBSession.flush()
if row.pokok+row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == SipkdTbp.notbp,
SipkdTbpDet.mtgkey == rekening_key,
SipkdTbpDet.unitkey == unitkey
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.pokok
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode('4.1.4.07.12.')
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == SipkdTbp.notbp,
SipkdTbpDet.mtgkey == rekening_key
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.denda+row.bunga
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
#Insert into BKU
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter(SipkdBkuTbp.unitkey == unitkey,
SipkdBkuTbp.nobkuskpd == kodekey,
SipkdBkuTbp.notbp == kodekey).first()
if not row_bku:
row_bku = SipkdBkuTbp()
keybend = '2084_'
row_bku = SipkdBkuTbp()
row_bku.unitkey = unitkey
row_bku.nobkuskpd = kodekey
row_bku.notbp = kodekey
row_bku.idxttd = keybend
row_bku.tglbkuskpd = row.tgl_trans
row_bku.uraian = row.nama
row_bku.tglvalid = row.tgl_trans
row_bku.keybend = keybend
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
row_bku.tglvalid = row.tgl_trans
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
""""if (row.denda+row.bunga)>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.UNITKEY = unitkey
row_tbpdet.NOTBP = kodekey
row_tbpdet.NILAI = row.denda+row.bunga
row_tbpdet.MTGKEY = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.NOJETRA = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row_skp:
row_skptbp = SipkdSkpTbp()
row_skptbp.UNITKEY = unitkey
row_skptbp.NOTBP = row_tbp.NOTBP
row_skptbp.NOSKP = row.ref_kode
SipkdDBSession.add(row_skptbp)
SipkdDBSession.flush()
"""
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
notbp = row.kode
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter_by(unitkey = unitkey,
notbp = notbp,
).delete()
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
# row_skptbp = SipkdDBSession.query(SipkdSkpTbp).\
# filter_by(unitkey = unitkey,
# notbp = notbp).delete()
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()