Perubahan realisasi PBB

1 parent 65070991
...@@ -3,7 +3,7 @@ eis-pcpd,PCPD,/eis/pcpd,1,0,0 ...@@ -3,7 +3,7 @@ eis-pcpd,PCPD,/eis/pcpd,1,0,0
eis-pcpd-act,PCPD Act,/eis/pcpd/{act}/act,1,0 eis-pcpd-act,PCPD Act,/eis/pcpd/{act}/act,1,0
eis-pajak,Pajak,#,1,0,1 eis-pajak,Pajak,#,1,0,1
eis-pajak-kumulatif,Pajak,/eis/pajak,1,0,1,eis-pajak,pcpd,Views,view_pajak,,pcpd.pt eis-pajak-kumulatif,Pajak,/eis/pajak,1,0,1,eis-pajak,pcpd,Views,view_pajak,,pcpd.pt
eis-pbb,PBB,/eis/pbb,1,0,1,eis-pajak,pcpd,Views,view_pbb,eis,pcpd.pt eis-pbb,PBB,/eis/pbb,1,0,1,eis-pajak,pcpd,Views,view_pbb,eis,pbb.pt
eis-bphtb,BPHTB,/eis/bphtb,1,0,1,eis-pajak,pcpd,Views,view_bphtb,eis,pcpd.pt eis-bphtb,BPHTB,/eis/bphtb,1,0,1,eis-pajak,pcpd,Views,view_bphtb,eis,pcpd.pt
eis-hotel,Hotel,/eis/hotel,1,0,1,eis-pajak,pcpd,Views,view_hotel,eis,pcpd.pt eis-hotel,Hotel,/eis/hotel,1,0,1,eis-pajak,pcpd,Views,view_hotel,eis,pcpd.pt
eis-resto,Restoran,/eis/resto,1,0,1,eis-pajak,pcpd,Views,view_resto,eis,pcpd.pt eis-resto,Restoran,/eis/resto,1,0,1,eis-pajak,pcpd,Views,view_resto,eis,pcpd.pt
......
...@@ -9,7 +9,7 @@ from datatables import ColumnDT, DataTables ...@@ -9,7 +9,7 @@ from datatables import ColumnDT, DataTables
from sqlalchemy import func, and_, String from sqlalchemy import func, and_, String
from sqlalchemy.sql.expression import cast from sqlalchemy.sql.expression import cast
from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR
from opensipkd.pbb.monitoring.models import PembayaranSppt from opensipkd.pbb.monitoring.models import PembayaranSppt, Kecamatan, Kelurahan, Sppt
from datetime import timedelta from datetime import timedelta
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -450,6 +450,48 @@ class Views(BaseView): ...@@ -450,6 +450,48 @@ class Views(BaseView):
} }
return resp return resp
def get_pbb_area(self):
if log.root.level == logging.DEBUG:
today = datetime.strptime('2025-06-05', "%Y-%m-%d")
else:
today = datetime.now().date()
rows = Kecamatan.query().order_by(Kecamatan.kd_kecamatan)
kecamatan = {f"{row.kd_kecamatan}": {"nama": row.nm_kecamatan,
"ketetapan": 0,
"realisasi": 0,
"sisa": 0,
"persen": 0} for row in rows}
ketetapan = Sppt.query_from(
[Sppt.kd_kecamatan,
func.sum(Sppt.pbb_yg_harus_dibayar_sppt)
])\
.filter(Sppt.thn_pajak_sppt == self.ses['tahun'])\
.group_by(Sppt.kd_kecamatan)
for row in ketetapan:
kecamatan[row[0]]["ketetapan"] = row[1] or 0
realisasi = PembayaranSppt.query_from(
[PembayaranSppt.kd_kecamatan,
func.sum(PembayaranSppt.jml_sppt_yg_dibayar -
PembayaranSppt.denda_sppt)
])\
.filter(PembayaranSppt.thn_pajak_sppt == self.tahun)\
.group_by(PembayaranSppt.kd_kecamatan)
for row in realisasi:
kecamatan[row[0]]["realisasi"] = row[1] or 0
kecamatan[row[0]]["sisa"] = kecamatan[row[0]]["ketetapan"] - row[1]
kecamatan[row[0]]["persen"] = kecamatan[row[0]]["realisasi"] / \
kecamatan[row[0]]["ketetapan"] * \
100 if kecamatan[row[0]]["ketetapan"] > 0 else 0
return [{"kode": kec, "nama": kecamatan[kec]["nama"],
"ketetapan": kecamatan[kec]["ketetapan"],
"realisasi": kecamatan[kec]["realisasi"],
"sisa": kecamatan[kec]["sisa"],
"persen": kecamatan[kec]["persen"],
} for kec in kecamatan]
@view_config(route_name='eis-pcpd-act', renderer='json') @view_config(route_name='eis-pcpd-act', renderer='json')
def view_app_act(self): def view_app_act(self):
tahun = self.ses['tahun'] tahun = self.ses['tahun']
...@@ -466,6 +508,15 @@ class Views(BaseView): ...@@ -466,6 +508,15 @@ 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()
resp["tabel"] = self.get_pbb_area()
ketetapan = Sppt.query_from(func.sum(Sppt.pbb_yg_harus_dibayar_sppt))\
.filter(Sppt.thn_pajak_sppt == tahun).scalar()
realisasi = PembayaranSppt.query_from(
func.sum(PembayaranSppt.jml_sppt_yg_dibayar - PembayaranSppt.denda_sppt))\
.filter(PembayaranSppt.thn_pajak_sppt == tahun).scalar()
resp["realisasi"] =[ketetapan or 0, realisasi or 0]
elif act == 'bphtb': elif act == 'bphtb':
resp = self.get_bphtb_data() resp = self.get_bphtb_data()
elif act == 'webr': elif act == 'webr':
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!