Commit 50bf112b by aa.gusti

k

1 parent 073ff696
from sqlalchemy import func, literal_column
from sqlalchemy.sql import union
from ..tools import date_from_str #, row2dict
from pyramid.view import (
view_config,
......@@ -24,22 +25,22 @@ class Views(BaseView):
params = self.params
kode = 'kode' in params and params['kode'] or ''
########################################################################
# ar_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'),
# EisSipkdAnggaran.nama.label('nama'),
# EisSipkdAnggaran.level_id,
# func.sum(EisSipkdAnggaran.jumlah).label('anggaran'),
# literal_column('0').label('realisasi'),
# ).\
# group_by(EisSipkdAnggaran.kode,
# EisSipkdAnggaran.nama,
# EisSipkdAnggaran.level_id,
# ).\
# filter(EisSipkdAnggaran.tahun == tahun ).\
# order_by(EisSipkdAnggaran.kode)
ar_qry = EisDBSession.query(EisSipkdArPayment.kode,
aar_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'),
EisSipkdAnggaran.nama.label('nama'),
EisSipkdAnggaran.level_id.label('level_id'),
func.sum(EisSipkdAnggaran.murni).label('anggaran'),
literal_column('0').label('realisasi'),
).\
group_by(EisSipkdAnggaran.kode,
EisSipkdAnggaran.nama,
EisSipkdAnggaran.level_id,
).\
filter(EisSipkdAnggaran.tahun == tahun,
EisSipkdAnggaran.kode.like('4.%'))
rar_qry = EisDBSession.query(EisSipkdArPayment.kode,
EisSipkdArPayment.nama,
EisSipkdArPayment.level_id,
EisSipkdArPayment.level_id.label('level_id'),
literal_column('0').label('anggaran'),
func.sum(EisSipkdArPayment.jumlah).label('realisasi')).\
group_by(EisSipkdArPayment.kode,
......@@ -48,11 +49,22 @@ class Views(BaseView):
).\
filter(EisSipkdArPayment.tanggal.between(
date_from_str('01-01-'+tahun), datetime.now())
).\
order_by(EisSipkdArPayment.kode)
)
########################################################################
ap_qry = EisDBSession.query(EisSipkdApPayment.kode,
aap_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'),
EisSipkdAnggaran.nama.label('nama'),
EisSipkdAnggaran.level_id.label('level_id'),
func.sum(EisSipkdAnggaran.murni).label('anggaran'),
literal_column('0').label('realisasi'),
).\
group_by(EisSipkdAnggaran.kode,
EisSipkdAnggaran.nama,
EisSipkdAnggaran.level_id,
).\
filter(EisSipkdAnggaran.tahun == tahun,
EisSipkdAnggaran.kode.like('5.%'))
rap_qry = EisDBSession.query(EisSipkdApPayment.kode,
EisSipkdApPayment.nama,
EisSipkdApPayment.level_id,
literal_column('0').label('anggaran'),
......@@ -66,7 +78,19 @@ class Views(BaseView):
order_by(EisSipkdApPayment.kode)
########################################################################
pb_qry = EisDBSession.query(EisSipkdPbPayment.kode,
apb_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'),
EisSipkdAnggaran.nama.label('nama'),
EisSipkdAnggaran.level_id.label('level_id'),
func.sum(EisSipkdAnggaran.murni).label('anggaran'),
literal_column('0').label('realisasi'),
).\
group_by(EisSipkdAnggaran.kode,
EisSipkdAnggaran.nama,
EisSipkdAnggaran.level_id,
).\
filter(EisSipkdAnggaran.tahun == tahun,
EisSipkdAnggaran.kode.like('6.%'))
rpb_qry = EisDBSession.query(EisSipkdPbPayment.kode,
EisSipkdPbPayment.nama,
EisSipkdPbPayment.level_id,
literal_column('0').label('anggaran'),
......@@ -82,12 +106,51 @@ class Views(BaseView):
level_id = 2
if not kode:
ar_qry = ar_qry.filter(EisSipkdArPayment.level_id <= level_id,
EisSipkdArPayment.level_id > level_id-2,)
ap_qry = ap_qry.filter(EisSipkdApPayment.level_id <= level_id,
EisSipkdApPayment.level_id > level_id-2,)
pb_qry = pb_qry.filter(EisSipkdPbPayment.level_id <= level_id,
aar_qry = aar_qry.filter(EisSipkdAnggaran.level_id <= level_id,
EisSipkdAnggaran.level_id > level_id-2,)
#.subquery()
rar_qry = rar_qry.filter(EisSipkdArPayment.level_id <= level_id,
EisSipkdArPayment.level_id > level_id-2,) #.subquery()
uar_qry = union(aar_qry, rar_qry).alias('uar_qry')
ar_qry = EisDBSession.query(uar_qry.c.kode,uar_qry.c.nama,
uar_qry.c.level_id,
func.sum(uar_qry.c.anggaran).label('anggaran'),
func.sum(uar_qry.c.realisasi).label('realisasi'),).\
group_by(uar_qry.c.kode,uar_qry.c.nama,
uar_qry.c.level_id,
).\
order_by(uar_qry.c.kode)
aap_qry = aap_qry.filter(EisSipkdAnggaran.level_id <= level_id,
EisSipkdAnggaran.level_id > level_id-2,)
rap_qry = rap_qry.filter(EisSipkdApPayment.level_id <= level_id,
EisSipkdApPayment.level_id > level_id-2,)
uap_qry = union(aap_qry, rap_qry).alias('uap_qry')
ap_qry = EisDBSession.query(uap_qry.c.kode, uap_qry.c.nama,
uap_qry.c.level_id,
func.sum(uap_qry.c.anggaran).label('anggaran'),
func.sum(uap_qry.c.realisasi).label('realisasi'),).\
group_by(uap_qry.c.kode,uap_qry.c.nama,
uap_qry.c.level_id,
).\
order_by(uap_qry.c.kode)
apb_qry = apb_qry.filter(EisSipkdAnggaran.level_id <= level_id,
EisSipkdAnggaran.level_id > level_id-2,)
rpb_qry = rpb_qry.filter(EisSipkdPbPayment.level_id <= level_id,
EisSipkdPbPayment.level_id > level_id-2,)
upb_qry = union(apb_qry, rpb_qry).alias('upb_qry')
pb_qry = EisDBSession.query(upb_qry.c.kode,
upb_qry.c.nama,
upb_qry.c.level_id,
func.sum(upb_qry.c.anggaran).label('anggaran'),
func.sum(upb_qry.c.realisasi).label('realisasi'),).\
group_by(upb_qry.c.kode,
upb_qry.c.nama,
upb_qry.c.level_id,
).\
order_by(upb_qry.c.kode)
title = "RINGKASAN REALISASI APBD"
else:
level_id = kode.count('.')+2
......@@ -130,7 +193,9 @@ class Views(BaseView):
if row['level_id'] == 1:
jml_pb['anggaran'] += row['anggaran']
jml_pb['realisasi'] += row['realisasi']
#ar_rows={}
#pb_rows={}
#ap_rows={}
return dict(ar_rows = ar_rows,
ap_rows = ap_rows,
pb_rows = pb_rows,
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!