Commit 35098ad7 by Owo Sugiana

Pengisian field sppt.faktor_pengurang_sppt

1 parent 3b86a1cc
......@@ -18,6 +18,12 @@ def show_rp(label, 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):
d, m, y = s.split('-')
return datetime(int(y), int(m), int(d))
......@@ -61,6 +67,9 @@ def show(inq):
show_val('Bulan Tunggakan', inq.bln_tunggakan)
show_val('Tahun Pajak', inq.get_tahun())
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():
return
pay = inq.invoice2payment()
......
......@@ -16,7 +16,7 @@ from .models import PembayaranSppt
TAHUN_PAJAK_DISC_POKOK = ['2020']
PERIODE_DISC_POKOK = {
2020 : {
2020: {
7: 0.15,
8: 0.1,
},
......@@ -30,6 +30,13 @@ for i in range(THN_AWAL, THN_AKHIR+1):
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):
def get_payment_model(self): # Override
return PembayaranSppt
......@@ -38,12 +45,12 @@ class Inquiry(BaseInquiry):
DBSession = get_db_session()
Payment = self.get_payment_model()
q = DBSession.query(
func.sum(Payment.jml_sppt_yg_dibayar).\
label('jml_sppt_yg_dibayar'),
func.sum(Payment.discount_pokok).\
label('discount_pokok'),
func.sum(Payment.denda_sppt).\
label('denda_sppt'))
func.sum(Payment.jml_sppt_yg_dibayar).
label('jml_sppt_yg_dibayar'),
func.sum(Payment.discount_pokok).
label('discount_pokok'),
func.sum(Payment.denda_sppt).
label('denda_sppt'))
q = self.get_filter(q)
bayar = q.first()
self.total_bayar = bayar.jml_sppt_yg_dibayar or 0
......@@ -94,7 +101,7 @@ class Inquiry(BaseInquiry):
def before_save(self, payment): # Override
# Sekedar catatan
payment.denda_sblm_diskon = self.denda_sblm_diskon
payment.discount = self.discount_pokok + self.discount_denda
payment.discount = self.discount_pokok + self.discount_denda
payment.discount_pokok = self.discount_pokok
tagihan_netto = self.tagihan - self.discount_pokok
......@@ -103,12 +110,32 @@ class Inquiry(BaseInquiry):
payment.jml_sppt_yg_dibayar = tagihan_netto + 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):
def get_payment_model(self): # Override
return PembayaranSppt
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
......@@ -126,7 +153,8 @@ class AvailableInvoice(BaseAvailableInvoice):
class AvailableInvoiceTangsel(AvailableInvoice):
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
def get_msg(self, inq):
......@@ -143,22 +171,22 @@ class AvailableInvoiceTangsel(AvailableInvoice):
Sppt1 = aliased(Sppt)
Sppt2 = aliased(Sppt)
subq1 = DBSession.query(Sppt1).filter(
Sppt1.kd_propinsi==Sppt.kd_propinsi,
Sppt1.kd_dati2==Sppt.kd_dati2,
Sppt1.kd_kecamatan==Sppt.kd_kecamatan,
Sppt1.kd_kelurahan==Sppt.kd_kelurahan,
Sppt1.kd_blok==Sppt.kd_blok,
Sppt1.no_urut==Sppt.no_urut,
Sppt1.kd_jns_op==Sppt.kd_jns_op,
Sppt1.kd_propinsi == Sppt.kd_propinsi,
Sppt1.kd_dati2 == Sppt.kd_dati2,
Sppt1.kd_kecamatan == Sppt.kd_kecamatan,
Sppt1.kd_kelurahan == Sppt.kd_kelurahan,
Sppt1.kd_blok == Sppt.kd_blok,
Sppt1.no_urut == Sppt.no_urut,
Sppt1.kd_jns_op == Sppt.kd_jns_op,
Sppt1.thn_pajak_sppt.in_(THN_DISC))
subq2 = DBSession.query(Sppt2).filter(
Sppt2.kd_propinsi==Sppt.kd_propinsi,
Sppt2.kd_dati2==Sppt.kd_dati2,
Sppt2.kd_kecamatan==Sppt.kd_kecamatan,
Sppt2.kd_kelurahan==Sppt.kd_kelurahan,
Sppt2.kd_blok==Sppt.kd_blok,
Sppt2.no_urut==Sppt.no_urut,
Sppt2.kd_jns_op==Sppt.kd_jns_op,
Sppt2.kd_propinsi == Sppt.kd_propinsi,
Sppt2.kd_dati2 == Sppt.kd_dati2,
Sppt2.kd_kecamatan == Sppt.kd_kecamatan,
Sppt2.kd_kelurahan == Sppt.kd_kelurahan,
Sppt2.kd_blok == Sppt.kd_blok,
Sppt2.no_urut == Sppt.no_urut,
Sppt2.kd_jns_op == Sppt.kd_jns_op,
Sppt2.thn_pajak_sppt.in_(THN_DISC),
Sppt2.status_pembayaran_sppt != '1')
return q.filter(
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!