Commit 50bf112b by aa.gusti

k

1 parent 073ff696
from sqlalchemy import func, literal_column from sqlalchemy import func, literal_column
from sqlalchemy.sql import union
from ..tools import date_from_str #, row2dict from ..tools import date_from_str #, row2dict
from pyramid.view import ( from pyramid.view import (
view_config, view_config,
...@@ -24,22 +25,22 @@ class Views(BaseView): ...@@ -24,22 +25,22 @@ class Views(BaseView):
params = self.params params = self.params
kode = 'kode' in params and params['kode'] or '' kode = 'kode' in params and params['kode'] or ''
######################################################################## ########################################################################
# ar_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'), aar_qry = EisDBSession.query(EisSipkdAnggaran.kode.label('kode'),
# EisSipkdAnggaran.nama.label('nama'), EisSipkdAnggaran.nama.label('nama'),
# EisSipkdAnggaran.level_id, EisSipkdAnggaran.level_id.label('level_id'),
# func.sum(EisSipkdAnggaran.jumlah).label('anggaran'), func.sum(EisSipkdAnggaran.murni).label('anggaran'),
# literal_column('0').label('realisasi'), literal_column('0').label('realisasi'),
# ).\ ).\
# group_by(EisSipkdAnggaran.kode, group_by(EisSipkdAnggaran.kode,
# EisSipkdAnggaran.nama, EisSipkdAnggaran.nama,
# EisSipkdAnggaran.level_id, EisSipkdAnggaran.level_id,
# ).\ ).\
# filter(EisSipkdAnggaran.tahun == tahun ).\ filter(EisSipkdAnggaran.tahun == tahun,
# order_by(EisSipkdAnggaran.kode) EisSipkdAnggaran.kode.like('4.%'))
ar_qry = EisDBSession.query(EisSipkdArPayment.kode, rar_qry = EisDBSession.query(EisSipkdArPayment.kode,
EisSipkdArPayment.nama, EisSipkdArPayment.nama,
EisSipkdArPayment.level_id, EisSipkdArPayment.level_id.label('level_id'),
literal_column('0').label('anggaran'), literal_column('0').label('anggaran'),
func.sum(EisSipkdArPayment.jumlah).label('realisasi')).\ func.sum(EisSipkdArPayment.jumlah).label('realisasi')).\
group_by(EisSipkdArPayment.kode, group_by(EisSipkdArPayment.kode,
...@@ -48,11 +49,22 @@ class Views(BaseView): ...@@ -48,11 +49,22 @@ class Views(BaseView):
).\ ).\
filter(EisSipkdArPayment.tanggal.between( filter(EisSipkdArPayment.tanggal.between(
date_from_str('01-01-'+tahun), datetime.now()) 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.nama,
EisSipkdApPayment.level_id, EisSipkdApPayment.level_id,
literal_column('0').label('anggaran'), literal_column('0').label('anggaran'),
...@@ -66,7 +78,19 @@ class Views(BaseView): ...@@ -66,7 +78,19 @@ class Views(BaseView):
order_by(EisSipkdApPayment.kode) 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.nama,
EisSipkdPbPayment.level_id, EisSipkdPbPayment.level_id,
literal_column('0').label('anggaran'), literal_column('0').label('anggaran'),
...@@ -82,12 +106,51 @@ class Views(BaseView): ...@@ -82,12 +106,51 @@ class Views(BaseView):
level_id = 2 level_id = 2
if not kode: if not kode:
ar_qry = ar_qry.filter(EisSipkdArPayment.level_id <= level_id, aar_qry = aar_qry.filter(EisSipkdAnggaran.level_id <= level_id,
EisSipkdArPayment.level_id > level_id-2,) EisSipkdAnggaran.level_id > level_id-2,)
ap_qry = ap_qry.filter(EisSipkdApPayment.level_id <= level_id, #.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,) EisSipkdApPayment.level_id > level_id-2,)
pb_qry = pb_qry.filter(EisSipkdPbPayment.level_id <= level_id, 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,) 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" title = "RINGKASAN REALISASI APBD"
else: else:
level_id = kode.count('.')+2 level_id = kode.count('.')+2
...@@ -130,7 +193,9 @@ class Views(BaseView): ...@@ -130,7 +193,9 @@ class Views(BaseView):
if row['level_id'] == 1: if row['level_id'] == 1:
jml_pb['anggaran'] += row['anggaran'] jml_pb['anggaran'] += row['anggaran']
jml_pb['realisasi'] += row['realisasi'] jml_pb['realisasi'] += row['realisasi']
#ar_rows={}
#pb_rows={}
#ap_rows={}
return dict(ar_rows = ar_rows, return dict(ar_rows = ar_rows,
ap_rows = ap_rows, ap_rows = ap_rows,
pb_rows = pb_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!