Commit 33ad8bd9 by Owo Sugiana

Discount pokok dan denda Tangerang Selatan

1 parent bfa5cf2e
0.1.38 2022-7-30
----------------
- Rumus discount pokok dan denda Kota Tangerang Selatan
0.1.37 2022-4-10 0.1.37 2022-4-10
---------------- ----------------
- Rumus discount denda Kabupaten Pangandaran - Rumus discount denda Kabupaten Pangandaran
......
# File ini berdasarkan Peraturan Walikota Tangerang Selatan Bulan April # File ini berdasarkan Peraturan Walikota Tangerang Selatan Bulan April
# Tahun 2021 # Tahun 2021
from datetime import date from datetime import (
date,
datetime,
)
from sqlalchemy import ( from sqlalchemy import (
func, func,
or_, or_,
...@@ -19,13 +22,8 @@ from .default import ( ...@@ -19,13 +22,8 @@ from .default import (
from ..models.tangsel import PembayaranSppt from ..models.tangsel import PembayaranSppt
# Discount Pokok AWAL_DISC = date(2022, 8, 1)
DISC_TAHUN_PAJAK = '2021' AKHIR_DISC = date(2022, 12,31)
DISC_BULAN_BAYAR = {
2021: {
4: 0.1,
5: 0.05,
6: 0.05}}
class Inquiry(BaseInquiry): class Inquiry(BaseInquiry):
...@@ -48,38 +46,45 @@ class Inquiry(BaseInquiry): ...@@ -48,38 +46,45 @@ class Inquiry(BaseInquiry):
tagihan = self.invoice.pbb_yg_harus_dibayar_sppt - sisa tagihan = self.invoice.pbb_yg_harus_dibayar_sppt - sisa
self.tagihan = round_up(tagihan) self.tagihan = round_up(tagihan)
def belum_lunas_di_periode_discount(self): def tahun_2022_belum_lunas(self):
DBSession = get_db_session() DBSession = get_db_session()
Sppt = self.get_invoice_model() Sppt = self.get_invoice_model()
q = DBSession.query(Sppt) q = DBSession.query(Sppt)
q = self.get_filter_op(q) q = self.get_filter_op(q)
q = q.filter( q = q.filter(
Sppt.thn_pajak_sppt.in_(THN_DISC), Sppt.thn_pajak_sppt == '2022',
Sppt.status_pembayaran_sppt != '1') Sppt.status_pembayaran_sppt != '1')
return q.first() return q.first()
def hitung_discount_denda(self): def hitung_denda(self): # Override
super().hitung_denda()
self.denda_sblm_diskon = self.denda self.denda_sblm_diskon = self.denda
return 0
def hitung_discount_pokok_sk_des_2020(self): def hitung_discount_denda(self):
if self.invoice.thn_pajak_sppt == DISC_TAHUN_PAJAK: if self.invoice.thn_pajak_sppt < '2022':
bulan_disc = DISC_BULAN_BAYAR.get(self.tgl_bayar.year) return self.denda # discount 100%
if not bulan_disc:
return 0
disc = bulan_disc.get(self.tgl_bayar.month)
if not disc:
return 0
return int(disc * self.tagihan)
return 0 return 0
def hitung_discount_pokok(self): def hitung_discount_pokok(self):
faktor_pengurang = self.invoice.faktor_pengurang_sppt or 0 faktor_pengurang = self.invoice.faktor_pengurang_sppt or 0
if faktor_pengurang > 0: if faktor_pengurang > 0:
return 0 return 0
return self.hitung_discount_pokok_sk_des_2020() if self.invoice.thn_pajak_sppt >= '2014' and \
self.invoice.thn_pajak_sppt <= '2021':
disc = 0.3
elif self.invoice.thn_pajak_sppt < '2014':
disc = 0.75
else:
disc = 0
return int(disc * self.tagihan)
def hitung_discount(self): # Override def hitung_discount(self): # Override
tgl_bayar = isinstance(self.tgl_bayar, datetime) and \
self.tgl_bayar.date() or self.tgl_bayar
if tgl_bayar < AWAL_DISC or tgl_bayar > AKHIR_DISC:
return
if self.tahun_2022_belum_lunas():
return
self.discount_denda = self.hitung_discount_denda() self.discount_denda = self.hitung_discount_denda()
self.discount_pokok = self.hitung_discount_pokok() self.discount_pokok = self.hitung_discount_pokok()
self.discount = self.discount_denda + self.discount_pokok self.discount = self.discount_denda + self.discount_pokok
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!