es_log.py
4.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
from sqlalchemy import (Column, ForeignKey, Integer, String, DateTime, func, case)
from sqlalchemy.orm import column_property, relationship
from tangsel.base.models import PartnerModel, Partner
from ..models import Base, DefaultModel, TABLE_ARGS, DBSession
from ..tools import FixNop
PROSES_STATUS = [
(-1, "Pengajuan"),
(0, "Proses Penetapan"),
(1, "Proses TTD"),
(2, "Tersedia"),
(3, "Gagal"),
]
def get_status(status):
if status == 1:
return "Proses"
elif status == -1:
return "Gagal/Permohonan"
elif status == 2:
return "Terkirim"
else:
return "Draft"
class LogEspptMassal(DefaultModel, Base):
__tablename__ = 'log_esppt_massal'
tahun = Column(String(4), nullable=False)
jenis = Column(String(1), nullable=False) # 1 Semua SPPT 2 SPPT Terdaftar
jml_sppt = Column(Integer())
jml_proses = Column(Integer())
status = Column(Integer()) # 0 dalam proses 1 selesai proses
status_text = column_property(case(
(status == 1, "Proses Generator"),
(status == 2, "Proses TTD"),
(status == 3, "Selesai"),
else_="Proses Parsing"))
partner_id = Column(Integer(), server_default="0")
nop = Column(String(32))
class LogEsppt(DefaultModel, Base):
__tablename__ = 'log_esppt'
kd_propinsi = Column(String(2), nullable=False)
kd_dati2 = Column(String(2), nullable=False)
kd_kecamatan = Column(String(3), nullable=False)
kd_kelurahan = Column(String(3), nullable=False)
kd_blok = Column(String(3), nullable=False)
no_urut = Column(String(4), nullable=False)
kd_jns_op = Column(String(1), nullable=False)
tahun = Column(String(4), nullable=False)
siklus_sppt = Column(Integer, nullable=False)
partner_id = Column(Integer(), ForeignKey(Partner.id), server_default="0")
destination = Column(String)
status = Column(Integer)
created = Column(DateTime)
sent = Column(DateTime)
file_name = Column(String(254))
nm_wp_sppt = Column(String(30))
pbb_yg_harus_dibayar_sppt = Column(Integer)
nop = column_property(
kd_propinsi + "." + kd_dati2 + "-" + kd_kecamatan + "." +
kd_kelurahan + "-" + kd_blok + "." + no_urut + "-" + kd_jns_op)
nop_raw = column_property(
kd_propinsi + kd_dati2 + kd_kecamatan +
kd_kelurahan + kd_blok + no_urut + kd_jns_op)
status_text = column_property(
case(
(status == -1, "Pengajuan"),
(status == 0, "Proses Penetapan"),
(status == 1, "Proses TTD"),
(status == 2, "Tersedia"),
(status == 3, "Gagal"),
else_="Unknown"
)
)
kecamatan = column_property(kd_propinsi+"."+kd_dati2+"."+kd_kecamatan)
kelurahan = column_property(
kd_propinsi+"."+kd_dati2+"."+kd_kecamatan+"."+kd_kelurahan)
partner = relationship("Partner", backref="log_esppt")
__table_args__ = (TABLE_ARGS)
@property
def nop_as_id(self):
return "".join([self.kd_propinsi, self.kd_dati2, self.kd_kecamatan,
self.kd_kelurahan, self.kd_blok, self.kd_no_urut,
self.kd_jns_op, self.tahun])
@property
def nop_to_id(self):
return self.nop_as_id
@classmethod
def query(cls):
return DBSession.query(cls)
@classmethod
def query_id(cls, id):
return cls.query().filter_by(id=id)
@classmethod
def query_nop(cls, nop):
nop = FixNop(nop)
return cls.query().filter(
cls.kd_propinsi == nop['kd_propinsi'],
cls.kd_dati2 == nop['kd_dati2'],
cls.kd_kecamatan == nop['kd_kecamatan'],
cls.kd_kelurahan == nop['kd_kelurahan'],
cls.kd_blok == nop['kd_blok'],
cls.no_urut == nop['no_urut'],
cls.kd_jns_op == nop['kd_jns_op'],
)
class Passphrase(PartnerModel, Base):
__tablename__ = 'log_passphrase'
password = Column(String(64))
class EspptUnduh(PartnerModel, Base):
__tablename__ = 'log_sppt_unduh'
nop = Column(String(18))
tahun = Column(String(4))
kd_propinsi = Column(String(2))
kd_dati2 = Column(String(2))
kd_kecamatan = Column(String(3))
kd_kelurahan = Column(String(3))
kd_blok = Column(String(3))
no_urut = Column(String(4))
kd_jns_op = Column(String(1))
@classmethod
def query_nop(cls, nop):
return cls.query().filter_by(nop=nop)