Commit 02868209 by taufikyu

perbaikan dashboard

1 parent 059f81a7
......@@ -21,7 +21,7 @@ from sqlalchemy.orm import (
from ..models import (EisDBSession, DefaultModel, EisBase, NamaModel, TABLE_ARGS)
class Eis(EisBase, NamaModel):
__tablename__ = 'harian'
__tablename__ = 'wells'
tahun = Column(Integer)
amt_tahun = Column(BigInteger)
amt_bulan = Column(BigInteger)
......
......@@ -112,19 +112,34 @@ class eis(BaseView):
elif req.matchdict['act']=='dasboard':
columns = [
ColumnDT(Eis.nama, mData="jenis_pajak"),
ColumnDT(literal_column("'0'"), mData="target"),
ColumnDT(Eis.amt_bulan, mData="realisasi_bulan_ini"),
ColumnDT(Eis.amt_tahun, mData="realisasi_sampai_dengan"),
ColumnDT(Eis.amt_tahun, mData="sisa_target"),
ColumnDT((Eis.amt_bulan/Eis.amt_tahun)*100, mData="persen"),
ColumnDT(subq.nama, mData="jenis_pajak"),
ColumnDT(subq.target, mData="target"),
ColumnDT(subq.amt_bulan, mData="realisasi_bulan_ini"),
ColumnDT(subq.amt_tahun, mData="realisasi_sampai_dengan"),
ColumnDT(subq.sisa_target, mData="sisa_target"),
ColumnDT(subq.persen, mData="persen"),
]
max_tahun = EisDBSession.query(func.max(Eis.tahun)).scalar()
query = EisDBSession.query().select_from(Eis).\
outerjoin(Slide, Slide.source_id == cast(Eis.id, String)).\
outerjoin(ChartItem, and_(cast(ChartItem.id, String)==Slide.source_id, Slide.id==Slide.id+1)).\
filter(Eis.tahun==max_tahun, Eis.nama!='PAJAK DAERAH').order_by(Eis.order_id)
subq = EisDBSession.query(
func.max(Eis.nama).label('nama'),
func.sum(ChartItem.value_1+ChartItem.value_2+ChartItem.value_3+ChartItem.value_4+ChartItem.value_5,\
ChartItem.value_6+ChartItem.value_7+ChartItem.value_8+ChartItem.value_9+ChartItem.value10,\
ChartItem.value11+ChartItem.value12).label('target'),
func.sum(Eis.amt_bulan).label('amt_bulan'),
func.sum(Eis.amt_tahun).label('amt_tahun'),
func.sum(Eis.amt_tahun -
(ChartItem.value_1+ChartItem.value_2+ChartItem.value_3+ChartItem.value_4+ChartItem.value_5,\
ChartItem.value_6+ChartItem.value_7+ChartItem.value_8+ChartItem.value_9+ChartItem.value10,\
ChartItem.value11+ChartItem.value12)).label('sisa_target'),
(func.sum((Eis.amt_tahun -
(ChartItem.value_1+ChartItem.value_2+ChartItem.value_3+ChartItem.value_4+ChartItem.value_5,\
ChartItem.value_6+ChartItem.value_7+ChartItem.value_8+ChartItem.value_9+ChartItem.value10,\
ChartItem.value11+ChartItem.value12))/Eis.amt_tahun)*100).label('persen')).\
join(ChartItem, func.trim(ChartItem.rekening_kd)==func.trim(Eis.kode)).\
join(Chart, Chart.id == ChartItem.chart_id).\
filter(Eis.tahun==max_tahun, Eis.chart_type == 'line').\
group_by(Eis.kode,Eis.nama).order_by(Eis.kode)
query = EisDBSession.query().select_from(subq.subquery())
rowTable = DataTables(req.GET, query, columns)
return rowTable.output_result()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!