ciamis.py 5.17 KB
from sqlalchemy import (
    Column,
    Integer,
    String,
    DateTime,
    Date,
    Float,
    ForeignKey,
    )
from sqlalchemy.ext.declarative import (
    declarative_base,
    declared_attr,
    )
from .provinsi import ProvinsiMixin
from .kabupaten import KabupatenMixin
from .kecamatan import KecamatanMixin
from .kelurahan import KelurahanMixin
from .customer import CustomerMixin
from .perolehan import PerolehanMixin
from .invoice import InvoiceMixin
from .payment import BasePaymentMixin


Base = declarative_base()


class Provinsi(ProvinsiMixin, Base):
    pass


class Kabupaten(KabupatenMixin, Base):
    pass


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


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


class Customer(CustomerMixin, Base):
    pass


class Perolehan(PerolehanMixin, Base):
    pass


class Invoice(Base):
    __tablename__ = 'bphtb_sspd'
    id = Column(Integer, primary_key=True)
    tahun = Column(Integer, nullable=False)
    kode = Column(String(1), nullable=False)
    no_sspd = Column(Integer, nullable=False)
    ppat_id = Column(Integer, ForeignKey(Customer.id))
    wp_nama = Column(String(50), nullable=False)
    wp_npwp = Column(String(50), nullable=False)
    wp_alamat = Column(String(100), nullable=False)
    wp_blok_kav = Column(String(100), nullable=False)
    wp_kelurahan = Column(String(30), nullable=False)
    wp_rt = Column(String(3), nullable=False)
    wp_rw = Column(String(3), nullable=False)
    wp_kecamatan = Column(String(30), nullable=False)
    wp_kota = Column(String(30), nullable=False)
    wp_provinsi = Column(String(30), nullable=False)
    wp_identitas = Column(String(50), nullable=False)
    wp_identitaskd = Column(String(50))
    tgl_transaksi = Column(Date, nullable=False)
    kd_propinsi = Column(String(2), nullable=False)
    kd_dati2 = Column(String(2), nullable=False)
    kd_kecamatan = Column(String(3), nullable=False)
    kd_kelurahan = Column(String(3), nullable=False)
    kd_blok = Column(String(3), nullable=False)
    no_urut = Column(String(4), nullable=False)
    kd_jns_op = Column(String(1), nullable=False)
    thn_pajak_sppt = Column(String(4), nullable=False)
    op_alamat = Column(String(100), nullable=False)
    op_blok_kav = Column(String(100), nullable=False)
    op_rt = Column(String(3), nullable=False)
    op_rw = Column(String(3), nullable=False)
    bumi_luas = Column(Integer, nullable=False)
    bumi_njop = Column(Integer, nullable=False)
    bng_luas = Column(Integer, nullable=False)
    bng_njop = Column(Integer, nullable=False)
    no_sertifikat = Column(String(30))
    njop = Column(Integer, nullable=False)
    perolehan_id = Column(Integer, ForeignKey(Perolehan.id), nullable=False)
    npop = Column(Integer, nullable=False)
    npoptkp = Column(Integer, nullable=False)
    tarif = Column(Float, nullable=False)
    terhutang = Column(Integer, nullable=False)
    bagian = Column(Integer, nullable=False)
    pembagi = Column(Integer, nullable=False)
    tarif_pengurang = Column(Integer, nullable=False)
    pengurang = Column(Integer, nullable=False)
    bphtb_sudah_dibayarkan = Column(Integer, nullable=False)
    denda = Column(Integer, nullable=False)
    restitusi = Column(Integer, nullable=False)
    bphtb_harus_dibayarkan = Column(Integer, nullable=False)
    status_pembayaran = Column(Integer, nullable=False)
    dasar_id = Column(Integer, nullable=False)
    create_uid = Column(String(20))
    update_uid = Column(String(20))
    created = Column(DateTime, nullable=False)
    updated = Column(DateTime, nullable=False)
    header_id = Column(Integer, nullable=False)
    tgl_print = Column(DateTime)
    tgl_approval = Column(DateTime)
    file1 = Column(String(150))
    file2 = Column(String(150))
    file3 = Column(String(150))
    file4 = Column(String(150))
    file5 = Column(String(150))
    wp_kdpos = Column(String(5))
    file6 = Column(String(150))
    file7 = Column(String(150))
    file8 = Column(String(150))
    file9 = Column(String(150))
    file10 = Column(String(150))
    keterangan = Column(String(100))
    status_daftar = Column(Integer)
    persen_pengurang_sendiri = Column(Integer)
    pp_nomor_pengurang_sendiri = Column(String(50))
    no_ajb = Column(String(50))
    tgl_ajb = Column(DateTime)
    wp_nama_asal = Column(String(50))
    jml_pph = Column(Float)
    tgl_pph = Column(DateTime)
    posted = Column(Integer)
    pos_tp_id = Column(Integer)
    status_validasi = Column(Integer)
    status_bpn = Column(Integer)
    tgl_jatuh_tempo = Column(DateTime)
    verifikasi_uid = Column(String(20))
    verifikasi_date = Column(DateTime)
    pbb_nop = Column(String(24))
    verifikasi_bphtb_uid = Column(String(20))
    verifikasi_bphtb_date = Column(DateTime)
    hasil_penelitian = Column(String(20))
    no_sk = Column(String(20))
    pengurangan_sk = Column(String(20))
    pengurangan_jatuh_tempo_tgl = Column(DateTime)
    pengurangan_sk_tgl = Column(DateTime)
    ketetapan_no = Column(String(20))
    ketetapan_tgl = Column(DateTime)
    ketetapan_atas_sspd_no = Column(String(20))
    ketetapan_jatuh_tempo_tgl = Column(DateTime)
    pembayaran_ke = Column(Integer, nullable=False)


class Payment(BasePaymentMixin, Base):
    pass