Commit 35098ad7 by Owo Sugiana

Pengisian field sppt.faktor_pengurang_sppt

1 parent 3b86a1cc
...@@ -18,6 +18,12 @@ def show_rp(label, value): ...@@ -18,6 +18,12 @@ def show_rp(label, value):
show_val(label, 'Rp {}'.format(thousand(value))) show_val(label, 'Rp {}'.format(thousand(value)))
def show_field(t, fieldname):
label = 'Field ' + fieldname
value = getattr(t, fieldname)
show_rp(label, value or 0)
def date_from_str(s): def date_from_str(s):
d, m, y = s.split('-') d, m, y = s.split('-')
return datetime(int(y), int(m), int(d)) return datetime(int(y), int(m), int(d))
...@@ -61,6 +67,9 @@ def show(inq): ...@@ -61,6 +67,9 @@ def show(inq):
show_val('Bulan Tunggakan', inq.bln_tunggakan) show_val('Bulan Tunggakan', inq.bln_tunggakan)
show_val('Tahun Pajak', inq.get_tahun()) show_val('Tahun Pajak', inq.get_tahun())
show_val('Status Pembayaran', inq.get_status_pembayaran()) show_val('Status Pembayaran', inq.get_status_pembayaran())
show_field(inq.invoice, 'pbb_yg_harus_dibayar_sppt')
show_field(inq.invoice, 'pbb_terhutang_sppt')
show_field(inq.invoice, 'faktor_pengurang_sppt')
if not inq.is_paid(): if not inq.is_paid():
return return
pay = inq.invoice2payment() pay = inq.invoice2payment()
......
...@@ -16,7 +16,7 @@ from .models import PembayaranSppt ...@@ -16,7 +16,7 @@ from .models import PembayaranSppt
TAHUN_PAJAK_DISC_POKOK = ['2020'] TAHUN_PAJAK_DISC_POKOK = ['2020']
PERIODE_DISC_POKOK = { PERIODE_DISC_POKOK = {
2020 : { 2020: {
7: 0.15, 7: 0.15,
8: 0.1, 8: 0.1,
}, },
...@@ -30,6 +30,13 @@ for i in range(THN_AWAL, THN_AKHIR+1): ...@@ -30,6 +30,13 @@ for i in range(THN_AWAL, THN_AKHIR+1):
THN_DISC.append(str(i)) THN_DISC.append(str(i))
def not_null(invoice):
if invoice.pbb_terhutang_sppt is None:
invoice.pbb_terhutang_sppt = 0
if invoice.faktor_pengurang_sppt is None:
invoice.faktor_pengurang_sppt = 0
class Inquiry(BaseInquiry): class Inquiry(BaseInquiry):
def get_payment_model(self): # Override def get_payment_model(self): # Override
return PembayaranSppt return PembayaranSppt
...@@ -38,11 +45,11 @@ class Inquiry(BaseInquiry): ...@@ -38,11 +45,11 @@ class Inquiry(BaseInquiry):
DBSession = get_db_session() DBSession = get_db_session()
Payment = self.get_payment_model() Payment = self.get_payment_model()
q = DBSession.query( q = DBSession.query(
func.sum(Payment.jml_sppt_yg_dibayar).\ func.sum(Payment.jml_sppt_yg_dibayar).
label('jml_sppt_yg_dibayar'), label('jml_sppt_yg_dibayar'),
func.sum(Payment.discount_pokok).\ func.sum(Payment.discount_pokok).
label('discount_pokok'), label('discount_pokok'),
func.sum(Payment.denda_sppt).\ func.sum(Payment.denda_sppt).
label('denda_sppt')) label('denda_sppt'))
q = self.get_filter(q) q = self.get_filter(q)
bayar = q.first() bayar = q.first()
...@@ -103,12 +110,32 @@ class Inquiry(BaseInquiry): ...@@ -103,12 +110,32 @@ class Inquiry(BaseInquiry):
payment.jml_sppt_yg_dibayar = tagihan_netto + denda_netto payment.jml_sppt_yg_dibayar = tagihan_netto + denda_netto
payment.denda_sppt = denda_netto payment.denda_sppt = denda_netto
if not self.discount_pokok:
return
not_null(self.invoice)
self.invoice.pbb_yg_harus_dibayar_sppt = \
self.invoice.pbb_terhutang_sppt - \
self.invoice.faktor_pengurang_sppt - \
self.discount_pokok
self.invoice.faktor_pengurang_sppt += self.discount_pokok
class Reversal(BaseReversal): class Reversal(BaseReversal):
def get_payment_model(self): # Override def get_payment_model(self): # Override
return PembayaranSppt return PembayaranSppt
def before_save(self): def before_save(self):
if not self.payment.discount_pokok:
return
not_null(self.invoice)
self.invoice.pbb_yg_harus_dibayar_sppt = \
self.invoice.pbb_terhutang_sppt - \
self.invoice.faktor_pengurang_sppt + \
self.payment.discount_pokok
self.invoice.faktor_pengurang_sppt -= self.payment.discount_pokok
self.payment.discount_pokok = 0 self.payment.discount_pokok = 0
...@@ -126,7 +153,8 @@ class AvailableInvoice(BaseAvailableInvoice): ...@@ -126,7 +153,8 @@ class AvailableInvoice(BaseAvailableInvoice):
class AvailableInvoiceTangsel(AvailableInvoice): class AvailableInvoiceTangsel(AvailableInvoice):
def __init__(self, persen_denda, option): def __init__(self, persen_denda, option):
AvailableInvoice.__init__(self, persen_denda, option.count, option.tahun) AvailableInvoice.__init__(
self, persen_denda, option.count, option.tahun)
self.option = option self.option = option
def get_msg(self, inq): def get_msg(self, inq):
...@@ -143,22 +171,22 @@ class AvailableInvoiceTangsel(AvailableInvoice): ...@@ -143,22 +171,22 @@ class AvailableInvoiceTangsel(AvailableInvoice):
Sppt1 = aliased(Sppt) Sppt1 = aliased(Sppt)
Sppt2 = aliased(Sppt) Sppt2 = aliased(Sppt)
subq1 = DBSession.query(Sppt1).filter( subq1 = DBSession.query(Sppt1).filter(
Sppt1.kd_propinsi==Sppt.kd_propinsi, Sppt1.kd_propinsi == Sppt.kd_propinsi,
Sppt1.kd_dati2==Sppt.kd_dati2, Sppt1.kd_dati2 == Sppt.kd_dati2,
Sppt1.kd_kecamatan==Sppt.kd_kecamatan, Sppt1.kd_kecamatan == Sppt.kd_kecamatan,
Sppt1.kd_kelurahan==Sppt.kd_kelurahan, Sppt1.kd_kelurahan == Sppt.kd_kelurahan,
Sppt1.kd_blok==Sppt.kd_blok, Sppt1.kd_blok == Sppt.kd_blok,
Sppt1.no_urut==Sppt.no_urut, Sppt1.no_urut == Sppt.no_urut,
Sppt1.kd_jns_op==Sppt.kd_jns_op, Sppt1.kd_jns_op == Sppt.kd_jns_op,
Sppt1.thn_pajak_sppt.in_(THN_DISC)) Sppt1.thn_pajak_sppt.in_(THN_DISC))
subq2 = DBSession.query(Sppt2).filter( subq2 = DBSession.query(Sppt2).filter(
Sppt2.kd_propinsi==Sppt.kd_propinsi, Sppt2.kd_propinsi == Sppt.kd_propinsi,
Sppt2.kd_dati2==Sppt.kd_dati2, Sppt2.kd_dati2 == Sppt.kd_dati2,
Sppt2.kd_kecamatan==Sppt.kd_kecamatan, Sppt2.kd_kecamatan == Sppt.kd_kecamatan,
Sppt2.kd_kelurahan==Sppt.kd_kelurahan, Sppt2.kd_kelurahan == Sppt.kd_kelurahan,
Sppt2.kd_blok==Sppt.kd_blok, Sppt2.kd_blok == Sppt.kd_blok,
Sppt2.no_urut==Sppt.no_urut, Sppt2.no_urut == Sppt.no_urut,
Sppt2.kd_jns_op==Sppt.kd_jns_op, Sppt2.kd_jns_op == Sppt.kd_jns_op,
Sppt2.thn_pajak_sppt.in_(THN_DISC), Sppt2.thn_pajak_sppt.in_(THN_DISC),
Sppt2.status_pembayaran_sppt != '1') Sppt2.status_pembayaran_sppt != '1')
return q.filter( return q.filter(
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!