referensi.py 3.57 KB
from datetime import datetime
from sqlalchemy import (
    Column,
    Integer,
    Text,
    DateTime,
    ForeignKey,
    UniqueConstraint,
    ForeignKeyConstraint,
    String,
    SmallInteger,
    Float,
    )
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

class DaftUnit(SipkdBase):
    __tablename__  = 'daftunit'
    unitkey   = Column(String(10), primary_key=True)
    kdlevel   = Column(String(2))
    kdunit    = Column(String(30))
    nmunit    = Column(String(200))
    akrounit  = Column(String(30))
    alamat    = Column(String(200))
    telepon   = Column(String(20))
    type      = Column(String(2))
    __table_args__ = TABLE_ARGS
    @classmethod
    def get_key(cls, kdunit):
        row = SipkdDBSession.query(cls.unitkey).filter_by(kdunit = kdunit).first()
        return row and row[0] or None
            
class JenisPajak(SipkdBase):
    __tablename__  = 'jpajak'
    pjkkey    = Column(String(10), primary_key=True)
    kdpajak   = Column(String(10))
    nmpajak   = Column(String(50))
    rumuspjk  = Column(String(100))
    __table_args__ = TABLE_ARGS

class Bank(SipkdBase):
    __tablename__  = 'daftbank'
    kdbank  = Column(String(2), primary_key=True)
    nmbank  = Column(String(50))
    akbank  = Column(String(20))
    alamat  = Column(String(200))
    telepon = Column(String(20))
    cabang  = Column(String(50))
    __table_args__ = TABLE_ARGS

class Pegawai(SipkdBase):
    __tablename__  = 'pegawai'
    nip     = Column(String(30), primary_key=True)
    kdgol   = Column(String(10))
    unitkey = Column(String(10))
    nama    = Column(String(100))
    alamat  = Column(String(200))
    jabatan = Column(String(200))
    pddk    = Column(String(30))
    __table_args__ = TABLE_ARGS
    
class Bendahara(SipkdBase):
    __tablename__  = 'bend'
    keybend     = Column(String(10), primary_key=True)
    jns_bend    = Column(String(2))
    nip         = Column(String(30), ForeignKey(Pegawai.nip))
    kdbank      = Column(String(2), ForeignKey(Bank.kdbank))
    unitkey     = Column(String(10))
    jab_bend    = Column(String(100))
    rekbend     = Column(String(100))
    saldobend   = Column(Float)
    NPWPbend    = Column(String(30))
    tglstopbend = Column(DateTime(timezone=False))
    saldobendt  = Column(Float)
    pegawai = relationship("Pegawai", backref=backref("bendahara"))
    bank = relationship("Bank", backref=backref("bendahara"))
    __table_args__ = TABLE_ARGS
    @classmethod
    def get_key(cls, unitkey, nip):
        row = SipkdDBSession.query(cls.keybend).filter_by(unitkey = unitkey,
                  nip = nip).first()
        return row and row[0] or None
        

class Vendor(SipkdBase):
    __tablename__  = 'daftphk3'
    kdp3      = Column(String(10), primary_key=True)
    nmp3      = Column(String(100))
    nminst    = Column(String(100))
    norcp3    = Column(String(50))
    nmbank    = Column(String(50))
    jnsusaha  = Column(String(50))
    alamat    = Column(String(200))
    telepon   = Column(String(20))
    NPWP      = Column(String(30))
    unitkey   = Column(String(10))
    __table_args__ = TABLE_ARGS

# /****** Script for SelectTopNRows command from SSMS  ******/
# SELECT TOP 1000 [KEYBEND]
  
  # FROM [V@LID49V6_2015].[dbo].[BEND]

# SELECT TOP 1000 [KDP3]
      # ,[NMP3]
      # ,[NMINST]
      # ,[NORCP3]
      # ,[NMBANK]
      # ,[JNSUSAHA]
      # ,[ALAMAT]
      # ,[TELEPON]
      # ,[NPWP]
      # ,[UNITKEY]
  # FROM [V@LID49V6_2015].[dbo].[DAFTPHK3]