sp2d.py 4.34 KB
from datetime import datetime
from sqlalchemy import (
    Column,
    Integer,
    Text,
    DateTime,
    ForeignKey,
    UniqueConstraint,
    ForeignKeyConstraint,
    String,
    SmallInteger,
    Float,
    BigInteger
    )
from sqlalchemy.dialects.mssql import MONEY, DECIMAL
    
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
    relationship,
    backref
    )

from ..models import SipkdBase, SipkdDBSession, TABLE_ARGS, CommonModel
from ..models import (DaftUnit, RekBiaya, RekPdpt, RekBelanja, JenisPajak,
                      Bendahara, Vendor, Bank)

class BkbKas(SipkdBase, CommonModel):
    __tablename__  = 'bkbkas'
    nobbantu  = Column(String(10), primary_key=True)
    unitkey   = Column(String(10))
    kdbank    = Column(String(2), ForeignKey(Bank.kdbank))
    mtgkey    = Column(String(10))
    nmbkas    = Column(String(50))
    norekb    = Column(String(30))
    sladorekb = Column(Integer)
    bank = relationship("Bank", backref=backref("bkbkas"))
    __table_args__ = TABLE_ARGS
                      
class Sp2d(SipkdBase, CommonModel):
    __tablename__  = 'sp2d'
    nosp2d    = Column(String(50), primary_key=True)
    unitkey   = Column(String(10), ForeignKey(DaftUnit.unitkey))
    kdstatus  = Column(String(3))
    nospm     = Column(String(50))
    keybend   = Column(String(10), ForeignKey(Bendahara.keybend))
    idxsko    = Column(String(10))
    idxttd    = Column(String(10))
    kdp3      = Column(String(10), ForeignKey(Vendor.kdp3))
    idxkode   = Column(Integer)
    noreg     = Column(String(5))
    ketotor   = Column(String(254))
    nokontrak = Column(String(2048))
    keperluan = Column(String(4096))
    penolakan = Column(String(1))
    tglvalid  = Column(DateTime(timezone=False))
    tglsp2d   = Column(DateTime(timezone=False))
    tglspm    = Column(DateTime(timezone=False))
    nobbantu  = Column(String(10), ForeignKey(BkbKas.nobbantu))
    daftunit = relationship("DaftUnit", backref=backref("sp2d"))
    bendahara = relationship("Bendahara", backref=backref("sp2d"))
    vendor = relationship("Vendor", backref=backref("sp2d"))
    bkbkas = relationship("BkbKas", backref=backref("sp2d"))
    __table_args__ = TABLE_ARGS
    
class Sp2dDetBiaya(SipkdBase, CommonModel):
    __tablename__  = 'sp2ddetb'
    mtgkey    = Column(String(10), primary_key=True)
    nosp2d    = Column(String(50), primary_key=True)
    unitkey   = Column(String(10))
    nojetra   = Column(String(2))
    kddana    = Column(String(3))
    Nilai     = Column(DECIMAL(decimal_return_scale=2))
    __table_args__ = (ForeignKeyConstraint(['mtgkey'], [RekBiaya.mtgkey]),
                      TABLE_ARGS)
    rekening  = relationship("RekBiaya", backref=backref("sp2ddetbiaya"))

class Sp2dDetPdpt(SipkdBase, CommonModel):
    __tablename__  = 'sp2ddetd'
    nosp2d    = Column(String(50), primary_key=True)
    mtgkey    = Column(String(10), primary_key=True)
    unitkey   = Column(String(10))  
    nojetra   = Column(String(2))
    Nilai     = Column(DECIMAL(decimal_return_scale=2))
    __table_args__ = TABLE_ARGS

class Sp2dDetBelanja(SipkdBase, CommonModel):
    __tablename__  = 'sp2ddetr'
    nosp2d    = Column(String(50), primary_key=True)
    mtgkey    = Column(String(10), primary_key=True)
    kdkegunit = Column(String(10), primary_key=True)
    unitkey   = Column(String(10))
    nojetra   = Column(String(2))
    kddana    = Column(String(3))
    Nilai     = Column(DECIMAL(decimal_return_scale=2))
    __table_args__ = TABLE_ARGS

class Sp2dDetBtl(SipkdBase, CommonModel):
    __tablename__  = 'sp2ddetrtl'
    nosp2d    = Column(String(50), primary_key=True)
    mtgkey    = Column(String(10), primary_key=True)
    unitkey   = Column(String(10))
    nojetra   = Column(String(2))
    kddana    = Column(String(3))
    Nilai     = Column(DECIMAL(decimal_return_scale=2))
    __table_args__ = TABLE_ARGS

class Sp2dPajak(SipkdBase, CommonModel):
    __tablename__  = 'sp2dpjk'
    nosp2d      = Column(String(50), primary_key=True)
    pjkkey      = Column(String(10), primary_key=True)
    unitkey     = Column(String(10))
    Nilai       = Column(DECIMAL(decimal_return_scale=2))
    Keterangan  = Column(String(512))
    pajak  = relationship("JenisPajak", backref=backref("sp2dpajak"))
    __table_args__ = (ForeignKeyConstraint(['pjkkey'], [JenisPajak.pjkkey]),
                      TABLE_ARGS)