Commit a5748532 by Owo Sugiana

Penambahan field discount_denda dan notes

1 parent 32615dc0
0.2.4 2020-10-07
0.2.4 2020-10-08
----------------
- Penambahan field discount_denda dan notes
- Perubahan rumus modul tangsel
0.2.3 2020-09-04
......
......@@ -370,6 +370,7 @@ class Payment(Base):
is_inject = Column(Integer)
posted = Column(Integer)
discount_denda = Column(Float)
notes = Column(Text)
__table_args__ = (
UniqueConstraint('tahun', 'sspdno'),)
......
......@@ -67,7 +67,7 @@ def show(inq):
show_rp('Denda', inq.denda_pokok)
show_rp('Discount Denda', inq.discount_denda)
if inq.discount_denda:
show_val('Alasan Discount Denda', inq.alasan_discount)
show_val('Note', inq.notes)
show_rp('Total Denda', inq.denda)
show_rp('Total Bayar', inq.total_bayar)
show_rp('Total Tagihan', inq.total)
......
......@@ -248,6 +248,7 @@ class Inquiry(BaseInquiry):
super().__init__(invoice_id, rekening_notes)
if not self.invoice:
return
self.notes = ''
self.tgl_bayar = tgl_bayar or datetime.now()
self.set_profile()
self.persen_denda = persen_denda
......@@ -284,7 +285,6 @@ class Inquiry(BaseInquiry):
self.denda -= self.discount_denda
def get_discount_denda(self):
self.alasan_discount = ''
return 0
def hitung_bayar(self):
......
from datetime import date
from datetime import (
date,
datetime,
timedelta,
)
from opensipkd.pad.services.default import (
Inquiry as BaseInquiry,
Reversal as BaseReversal,
......@@ -19,41 +23,69 @@ from opensipkd.pad.models.tangsel import (
)
SEPT_30 = date(2020, 9, 30)
TGL_BAYAR_MAX = date(2020, 12, 31)
TGL_DISC_USAI = TGL_BAYAR_MAX + timedelta(1)
TGL_MASA_MAX = TGL_KOHIR_MAX = date(2020, 9, 30)
TGL_MASA_MAX_USAI = TGL_KOHIR_MAX_USAI = TGL_MASA_MAX + timedelta(1)
def to_date(tgl):
if isinstance(tgl, datetime):
return tgl.date()
return tgl
def t(tgl):
return tgl.strftime('%d-%m-%Y')
ALASAN_TGL_BAYAR = 'Alasan discount denda: tanggal bayar sebelum {}'.format(
t(TGL_DISC_USAI))
def satu_kalimat(notes):
if not notes[1:]:
return notes[0]
s = ', '.join(notes[:-1])
return ', dan '.join([s, notes[-1]])
class Inquiry(BaseInquiry):
def get_discount_denda(self): # Override
if self.tgl_bayar.year > 2020:
return 0
if self.tgl_bayar.month > 12:
tgl_bayar = to_date(self.tgl_bayar)
if tgl_bayar > TGL_BAYAR_MAX:
return 0
notes = [ALASAN_TGL_BAYAR]
usaha = self.get_nama_jenis_usaha()
is_self = self.is_self()
if is_self or usaha == 'AIR TANAH':
masa_dari = self.invoice.masadari.date()
if masa_dari > SEPT_30:
if masa_dari > TGL_MASA_MAX:
return 0
masa_sd = self.invoice.masasd.date()
if masa_sd > SEPT_30:
if masa_sd > TGL_MASA_MAX:
return 0
if is_self:
self.alasan_discount = 'Self'
notes.append('self')
else:
self.alasan_discount = 'Usaha AIR TANAH'
self.alasan_discount += ', masa pajak maksimal 30 Sep 2020'
notes.append(f'usaha {usaha}')
notes.append('masa pajak sebelum {}'.format(t(TGL_MASA_MAX_USAI)))
elif usaha == 'REKLAME':
tgl_kohir = self.get_tgl_kohir()
if not tgl_kohir:
return 0
if tgl_kohir > SEPT_30:
if tgl_kohir > TGL_KOHIR_MAX:
return 0
self.alasan_discount = f'Usaha {usaha}, kohir <= 30 Sep 2020'
notes.append(f'usaha {usaha}')
notes.append(
'tanggal kohir sebelum {}'.format(t(TGL_KOHIR_MAX_USAI)))
else:
tipe = self.get_type_name()
if tipe not in ('SKPDKB', 'STPD'):
return 0
self.alasan_discount = f'Tipe {tipe}'
notes.append(f'tipe {tipe}')
self.notes = satu_kalimat(notes)
return self.denda
def get_kecamatan_model(self): # Override
......@@ -91,6 +123,8 @@ class Inquiry(BaseInquiry):
def before_save(self, pay):
pay.discount_denda = self.discount_denda
if self.notes is not None:
pay.notes = self.notes
class Reversal(BaseReversal):
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!