Commit af8048e4 by Owo Sugiana

Perubahan rumus Kota Tangerang Selatan sesuai SK Desember 2020

1 parent 1af88274
0.1.18 2021-04-01
-----------------
- Perubahan rumus Kota Tangerang Selatan
0.1.17 2020-12-14
-----------------
- Tidak bisa inquiry untuk tahun pajak lebih besar dari tahun ini
......
# File ini berdasarkan Peraturan Walikota Tangerang Selatan No. 34 Tahun 2020
# File ini berdasarkan Peraturan Walikota Tangerang Selatan Bulan Desember
# Tahun 2020
from datetime import date
from sqlalchemy import (
func,
......@@ -18,23 +19,14 @@ from .default import (
from ..models.tangsel import PembayaranSppt
# Halaman 6 pasal 8
SATU_SEPTEMBER = date(2020, 9, 1)
AKHIR_DISC_DENDA = date(2020, 12, 31)
# Sebelum 1 September 2020
PERIODE_DISC_POKOK = {
2020: {
7: 0.15,
8: 0.1,
},
}
THN_AWAL = 2014
THN_AKHIR = 2019
THN_DISC = []
for i in range(THN_AWAL, THN_AKHIR+1):
THN_DISC.append(str(i))
THN_AWAL_STR = str(THN_AWAL)
# Discount Pokok
DISC_TAHUN_PAJAK = '2021'
DISC_BULAN_BAYAR = {
2021: {
1: 0.15,
2: 0.15,
3: 0.15,
4: 0.1}}
class Inquiry(BaseInquiry):
......@@ -67,53 +59,26 @@ class Inquiry(BaseInquiry):
Sppt.status_pembayaran_sppt != '1')
return q.first()
def hitung_discount_denda_sebelum_september(self):
if self.invoice.thn_pajak_sppt < THN_AWAL_STR:
if self.belum_lunas_di_periode_discount():
return 0
return self.denda # 100 %
if self.invoice.thn_pajak_sppt in THN_DISC:
return int(0.5 * self.denda)
return 0
# Halaman 5 pasal 4
def hitung_discount_denda_sk_34_2020(self):
if self.invoice.thn_pajak_sppt < '2020':
return self.denda
return 0
def hitung_discount_denda(self):
self.denda_sblm_diskon = self.denda
if self.tgl_bayar > AKHIR_DISC_DENDA:
return 0
if self.tgl_bayar < SATU_SEPTEMBER:
return self.hitung_discount_denda_sebelum_september()
return self.hitung_discount_denda_sk_34_2020()
def hitung_discount_pokok_sebelum_september(self):
if self.invoice.thn_pajak_sppt < '2020':
return 0
if self.tgl_bayar.year not in PERIODE_DISC_POKOK:
return 0
bulan_disc = PERIODE_DISC_POKOK[self.tgl_bayar.year]
if self.tgl_bayar.month not in bulan_disc:
return 0
disc = bulan_disc[self.tgl_bayar.month]
return int(disc * self.tagihan)
return 0
# Halaman 4 pasal 2 ayat 1
def hitung_discount_pokok_sk_34_2020(self):
if self.invoice.thn_pajak_sppt < '2020':
return int(0.5 * self.tagihan)
def hitung_discount_pokok_sk_des_2020(self):
if self.invoice.thn_pajak_sppt == DISC_TAHUN_PAJAK:
bulan_disc = DISC_BULAN_BAYAR.get(self.tgl_bayar.year)
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
def hitung_discount_pokok(self):
faktor_pengurang = self.invoice.faktor_pengurang_sppt or 0
if faktor_pengurang > 0:
return 0
if self.tgl_bayar < SATU_SEPTEMBER:
return self.hitung_discount_pokok_sebelum_september()
return self.hitung_discount_pokok_sk_34_2020()
return self.hitung_discount_pokok_sk_des_2020()
def hitung_discount(self): # Override
self.discount_denda = self.hitung_discount_denda()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!