Commit 2e660d0d by Ari Agung Prasetiyo

update query pbb

1 parent 1f8e56ae
# from types import NoneType # from types import NoneType
import os
from pyramid.view import ( from pyramid.view import (
view_config, view_config,
) )
...@@ -6,11 +7,11 @@ from ..views import BaseView ...@@ -6,11 +7,11 @@ from ..views import BaseView
from ..models import * from ..models import *
from ..models.eis import Eis, Chart, ChartItem, Slide from ..models.eis import Eis, Chart, ChartItem, Slide
from datatables import ColumnDT, DataTables from datatables import ColumnDT, DataTables
from sqlalchemy import func, and_, String from sqlalchemy import func, and_, String, text
from sqlalchemy.sql.expression import cast from sqlalchemy.sql.expression import cast
from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR, TargetsBangbadil, UploadRealisasiOpsen from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR, TargetsBangbadil, UploadRealisasiOpsen
from opensipkd.pbb.monitoring.models import PembayaranSppt, Kecamatan, Kelurahan, Sppt from opensipkd.pbb.monitoring.models import PembayaranSppt, Kecamatan, Kelurahan, Sppt
from opensipkd.pjdl.models import Sspd, Pajak, Usaha from opensipkd.pjdl.models import Sspd, Pajak, Usaha, PdlDBSession
from datetime import timedelta from datetime import timedelta
from ..models.payment import PCDBSession from ..models.payment import PCDBSession
...@@ -29,6 +30,20 @@ PAD_TYP = { ...@@ -29,6 +30,20 @@ PAD_TYP = {
"pbb": ["0"], "pbb": ["0"],
} }
PAD2_TYP = {
"hotel": "41011903",
"resto": "41011901",
"hiburan": "41011905",
"ppju": "41011902",
"minerba": "410114",
"parkir": "41011904",
"walet": "410113",
"atd": "410112",
"reklame": "410109",
"pbb": "0",
}
jenis_pajak = { jenis_pajak = {
"opsen_pkb": { "opsen_pkb": {
"kode": "4.1.01.20.01.0001", "kode": "4.1.01.20.01.0001",
...@@ -165,6 +180,8 @@ class Views(BaseView): ...@@ -165,6 +180,8 @@ class Views(BaseView):
bayar = mapped.get("bayar", 0) bayar = mapped.get("bayar", 0)
denda = mapped.get("denda", 0) denda = mapped.get("denda", 0)
pokok = float(bayar) pokok = float(bayar)
if typ == 'pbb':
pokok = bayar-denda
tx = mapped.get("trx",0) tx = mapped.get("trx",0)
daily.append((step, pokok)) daily.append((step, pokok))
dailyTrx.append((step, tx)) dailyTrx.append((step, tx))
...@@ -793,8 +810,9 @@ class Views(BaseView): ...@@ -793,8 +810,9 @@ class Views(BaseView):
elif jenis == "bphtb": elif jenis == "bphtb":
realisasi = self.get_bphtb_data()["ytd"] realisasi = self.get_bphtb_data()["ytd"]
else: else:
realisasi = self.get_pad_data(jenis)["ytd"] realisasi = self.get_pad_data(jenis)["ytd"]
#realisasi = self.get_pad_data(jenis)
#realisasi = realisasi[f"{jenis}"]["realisasi"]
return {jenis: {"kode": jenis_pajak[jenis]["kode"].ljust(8, '0'), return {jenis: {"kode": jenis_pajak[jenis]["kode"].ljust(8, '0'),
"nama": jenis_pajak[jenis]["nama"], "nama": jenis_pajak[jenis]["nama"],
...@@ -863,6 +881,32 @@ class Views(BaseView): ...@@ -863,6 +881,32 @@ class Views(BaseView):
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
def realisasi_pad(self, jenis):
target = self.get_targets(jenis)
today = datetime.now().date()
file_dir = os.path.split(__file__)[0]
filename = os.path.join(file_dir, 'realisasi_pad.sql')
rekeningkd = PAD2_TYP[jenis]
with open(filename, 'r') as f:
qry = f.read().format(bulan = today.month, tahun=today.year, kondisi=f"and levelid in (3,4) and issummary = 1 and rekeningkd='{rekeningkd}'")
engine = PdlDBSession.get_bind()
with engine.connect() as conn:
result = conn.execute(text(qry.replace('\n', ' ')))
d = []
# r = result[0]
for r in result:
d.append(dict(zip(result.keys(), r)))
d = d[0]
realisasi = d["realisasi_lalu"] + d["realisasi"]
return {jenis: {"kode": d["kode"],
"nama": d["nama"],
"target": target,
"realisasi": realisasi,
"sisa": target - realisasi,
"persen": round(realisasi/target * 100, 2) if target > 0 else 0}
}
def view_pajak(self): def view_pajak(self):
return {"module": 'pajak', return {"module": 'pajak',
"title": "Realisasi Pajak Daerah"} "title": "Realisasi Pajak Daerah"}
......
select tglcetak, bulan, substring(rekeningkd, 1,25) as kode, rekeningnm as nama, levelid,issummary,
sum(murni) murni, sum(perubahan) perubahan, sum(realisasi_lalu) realisasi_lalu, sum(realisasi) realisasi
, d.nip as dnip, d.pejabatnm as dpejabatnm, d.jabatan as djabatan, d.pangkat as dpangkat
, e.nip as enip, e.pejabatnm as epejabatnm, e.jabatan as ejabatan, e.pangkat as epangkat
from (
with
r as (
select id, rekeningkd, rekeningnm, levelid, issummary, enabled from tblrekening
),
a5 as (
select r.rekeningkd,
substring(r.rekeningkd,1,1)||'%' rlevel0,
substring(r.rekeningkd,1,2)||'%' rlevel1,
substring(r.rekeningkd,1,3)||'%' rlevel2,
substring(r.rekeningkd,1,6)||'%' rlevel3,
substring(r.rekeningkd,1,8)||'%' rlevel4,
substring(r.rekeningkd,1,12)||'%' rlevel5,
sum(a.murni) murni, sum(a.perubahan) perubahan
from rka_kegiatan_line a
left join r on r.id=a.rekening_id
where a.tahun::text='{tahun}'
group by r.rekeningkd
),
a4 as (
select r.rekeningkd, sum(a.murni) murni, sum(a.perubahan) perubahan
from a5 a
left join r on r.rekeningkd ilike a.rlevel4
where r.levelid=4 and r.issummary=1
group by r.rekeningkd
),
a3 as (
select r.rekeningkd, sum(a.murni) murni, sum(a.perubahan) perubahan
from a5 a
left join r on r.rekeningkd ilike a.rlevel3
where r.levelid=3 and r.issummary=1
group by r.rekeningkd
),
a2 as (
select r.rekeningkd, sum(a.murni) murni, sum(a.perubahan) perubahan
from a5 a
left join r on r.rekeningkd ilike a.rlevel2
where r.levelid=2 and r.issummary=1
group by r.rekeningkd
),
a1 as (
select r.rekeningkd, sum(a.murni) murni, sum(a.perubahan) perubahan
from a5 a
left join r on r.rekeningkd ilike a.rlevel1
where r.levelid=1 and r.issummary=1
group by r.rekeningkd
),
a0 as (
select r.rekeningkd,sum(a.murni) murni, sum(a.perubahan) perubahan
from a5 a
left join r on r.rekeningkd ilike a.rlevel0
where r.levelid=0 and r.issummary=1
group by r.rekeningkd
),
lv5 as (
select r.rekeningkd,
substring(r.rekeningkd,1,1)||'%' rlevel0,
substring(r.rekeningkd,1,2)||'%' rlevel1,
substring(r.rekeningkd,1,3)||'%' rlevel2,
substring(r.rekeningkd,1,6)||'%' rlevel3,
substring(r.rekeningkd,1,8)||'%' rlevel4,
substring(r.rekeningkd,1,12)||'%' rlevel5,
sum(
case when ss.hitung_bunga in (0,2) then ss.jml_bayar
when s.type_id in (5) then s.pajak_terhutang
when s.type_id in (13) then 0
else ss.jml_bayar-ss.bunga
end
) realisasi
from pad_sspd ss
left join pad_spt s on s.id=ss.spt_id
left join pad_pajak p on p.id=s.pajak_id
left join r on r.id=p.rekening_id
where ss.is_valid=1
and extract(month FROM ss.sspdtgl) = {bulan}
and extract(year FROM ss.sspdtgl) = {tahun}
group by r.rekeningkd
union
select r.rekeningkd,
substring(r.rekeningkd,1,1)||'%' rlevel0,
substring(r.rekeningkd,1,2)||'%' rlevel1,
substring(r.rekeningkd,1,3)||'%' rlevel2,
substring(r.rekeningkd,1,6)||'%' rlevel3,
substring(r.rekeningkd,1,8)||'%' rlevel4,
substring(r.rekeningkd,1,12)||'%' rlevel5,
sum(
case when ss.hitung_bunga in (0,2) then 0
when s.type_id in (5) then ss.jml_bayar-s.pajak_terhutang
when s.type_id in (13) then ss.jml_bayar
else ss.bunga
end
) realisasi
from pad_sspd ss
left join pad_spt s on s.id=ss.spt_id
left join pad_pajak p on p.id=s.pajak_id
left join r on r.id=p.rekdenda_id
where ss.is_valid=1
and extract(month FROM ss.sspdtgl) = {bulan}
and extract(year FROM ss.sspdtgl) = {tahun}
group by r.rekeningkd
),
lv4 as (
select r.rekeningkd, sum(realisasi) realisasi
from lv5 tl
left join r on r.rekeningkd ilike tl.rlevel4
where r.levelid=4 and r.issummary=1
group by r.rekeningkd
),
lv3 as (
select r.rekeningkd, sum(realisasi) realisasi
from lv5 tl
left join r on r.rekeningkd ilike tl.rlevel3
where r.levelid=3 and r.issummary=1
group by r.rekeningkd
),
lv2 as (
select r.rekeningkd, sum(realisasi) realisasi
from lv5 tl
left join r on r.rekeningkd ilike tl.rlevel2
where r.levelid=2 and r.issummary=1
group by r.rekeningkd
),
lv1 as (
select r.rekeningkd, sum(realisasi) realisasi
from lv5 tl
left join r on r.rekeningkd ilike tl.rlevel1
where r.levelid=1 and r.issummary=1
group by r.rekeningkd
),
lv0 as (
select r.rekeningkd, sum(realisasi) realisasi
from lv5 tl
left join r on r.rekeningkd ilike tl.rlevel0
where r.levelid=0 and r.issummary=1
group by r.rekeningkd
),
lu5 as (
select r.rekeningkd,
substring(r.rekeningkd,1,1)||'%' rlevel0,
substring(r.rekeningkd,1,2)||'%' rlevel1,
substring(r.rekeningkd,1,3)||'%' rlevel2,
substring(r.rekeningkd,1,6)||'%' rlevel3,
substring(r.rekeningkd,1,8)||'%' rlevel4,
substring(r.rekeningkd,1,12)||'%' rlevel5,
sum(
case when ss.hitung_bunga in (0,2) then ss.jml_bayar
when s.type_id in (5) then s.pajak_terhutang
when s.type_id in (13) then 0
else ss.jml_bayar-ss.bunga
end
) realisasi
from pad_sspd ss
left join pad_spt s on s.id=ss.spt_id
left join pad_pajak p on p.id=s.pajak_id
left join r on r.id=p.rekening_id
where r.levelid=5 and ss.is_valid=1
and extract(month FROM ss.sspdtgl) < {bulan}
and extract(year FROM ss.sspdtgl) = {tahun}
group by r.rekeningkd
union
select r.rekeningkd,
substring(r.rekeningkd,1,1)||'%' rlevel0,
substring(r.rekeningkd,1,2)||'%' rlevel1,
substring(r.rekeningkd,1,3)||'%' rlevel2,
substring(r.rekeningkd,1,6)||'%' rlevel3,
substring(r.rekeningkd,1,8)||'%' rlevel4,
substring(r.rekeningkd,1,12)||'%' rlevel5,
sum(
case when ss.hitung_bunga in (0,2) then 0
when s.type_id in (5) then ss.jml_bayar-s.pajak_terhutang
when s.type_id in (13) then ss.jml_bayar
else ss.bunga
end
) realisasi
from pad_sspd ss
left join pad_spt s on s.id=ss.spt_id
left join pad_pajak p on p.id=s.pajak_id
left join r on r.id=p.rekdenda_id
where (r.levelid=5 or (r.levelid=4 and issummary=0)) and ss.is_valid=1
and extract(month FROM ss.sspdtgl) < {bulan}
and extract(year FROM ss.sspdtgl) = {tahun}
group by r.rekeningkd
),
lu4 as (
select r.rekeningkd, sum(realisasi) realisasi
from lu5 tl
left join r on r.rekeningkd ilike tl.rlevel4
where r.levelid=4 and r.issummary=1
group by r.rekeningkd
),
lu3 as (
select r.rekeningkd, sum(realisasi) realisasi
from lu5 tl
left join r on r.rekeningkd ilike tl.rlevel3
where r.levelid=3 and r.issummary=1
group by r.rekeningkd
),
lu2 as (
select r.rekeningkd, sum(realisasi) realisasi
from lu5 tl
left join r on r.rekeningkd ilike tl.rlevel2
where r.levelid=2 and r.issummary=1
group by r.rekeningkd
),
lu1 as (
select r.rekeningkd, sum(realisasi) realisasi
from lu5 tl
left join r on r.rekeningkd ilike tl.rlevel1
where r.levelid=1 and r.issummary=1
group by r.rekeningkd
),
lu0 as (
select r.rekeningkd, sum(realisasi) realisasi
from lu5 tl
left join r on r.rekeningkd ilike tl.rlevel0
where r.levelid=0 and r.issummary=1
group by r.rekeningkd
)
select format_tgl(date(now()), false, false) tglcetak, upper(get_bulan({bulan}::int, false))||{tahun} as bulan, r.rekeningkd, r.rekeningnm, r.levelid, r.issummary,
coalesce(case
when r.levelid=0 then a0.murni
when r.levelid=1 then a1.murni
when r.levelid=2 then a2.murni
when r.levelid=3 then a3.murni
when r.levelid=4 then a4.murni
when r.levelid=5 then a5.murni
end, 0
) murni,
coalesce(case
when r.levelid=0 then a0.perubahan
when r.levelid=1 then a1.perubahan
when r.levelid=2 then a2.perubahan
when r.levelid=3 then a3.perubahan
when r.levelid=4 then a4.perubahan
when r.levelid=5 then a5.perubahan
end, 0
) perubahan,
coalesce(case
when r.levelid=0 then lu0.realisasi
when r.levelid=1 then lu1.realisasi
when r.levelid=2 then lu2.realisasi
when r.levelid=3 then lu3.realisasi
when r.levelid=4 then lu4.realisasi
when r.levelid=5 then lu5.realisasi
end, 0
) realisasi_lalu,
coalesce(case
when r.levelid=0 then lv0.realisasi
when r.levelid=1 then lv1.realisasi
when r.levelid=2 then lv2.realisasi
when r.levelid=3 then lv3.realisasi
when r.levelid=4 then lv4.realisasi
when r.levelid=5 then lv5.realisasi
end, 0
) realisasi
from r
left join a0 on a0.rekeningkd=r.rekeningkd
left join a1 on a1.rekeningkd=r.rekeningkd
left join a2 on a2.rekeningkd=r.rekeningkd
left join a3 on a3.rekeningkd=r.rekeningkd
left join a4 on a4.rekeningkd=r.rekeningkd
left join a5 on a5.rekeningkd=r.rekeningkd
left join lv0 on lv0.rekeningkd=r.rekeningkd
left join lv1 on lv1.rekeningkd=r.rekeningkd
left join lv2 on lv2.rekeningkd=r.rekeningkd
left join lv3 on lv3.rekeningkd=r.rekeningkd
left join lv4 on lv4.rekeningkd=r.rekeningkd
left join lv5 on lv5.rekeningkd=r.rekeningkd
left join lu0 on lu0.rekeningkd=r.rekeningkd
left join lu1 on lu1.rekeningkd=r.rekeningkd
left join lu2 on lu2.rekeningkd=r.rekeningkd
left join lu3 on lu3.rekeningkd=r.rekeningkd
left join lu4 on lu4.rekeningkd=r.rekeningkd
left join lu5 on lu5.rekeningkd=r.rekeningkd
where r.enabled=1
) as data
left join tblpejabat d on d.id=1
left join tblpejabat e on e.id=1
where 1=1
{kondisi}
group by 1,2,3,4,5,6,11,12,13,14,15,16,17,18
order by kode
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!