Commit 87bfecd7 by Owo Sugiana

Perubahan rumus Kota Bogor

1 parent 04f2ee6d
0.1.20 2021-01-28
-----------------
- Perubahan rumus Kota Bogor
0.1.19 2021-01-25
-----------------
- Penambahan Kota Tasikmalaya
......
from sqlalchemy import (
Column,
String,
Integer,
)
from .default import Base
from .tasik_kab import (
ObjekPajak,
Sppt,
PembayaranSppt,
Kelurahan,
Kecamatan,
Propinsi,
TempatPembayaran,
)
class PenguranganPst(Base):
__tablename__ = 'pengurangan_pst'
__table_args__ = dict(schema='pbb')
kd_kanwil = Column(String(2), primary_key=True)
kd_kantor = Column(String(2), primary_key=True)
thn_pelayanan = Column(String(4), primary_key=True)
bundel_pelayanan = Column(String(4), primary_key=True)
no_urut_pelayanan = Column(String(3), primary_key=True)
kd_propinsi_pemohon = Column(String(2), primary_key=True)
kd_dati2_pemohon = Column(String(2), primary_key=True)
kd_kecamatan_pemohon = Column(String(3), primary_key=True)
kd_kelurahan_pemohon = Column(String(3), primary_key=True)
kd_blok_pemohon = Column(String(3), primary_key=True)
no_urut_pemohon = Column(String(4), primary_key=True)
kd_jns_op_pemohon = Column(String(1), primary_key=True)
thn_peng_pst = Column(String(4), nullable=False)
jns_sk = Column(String(1), nullable=False)
no_sk = Column(String(30), nullable=False)
status_sk_peng_pst = Column(Integer, nullable=False)
pct_pengurangan_pst = Column(String(1), nullable=False)
......@@ -68,24 +68,3 @@ class PenguranganCovid(Base):
# PembayaranSppt.kd_jns_op, PembayaranSppt.thn_pajak_sppt,
# PembayaranSppt.pembayaran_sppt_ke]),
# )
class PenguranganPst(Base):
__tablename__ = 'pengurangan_pst'
kd_kanwil = Column(String(2), primary_key=True)
kd_kantor = Column(String(2), primary_key=True)
thn_pelayanan = Column(String(4), primary_key=True)
bundel_pelayanan = Column(String(4), primary_key=True)
no_urut_pelayanan = Column(String(3), primary_key=True)
kd_propinsi_pemohon = Column(String(2), primary_key=True)
kd_dati2_pemohon = Column(String(2), primary_key=True)
kd_kecamatan_pemohon = Column(String(3), primary_key=True)
kd_kelurahan_pemohon = Column(String(3), primary_key=True)
kd_blok_pemohon = Column(String(3), primary_key=True)
no_urut_pemohon = Column(String(4), primary_key=True)
kd_jns_op_pemohon = Column(String(1), primary_key=True)
thn_peng_pst = Column(String(4), nullable=False)
jns_sk = Column(String(1), nullable=False)
no_sk = Column(String(30), nullable=False)
status_sk_peng_pst = Column(Integer, nullable=False)
pct_pengurangan_pst = Column(String(1), nullable=False)
......@@ -4,10 +4,8 @@ from datetime import (
datetime,
)
from opensipkd.hitung import round_up
from ..models.default import (
PenguranganPst,
PenguranganCovid,
)
from ..models.default import PenguranganCovid
from ..models.bogor_kota import PenguranganPst
from .base import (
get_db_session,
Query,
......@@ -19,8 +17,11 @@ from .default import (
)
OKTOBER_1 = date(2020, 10, 1)
DESEMBER_18 = date(2020, 12, 18)
AWAL_DISC = date(2021, 2, 1)
AKHIR_DISC = date(2021, 4, 30)
# Discount pokok berdasarkan bulan
NILAI_DISC = {2: 0.15, 3: 0.1, 4: 0.05}
class Common(Query):
......@@ -38,28 +39,38 @@ class Common(Query):
class Inquiry(BaseInquiry, Common):
# 01-10-2017 Perwal Kota Bogor penghapusan denda
def rumus_discount_denda_2017(self):
if self.invoice.thn_pajak_sppt < '2013':
self.discount = self.denda
def is_pst(self):
DBSession = get_db_session()
inv_id = self.invoice_id
q = DBSession.query(PenguranganPst).filter_by(
kd_propinsi_pemohon=inv_id['Propinsi'],
kd_dati2_pemohon=inv_id['Kabupaten'],
kd_kecamatan_pemohon=inv_id['Kecamatan'],
kd_kelurahan_pemohon=inv_id['Kelurahan'],
kd_blok_pemohon=inv_id['Blok'], no_urut_pemohon=inv_id['Urut'],
kd_jns_op_pemohon=inv_id['Jenis'],
thn_peng_pst=inv_id['Tahun'])
pst = q.first()
return pst and pst.no_sk and pst.status_sk_peng_pst != '2'
def rumus_discount_denda_2020_07_08(self):
if self.invoice.thn_pajak_sppt < '2020':
self.discount = self.denda
def hitung_discount_pokok(self):
potongan = NILAI_DISC[self.tgl_bayar.month]
self.discount_pokok = potongan * self.tagihan
def rumus_discount_denda_2020_10_12(self):
self.discount = self.denda
def hitung_discount_denda(self):
self.discount_denda = self.denda
def hitung_discount(self): # Override
if self.tgl_bayar >= OKTOBER_1 and self.tgl_bayar <= DESEMBER_18:
self.rumus_discount_denda_2020_10_12()
elif self.tgl_bayar.year == 2020 and self.tgl_bayar.month in (7, 8):
self.rumus_discount_denda_2020_07_08()
else:
self.rumus_discount_denda_2017()
self.discount_pokok = self.discount_denda = 0
if self.tgl_bayar < AWAL_DISC or self.tgl_bayar > AKHIR_DISC:
return
if not self.is_pst():
self.hitung_discount_pokok()
self.hitung_discount_denda()
self.discount = self.discount_pokok + self.discount_denda
def before_save(self, bayar): # Override
if not self.discount:
if not self.discount_pokok and not self.discount_denda:
return
inv = self.invoice
pc = PenguranganCovid(
......@@ -70,7 +81,7 @@ class Inquiry(BaseInquiry, Common):
kd_jns_op=bayar.kd_jns_op, thn_pajak_sppt=bayar.thn_pajak_sppt,
pembayaran_sppt_ke=bayar.pembayaran_sppt_ke,
bayar=self.discount,
denda=self.discount)
denda=self.discount_denda)
DBSession = get_db_session()
DBSession.add(pc)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!