Commit 3f365f1c by Owo Sugiana

Penambahan rumus untuk Kota Bogor

1 parent 4f7c810c
import os
from setuptools import setup
from setuptools import (
setup,
find_packages,
)
here = os.path.abspath(os.path.dirname(__file__))
......@@ -28,10 +31,7 @@ setup(
author='Owo Sugiana',
author_email='sugiana@gmail.com',
license='PostgreSQL License',
packages=[
'sismiop.models',
'sismiop.services',
'sismiop.scripts'],
packages=find_packages(),
install_requires=requires,
zip_safe=False,
entry_points={
......
......@@ -42,16 +42,15 @@ class Propinsi(Base, PropinsiMixin):
class PenguranganCovid(Base):
__tablename__ = 'pengurangan_covid'
id = Column(Integer, primary_key=True)
kd_propinsi = Column(String(2), nullable=False)
kd_dati2 = Column(String(2), nullable=False)
kd_kecamatan = Column(String(3), nullable=False)
kd_kelurahan = Column(String(3), nullable=False)
kd_blok = Column(String(3), nullable=False)
no_urut = Column(String(4), nullable=False)
kd_jns_op = Column(String(1), nullable=False)
thn_pajak_sppt = Column(String(4), nullable=False)
pembayaran_sppt_ke = Column(Integer, nullable=False)
kd_propinsi = Column(String(2), primary_key=True)
kd_dati2 = Column(String(2), primary_key=True)
kd_kecamatan = Column(String(3), primary_key=True)
kd_kelurahan = Column(String(3), primary_key=True)
kd_blok = Column(String(3), primary_key=True)
no_urut = Column(String(4), primary_key=True)
kd_jns_op = Column(String(1), primary_key=True)
thn_pajak_sppt = Column(String(4), primary_key=True)
pembayaran_sppt_ke = Column(Integer, primary_key=True)
pokok = Column(Float, nullable=False)
denda = Column(Float, nullable=False)
#__table_args__ = (
......@@ -68,18 +67,18 @@ class PenguranganCovid(Base):
class PenguranganPst(Base):
__tablename__ = 'pengurangan_pst'
id = Column(Integer, primary_key=True)
kd_kanwil = Column(String(2), nullable=False)
kd_kantor = Column(String(2), nullable=False)
thn_pelayanan = Column(String(4), nullable=False)
no_urut_pelayanan = Column(String(3), nullable=False)
kd_propinsi_pemohon = Column(String(2), nullable=False)
kd_dati2_pemohon = Column(String(2), nullable=False)
kd_kecamatan_pemohon = Column(String(3), nullable=False)
kd_kelurahan_pemohon = Column(String(3), nullable=False)
kd_blok_pemohon = Column(String(3), nullable=False)
no_urut_pemohon = Column(String(4), nullable=False)
kd_jns_op_pemohon = Column(String(1), nullable=False)
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)
......
......@@ -48,6 +48,7 @@ def show(inq):
show_val('Alamat Objek Pajak', inq.get_alamat_op())
show_val('Luas Tanah', inq.get_luas_tanah())
show_val('Luas Bangunan', inq.get_luas_bangunan())
show_val('Nama Wajib Pajak', inq.get_nama_wp())
show_rp('Tagihan', inq.tagihan)
show_rp('Denda', inq.denda)
show_rp('Total Bayar', inq.total_bayar)
......
......@@ -154,6 +154,9 @@ class Inquiry(Query):
return op.jalan_op
return self.invoice.jln_wp_sppt
def get_nama_wp(self):
return self.invoice.nm_wp_sppt
def get_jatuh_tempo(self):
return self.invoice.tgl_jatuh_tempo_sppt
......
from time import time
from datetime import date
from opensipkd.hitung import round_up
from sismiop.models.default import (
PenguranganPst,
PenguranganCovid,
)
from ..base import get_db_session
from ..default import (
Inquiry as BaseInquiry,
Reversal as BaseReversal,
AvailableInvoice as BaseAvailableInvoice,
)
class Inquiry(BaseInquiry):
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 hitung(self, tgl_bayar=None): # Override
if tgl_bayar is None:
tgl_bayar = date.today()
self.hitung_pokok()
self.hitung_denda(tgl_bayar)
self.total = self.tagihan + self.denda
if self.total < 1:
return
# Pengurangan pokok
self.pengurang_pokok = self.pengurang_denda = 0
if self.invoice.thn_pajak_sppt == '2020':
if tgl_bayar.year == 2020 and not self.is_pst():
if tgl_bayar.month == 4:
pengurang = 0.15
elif tgl_bayar.month == 5:
pengurang = 0.1
elif tgl_bayar.month == 4:
pengurang = 0.5
self.pokok = self.tagihan
self.pengurang_pokok = round_up(pengurang * self.tagihan)
self.tagihan -= self.pengurang_pokok
self.denda = 0
elif self.invoice.thn_pajak_sppt < '2020':
if tgl_bayar.year == 2020:
if tgl_bayar.month in (4, 5, 6):
self.pengurang_denda = self.denda
self.denda = 0
else:
return
self.total = self.tagihan + self.denda
def before_save(self, bayar): # Override
if not self.pengurang_pokok and not self.pengurang_denda:
return
bayar.denda_sppt = self.denda
inv = self.invoice
pc = PenguranganCovid(
kd_propinsi=bayar.kd_propinsi, kd_dati2=bayar.kd_dati2,
kd_kecamatan=bayar.kd_kecamatan,
kd_kelurahan=bayar.kd_kelurahan,
kd_blok=bayar.kd_blok, no_urut=bayar.no_urut,
kd_jns_op=bayar.kd_jns_op, thn_pajak_sppt=bayar.thn_pajak_sppt,
pembayaran_sppt_ke=bayar.pembayaran_sppt_ke)
if self.pengurang_pokok:
bayar.jml_sppt_yg_dibayar = self.pokok
pc.pokok = self.pengurang_pokok
pc.denda = 0
elif self.pengurang_denda:
pc.pokok = 0
pc.denda = self.pengurang_denda
DBSession = get_db_session()
DBSession.add(pc)
class Reversal(BaseReversal):
def before_save(self): # Override
DBSession = get_db_session()
bayar = self.payment
q = DBSession.query(PenguranganCovid).filter_by(
kd_propinsi=bayar.kd_propinsi, kd_dati2=bayar.kd_dati2,
kd_kecamatan=bayar.kd_kecamatan,
kd_kelurahan=bayar.kd_kelurahan,
kd_blok=bayar.kd_blok, no_urut=bayar.no_urut,
kd_jns_op=bayar.kd_jns_op, thn_pajak_sppt=bayar.thn_pajak_sppt,
pembayaran_sppt_ke=bayar.pembayaran_sppt_ke)
pc = q.first()
if not pc:
return
pc.pokok = pc.denda = 0
DBSession.add(pc)
class AvailableInvoice(BaseAvailableInvoice):
def get_inquiry_class(self):
return Inquiry
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!