Commit 0fde535a by Owo Sugiana

Discount Kabupaten Sukabumi

1 parent a467e0a6
0.4.13 2023-09-05
-----------------
- Discount Kabupaten Sukabumi
0.4.12 2023-08-16
-----------------
- Bug fixed Kota Cimahi pada nilai tagihan pokok. Adapun total yang harus
......
from datetime import date
from opensipkd.string import FixLength
from opensipkd.hitung import (
hitung_denda,
round_up,
)
from .base import get_db_session
from .banjar import (
Inquiry as BaseInquiry,
Reversal,
AvailableInvoice,
AvailableInvoice as BaseAvailableInvoice,
)
......@@ -14,10 +17,31 @@ INVOICE_ID = [
('SptNo', 5, 'N'),
]
AWAL_DISC = date(2023, 9, 5)
AKHIR_DISC = date(2023, 12, 20)
AWAL_MASA = date(2023, 1, 1)
AKHIR_MASA = date(2023, 10, 31)
def get_invoice_id(row):
invoice_id = FixLength(INVOICE_ID)
invoice_id['Tahun'] = row.tahun
invoice_id['SptNo'] = row.sptno
return invoice_id
class Inquiry(BaseInquiry):
invoice_id_structure = INVOICE_ID
def belum_lunas(self, tahun):
Invoice = self.get_invoice_model()
DBSession = get_db_session()
q = DBSession.query(Invoice).filter(
Invoice.customer_usaha_id == self.invoice.customer_usaha_id,
Invoice.tahun <= tahun,
Invoice.status_pembayaran != 1)
return q.first()
def hitung_denda(self): # Override
self.bln_tunggakan = None
self.denda = 0
......@@ -41,7 +65,32 @@ class Inquiry(BaseInquiry):
self.denda -= self.discount_denda
def get_discount_denda(self): # Override
self.notes = []
nama_rek = self.get_nama_rekening()
if nama_rek[-4:] == ' OPD':
self.notes.append('Rekening OPD')
return self.denda
return 0
tgl_bayar = self.tgl_bayar.date()
if not (AWAL_DISC <= tgl_bayar <= AKHIR_DISC):
return 0
tgl_masa = self.invoice.masadari.date()
if not (AWAL_MASA <= tgl_masa <= AKHIR_MASA):
return 0
inv = self.belum_lunas(2022)
if inv:
inv_id = get_invoice_id(inv)
self.notes.append(f'Tagihan {inv_id.get_raw()} belum lunas')
return 0
self.notes.append(f'Lunas tahun pajak 2022 ke bawah')
self.notes.append(
f'{AWAL_MASA} <= field masadari {tgl_masa} <= {AKHIR_MASA}')
self.notes.append(
f'{AWAL_DISC} <= tgl bayar {tgl_bayar} <= {AKHIR_DISC}')
return self.denda
class AvailableInvoice(BaseAvailableInvoice):
invoice_id_structure = INVOICE_ID
def get_inquiry_class(self): # Override
return Inquiry
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!