perhitungan webr

1 parent 1e43b80c
...@@ -6,7 +6,7 @@ from opensipkd.base.models import ( ...@@ -6,7 +6,7 @@ from opensipkd.base.models import (
) )
from sqlalchemy import (Column, Integer, DateTime, String, Text, ForeignKey, Float, from sqlalchemy import (Column, Integer, DateTime, String, Text, ForeignKey, Float,
Boolean, BigInteger, SmallInteger, desc, asc, Date, Time, Boolean, BigInteger, SmallInteger, desc, asc, Date, Time,
UniqueConstraint, func) UniqueConstraint, func, literal_column)
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import engine_from_config from sqlalchemy import engine_from_config
from opensipkd.tools import get_settings from opensipkd.tools import get_settings
...@@ -69,24 +69,7 @@ class PaymentPBB(PCBase, DefaultModel): ...@@ -69,24 +69,7 @@ class PaymentPBB(PCBase, DefaultModel):
for col in columns: for col in columns:
qry=qry.add_columns(col) qry=qry.add_columns(col)
return qry return qry
@classmethod
def sum_data(cls):
return PCDBSession.query(
func.to_char(cls.tgl_pembayaran_sppt,
'yyyy-mm-dd').label('tanggal'),
func.sum(cls.jml_sppt_yg_dibayar).label('bayar'),
func.sum(cls.denda_sppt).label('denda'))\
.group_by(func.to_char(cls.tgl_pembayaran_sppt, 'yyyy-mm-dd'))
@classmethod
def sum_daily(cls, length=0):
now = datetime.now()
tod = now.date
tom = tod + timedelta(days=1)
if length:
tod = tod-timedelta(days=length)
return cls.sum_data().filter(cls.tgl_pembayaran_sppt.between(tod, tom))
# baru dari db BPHTB # baru dari db BPHTB
...@@ -119,16 +102,15 @@ class PaymentBPHTB(PCBase, CommonModel): ...@@ -119,16 +102,15 @@ class PaymentBPHTB(PCBase, CommonModel):
) )
@classmethod @classmethod
def sum_data(cls): def qry_sum(cls, columns=[]):
return PCDBSession.query(func.sum(cls.nilai_bphtb).label('bayar'), qry = PCDBSession.query(
func.sum('0').label('denda')) func.sum(cls.nilai_bphtb).label('bayar'),
literal_column("0").label('denda'),
@classmethod func.count(cls.id).label('trx')).select_from(cls)
def sum_today(cls): for col in columns:
now = datetime.now() qry = qry.add_columns(col)
tom = timedelta(now.date, days=1) return qry
qry = cls.sum_data().filter(cls.tgl.between(now.date, tom))
return qry.first()
# baru PAD # baru PAD
...@@ -175,16 +157,14 @@ class PaymentPAD(PCBase, CommonModel): ...@@ -175,16 +157,14 @@ class PaymentPAD(PCBase, CommonModel):
) )
@classmethod @classmethod
def sum_data(cls): def qry_sum(cls, columns=[]):
return PCDBSession.query(func.sum(cls.jml_bayar).label('bayar'), qry = PCDBSession.query(
func.sum(cls.denda+cls.bunga).label('denda')) func.sum(cls.jml_bayar).label('bayar'),
func.sum(cls.denda+cls.bunga).label('denda'),
@classmethod func.count(cls.id).label('trx')).select_from(cls)
def sum_today(cls): for col in columns:
now = datetime.now() qry = qry.add_columns(col)
tom = timedelta(now.date, days=1) return qry
qry = cls.sum_data().filter(cls.tgl.between(now.date, tom))
return qry.first()
# baru PAD # baru PAD
...@@ -218,17 +198,15 @@ class PaymentWEBR(PCBase, CommonModel): ...@@ -218,17 +198,15 @@ class PaymentWEBR(PCBase, CommonModel):
) )
@classmethod @classmethod
def sum_data(cls): def qry_sum(cls, columns=[]):
return PCDBSession.query(func.sum(cls.jml_bayar).label('bayar'), qry = PCDBSession.query(
func.sum(cls.denda).label('denda')) func.sum(cls.jml_bayar).label('bayar'),
func.sum(cls.denda).label('denda'),
@classmethod func.count(cls.id).label('trx')).select_from(cls)
def sum_today(cls): for col in columns:
now = datetime.now() qry = qry.add_columns(col)
tom = timedelta(now.date, days=1) return qry
qry = cls.sum_data().filter(cls.tgl.between(now.date, tom))
return qry.first()
def get_connection(settings): def get_connection(settings):
......
...@@ -14,7 +14,7 @@ eis-minerba,Minerba,/eis/minerba,1,0,1,eis-pajak,pcpd,Views,view_minerba,eis,pcp ...@@ -14,7 +14,7 @@ eis-minerba,Minerba,/eis/minerba,1,0,1,eis-pajak,pcpd,Views,view_minerba,eis,pcp
eis-reklame,Reklame,/eis/reklame,1,0,1,eis-pajak,pcpd,Views,view_reklame,eis,pcpd.pt eis-reklame,Reklame,/eis/reklame,1,0,1,eis-pajak,pcpd,Views,view_reklame,eis,pcpd.pt
eis-atd,Air Tanah,/eis/atd,1,0,1,eis-pajak,pcpd,Views,view_atd,eis,pcpd.pt eis-atd,Air Tanah,/eis/atd,1,0,1,eis-pajak,pcpd,Views,view_atd,eis,pcpd.pt
eis-opsen,Opsen,/eis/opsen,1,0,1,eis-pajak,pcpd,Views,view_opsen,eis,pcpd.pt eis-opsen,Opsen,/eis/opsen,1,0,1,eis-pajak,pcpd,Views,view_opsen,eis,pcpd.pt
eis-retribusi,Retribusi,/eis/webr,1,0,1,,Views,view_webr,eis,pcpd.pt eis-webr,Retribusi,/eis/webr,1,0,1,,pcpd,Views,view_webr,eis,pcpd.pt
eis,EIS,/eis,1,0,0 eis,EIS,/eis,1,0,0
eis-carousel,Carousel,/eis/carousel,1,0,0 eis-carousel,Carousel,/eis/carousel,1,0,0
eis-carousel-act,Carousel Action,/eis/carousel/{act}/act,1,0 eis-carousel-act,Carousel Action,/eis/carousel/{act}/act,1,0
......
...@@ -12,6 +12,7 @@ from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR ...@@ -12,6 +12,7 @@ from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR
from datetime import timedelta from datetime import timedelta
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Views(BaseView): class Views(BaseView):
@view_config(route_name='eis-pcpd', renderer='templates/pcpd.pt', @view_config(route_name='eis-pcpd', renderer='templates/pcpd.pt',
permission='eis') permission='eis')
...@@ -41,12 +42,13 @@ class Views(BaseView): ...@@ -41,12 +42,13 @@ class Views(BaseView):
"monthtrAccTrx": [("JAN", 100), ("FEB", 200), ("MAR", 300), ("APR", 200), ("MAY", 100), ("JUN", 100), ("JUL", 700)], "monthtrAccTrx": [("JAN", 100), ("FEB", 200), ("MAR", 300), ("APR", 200), ("MAY", 100), ("JUN", 100), ("JUL", 700)],
} }
def get_daily_data(self, table, filter, field=None, today=None): def get_daily_data(self, table, field, today, filters):
columns = [field.label("step")] columns = [field.label("step")]
qry = table.qry_sum(columns) \ qry = table.qry_sum(columns) \
.group_by(field)\ .group_by(field)\
.order_by(field) .order_by(field)
qry = qry.filter(filter) # for i, f in enumerate(filters):
qry = qry.filter(filters)
daily = [] daily = []
dailyTrx = [] dailyTrx = []
dailyAcc = [] dailyAcc = []
...@@ -57,7 +59,7 @@ class Views(BaseView): ...@@ -57,7 +59,7 @@ class Views(BaseView):
bayar = r[0] or 0 bayar = r[0] or 0
denda = r[1] or 0 denda = r[1] or 0
pokok = bayar - denda pokok = bayar - denda
tx=r[2] or 0 tx = r[2] or 0
daily.append((step, pokok)) daily.append((step, pokok))
dailyTrx.append((step, tx)) dailyTrx.append((step, tx))
acc += pokok acc += pokok
...@@ -70,37 +72,200 @@ class Views(BaseView): ...@@ -70,37 +72,200 @@ class Views(BaseView):
return amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx return amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx
def get_pbb_data(self): def get_pbb_data(self):
log.debug("YYYYY")
logger.debug("XXXX")
if log.root.level == logging.DEBUG: if log.root.level == logging.DEBUG:
today = datetime.strptime('2025-06-05', "%Y-%m-%d") today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else: else:
today = datetime.now().date() today = datetime.now().date()
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'yyyy-mm-dd') field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'yyyy-mm-dd')
filter = PaymentPBB.tgl_pembayaran_sppt.between( filter_exp = PaymentPBB.tgl_pembayaran_sppt.between(
today-timedelta(6), today) today-timedelta(6), today)
amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \ amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \
self.get_daily_data(PaymentPBB, filter, field, self.get_daily_data(PaymentPBB, field,
today.strftime("%Y-%m-%d")) today.strftime("%Y-%m-%d"), filter_exp)
filter = PaymentPBB.tgl_pembayaran_sppt.between(
filter_exp = PaymentPBB.tgl_pembayaran_sppt.between(
today-timedelta(days=6), today) today-timedelta(days=6), today)
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'IYYY') field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'IYYY')
filter = PaymentPBB.tgl_pembayaran_sppt.between( filter_exp = PaymentPBB.tgl_pembayaran_sppt.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \
self.get_daily_data(PaymentPBB, field,
str(today.year), filter_exp)
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'IYYY-MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentPBB, field, None, filter_exp)
filter_exp = PaymentPBB.tgl_pembayaran_sppt.between(
today-timedelta(weeks=6), today)
week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \
self.get_daily_data(PaymentPBB, field, None, filter_exp)
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'YYYY-IW')
return {"today": amt,
"trx": trx,
"daily": daily,
"dailyTrx": dailyTrx,
"dailyAcc": dailyAcc,
"dailyAccTrx": dailyAccTrx,
"ytd": ytd,
"trxYtd": ytdTrx,
"pie": [("I", 100, '#16a75c'), ("II", 200, '#ffb900'),
("III", 300, '#133132'), ("IV", 200, '#123456'),
("V", 100, '#545355')],
"weekly": weekly,
"weeklyTrx": weeklyTrx,
"weeklyAcc": weeklyAcc,
"weeklyAccTrx": weeklyAccTrx,
"monthly": monthly,
"monthlyTrx": monthlyTrx,
"monthlyAcc": monthlyAcc,
"monthlyAccTrx": monthlyAccTrx,
}
def get_bphtb_data(self):
if log.root.level == logging.DEBUG:
today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else:
today = datetime.now().date()
field = func.to_char(PaymentBPHTB.tgl, 'yyyy-mm-dd')
filter_exp = PaymentBPHTB.tgl.between(
today-timedelta(6), today)
amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \
self.get_daily_data(PaymentBPHTB, field,
today.strftime("%Y-%m-%d"), filter_exp)
filter_exp = PaymentBPHTB.tgl.between(
today-timedelta(days=6), today)
field = func.to_char(PaymentBPHTB.tgl, 'IYYY')
filter_exp = PaymentBPHTB.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \
self.get_daily_data(PaymentBPHTB, field,
str(today.year), filter_exp)
field = func.to_char(PaymentBPHTB.tgl, 'MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentBPHTB, field, None, filter_exp)
field = func.to_char(PaymentBPHTB.tgl, 'WW')
filter_exp = PaymentBPHTB.tgl.between(
today-timedelta(weeks=6), today)
week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \
self.get_daily_data(PaymentBPHTB, field, None, filter_exp)
return {"today": amt,
"trx": trx,
"daily": daily,
"dailyTrx": dailyTrx,
"dailyAcc": dailyAcc,
"dailyAccTrx": dailyAccTrx,
"ytd": ytd,
"trxYtd": ytdTrx,
"pie": [("I", 100, '#16a75c'), ("II", 200, '#ffb900'),
("III", 300, '#133132'), ("IV", 200, '#123456'),
("V", 100, '#545355')],
"weekly": weekly,
"weeklyTrx": weeklyTrx,
"weeklyAcc": weeklyAcc,
"weeklyAccTrx": weeklyAccTrx,
"monthly": monthly,
"monthlyTrx": monthlyTrx,
"monthlyAcc": monthlyAcc,
"monthlyAccTrx": monthlyAccTrx,
}
def get_pad_data(self, typ):
if log.root.level == logging.DEBUG:
today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else:
today = datetime.now().date()
filter_ex = []
if typ == 'hotel':
filter_ex = [PaymentPAD.jenis_pajak == "PBJT - JASA PERHOTELAN",]
field = func.to_char(PaymentPAD.tgl, 'yyyy-mm-dd')
filter_exp = PaymentPAD.tgl.between(
today-timedelta(6), today)
amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \
self.get_daily_data(PaymentPAD, field,
today.strftime("%Y-%m-%d"), filter_exp)
filter_exp = PaymentPAD.tgl.between(
today-timedelta(days=6), today)
field = func.to_char(PaymentPAD.tgl, 'IYYY')
filter_exp = PaymentPAD.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today) datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \ ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \
self.get_daily_data(PaymentPBB, filter, field,str(today.year)) self.get_daily_data(PaymentPAD, field, str(today.year), filter_exp)
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'IYYY-IM') field = func.to_char(PaymentPAD.tgl, 'YYYY-MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \ month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentPBB, filter, field) self.get_daily_data(PaymentPAD, field, None, filter_exp)
filter = PaymentPBB.tgl_pembayaran_sppt.between( field = func.to_char(PaymentPAD.tgl, 'YYYY-WW')
filter_exp = PaymentPAD.tgl.between(
today-timedelta(weeks=6), today) today-timedelta(weeks=6), today)
week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \ week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \
self.get_daily_data(PaymentPBB, filter, field) self.get_daily_data(PaymentPAD, field, None, filter_exp)
field = func.to_char(PaymentPBB.tgl_pembayaran_sppt, 'YYYY-MM') return {"today": amt,
"trx": trx,
"daily": daily,
"dailyTrx": dailyTrx,
"dailyAcc": dailyAcc,
"dailyAccTrx": dailyAccTrx,
"ytd": ytd,
"trxYtd": ytdTrx,
"pie": [("I", 100, '#16a75c'), ("II", 200, '#ffb900'),
("III", 300, '#133132'), ("IV", 200, '#123456'),
("V", 100, '#545355')],
"weekly": weekly,
"weeklyTrx": weeklyTrx,
"weeklyAcc": weeklyAcc,
"weeklyAccTrx": weeklyAccTrx,
"monthly": monthly,
"monthlyTrx": monthlyTrx,
"monthlyAcc": monthlyAcc,
"monthlyAccTrx": monthlyAccTrx,
}
def get_webr_data(self):
if log.root.level == logging.DEBUG:
today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else:
today = datetime.now().date()
filter_ex = []
# if typ == 'hotel':
# filter_ex = [PaymentPAD.jenis_pajak == "PBJT - JASA PERHOTELAN",]
field = func.to_char(PaymentWEBR.tgl, 'yyyy-mm-dd')
filter_exp = PaymentWEBR.tgl.between(
today-timedelta(6), today)
amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \
self.get_daily_data(PaymentWEBR, field,
today.strftime("%Y-%m-%d"), filter_exp)
filter_exp = PaymentWEBR.tgl.between(
today-timedelta(days=6), today)
field = func.to_char(PaymentWEBR.tgl, 'IYYY')
filter_exp = PaymentWEBR.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \
self.get_daily_data(PaymentWEBR, field, str(today.year), filter_exp)
field = func.to_char(PaymentWEBR.tgl, 'YYYY-MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentWEBR, field, None, filter_exp)
field = func.to_char(PaymentWEBR.tgl, 'YYYY-WW')
filter_exp = PaymentPAD.tgl.between(
today-timedelta(weeks=6), today)
week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \
self.get_daily_data(PaymentWEBR, field, None, filter_exp)
return {"today": amt, return {"today": amt,
"trx": trx, "trx": trx,
...@@ -120,7 +285,7 @@ class Views(BaseView): ...@@ -120,7 +285,7 @@ class Views(BaseView):
"monthly": monthly, "monthly": monthly,
"monthlyTrx": monthlyTrx, "monthlyTrx": monthlyTrx,
"monthlyAcc": monthlyAcc, "monthlyAcc": monthlyAcc,
"monthtrAccTrx": monthlyAccTrx, "monthlyAccTrx": monthlyAccTrx,
} }
@view_config(route_name='eis-pcpd-act', renderer='json') @view_config(route_name='eis-pcpd-act', renderer='json')
...@@ -139,8 +304,12 @@ class Views(BaseView): ...@@ -139,8 +304,12 @@ class Views(BaseView):
return json_data return json_data
elif act == 'pbb': elif act == 'pbb':
resp = self.get_pbb_data() resp = self.get_pbb_data()
elif act == 'bphtb':
resp = self.get_bphtb_data()
elif act == 'webr':
resp = self.get_webr_data()
else: else:
resp = self.get_dummy_data() resp = self.get_pad_data(act)
resp["time"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") resp["time"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
return resp return resp
...@@ -189,152 +358,9 @@ class Views(BaseView): ...@@ -189,152 +358,9 @@ class Views(BaseView):
"title": "Realisasi Pajak Air Tanah"} "title": "Realisasi Pajak Air Tanah"}
def view_webr(self): def view_webr(self):
return {"module": 'webr'} return {"module": 'webr',
"title": "Realisasi Retribusi"}
def view_opsen(self): def view_opsen(self):
return {"module": 'opsen', return {"module": 'opsen',
"title": "Opsen Pajak PKB dan BBNKB"} "title": "Opsen Pajak PKB dan BBNKB"}
# class eis(BaseView):
# def cek_value(self,value,devider,simbol):
# if value<devider:
# return "{0:,.0f}".format(value)
# else:
# return "{0:,.0f} {1}".format(value/devider,simbol)
# @view_config(route_name='eis', renderer='templates/eis.pt',
# permission='eis')
# def view_app(self):
# tahun = self.ses['tahun']
# datas = DBSession.query(Slide).filter(Slide.status==1).order_by(Slide.order_id) or {}
# tab_datas = DBSession.query(Slide).filter(Slide.source_type=='grid').order_by(Slide.order_id) or {}
# line_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-line').order_by(Slide.order_id)or {}
# bar_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-bar').order_by(Slide.order_id)or {}
# pie_datas = DBSession.query(Slide).filter(Slide.source_type=='chart-pie').order_by(Slide.order_id)or {}
# return dict(project='EIS', datas=datas, tab_datas=tab_datas,
# line_datas=line_datas, bar_datas=bar_datas,
# pie_datas=pie_datas, )#, datas=Eis.sum_order_id('2014'))
# @view_config(route_name='eis-act', renderer='json')
# def view_app_act(self):
# tahun = self.ses['tahun']
# req = self.req
# ses = req.session
# params = req.params
# id = 'id' in params and params['id'] or 0
# json_data = {}
# json_data['success']=False
# if req.matchdict['act']=='grid':
# rows = DBSession.query(Eis).filter(Eis.id==id)
# if not rows:
# return json_data
# for row in rows:
# row_dicted = row.to_dict()
# amt_hari = float(row_dicted['amt_hari'])
# amt_minggu = float(row_dicted['amt_minggu']) #+amt_hari
# amt_bulan = float(row_dicted['amt_bulan']) #+amt_hari
# amt_tahun = float(row_dicted['amt_tahun']) #+amt_bulan
# json_data['success']= True
# json_data['tahun'] = self.cek_value(amt_tahun,1, '')
# json_data['bulan'] = self.cek_value(amt_bulan,1, '')
# json_data['minggu'] = self.cek_value(amt_minggu,1, '')
# json_data['hari'] = self.cek_value(amt_hari,1, '')
# return json_data
# #######################################################################
# # GRAFIK LINE/BAR
# #######################################################################
# elif req.matchdict['act']=='linebar':
# rows = DBSession.query(Chart).filter(Chart.id==id).first()
# if not rows:
# return json_data
# json_data['label'] = rows.label.split(',')
# rows = DBSession.query(ChartItem).filter(ChartItem.chart_id==id).\
# order_by(ChartItem.id)
# for row in rows:
# json_data[row.source_type] = [row.value_1/row.chart.devider,row.value_2/row.chart.devider,row.value_3/row.chart.devider,
# row.value_4/row.chart.devider,row.value_5/row.chart.devider,row.value_6/row.chart.devider,
# row.value_7/row.chart.devider,row.value_8/row.chart.devider,row.value_9/row.chart.devider,
# row.value10/row.chart.devider,row.value11/row.chart.devider,row.value12/row.chart.devider,]
# json_data['success']= True
# return json_data
# #######################################################################
# # GRAFIK LINGKARAN
# #######################################################################
# elif req.matchdict['act']=='pie':
# rows = DBSession.query(Chart).filter(Chart.id==id).first()
# if not rows:
# return json_data
# json_data['label'] = rows.label.split(',')
# rows = DBSession.query(ChartItem).filter(ChartItem.chart_id==id).\
# order_by(ChartItem.id)
# json_data['rows'] = {}
# for row in rows:
# anama = {}
# anama['nama'] = row.nama
# anama['color'] = row.color
# anama ['highlight'] = row.highlight
# anama ['value'] = row.value_1/row.chart.devider
# json_data['rows'][row.nama] =anama
# json_data['success']= True
# return json_data
# elif req.matchdict['act']=='dasboard':
# # max_tahun = DBSession.query(func.max(Eis.tahun)).scalar()
# max_tahun = ses['tahun']
# subqx = DBSession.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(
# (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).label('sisa_target'),
# cast(func.round((func.sum(Eis.amt_tahun)/
# 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))*100,2),String).label('persen')).\
# join(ChartItem, and_(func.trim(ChartItem.rekening_kd)==func.trim(Eis.kode),ChartItem.source_type=='target')).\
# join(Chart, and_(Chart.id == ChartItem.chart_id, Chart.chart_type == 'line')).\
# filter(Eis.tahun==max_tahun).\
# group_by(Eis.kode,Eis.nama,Eis.tahun).order_by(Eis.kode).subquery()
# subq = DBSession.query(
# (Eis.nama).label('nama'),
# (ChartItem.value_1*12).label('target'),
# (Eis.amt_bulan).label('amt_bulan'),
# (Eis.amt_tahun).label('amt_tahun'),
# ((ChartItem.value_1*12) - Eis.amt_tahun).label('sisa_target'),
# cast(func.round(((Eis.amt_tahun)/
# (ChartItem.value_1*12))*100,2),String).label('persen')).\
# join(ChartItem, and_(func.trim(ChartItem.rekening_kd)==func.trim(Eis.kode),ChartItem.source_type=='target')).\
# join(Chart, and_(Chart.id == ChartItem.chart_id, Chart.chart_type == 'line')).\
# filter(Eis.tahun==max_tahun).\
# order_by(Eis.kode).subquery()
# query = DBSession.query().select_from(subq)
# columns = [
# ColumnDT(subq.c.nama, mData="jenis_pajak"),
# ColumnDT(subq.c.target, mData="target"),
# ColumnDT(subq.c.amt_bulan, mData="realisasi_bulan_ini"),
# ColumnDT(subq.c.amt_tahun, mData="realisasi_sampai_dengan"),
# ColumnDT(subq.c.sisa_target, mData="sisa_target"),
# ColumnDT(subq.c.persen, mData="persen"),
# ]
# 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!