Commit 9f6797ee by aa.gusti

devel

1 parent 9e9fd199
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
BigInteger,
SmallInteger,
Text,
DateTime,
String,
UniqueConstraint,
ForeignKey,
Index,
create_engine,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship, backref
)
from conf import eis_url
EisBase = declarative_base()
EisDBSession = scoped_session(sessionmaker())
engine = create_engine(eis_url, echo=False)
EisDBSession.configure(bind=engine)
EisBase.metadata.bind = engine
TABLE_ARGS = {'extend_existing':True,
'schema':'eis'
}
class CommonModel(object):
def to_dict(self): # Elixir like
values = {}
for column in self.__table__.columns:
values[column.name] = getattr(self, column.name)
return values
def from_dict(self, values):
for column in self.__table__.columns:
if column.name in values:
setattr(self, column.name, values[column.name])
def as_timezone(self, fieldname):
date_ = getattr(self, fieldname)
return date_ and as_timezone(date_) or None
class DefaultModel(CommonModel):
id = Column(Integer, primary_key=True)
@classmethod
def query(cls):
return EisDBSession.query(cls)
@classmethod
def query_id(cls, id):
return cls.query().filter_by(id=id)
@classmethod
def delete(cls, id):
cls.query_id(id).delete()
@classmethod
def count(cls):
return EisDBSession.query(func.count('id')).scalar()
class KodeModel(DefaultModel):
kode = Column(String(32))
status = Column(SmallInteger, nullable=False, default=0)
created = Column(DateTime, nullable=True, default=datetime.utcnow)
updated = Column(DateTime, nullable=True)
create_uid = Column(Integer, nullable=True, default=1)
update_uid = Column(Integer, nullable=True)
@classmethod
def query_kode(cls,kode):
return cls.query().filter_by(kode=kode)
@classmethod
def get_active(cls):
return cls.query().filter_by(status=1).all()
class NamaModel(KodeModel):
nama = Column(String(128))
@classmethod
def query_nama(cls, nama):
return cls.query().filter_by(nama=nama)
class Anggaran(NamaModel, EisBase):
__tablename__ = 'sipkd_anggaran'
tahun = Column(String(4))
departemen_kd = Column(String(16))
departemen_nm = Column(String(255))
jumlah = Column(BigInteger)
murni = Column(BigInteger)
perubahan = Column(BigInteger)
level_id = Column(Integer)
__table_args__ = (UniqueConstraint('tahun', 'kode', 'departemen_kd'),
TABLE_ARGS)
class ArPayment(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 ApPayment(NamaModel, EisBase):
__tablename__ = 'sipkd_ap_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 ByPayment(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 Rekening(NamaModel, EisBase):
__tablename__ = 'sipkd_rekening'
tahun = Column(Integer)
level_id = Column(SmallInteger, default=1)
parent_id = Column(Integer, ForeignKey('eis.sipkd_rekening.id'),)
status = Column(SmallInteger, default=1)
defsign = Column(SmallInteger, default=1)
children = relationship("Rekening",
backref=backref('parent', remote_side='Rekening.id'))
__table_args__= (
UniqueConstraint('kode', 'tahun', name='rekening_uq'),
#ForeignKeyConstraint(['parent_id'], ForeignKey('rekening.id')),
TABLE_ARGS
)
EisBase.metadata.create_all(engine)
\ No newline at end of file
sipkd_maser_models
\ No newline at end of file
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
String,
SmallInteger,
BigInteger
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship,
backref
)
TABLE_ARGS = {'extend_existing':True,
#'schema':'sipkd'
}
SipkdBase = declarative_base()
SipkdDBSession = scoped_session(sessionmaker())
class RekBiaya(SipkdBase):
__tablename__ = 'matangb'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
class RekPendapatan(SipkdBase):
__tablename__ = 'matangd'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
class RekBelanja(SipkdBase):
__tablename__ = 'matangr'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
\ No newline at end of file
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
String,
SmallInteger,
BigInteger
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship,
backref
)
Base = declarative_base()
DBSession = scoped_session(sessionmaker())
class Anggaran(Base):
__tablename__ = "Tabel_Anggaran"
tahun = Column(String(4), primary_key=True)
kd_opd = Column(String(32), primary_key=True)
nm_opd = Column(String(254))
kd_rekening = Column(String(32), primary_key=True)
nm_rekening = Column(String(254))
ang_murni = Column(BigInteger)
ang_perubahan = Column(BigInteger)
class Realisasi(Base):
__tablename__ = "Tabel_Realisasi"
tahun = Column(String(4), primary_key=True)
kd_opd = Column(String(32), primary_key=True)
nm_opd = Column(String(254))
kd_rekening = Column(String(32), primary_key=True)
nm_rekening = Column(String(254))
tanggal = Column(DateTime(timezone=False), primary_key=True)
realisasi = Column(BigInteger)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!