serang_kab.py 2.74 KB
from sqlalchemy import (
    Column,
    Float,
    String,
    ForeignKeyConstraint,
    )
from sqlalchemy.ext.declarative import declarative_base
from .objek_pajak import BaseObjekPajakMixin
from .sppt import BaseSpptMixin
from .pembayaran_sppt import BasePembayaranSpptMixin
from .kelurahan import KelurahanMixin
from .kecamatan import KecamatanMixin
from .propinsi import PropinsiMixin
from .tempat_pembayaran import TempatPembayaranMixin


Base = declarative_base()


class ObjekPajak(Base, BaseObjekPajakMixin):
    __table_args__ = dict(schema='iprotaxpbb')


class Sppt(Base, BaseSpptMixin):
    __table_args__ = dict(schema='iprotaxpbb')
    pbb_yg_hrs_dibayar_sppt = Column(Float)


class DendaAdm(Base):
    __tablename__ = 'denda_adm_sppt'
    kd_propinsi = Column(String(2), primary_key=True)
    kd_dati2 = Column(String(2), primary_key=True)
    kd_dinas = Column(String(2), primary_key=True)
    kd_kppd = Column(String(2), primary_key=True)
    no_pelayanan = Column(String(11), primary_key=True)
    kd_kecamatan_pemohon = Column(String(3), primary_key=True)
    kd_kelurahan_pemohon = Column(String(3), primary_key=True)
    kd_blok_pemohon = Column(String(3), primary_key=True)
    no_urut_pemohon = Column(String(4), primary_key=True)
    kd_jns_op_pemohon = Column(String(1), primary_key=True)
    thn_pajak_permohonan = Column(String(4), primary_key=True)
    jml_pokok_denda = Column(Float, nullable=False)
    jml_pengurangan_denda = Column(Float)
    __table_args__ = (
        ForeignKeyConstraint([
            kd_propinsi, kd_dati2, kd_kecamatan_pemohon, kd_kelurahan_pemohon,
            kd_blok_pemohon, no_urut_pemohon, kd_jns_op_pemohon,
            thn_pajak_permohonan],
            [Sppt.kd_propinsi, Sppt.kd_dati2, Sppt.kd_kecamatan,
                Sppt.kd_kelurahan, Sppt.kd_blok, Sppt.no_urut, Sppt.kd_jns_op,
                Sppt.thn_pajak_sppt]),
        dict(schema='iprotaxpbb'))


class PembayaranSppt(Base, BasePembayaranSpptMixin):
    __table_args__ = dict(schema='iprotaxpbb')
    jml_denda_sppt = Column(Float)
    jml_pbb_yg_dibayar = Column(Float, nullable=False)
    user_bank_rekam = Column(String(50), nullable=False)
    kd_bank_tunggal = Column(String(2), nullable=False)
    kd_bank_persepsi = Column(String(2), nullable=False)
    no_transaksi_byr_sppt = Column(String(20))
    no_transaksi_byr_sppt_bank = Column(String(35))
    kd_sumber_data = Column(String(1), nullable=False)


class Kelurahan(Base, KelurahanMixin):
    __table_args__ = dict(schema='iprotaxref')


class Kecamatan(Base, KecamatanMixin):
    __table_args__ = dict(schema='iprotaxref')


class Propinsi(Base, PropinsiMixin):
    __table_args__ = dict(schema='iprotaxref')


class TempatPembayaran(Base, TempatPembayaranMixin):
    __table_args__ = dict(schema='iprotaxpbb')