Commit 9a7683a6 by Owo Sugiana

Bug fixed Kabupaten Bekasi saat hitung denda

1 parent 00d81116
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
UniqueConstraint,
)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Kohir(Base):
__tablename__ = 'pad_kohir'
id = Column(Integer, primary_key=True)
tahun = Column(Integer, nullable=False)
usaha_id = Column(Integer)
kohirno = Column(Integer, nullable=False)
kohirtgl = Column(DateTime, nullable=False)
sptpd_id = Column(Integer, nullable=False)
enabled = Column(Integer)
create_date = Column(DateTime)
create_uid = Column(Integer)
write_date = Column(DateTime)
write_uid = Column(Integer)
is_cancel = Column(Integer)
bap_no = Column(Text)
bap_date = Column(DateTime)
cancel_no = Column(Integer)
cancel_date = Column(DateTime)
cancel_uid = Column(Integer)
__table_args__ = (
UniqueConstraint(tahun, kohirno, usaha_id),
dict(schema='pad'))
......@@ -3,6 +3,12 @@ from datetime import (
datetime,
)
from opensipkd.hitung import round_up
from ..models.banjar import (
Invoice,
Payment,
)
from ..models.bekasi_kab import Kohir
from .base import get_db_session
from .default import (
Inquiry as BaseInquiry,
Reversal as BaseReversal,
......@@ -53,7 +59,7 @@ class Denda(BaseDenda):
def __init__(
self, tagihan, jatuh_tempo, persen_denda, tgl_hitung=None,
invoice=None):
super().__init__(tagihan, jatuh_tempo, persen_denda, tgl_hitung=None)
super().__init__(tagihan, jatuh_tempo, persen_denda, tgl_hitung)
self.invoice = invoice
def get_max_bln(self):
......@@ -83,6 +89,10 @@ NOTE_TGL_TERIMA = 'field terimatgl {tgl} >= ' + dmy(AKHIR_TERIMA)
class Inquiry(BaseInquiry):
invoice_id_structure = INVOICE_ID
# Cekal 2024, Pak Yasir, 2-1-2024
def is_available(self): # Override
return super().is_available() and self.tahun_terbit < 2024
def hitung_denda(self): # Override
bunga = self.invoice.bunga or 0
self.denda = self.bunga = round_up(bunga)
......@@ -125,13 +135,42 @@ class Inquiry(BaseInquiry):
return self.denda
return 0
def get_invoice_model(self): # Override
return Invoice
def get_kohir_model(self): # Override
return Kohir
def get_payment_model(self): # Override
return Payment
def get_kohir(self): # Override
return
DBSession = get_db_session()
Kohir = self.get_kohir_model()
q = DBSession.query(Kohir).filter_by(sptpd_id=self.invoice.sptpd_id)
q = q.order_by(Kohir.id.desc())
return q.first()
class Reversal(BaseReversal):
invoice_id_structure = INVOICE_ID
def get_invoice_model(self): # Override
return Invoice
def get_kohir_model(self): # Override
return Kohir
def get_payment_model(self): # Override
return Payment
def get_kohir(self): # Override
DBSession = get_db_session()
Kohir = self.get_kohir_model()
q = DBSession.query(Kohir).filter_by(sptpd_id=self.invoice.sptpd_id)
q = q.order_by(Kohir.id.desc())
return q.first()
class AvailableInvoice(BaseAvailableInvoice):
invoice_id_structure = INVOICE_ID
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!