jabar.py 5.4 KB
from sqlalchemy import (
    Column,
    Integer,
    String,
    Float,
    Date,
    DateTime,
    )
from sqlalchemy.ext.declarative import declarative_base


Base = declarative_base()


class Unit(Base):
    __tablename__ = 'units'
    id = Column(Integer, primary_key=True)
    kode = Column(String(64), unique=True)
    nama = Column(String(128))
    level_id = Column(Integer)
    is_summary = Column(Integer)
    parent_id = Column(Integer)
    alamat = Column(String(255))
    id_old = Column(Integer)
    nama_old = Column(String(128))


class Wilayah(Base):
    __tablename__ = 'wilayahs'
    id = Column(Integer, primary_key=True)
    kode = Column(String(24), unique=True)
    nama = Column(String(128))
    level_id = Column(Integer)
    parent_id = Column(Integer, ForeignKey('wilayahs.id'))


class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    user_name = Column(String(30), unique=True)
    user_password = Column(String(256))
    email = Column(String(100), nullable=False, unique=True)
    status = Column(Integer, nullable=False)
    security_code = Column(String(256))
    last_login_date = Column(DateTime)
    registered_date = Column(DateTime)
    security_code_date = Column(DateTime)
    api_key = Column(String(256))


class Subjek(Base):
    __tablename__ = 'subjekpajaks'
    id = Column(Integer, primary_key=True)
    kode = Column(String(64))
    nama = Column(String(128))
    status_grid = Column(Integer, nullable=False)
    status = Column(Integer)
    alamat_1 = Column(String(128))
    alamat_2 = Column(String(128))
    kelurahan = Column(String(128))
    kecamatan = Column(String(128))
    kota = Column(String(128))
    user_id = Column(Integer, ForeignKey(User.id))
    provinsi = Column(String(128))
    email = Column(String(64))
    unit_id = Column(Integer, ForeignKey(Unit.id))
    no_id = Column(Integer)


class Objek(Base):
    __tablename__ = 'objekpajaks'
    id = Column(Integer, primary_key=True)
    kode = Column(String(64))
    nama = Column(String(128))
    status_grid = Column(Integer, nullable=False)
    status = Column(Integer)
    alamat_1 = Column(String(128))
    alamat_2 = Column(String(128))
    wilayah_id = Column(Integer, ForeignKey(Wilayah.id))
    unit_id = Column(Integer, ForeignKey(Unit.id))
    pajak_id = Column(Integer, ForeignKey(Pajak.id))
    subjekpajak_id = Column(Integer, ForeignKey(Subjek.id))
    __table_args__ = UniqueConstraint('subjekpajak_id', 'kode')


class Rekening(Base):
    __tablename__ = 'rekenings'
    id = Column(Integer, primary_key=True)
    kode = Column(String(24), unique=True)
    nama = Column(String(225))
    level_id = Column(Integer)
    is_summary = Column(Integer)
    parent_id = Column(Integer)


class Invoice(Base):
    __tablename__ = 'arinvoices'
    id = Column(Integer, primary_key=True)
    tahun_id = Column(Integer)
    unit_id = Column(Integer, ForeignKey(Unit.id))
    no_id = Column(Integer)
    subjek_pajak_id = Column(Integer, ForeignKey(Subjek.id))
    objek_pajak_id = Column(Integer, ForeignKey(Objek.id))
    kode = Column(String(32), unique=True)
    unit_kode = Column(String(128))
    unit_nama = Column(String(128))
    rekening_id = Column(Integer, ForeignKey(Rekening.id))
    rek_kode = Column(String(128))
    rek_nama = Column(String(128))
    wp_kode = Column(String(128))
    wp_nama = Column(String(500))
    wp_alamat_1 = Column(String(128))
    wp_alamat_2 = Column(String(128))
    op_kode = Column(String(128))
    op_nama = Column(String(128))
    op_alamat_1 = Column(String(128))
    op_alamat_2 = Column(String(128))
    dasar = Column(Integer)
    tarif = Column(Float)
    pokok = Column(Integer)
    denda = Column(Integer)
    bunga = Column(Integer)
    jumlah = Column(Integer)
    periode_1 = Column(Date)
    periode_2 = Column(Date)
    tgl_tetap = Column(Date)
    jatuh_tempo = Column(Date)
    status_grid = Column(Integer, nullable=False)
    status_bayar = Column(Integer, nullable=False)
    is_sspd = Column(Integer, nullable=False)
    is_tbp = Column(Integer, nullable=False)
    is_sts = Column(Integer, nullable=False)
    owner_id = Column(Integer)
    wilayah_id = Column(Integer, ForeignKey(Wilayah.id))
    create_uid = Column(Integer)
    update_uid = Column(Integer)
    create_date = Column(DateTime(timezone=True))
    update_date = Column(DateTime(timezone=True))
    denda_rekening_id = Column(Integer)
    no_skrd = Column(String(128))
    pejabat_nama = Column(String(64))
    pejabat_pangkat = Column(String(64))
    pejabat_nip = Column(String(64))
    keterangan = Column(String(1024))


class Payment(Base):
    __tablename__ = 'arsspds'
    id = Column(Integer, primary_key=True)
    tahun_id = Column(Integer)
    unit_id = Column(Integer, ForeignKey(Unit.id))
    arinvoice_id = Column(Integer, ForeignKey(Invoice.id))
    pembayaran_ke = Column(Integer)
    bunga = Column(Integer)
    bayar = Column(Integer)
    tgl_bayar = Column(DateTime)
    create_uid = Column(Integer)
    update_uid = Column(Integer)
    create_date = Column(DateTime(timezone=True))
    update_date = Column(DateTime(timezone=True))
    posted = Column(Integer, nullable=False)
    ntb = Column(String(20))
    ntp = Column(String(20))
    bank_id = Column(Integer)
    channel_id = Column(Integer)
    denda_rekening_id = Column(Integer)
    unit_kode = Column(String(32))
    unit_nama = Column(String(128))
    rekening_id = Column(Integer)
    rek_kode = Column(String(64))
    rek_nama = Column(String(128))