eis.py 3.21 KB
from datetime import datetime
from sqlalchemy import (
    Column,
    Integer,
    BigInteger,
    SmallInteger,
    Text,
    DateTime,
    String,
    UniqueConstraint,
    ForeignKey,
    Index
    )
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
    scoped_session,
    sessionmaker,
    relationship, backref
    )
from ..models import (EisDBSession, DefaultModel, EisBase, NamaModel, TABLE_ARGS)

class Harian(EisBase, NamaModel):
    __tablename__ = 'harian'
    tahun = Column(Integer)
    amt_tahun = Column(BigInteger)
    amt_bulan = Column(BigInteger)
    amt_minggu = Column(BigInteger)
    amt_hari   = Column(BigInteger)
    order_id   = Column(SmallInteger)
    aktif      = Column(SmallInteger)
    __table_args__ = TABLE_ARGS

    @classmethod
    def sum_data(cls, kode, tahun):
        q = cls.query().filter_by(
                kode==kode,
                tahun=tahun).first()
        if q:
            sum_minggu = q.amt_minggu+q.amt_hari
            sum_bulan  = q.amt_bulan + sum_minggu
            sum_tahun  = q.amt_tahun + sum_bulan
            return  dict(sum_hari = sum_hari, sum_minggu = sum_minggu, 
                         sum_bulan = sum_bulan, sum_tahun = sum_tahun)
            
        return {}
        
    @classmethod
    def sum_order_id(cls, tahun):
        q = cls.query().\
              filter_by(tahun=tahun)
        if q:
            return  q
        return 
        
class EisSipkdArPayment(NamaModel, EisBase):
    __tablename__ = 'sipkd_ar_payment'
    tanggal = Column(DateTime(timezone=False))
    departemen_kd = Column(String(16))
    departemen_nm = Column(String(255))
    jumlah = Column(BigInteger)
    level_id = Column(Integer)
    tahun = Column(String(4))
    __table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
                      TABLE_ARGS)

class EisSipkdApPayment(NamaModel, EisBase):
    __tablename__ = 'sipkd_ap_payment'
    tanggal = Column(DateTime(timezone=False))
    departemen_kd = Column(String(16))
    departemen_nm = Column(String(255))
    jumlah = Column(BigInteger)
    level_id = Column(Integer)
    tahun = Column(String(4))
    __table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
                      TABLE_ARGS)

class EisSipkdPbPayment(NamaModel, EisBase):
    __tablename__ = 'sipkd_pb_payment'
    tanggal = Column(DateTime(timezone=False))
    tanggal = Column(DateTime(timezone=False))
    departemen_kd = Column(String(16))
    departemen_nm = Column(String(255))
    jumlah = Column(BigInteger)
    level_id = Column(Integer)
    tahun = Column(String(4))
    __table_args__ = (UniqueConstraint('tanggal', 'departemen_kd', 'kode'),
                      TABLE_ARGS)

class EisSipkdAnggaran(NamaModel, EisBase):
    __tablename__ = 'sipkd_anggaran'
    tahun = Column(String(4))
    departemen_kd = Column(String(16))
    departemen_nm = Column(String(255))
    murni = Column(BigInteger)
    perubahan = Column(BigInteger)
    level_id = Column(Integer)
    __table_args__ = (UniqueConstraint('tahun', 'kode', 'departemen_kd'),
                      TABLE_ARGS)