Commit 3fc5d462 by Owo Sugiana

Bug fixed penggunaan PembayaranSppt pada tangkota

1 parent 11103d2d
import sys
from datetime import datetime
from configparser import ConfigParser
from argparse import ArgumentParser
import transaction
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register
import sismiop.services.base
def get_option(argv):
pars = ArgumentParser()
pars.add_argument('conf')
pars.add_argument('--invoice-id')
pars.add_argument('--values', required=True)
return pars.parse_args(argv)
def main(argv=sys.argv):
option = get_option(argv[1:])
invoice_id = option.invoice_id
conf_file = option.conf
conf = ConfigParser()
conf.read(conf_file)
module_name = conf.get('main', 'module')
module = __import__('sismiop.services.' + module_name)
sub_module = getattr(module.services, module_name)
Inquiry = sub_module.Inquiry
db_url = conf.get('main', 'db_url')
engine = create_engine(db_url)
engine.echo = True
session_factory = sessionmaker(bind=engine)
DBSession = sismiop.services.base.DBSession = session_factory()
register(sismiop.services.base.DBSession)
inq = Inquiry(invoice_id)
if not inq.invoice:
print('Invoice ID {} tidak ada.'.format(invoice_id))
return
with transaction.manager:
for field_value in option.values.split(','):
field, value = field_value.split(':')
print('{} = {}'.format(field, value))
setattr(inq.invoice, field, value)
DBSession.add(inq.invoice)
main()
...@@ -20,8 +20,14 @@ def show_rp(label, value): ...@@ -20,8 +20,14 @@ def show_rp(label, value):
def show_field(t, fieldname): def show_field(t, fieldname):
label = 'Field ' + fieldname label = 'Field ' + fieldname
try:
value = getattr(t, fieldname) value = getattr(t, fieldname)
show_rp(label, value or 0) except AttributeError:
return
if isinstance(value, float):
show_rp(label, value)
else:
show_val(label, value)
def date_from_str(s): def date_from_str(s):
...@@ -70,17 +76,19 @@ def show(inq): ...@@ -70,17 +76,19 @@ def show(inq):
show_field(inq.invoice, 'pbb_yg_harus_dibayar_sppt') show_field(inq.invoice, 'pbb_yg_harus_dibayar_sppt')
show_field(inq.invoice, 'pbb_terhutang_sppt') show_field(inq.invoice, 'pbb_terhutang_sppt')
show_field(inq.invoice, 'faktor_pengurang_sppt') show_field(inq.invoice, 'faktor_pengurang_sppt')
if not inq.is_paid():
return
pay = inq.invoice2payment() pay = inq.invoice2payment()
if pay:
show_val('Pembayaran ke', pay.pembayaran_sppt_ke) show_val('Pembayaran ke', pay.pembayaran_sppt_ke)
show_val('Tempat Pembayaran', pay.kd_tp) show_val('Tempat Pembayaran', pay.kd_tp)
show_field(pay, 'tgl_rekam_byr_sppt')
show_field(pay, 'discount_pokok')
def show_fields(row, fieldnames): def show_fields(row, fieldnames):
for fieldname in fieldnames: for fieldname in fieldnames:
label = 'Field ' + fieldname
value = getattr(row, fieldname) value = getattr(row, fieldname)
show_rp('Field ' + fieldname, value) show_rp(label, value)
def show_payment(module_name, inq, pay): def show_payment(module_name, inq, pay):
......
...@@ -5,6 +5,7 @@ from ..tangsel import ( ...@@ -5,6 +5,7 @@ from ..tangsel import (
AvailableInvoice as BaseAvailableInvoice, AvailableInvoice as BaseAvailableInvoice,
AvailableInvoiceTangsel as BaseAvailableInvoiceTangsel, AvailableInvoiceTangsel as BaseAvailableInvoiceTangsel,
) )
from ..tangsel.models import PembayaranSppt
TAHUN_PAJAK_DISC_POKOK = ['2020'] TAHUN_PAJAK_DISC_POKOK = ['2020']
...@@ -38,6 +39,9 @@ AKHIR_DISC_DENDA = date(2020, 7, 31) ...@@ -38,6 +39,9 @@ AKHIR_DISC_DENDA = date(2020, 7, 31)
class Inquiry(BaseInquiry): class Inquiry(BaseInquiry):
def get_payment_model(self):
return PembayaranSppt
def hitung_discount(self): # Override def hitung_discount(self): # Override
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()
......
from sqlalchemy import (
Column,
Float,
)
from sismiop.models.default import PembayaranSppt as BasePembayaranSppt
class PembayaranSppt(BasePembayaranSppt):
__table_args__ = dict(extend_existing=True)
discount_pokok = Column(Float)
...@@ -43,16 +43,17 @@ class Inquiry(BaseInquiry): ...@@ -43,16 +43,17 @@ class Inquiry(BaseInquiry):
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()
self.total_bayar = bayar.jml_sppt_yg_dibayar or 0 self.total_bayar = bayar.jml_sppt_yg_dibayar or 0
denda_lalu = bayar.denda_sppt or 0 denda_lalu = bayar.denda_sppt or 0
disc_pokok_lalu = bayar.discount_pokok or 0 sisa = float(self.total_bayar - denda_lalu)
sisa = float(self.total_bayar + disc_pokok_lalu - denda_lalu) #disc_pokok_lalu = bayar.discount_pokok or 0
#sisa = float(self.total_bayar + disc_pokok_lalu - denda_lalu)
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)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!