eis.py 3.7 KB
from sqlalchemy import (
    Column,
    Integer,
    BigInteger,
    SmallInteger,
    DateTime,
    String,
    UniqueConstraint,
    ForeignKey
    )
from sqlalchemy.orm import (
    relationship
    )
from . import (DBSession, DefaultModel, Base, NamaModel, TABLE_ARGS, Base)

class Eis(Base, NamaModel):
    __tablename__ = 'wells'
    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 = DBSession.query(cls).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=q.amt_hari, sum_minggu=sum_minggu,
                         sum_bulan = sum_bulan, sum_tahun = sum_tahun)
            
        return {}
        
    @classmethod
    def sum_order_id(cls, tahun):
        q = DBSession.query(cls).filter_by(
                tahun=tahun)
        if q:
            return  q
        return 

class Slide(NamaModel, Base):
    __tablename__ = 'slides'
    source_type = Column(String(16)) #grid, image, chart-line, chart-pie, chart-bar
    source_id   = Column(String(128))
    order_id   = Column(Integer, default=0)
    aktif   = Column(SmallInteger, default=0)
    __table_args__ = TABLE_ARGS

class Chart(NamaModel, Base):
    __tablename__ = 'charts'
    chart_type = Column(String(16))                  
    label      = Column(String(128)) #digunakan jika chart membutuhkan label                  
    devider    = Column(BigInteger, default=1)
    status   = Column(SmallInteger, default=0)
    __table_args__ = (UniqueConstraint('kode'),
                      TABLE_ARGS)
                      
class ChartItem(NamaModel, Base):
    __tablename__ = 'chart_items'
    value_1 = Column(BigInteger, default=0)
    value_2 = Column(BigInteger, default=0)
    value_3 = Column(BigInteger, default=0)
    value_4 = Column(BigInteger, default=0)
    value_5 = Column(BigInteger, default=0)
    value_6 = Column(BigInteger, default=0)
    value_7 = Column(BigInteger, default=0)
    value_8 = Column(BigInteger, default=0)
    value_9 = Column(BigInteger, default=0)
    value10 = Column(BigInteger, default=0)
    value11 = Column(BigInteger, default=0)
    value12 = Column(BigInteger, default=0)
    chart_id = Column(Integer, ForeignKey(Chart.id))
    source_type = Column(String(32), default='realisasi')
    rekening_kd = Column(String(128))
    color = Column(String(6))
    highlight = Column(String(6))
    is_sum   = Column(SmallInteger, default=0)
    updated    = Column(DateTime)
    created    = Column(DateTime)
    create_uid = Column(Integer)
    update_uid = Column(Integer)
    chart   = relationship("Chart")
    status   = Column(SmallInteger, default=0)
    __table_args__ = (UniqueConstraint('kode'),
                      TABLE_ARGS)
                      
class EisParams(NamaModel, Base):
    __tablename__ = 'params'
    last_update = Column(DateTime(timezone=False), nullable=True)
    __table_args__ = (TABLE_ARGS)
    
class LastUpdate(DefaultModel, Base):
    __tablename__ = 'last_update'
    wells = Column(DateTime(timezone=False), nullable=True)
    __table_args__ = (TABLE_ARGS)
    
class ArPayment(NamaModel, Base):
    __tablename__ = 'ar_payment'
    tanggal = Column(DateTime(timezone=False))
    denda = Column(BigInteger)
    bayar = Column(BigInteger)
    __table_args__ = (UniqueConstraint('tanggal','kode'),
                      TABLE_ARGS)