Perubahan realisasi PBB

1 parent 65070991
......@@ -3,7 +3,7 @@ eis-pcpd,PCPD,/eis/pcpd,1,0,0
eis-pcpd-act,PCPD Act,/eis/pcpd/{act}/act,1,0
eis-pajak,Pajak,#,1,0,1
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-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
......
......@@ -9,7 +9,7 @@ from datatables import ColumnDT, DataTables
from sqlalchemy import func, and_, String
from sqlalchemy.sql.expression import cast
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
logger = logging.getLogger(__name__)
......@@ -450,6 +450,48 @@ class Views(BaseView):
}
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')
def view_app_act(self):
tahun = self.ses['tahun']
......@@ -466,6 +508,15 @@ class Views(BaseView):
return json_data
elif act == 'pbb':
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':
resp = self.get_bphtb_data()
elif act == 'webr':
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!