Commit 62824e1a by Owo Sugiana

Perbaikan discount pokok Kota Bekasi terkait faktor pengurang

1 parent f57f3c47
0.3.53 2026-03-07
-----------------
- Perbaikan discount pokok Kota Bekasi terkait faktor pengurang
0.3.52 2026-02-28 0.3.52 2026-02-28
----------------- -----------------
- Discount denda Kota Sukabumi - Discount denda Kota Sukabumi
......
...@@ -3,7 +3,7 @@ requires = ['setuptools >= 64'] ...@@ -3,7 +3,7 @@ requires = ['setuptools >= 64']
[project] [project]
name = 'sismiop-models' name = 'sismiop-models'
version = '0.3.52' version = '0.3.53'
dependencies = [ dependencies = [
'sqlalchemy', 'sqlalchemy',
'zope.sqlalchemy', 'zope.sqlalchemy',
......
...@@ -39,9 +39,15 @@ BUKU_DISC_POKOK = [ ...@@ -39,9 +39,15 @@ BUKU_DISC_POKOK = [
TAHUN_LUNAS = [str(x) for x in range(2021, 2027)] TAHUN_LUNAS = [str(x) for x in range(2021, 2027)]
def hitung_denda(tagihan, jatuh_tempo, tgl_hitung): def hitung_denda(
tagihan: int, jatuh_tempo: date, tgl_hitung: date,
tahun: str) -> tuple:
if jatuh_tempo >= tgl_hitung: if jatuh_tempo >= tgl_hitung:
return 0, 0 return 0, 0
if '2019' <= tahun <= '2023':
bulan = 15
denda = bulan * 0.02 * tagihan
return bulan, denda
jatuh_tempo_batas = date(2024, 1, jatuh_tempo.day) jatuh_tempo_batas = date(2024, 1, jatuh_tempo.day)
bulan2persen = bulan_tunggakan_berdasarkan_tgl( bulan2persen = bulan_tunggakan_berdasarkan_tgl(
jatuh_tempo, jatuh_tempo_batas) jatuh_tempo, jatuh_tempo_batas)
...@@ -83,18 +89,23 @@ class Inquiry(BaseInquiry): ...@@ -83,18 +89,23 @@ class Inquiry(BaseInquiry):
row = q.first() row = q.first()
return row and row.status_pembayaran_sppt == '1' return row and row.status_pembayaran_sppt == '1'
def get_tagihan_pokok(self): # Override
pengurang = self.invoice.faktor_pengurang_sppt or 0
if pengurang > 0:
return self.invoice.pbb_terhutang_sppt
return super().get_tagihan_pokok()
def hitung_denda(self): # Override def hitung_denda(self): # Override
if isinstance(self.tgl_bayar, datetime): if isinstance(self.tgl_bayar, datetime):
tgl_bayar = self.tgl_bayar.date() tgl_bayar = self.tgl_bayar.date()
else: else:
tgl_bayar = self.tgl_bayar tgl_bayar = self.tgl_bayar
self.bln_tunggakan, denda = hitung_denda( self.bln_tunggakan, denda = hitung_denda(
self.tagihan, self.get_jatuh_tempo(), tgl_bayar) self.tagihan, self.get_jatuh_tempo(), tgl_bayar,
self.invoice.thn_pajak_sppt)
self.denda = round_up(denda) self.denda = round_up(denda)
def hitung_discount_pokok(self): def hitung_discount_pokok(self):
if self.invoice.faktor_pengurang_sppt:
return
disc = 0 disc = 0
if self.invoice.thn_pajak_sppt == '2026': if self.invoice.thn_pajak_sppt == '2026':
for max_tagihan, disc in BUKU_DISC_POKOK: for max_tagihan, disc in BUKU_DISC_POKOK:
......
...@@ -32,7 +32,7 @@ class Inquiry(BaseInquiry): ...@@ -32,7 +32,7 @@ class Inquiry(BaseInquiry):
self.total_bayar = 0 self.total_bayar = 0
denda_lalu = bayar.denda_sppt or 0 denda_lalu = bayar.denda_sppt or 0
sisa = float(self.total_bayar - denda_lalu) sisa = float(self.total_bayar - denda_lalu)
tagihan = self.invoice.pbb_yg_harus_dibayar_sppt - sisa tagihan = self.get_tagihan_pokok() - sisa
if tagihan < 0: if tagihan < 0:
self.tagihan = 0 self.tagihan = 0
else: else:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!