__init__.py 1.91 KB
from tangsel.base.models import (StandarModel, DefaultModel, DBSession, Partner,
                              User, DBSession, Partner, UserGroup, Group)
from sqlalchemy import Column, String, Integer, case, func
from sqlalchemy.orm import (relationship,
                            backref, column_property)
# from zope.sqlalchemy import ZopeTransactionExtension
from tangsel.base.models import Base

TABLE_ARGS = {'extend_existing': True,
              'schema': 'public'}


def subs(o, s, p):
    return func.substr(o, s, p)


STATUS_NOP = [
    (0, "Draft"),
    (1, "Verified"),
    (2, "Canceled"),
    (-1, "Declined"),
]


class PartnerNop(StandarModel, Base):
    __tablename__ = 'partner_nop'
    nop = Column(String(18), nullable=False)
    thn_awal = Column(Integer())
    thn_akhir = Column(Integer())
    partner_id = Column(Integer(), server_default="0")
    dokumen = Column(String())
    status = Column(Integer())
    status_text = column_property(case((status == 0, STATUS_NOP[0][1]),
                                       (status == 1, STATUS_NOP[1][1]),
                                       (status == 2, STATUS_NOP[2][1]),
                                       else_=STATUS_NOP[len(STATUS_NOP)-1][1]))
    nop_formatted = column_property(
        subs(nop, 1, 2) + "." + subs(nop, 3, 2) + "-" + subs(nop, 5, 3) + "." +
        subs(nop, 8, 3) + "-" + subs(nop, 11, 3) + "." + subs(nop, 14, 4) + "-" + subs(nop, 18, 1))
    kecamatan = column_property(
        subs(nop, 1, 2)+"."+subs(nop, 3, 2)+"."+subs(nop, 5, 3))
    kelurahan = column_property(
        subs(nop, 1, 2)+"."+subs(nop, 3, 2)+"."+subs(nop, 5, 3)+"."+subs(nop, 8, 3))
    partner = relationship("Partner", backref=backref("nop"),
                           foreign_keys=[partner_id],
                           primaryjoin="Partner.id==PartnerNop.partner_id")

    @ classmethod
    def query_register(cls):
        return cls.query(cls)

from .es_log import *