Commit ae9c745e by aagusti

gilang

1 parent c68590bc
...@@ -3,18 +3,20 @@ from ..tools import get_settings ...@@ -3,18 +3,20 @@ from ..tools import get_settings
class EngInformix(object): class EngInformix(object):
def __init__(self): def __init__(self):
self.conn = None self.conn = None
self.database = None self.database = None
self.user = None self.user = None
self.password = None self.password = None
settings = get_settings() settings = get_settings()
url = settings['otherdb.url'] url = settings['otherdb.url']
self.dbtype, url = url.split('://') self.dbtype, url = url.split('://')
user_pass, url = url.split('@') user_pass, url = url.split('@')
self.user, self.password = user_pass.split(':') self.user, self.password = user_pass.split(':')
self.server, self.database = url.split('/') self.server, self.database = url.split('/')
def connect(self): def connect(self):
self.conn = informixdb.connect(self.database, user=self.user, password=self.password) self.conn = informixdb.connect(self.database, user=self.user, password=self.password)
return self.conn return self.conn
...@@ -33,6 +35,7 @@ class EngInformix(object): ...@@ -33,6 +35,7 @@ class EngInformix(object):
cursor.execute(sql) cursor.execute(sql)
row = cursor.fetchone() row = cursor.fetchone()
return row return row
def query_obj(self, sql): def query_obj(self, sql):
if not self.conn: if not self.conn:
self.connect() self.connect()
......
...@@ -22,23 +22,66 @@ from ..models import( ...@@ -22,23 +22,66 @@ from ..models import(
User, User,
CommonModel CommonModel
) )
###########################
# #######################
########################### ## Model E-SIPKD ##
#######################
class Pkb(DefaultModel,Base): class Pkb(DefaultModel,Base):
__tablename__ = 'pkbs' __tablename__ = 'pkbs'
id = Column(BigInteger, primary_key=True) id = Column(BigInteger, primary_key=True)
nik = Column(String(16)) kd_status = Column(SmallInteger, default=0)
no_rangka = Column(String(16)) flag_sms = Column(SmallInteger, default=0)
email = Column(String(32)) no_ktp = Column(String(16))
mobile_phone = Column(String(16)) no_rangka = Column(String(40))
email = Column(String(40))
no_hp = Column(String(20))
tg_pros_daftar = Column(Date)
jam_daftar = Column(String(10))
ket = Column(String(40))
kd_bayar = Column(String(16))
kd_wil = Column(String(2))
kd_wil_proses = Column(String(2))
nm_pemilik = Column(String(40))
no_polisi = Column(String(10))
warna_tnkb = Column(String(40))
milik_ke = Column(Integer)
nm_merek_kb = Column(String(40))
nm_model_kb = Column(String(40))
th_buatan = Column(String(4))
tg_akhir_pjklm = Column(Date)
tg_akhir_pjkbr = Column(Date)
bbn_pok = Column(BigInteger, default=0)
bbn_den = Column(BigInteger, default=0)
pkb_pok = Column(BigInteger, default=0)
pkb_den = Column(BigInteger, default=0)
swd_pok = Column(BigInteger, default=0)
swd_den = Column(BigInteger, default=0)
adm_stnk = Column(BigInteger, default=0)
adm_tnkb = Column(BigInteger, default=0)
jumlah = Column(BigInteger, default=0)
tg_bayar_bank = Column(Date)
jam_bayar_bank = Column(String(10))
kd_trn_bank = Column(String(20))
kd_trn_dpd = Column(String(20))
ivr = Column(String(2))
class Pap(DefaultModel,Base): class Pap(DefaultModel,Base):
__tablename__ = 'paps' __tablename__ = 'paps'
id = Column(BigInteger, primary_key=True) id = Column(BigInteger, primary_key=True)
no_skpd = Column(String(16)) kd_status = Column(SmallInteger, default=0)
email = Column(String(32)) kd_bayar = Column(String(16))
mobile_phone = Column(String(16)) npwpd = Column(String(14))
nm_perus = Column(String(40))
al_perus = Column(String(50))
vol_air = Column(BigInteger, default=0)
npa = Column(BigInteger, default=0)
bea_pok_pjk = Column(BigInteger, default=0)
bea_den_pjk = Column(BigInteger, default=0)
m_pjk_bln = Column(String(2))
m_pjk_thn = Column(String(4))
tgl_tetap = Column(Date)
tgl_jt_tempo = Column(Date)
keterangan = Column(String(255))
class Unit(NamaModel,Base): class Unit(NamaModel,Base):
__tablename__ = 'units' __tablename__ = 'units'
...@@ -123,6 +166,7 @@ class SubjekPajak(NamaModel, Base): ...@@ -123,6 +166,7 @@ class SubjekPajak(NamaModel, Base):
kecamatan = Column(String(128)) kecamatan = Column(String(128))
kota = Column(String(128)) kota = Column(String(128))
user_id = Column(Integer,ForeignKey("users.id")) user_id = Column(Integer,ForeignKey("users.id"))
provinsi = Column(String(128))
users = relationship("User", backref=backref('subjekpajaks')) users = relationship("User", backref=backref('subjekpajaks'))
UniqueConstraint('kode') UniqueConstraint('kode')
......
...@@ -90,4 +90,5 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid ...@@ -90,4 +90,5 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid
105,"reports_act","Report Action","/reports/act/{act}",,"read",0,"2015-03-08 16:45:45",,1 105,"reports_act","Report Action","/reports/act/{act}",,"read",0,"2015-03-08 16:45:45",,1
106,"arinvoice-edt-unit","ARInvoice Ubah Unit","/arinvoice/edt/unit",,"arinvoice_unit",0,"2015-03-08 16:45:45",,1 106,"arinvoice-edt-unit","ARInvoice Ubah Unit","/arinvoice/edt/unit",,"arinvoice_unit",0,"2015-03-08 16:45:45",,1
107,"arinvoice-edt-subjek","ARInvoice Ubah Subjek","/arinvoice/edt/subjek",,"arinvoice_subjek",0,"2015-03-08 16:45:45",,1 107,"arinvoice-edt-subjek","ARInvoice Ubah Subjek","/arinvoice/edt/subjek",,"arinvoice_subjek",0,"2015-03-08 16:45:45",,1
108,"pkb-edit","Jawaban PKB","/pkb/add",,"add",0,"2015-03-08 16:45:45",,1 108,"pkb-edit","Jawaban E-Samsat","/pkb/{id}/add",,"view",0,"2015-03-08 16:45:45",,1
109,"pap-edit","Jawaban E-PAP","/pap/{id}/add",,"view",0,"2015-03-08 16:45:45",,1
...@@ -45,9 +45,11 @@ def view_home(request): ...@@ -45,9 +45,11 @@ def view_home(request):
# Login # # Login #
######### #########
class Login(colander.Schema): class Login(colander.Schema):
username = colander.SchemaNode(colander.String()) username = colander.SchemaNode(colander.String(),
title="Nama Pengguna")
password = colander.SchemaNode(colander.String(), password = colander.SchemaNode(colander.String(),
widget=widget.PasswordWidget()) title="Kata Sandi",
widget=widget.PasswordWidget())
# http://deformdemo.repoze.org/interfield/ # http://deformdemo.repoze.org/interfield/
...@@ -116,11 +118,14 @@ def view_logout(request): ...@@ -116,11 +118,14 @@ def view_logout(request):
################### ###################
class Password(colander.Schema): class Password(colander.Schema):
old_password = colander.SchemaNode(colander.String(), old_password = colander.SchemaNode(colander.String(),
title="Kata Sandi Lama",
widget=widget.PasswordWidget()) widget=widget.PasswordWidget())
new_password = colander.SchemaNode(colander.String(), new_password = colander.SchemaNode(colander.String(),
title="Kata Sandi Baru",
widget=widget.PasswordWidget()) widget=widget.PasswordWidget())
retype_password = colander.SchemaNode(colander.String(), retype_password = colander.SchemaNode(colander.String(),
widget=widget.PasswordWidget()) title="Ketik Ulang Kata Sandi",
widget=widget.PasswordWidget())
def password_validator(form, value): def password_validator(form, value):
......
...@@ -16,7 +16,7 @@ from deform import ( ...@@ -16,7 +16,7 @@ from deform import (
widget, widget,
ValidationFailure, ValidationFailure,
) )
from ..tools import _DTnumberformat from ..tools import _DTnumberformat,_DTstrftime
from ..models import DBSession from ..models import DBSession
from ..models.isipkd import( from ..models.isipkd import(
ObjekPajak, ObjekPajak,
...@@ -56,7 +56,7 @@ def view_list(request): ...@@ -56,7 +56,7 @@ def view_list(request):
def form_validator(form, value): def form_validator(form, value):
def err_kode(): def err_kode():
raise colander.Invalid(form, raise colander.Invalid(form,
'Kode invoice %s sudah digunakan oleh ID %d' % ( 'Kode STS %s sudah digunakan oleh ID %d' % (
value['kode'], found.id)) value['kode'], found.id))
def err_name(): def err_name():
...@@ -152,7 +152,7 @@ def save_request(values, request, row=None): ...@@ -152,7 +152,7 @@ def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
row = save(values, row) row = save(values, row)
request.session.flash('No Bayar %s sudah disimpan.' % row.kode) request.session.flash('STS %s sudah disimpan.' % row.kode)
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('arsts')) return HTTPFound(location=request.route_url('arsts'))
...@@ -190,7 +190,7 @@ def query_id(request): ...@@ -190,7 +190,7 @@ def query_id(request):
return DBSession.query(ARSts).filter(ARSts.id==request.matchdict['id']) return DBSession.query(ARSts).filter(ARSts.id==request.matchdict['id'])
def id_not_found(request): def id_not_found(request):
msg = 'No Bayar ID %s tidak ditemukan atau sudah dibayar.' % request.matchdict['id'] msg = 'STS ID %s tidak ditemukan atau sudah dibayar.' % request.matchdict['id']
request.session.flash(msg, 'error') request.session.flash(msg, 'error')
return route_list(request) return route_list(request)
...@@ -227,18 +227,22 @@ def view_edit(request): ...@@ -227,18 +227,22 @@ def view_edit(request):
def view_delete(request): def view_delete(request):
q = query_id(request) q = query_id(request)
row = q.first() row = q.first()
if not row: if not row:
return id_not_found(request) return id_not_found(request)
if row.jumlah:
request.session.flash('Data tidak dapat dihapus, karena masih mempunyai item.', 'error')
return route_list(request)
form = Form(colander.Schema(), buttons=('delete','cancel')) form = Form(colander.Schema(), buttons=('delete','cancel'))
if request.POST: if request.POST:
if 'delete' in request.POST: if 'delete' in request.POST:
msg = 'No Bayar ID %d %s sudah dihapus.' % (row.id, row.kode) msg = 'STS ID %d %s sudah dihapus.' % (row.id, row.kode)
q.delete() q.delete()
DBSession.flush() DBSession.flush()
request.session.flash(msg) request.session.flash(msg)
return route_list(request) return route_list(request)
return dict(row=row, return dict(row=row, form=form.render())
form=form.render())
########## ##########
# Action # # Action #
...@@ -253,10 +257,10 @@ def view_act(request): ...@@ -253,10 +257,10 @@ def view_act(request):
columns = [] columns = []
columns.append(ColumnDT('id')) columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode')) columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama')) columns.append(ColumnDT('nama'))
#columns.append(ColumnDT('jumlah'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
columns.append(ColumnDT('units.nama')) columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
query = DBSession.query(ARSts).\ query = DBSession.query(ARSts).\
join(Unit) join(Unit)
......
...@@ -140,6 +140,22 @@ def view_delete(request): ...@@ -140,6 +140,22 @@ def view_delete(request):
return id_not_found(request) return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel')) form = Form(colander.Schema(), buttons=('delete','cancel'))
msg = 'Penerimaan ID %d %s sudah dihapus.' % (row.sts_id, row.sspd_id) msg = 'Penerimaan ID %d %s sudah dihapus.' % (row.sts_id, row.sspd_id)
### ARStsItem
jumlah = DBSession.query(ARStsItem.jumlah).\
filter(ARStsItem.sspd_id==row.sspd_id).scalar()
print'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',jumlah
### ARSts
jumlah1 = DBSession.query(ARSts.jumlah).\
filter(ARSts.id==request.session['sts_id']).scalar()
print'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',jumlah1
if jumlah:
hasil = jumlah1-jumlah
rows = DBSession.query(ARSts).filter(ARSts.id==request.session['sts_id']).first()
rows.jumlah=hasil
DBSession.add(rows)
DBSession.flush()
q.delete() q.delete()
DBSession.flush() DBSession.flush()
...@@ -148,7 +164,7 @@ def view_delete(request): ...@@ -148,7 +164,7 @@ def view_delete(request):
DBSession.add(q) DBSession.add(q)
DBSession.flush() DBSession.flush()
request.session.flash(msg) request.session.flash(msg)
return route_list(request) return route_list(request)
############# #############
...@@ -209,7 +225,7 @@ def view_act(request): ...@@ -209,7 +225,7 @@ def view_act(request):
elif url_dict['act']=='grid': elif url_dict['act']=='grid':
#Nambahin param sts_id untuk percobaan sementara, karena session sts_id tidak jalan #Nambahin param sts_id untuk percobaan sementara, karena session sts_id tidak jalan
sts_id = 'sts_id' in params and params['sts_id'] or 0 sts_id = 'sts_id' in params and params['sts_id'] or 0
print'ssssssssssssssssssssssssssssssssssssssss',sts_id print'ssssssssssssssssssssssssssssssssssssssss',sts_id
columns = [] columns = []
columns.append(ColumnDT('sspd_id')) columns.append(ColumnDT('sspd_id'))
columns.append(ColumnDT('sts_id')) columns.append(ColumnDT('sts_id'))
......
...@@ -11,7 +11,10 @@ from ..models.isipkd import Param ...@@ -11,7 +11,10 @@ from ..models.isipkd import Param
from ..models.isipkd import( from ..models.isipkd import(
Wilayah, Jabatan, Unit, Rekening, SubjekPajak, Pajak, ObjekPajak Wilayah, Jabatan, Unit, Rekening, SubjekPajak, Pajak, ObjekPajak
) )
#############################
## Untuk perhitungan bunga ##
#############################
def hitung_bunga(pokok, jatuh_tempo): def hitung_bunga(pokok, jatuh_tempo):
row = DBSession.query(Param.denda).first() row = DBSession.query(Param.denda).first()
if row: if row:
...@@ -32,45 +35,65 @@ def hitung_bunga(pokok, jatuh_tempo): ...@@ -32,45 +35,65 @@ def hitung_bunga(pokok, jatuh_tempo):
bln_tunggakan = 24 bln_tunggakan = 24
denda = bln_tunggakan * persen_denda / 100 * pokok denda = bln_tunggakan * persen_denda / 100 * pokok
return denda return denda
###################################
## Untuk validasi struktur email ##
###################################
def email_validator(node, value): def email_validator(node, value):
name, email = parseaddr(value) name, email = parseaddr(value)
if not email or email.find('@') < 0: if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format') raise colander.Invalid(node, 'Invalid email format')
############################
STATUS = ( ## Untuk pemilihan Status ##
(1, 'Aktif'), ############################
(0, 'Inaktif'),
)
@colander.deferred @colander.deferred
def deferred_status(node, kw): def deferred_status(node, kw):
values = kw.get('daftar_status', []) values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
STATUS = (
(1, 'Aktif'),
(0, 'Inaktif'),
)
#############################
## Untuk pemilihan Summary ##
#############################
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
SUMMARIES = ( SUMMARIES = (
(1, 'Header'), (1, 'Header'),
(0, 'Detail'), (0, 'Detail'),
) )
#############################
## Untuk pemilihan Wilayah ##
#############################
@colander.deferred @colander.deferred
def deferred_summary(node, kw): def deferred_wilayah(node, kw):
values = kw.get('daftar_summary', []) values = kw.get('daftar_wilayah',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_wilayah(): def daftar_wilayah():
rows = DBSession.query(Wilayah.id, Wilayah.nama).all() rows = DBSession.query(Wilayah.id, Wilayah.kode, Wilayah.nama).filter_by(level_id=2).all()
r=[] r=[]
d = (0,'Pilih Wilayah') d = (0,'Pilih Wilayah')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
#############################
## Untuk pemilihan Jabatan ##
#############################
@colander.deferred @colander.deferred
def deferred_wilayah(node, kw): def deferred_jabatan(node, kw):
values = kw.get('daftar_wilayah',[]) values = kw.get('daftar_jabatan',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_jabatan(): def daftar_jabatan():
...@@ -83,119 +106,99 @@ def daftar_jabatan(): ...@@ -83,119 +106,99 @@ def daftar_jabatan():
r.append(d) r.append(d)
return r return r
####################################
## Untuk pemilihan Unit Kerja/OPD ##
####################################
@colander.deferred @colander.deferred
def deferred_jabatan(node, kw): def deferred_unit(node, kw):
values = kw.get('daftar_jabatan',[]) values = kw.get('daftar_unit',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_unit(): def daftar_unit():
rows = DBSession.query(Unit).filter_by(level_id=3).all() rows = DBSession.query(Unit).filter_by(level_id=3).all()
r=[] r=[]
d = (0,'Pilih OPD') d = (0,'Pilih OPD')
#d = (0,'Pilih SKPD')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.kode+':'+row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
##############################
## Untuk pemilihan Rekening ##
##############################
@colander.deferred @colander.deferred
def deferred_unit(node, kw): def deferred_rekening(node, kw):
values = kw.get('daftar_unit',[]) values = kw.get('daftar_rekening',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_rekening(): def daftar_rekening():
rows = DBSession.query(Rekening).filter_by(is_summary=0).all() rows = DBSession.query(Rekening).filter_by(is_summary=0).all()
r=[] r=[]
d = (0,'Pilih REKENING') d = (0,'Pilih Rekening')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.kode+':'+row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
@colander.deferred
def deferred_rekening(node, kw):
values = kw.get('daftar_rekening',[])
return widget.SelectWidget(values=values)
def daftar_user(): ###########################
rows = DBSession.query(User).all() ## Untuk pemilihan Pajak ##
r=[] ###########################
d = (0,'Pilih USER')
r.append(d)
for row in rows:
d = (row.id, row.email+':'+row.user_name)
r.append(d)
return r
@colander.deferred @colander.deferred
def deferred_user(node, kw): def deferred_pajak(node, kw):
values = kw.get('daftar_user',[]) values = kw.get('daftar_pajak',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_pajak(): def daftar_pajak():
rows = DBSession.query(Pajak).all() rows = DBSession.query(Pajak).all()
r=[] r=[]
d = (0,'Pilih PAJAK') d = (0,'Pilih Pajak')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.kode+':'+row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
############################
## Untuk pemilihan Subjek ##
############################
@colander.deferred @colander.deferred
def deferred_pajak(node, kw): def deferred_subjekpajak(node, kw):
values = kw.get('daftar_pajak',[]) values = kw.get('daftar_subjekpajak',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
def daftar_subjekpajak(): def daftar_subjekpajak():
rows = DBSession.query(SubjekPajak).all() rows = DBSession.query(SubjekPajak).all()
r=[] r=[]
d = (0,'Pilih SP') d = (0,'Pilih Subjek')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.kode+':'+row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
@colander.deferred
def deferred_subjekpajak(node, kw):
values = kw.get('daftar_subjekpajak',[])
return widget.SelectWidget(values=values)
def daftar_objekpajak(): ###########################
rows = DBSession.query(ObjekPajak).all() ## Untuk pemilihan Objek ##
r=[] ###########################
d = (0,'Pilih SP')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred @colander.deferred
def deferred_objekpajak(node, kw): def deferred_objekpajak(node, kw):
values = kw.get('daftar_objekpajak',[]) values = kw.get('daftar_objekpajak',[])
return widget.SelectWidget(values=values) return widget.SelectWidget(values=values)
@colander.deferred
def deferred_subjekpajak(node, kw):
values = kw.get('daftar_subjekpajak',[])
return widget.SelectWidget(values=values)
def daftar_objekpajak(): def daftar_objekpajak():
rows = DBSession.query(ObjekPajak).all() rows = DBSession.query(ObjekPajak).all()
r=[] r=[]
d = (0,'Pilih SP') d = (0,'Pilih Objek')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.kode+':'+row.nama) d = (row.id, row.kode+' : '+row.nama)
r.append(d) r.append(d)
return r return r
##########################
## Untuk pemilihan User ##
##########################
@colander.deferred @colander.deferred
def deferred_user(node, kw): def deferred_user(node, kw):
values = kw.get('daftar_user',[]) values = kw.get('daftar_user',[])
...@@ -207,10 +210,13 @@ def daftar_user(): ...@@ -207,10 +210,13 @@ def daftar_user():
d = (0,'Pilih User') d = (0,'Pilih User')
r.append(d) r.append(d)
for row in rows: for row in rows:
d = (row.id, row.user_name+':'+row.email) d = (row.id, row.user_name+' : '+row.email)
r.append(d) r.append(d)
return r return r
###########################
## Untuk pemilihan Group ##
###########################
@colander.deferred @colander.deferred
def deferred_group(node, kw): def deferred_group(node, kw):
values = kw.get('daftar_group',[]) values = kw.get('daftar_group',[])
...@@ -226,6 +232,9 @@ def daftar_group(): ...@@ -226,6 +232,9 @@ def daftar_group():
r.append(d) r.append(d)
return r return r
###########################
## Untuk pemilihan Route ##
###########################
@colander.deferred @colander.deferred
def deferred_route(node, kw): def deferred_route(node, kw):
values = kw.get('daftar_route',[]) values = kw.get('daftar_route',[])
...@@ -240,8 +249,10 @@ def daftar_route(): ...@@ -240,8 +249,10 @@ def daftar_route():
d = (row.id, row.nama) d = (row.id, row.nama)
r.append(d) r.append(d)
return r return r
## Kumpulan Headofkode & Headofname ######################################
## Kumpulan Headofkode & Headofname ##
######################################
auto_unit_nm = widget.AutocompleteInputWidget( auto_unit_nm = widget.AutocompleteInputWidget(
size=60, size=60,
values = '/skpd/hon/act', values = '/skpd/hon/act',
......
...@@ -19,7 +19,8 @@ from ..models.isipkd import( ...@@ -19,7 +19,8 @@ from ..models.isipkd import(
Unit, Unit,
Wilayah, Wilayah,
Pajak, Pajak,
Rekening Rekening,
ARInvoice
) )
from datatables import ( from datatables import (
...@@ -105,8 +106,7 @@ class AddSchema(colander.Schema): ...@@ -105,8 +106,7 @@ class AddSchema(colander.Schema):
title="Pajak" title="Pajak"
) )
kode = colander.SchemaNode( kode = colander.SchemaNode(
colander.String(), colander.String())
)
nama = colander.SchemaNode( nama = colander.SchemaNode(
colander.String(), colander.String(),
title="Uraian") title="Uraian")
...@@ -147,7 +147,7 @@ def save_request(values, request, row=None): ...@@ -147,7 +147,7 @@ def save_request(values, request, row=None):
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
print "****",values, "****", request print "****",values, "****", request
row = save(values, row) row = save(values, row)
request.session.flash('op %s sudah disimpan.' % row.kode) request.session.flash('Objek %s sudah disimpan.' % row.kode)
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('op')) return HTTPFound(location=request.route_url('op'))
...@@ -183,7 +183,7 @@ def query_id(request): ...@@ -183,7 +183,7 @@ def query_id(request):
return DBSession.query(ObjekPajak).filter_by(id=request.matchdict['id']) return DBSession.query(ObjekPajak).filter_by(id=request.matchdict['id'])
def id_not_found(request): def id_not_found(request):
msg = 'op ID %s not found.' % request.matchdict['id'] msg = 'Objek ID %s not found.' % request.matchdict['id']
request.session.flash(msg, 'error') request.session.flash(msg, 'error')
return route_list(request) return route_list(request)
...@@ -191,8 +191,15 @@ def id_not_found(request): ...@@ -191,8 +191,15 @@ def id_not_found(request):
permission='edit') permission='edit')
def view_edit(request): def view_edit(request):
row = query_id(request).first() row = query_id(request).first()
id = row.id
if not row: if not row:
return id_not_found(request) return id_not_found(request)
x = DBSession.query(ARInvoice).filter(ARInvoice.objek_pajak_id==id).first()
if x:
request.session.flash('Tidak bisa diedit, karena objek sudah digunakan di daftar bayar.','error')
return route_list(request)
form = get_form(request, EditSchema) form = get_form(request, EditSchema)
if request.POST: if request.POST:
if 'simpan' in request.POST: if 'simpan' in request.POST:
...@@ -217,18 +224,24 @@ def view_edit(request): ...@@ -217,18 +224,24 @@ def view_edit(request):
def view_delete(request): def view_delete(request):
q = query_id(request) q = query_id(request)
row = q.first() row = q.first()
id = row.id
x = DBSession.query(ARInvoice).filter(ARInvoice.objek_pajak_id==id).first()
if x:
request.session.flash('Tidak bisa dihapus, karena objek sudah digunakan di daftar bayar.','error')
return route_list(request)
if not row: if not row:
return id_not_found(request) return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel')) form = Form(colander.Schema(), buttons=('delete','cancel'))
if request.POST: if request.POST:
if 'delete' in request.POST: if 'delete' in request.POST:
msg = 'op ID %d %s has been deleted.' % (row.id, row.kode) msg = 'Objek %s sudah dihapus.' % (row.kode)
q.delete() q.delete()
DBSession.flush() DBSession.flush()
request.session.flash(msg) request.session.flash(msg)
return route_list(request) return route_list(request)
return dict(row=row, return dict(row=row, form=form.render())
form=form.render())
########## ##########
# Action # # Action #
......
import colander import colander
import informixdb
from datetime import (datetime, date) from datetime import (datetime, date)
from time import (strptime, strftime) from time import (strptime, strftime, time, sleep)
from sqlalchemy import (not_, or_) from sqlalchemy import (not_, or_, text)
from pyramid.view import (view_config,) from pyramid.view import (view_config,)
from pyramid.httpexceptions import (HTTPFound,) from pyramid.httpexceptions import (HTTPFound,)
from deform import (Form, widget, ValidationFailure,) from deform import (Form, widget, ValidationFailure,)
from datatables import (ColumnDT, DataTables) from datatables import (ColumnDT, DataTables)
from recaptcha.client import captcha from recaptcha.client import captcha
from ..tools import (email_validator,BULANS, captcha_submit) from ..tools import (email_validator, BULANS, captcha_submit, get_settings)
from ..models import (DBSession) from ..models import (DBSession)
from ..models.isipkd import (Pap) from ..models.isipkd import (Pap)
from ..models.informix import EngInformix
SESS_ADD_FAILED = 'user add failed' SESS_ADD_FAILED = 'user add failed'
SESS_EDIT_FAILED = 'user edit failed' SESS_EDIT_FAILED = 'user edit failed'
...@@ -37,39 +39,201 @@ def form_validator(form, value): ...@@ -37,39 +39,201 @@ def form_validator(form, value):
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
no_skpd = colander.SchemaNode( npwpd = colander.SchemaNode(
colander.String(), colander.String(),
widget = widget.TextInputWidget(max=5), widget = widget.TextInputWidget(max=14),
title = "NPWPD" title = "NPWPD :",
oid="npwpd"
) )
email = colander.SchemaNode( m_pjk_bln = colander.SchemaNode(
colander.String(), colander.String(),
validator=email_validator, title = "Bulan",
title = "Periode" oid="m_pjk_bln"
) )
no_handphone = colander.SchemaNode( m_pjk_thn = colander.SchemaNode(
colander.String(), colander.String(),
title = "Email" title = "Tahun",
oid="m_pjk_thn"
) )
kd_bayar = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Kode Bayar',
oid="kd_bayar"
)
kd_status = colander.SchemaNode(
colander.Integer(),
title='Status.bayar',
missing=colander.drop,
oid="kd_status"
)
npwpd1 = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'NPWPD',
oid="npwpd1"
)
nm_perus = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Nama',
oid="nm_perus"
)
al_perus = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Alamat',
oid="al_perus"
)
vol_air = colander.SchemaNode(
colander.Integer(),
title='Volume',
missing=colander.drop,
oid="vol_air"
)
npa = colander.SchemaNode(
colander.Integer(),
title='NPS',
missing=colander.drop,
oid="npa"
)
bea_pok_pjk = colander.SchemaNode(
colander.Integer(),
title='Bea Pokok Pjk',
missing=colander.drop,
oid="bea_pok_pjk"
)
bea_den_pjk = colander.SchemaNode(
colander.Integer(),
title='Bea Denda Pjk',
missing=colander.drop,
oid="bea_den_pjk"
)
m_pjk_bln1 = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Bulan',
oid="m_pjk_bln1"
)
m_pjk_thn1 = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tahun',
oid="m_pjk_thn1"
)
tgl_tetap = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tgl. Penetapan',
oid="tgl_tetap"
)
tgl_jt_tempo = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tgl. Jth Tempo',
oid="tgl_jt_tempo"
)
keterangan = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Keterangan',
oid="keterangan"
)
class EditSchema(AddSchema):
id = colander.SchemaNode(
colander.Integer(),
oid="id")
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) schema = class_form(validator=form_validator)
schema.request = request schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
def save(values, user, row=None): def save(request, values, row=None):
row = {} engInformix = EngInformix()
row['email'] = 'aagusti@1'
return row c_now = datetime.now()
c_date = c_now.strftime('%m-%d-%Y')
c_time = c_now.strftime('%H:%M:%S')
sql = """INSERT INTO v_jupntepap (npwpd, m_pjk_bln, m_pjk_thn,kd_status)
VALUES('{npwpd}', '{m_pjk_bln}', '{m_pjk_thn}', '{kd_status}')"""
row = engInformix.execute(sql.format(
npwpd = values['npwpd'],
m_pjk_bln = values['m_pjk_bln'],
m_pjk_thn = values['m_pjk_thn'],
#c_date = c_date ,
#c_time = c_time,
kd_status = 0))
tm_awal = datetime.now()
row_result = None
sql_result = """
SELECT * FROM v_jupntepap
WHERE npwpd= '{npwpd}' and m_pjk_bln= '{m_pjk_bln}'
and m_pjk_thn = '{m_pjk_thn}' and kd_status='{kd_status}'
""".format(
npwpd = values['npwpd'],
m_pjk_bln = values['m_pjk_bln'],
m_pjk_thn = values['m_pjk_thn'],
#c_date = c_date ,
#c_time = c_time,
kd_status = 0)
trx_timeout = 10
delay_after_insert = 1
awal = time()
p = None
msg = None
while time() - awal < trx_timeout:
sleep(delay_after_insert)
try:
p = engInformix.fetchone(sql_result)
except informixdb.OperationalError, msg:
msg = msg
break
except informixdb.ProgrammingError, msg:
msg = msg
break
if p:
break
print p
print '--------------------------------------',msg
rowd = Pap()
rowd.kd_status = p.kd_status
rowd.kd_bayar = p.kd_bayar
rowd.npwpd = p.npwpd
rowd.nm_perus = p.nm_perus
rowd.al_perus = p.al_perus
rowd.vol_air = p.vol_air
rowd.npa = p.npa
rowd.bea_pok_pjk = p.bea_pok_pjk
rowd.bea_den_pjk = p.bea_den_pjk
rowd.m_pjk_bln = p.m_pjk_bln
rowd.m_pjk_thn = p.m_pjk_thn
rowd.tgl_tetap = p.tgl_tetap
rowd.tgl_jt_tempo = p.tgl_jt_tempo
rowd.keterangan = p.keterangan
DBSession.add(rowd)
DBSession.flush()
return rowd
#return HTTPFound(location=request.route_url('pap-edit', row=rowd, msg=msg))
def save_request(values, request, row=None): def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
row = save(values, request.user, row) row = save(request.user, values, row)
request.session.flash('Tunggu beberapa saat email atau SMS akan segera dikirim.') request.session.flash('Tunggu beberapa saat email atau SMS akan segera dikirim.')
return row
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('pap')) return HTTPFound(location=request.route_url('pap-add'))
def session_failed(request, session_name): def session_failed(request, session_name):
r = dict(form=request.session[session_name]) r = dict(form=request.session[session_name])
...@@ -82,30 +246,74 @@ def session_failed(request, session_name): ...@@ -82,30 +246,74 @@ def session_failed(request, session_name):
permission='view') permission='view')
def view_add(request): def view_add(request):
req = request req = request
private_key = '6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_'
settings = get_settings()
print 'X--------_______SETTING INFORMIX______--------X',settings
private_key = settings['recaptcha.private_key']
data_key = settings['recaptcha.private_key']
form = get_form(request, AddSchema) form = get_form(request, AddSchema)
if request.POST: if request.POST:
if 'simpan' in request.POST: if 'simpan' in request.POST:
controls = request.POST.items() controls = request.POST.items()
try: try:
c = form.validate(controls) c = form.validate(controls)
response = captcha_submit( if private_key:
'6LcGLQATAAAAAPlQuLEaUUrmAO845hlNKbZeUr1J', #req.args['recaptcha_challenge_field'] response = captcha_submit(
req.params['g-recaptcha-response'], data_key,
private_key, None req.params['g-recaptcha-response'],
) private_key, None
)
if not response.is_valid:
if not response.is_valid: req.session.flash(response.error_code,'error')
req.session.flash(response.error_code,'error') return dict(form=form, private_key=private_key)
return dict(form=form)
except ValidationFailure, e:
return dict(form=form)
#request.session[SESS_ADD_FAILED] = e.render() except ValidationFailure, e:
#return HTTPFound(location=request.route_url('pap-add')) return dict(form=form, private_key=private_key)
save_request(dict(controls), request) row = save_request(dict(controls), request)
print'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr',row
return HTTPFound(location=request.route_url('pap-edit',id=row.id))
return route_list(request) return route_list(request)
elif SESS_ADD_FAILED in request.session: elif SESS_ADD_FAILED in request.session:
return session_failed(request, SESS_ADD_FAILED) return session_failed(request, SESS_ADD_FAILED)
return dict(form=form, private_key=private_key)
########
# Edit #
########
def query_id(request):
return DBSession.query(Pap).filter(Pap.id==request.matchdict['id'])
@view_config(route_name='pap-edit', renderer='templates/pap/add.pt',
permission='view')
def view_edit(request):
row = query_id(request).first()
print '----------------------------X----------------------------', row
form = get_form(request, EditSchema)
if request.POST:
if 'simpan' in request.POST:
controls = request.POST.items()
print '------X------', controls
return route_list(request)
elif SESS_EDIT_FAILED in request.session:
return session_failed(request, SESS_EDIT_FAILED)
values = row.to_dict()
values['kd_status'] = row.kd_status
values['kd_bayar'] = row.kd_bayar
values['npwpd1'] = row.npwpd
values['nm_perus'] = row.nm_perus
values['al_perus'] = row.al_perus
values['vol_air'] = row.vol_air
values['npa'] = row.npa
values['bea_pok_pjk'] = row.bea_pok_pjk
values['bea_den_pjk'] = row.bea_den_pjk
values['m_pjk_bln1'] = row.m_pjk_bln
values['m_pjk_thn1'] = row.m_pjk_thn
values['tgl_tetap'] = row.tgl_tetap
values['tgl_jt_tempo'] = row.tgl_jt_tempo
values['keterangan'] = row.keterangan
form.set_appstruct(values)
return dict(form=form) return dict(form=form)
\ No newline at end of file \ No newline at end of file
import colander import colander
import informixdb
from datetime import (datetime, date) from datetime import (datetime, date)
from time import (strptime, strftime, time, sleep) from time import (strptime, strftime, time, sleep)
...@@ -7,7 +8,7 @@ from pyramid.view import (view_config,) ...@@ -7,7 +8,7 @@ from pyramid.view import (view_config,)
from pyramid.httpexceptions import (HTTPFound,) from pyramid.httpexceptions import (HTTPFound,)
from deform import (Form, widget, ValidationFailure,) from deform import (Form, widget, ValidationFailure,)
from datatables import (ColumnDT, DataTables) from datatables import (ColumnDT, DataTables)
from ..tools import (email_validator,BULANS, captcha_submit, get_settings) from ..tools import (email_validator, BULANS, captcha_submit, get_settings)
from ..models import (DBSession) from ..models import (DBSession)
from ..models.isipkd import (Pkb) from ..models.isipkd import (Pkb)
from ..models.informix import EngInformix from ..models.informix import EngInformix
...@@ -41,36 +42,193 @@ def form_validator(form, value): ...@@ -41,36 +42,193 @@ def form_validator(form, value):
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
no_rangka = colander.SchemaNode( no_rangka = colander.SchemaNode(
colander.String(), colander.String(),
widget = widget.TextInputWidget(max=5), widget = widget.TextInputWidget(max=40),
validator=form_validator validator=form_validator,
) title = 'No. Rangka'
nik = colander.SchemaNode( )
colander.String() no_ktp = colander.SchemaNode(
) colander.String(),
email = colander.SchemaNode( title = 'No. Identitas'
colander.String(), )
validator=email_validator email = colander.SchemaNode(
) colander.String(),
no_handphone = colander.SchemaNode( validator=email_validator,
colander.String() title = 'E-Mail'
) )
no_hp = colander.SchemaNode(
colander.String(),
title = 'No. Handphone'
)
kd_status = colander.SchemaNode(
colander.Integer(),
title='Status.bayar',
missing=colander.drop,
oid="kd_status"
)
no_rangka1 = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'No. Rangka',
oid="no_rangka1"
)
no_ktp1 = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'No. Identitas',
oid="no_ktp1"
)
kd_bayar = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Kode Bayar',
oid="kd_bayar"
)
tg_bayar_bank = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tgl. Bayar',
oid="tg_bayar_bank"
)
no_polisi = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'No. Polisi',
oid="no_polisi"
)
ket = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Keterangan',
oid="ket"
)
nm_pemilik = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Nama Pemilik',
oid="nm_pemilik"
)
warna_tnkb = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Warna TNKB',
oid="warna_tnkb"
)
nm_merek_kb = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Merk Kendaraan',
oid="nm_merek_kb"
)
nm_model_kb = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Model Kendaraan',
oid="nm_model_kb"
)
th_buatan = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Thn. Pembuatan',
oid="th_buatan"
)
tg_akhir_pjklm = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tgl. Pajak Lama',
oid="tg_akhir_pjklm"
)
tg_akhir_pjkbr = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tgl. Pajak Baru',
oid="tg_akhir_pjkbr"
)
bbn_pok = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Pokok BBN',
oid="bbn_pok"
)
bbn_den = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Denda BBN',
oid="bbn_den"
)
pkb_pok = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Pokok PKB',
oid="pkb_pok"
)
pkb_den = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Denda PKB',
oid="pkb_den"
)
swd_pok = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Pokok SWDKLLJ',
oid="swd_pok"
)
swd_den = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Denda SWDKLLJ',
oid="swd_den"
)
adm_stnk = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Adm. STNK',
oid="adm_stnk"
)
adm_tnkb = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Adm. TNKB',
oid="adm_tnkb"
)
jumlah = colander.SchemaNode(
colander.Integer(),
missing=colander.drop,
title='Jumlah',
oid="jumlah"
)
kd_trn_bank = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'NTB',
oid="kd_trn_bank"
)
kd_trn_dpd = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'NTP',
oid="kd_trn_dpd"
)
class EditSchema(AddSchema):
id = colander.SchemaNode(
colander.Integer(),
oid="id")
def get_form(request, class_form): def get_form(request, class_form):
schema = class_form(validator=form_validator) schema = class_form(validator=form_validator)
schema.request = request schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
def save(values, user, row=None): def save(request, values, row=None):
pass
def save_request(values, request, row=None):
engInformix = EngInformix() engInformix = EngInformix()
c_now = datetime.now() c_now = datetime.now()
c_date = c_now.strftime('%m-%d-%Y') c_date = c_now.strftime('%m-%d-%Y')
c_time = c_now.strftime('%H:%M:%S') c_time = c_now.strftime('%H:%M:%S')
sql = """INSERT INTO v_daftsms (no_rangka, no_ktp, email, no_hp, ivr, sql = """INSERT INTO v_daftsms (no_rangka, no_ktp, email, no_hp, ivr,
tg_pros_daftar, jam_daftar, kd_status, flag_sms) tg_pros_daftar, jam_daftar, kd_status, flag_sms)
VALUES('{no_rangka}', '{no_ktp}', '{email}', '{no_hp}', '{ivr}', VALUES('{no_rangka}', '{no_ktp}', '{email}', '{no_hp}', '{ivr}',
...@@ -78,55 +236,107 @@ def save_request(values, request, row=None): ...@@ -78,55 +236,107 @@ def save_request(values, request, row=None):
row = engInformix.execute(sql.format( row = engInformix.execute(sql.format(
no_rangka = values['no_rangka'], no_rangka = values['no_rangka'],
no_ktp = values['nik'], no_ktp = values['no_ktp'],
email = values['email'], email = values['email'],
no_hp = values['no_handphone'], no_hp = values['no_hp'],
ivr = '11', ivr = '11',
c_date = c_date , c_date = c_date ,
c_time = c_time, c_time = c_time,
kd_status = '0', kd_status = 0,
flag_sms = '0')) flag_sms = 0))
tm_awal = datetime.now() tm_awal = datetime.now()
row_result = None row_result = None
sql_result = """ sql_result = """
SELECT * FROM v_daftsms SELECT * FROM v_daftsms
WHERE no_rangka= '{no_rangka}' and no_ktp= '{no_ktp}' WHERE no_rangka= '{no_rangka}' and no_ktp= '{no_ktp}'
and email = '{email}' and no_hp='{no_hp}' and ivr= '{ivr}' and email = '{email}' and no_hp='{no_hp}' and ivr= '{ivr}'
and tg_pros_daftar='{c_date}' and jam_daftar='{c_time}' and tg_pros_daftar='{c_date}' and jam_daftar='{c_time}'
and kd_status='{kd_status}' and kd_status='{kd_status}'
""".format( """.format(
no_rangka = values['no_rangka'], no_rangka = values['no_rangka'],
no_ktp = values['nik'], no_ktp = values['no_ktp'],
email = values['email'], email = values['email'],
no_hp = values['no_handphone'], no_hp = values['no_hp'],
ivr = '11', ivr = '11',
c_date = c_date , c_date = c_date ,
c_time = c_time, c_time = c_time,
kd_status = '0') kd_status = 0)
trx_timeout = 10
trx_timeout = 10
delay_after_insert = 1 delay_after_insert = 1
awal = time() awal = time()
p = None p = None
msg = None msg = None
while time() - awal < trx_timeout: while time() - awal < trx_timeout:
sleep(delay_after_insert) sleep(delay_after_insert)
try: try:
p = engInformix.fetchone(sql_result) p = engInformix.fetchone(sql_result)
except informixdb.OperationalError, msg: except informixdb.OperationalError, msg:
msg = msg msg = msg
break break
except informixdb.ProgrammingError, msg: except informixdb.ProgrammingError, msg:
msg = msg msg = msg
break break
if p: if p:
break break
print p print p
print '--------------------------------------',msg
return HTTPFound(location=request.route_url('pkb-edit', row=p, msg=msg))
rowd = Pkb()
rowd.kd_status = p.kd_status
rowd.flag_sms = p.flag_sms
rowd.no_rangka = p.no_rangka
rowd.no_ktp = p.no_ktp
rowd.email = p.email
rowd.no_hp = p.no_hp
rowd.tg_pros_daftar = p.tg_pros_daftar
rowd.jam_daftar = p.jam_daftar
rowd.ket = p.ket
rowd.kd_bayar = p.kd_bayar
rowd.kd_wil = p.kd_wil
rowd.kd_wil_proses = p.kd_wil_proses
rowd.nm_pemilik = p.nm_pemilik
rowd.no_polisi = p.no_polisi
rowd.warna_tnkb = p.warna_tnkb
rowd.milik_ke = p.milik_ke
rowd.nm_merek_kb = p.nm_merek_kb
rowd.nm_model_kb = p.nm_model_kb
rowd.th_buatan = p.th_buatan
rowd.tg_akhir_pjklm = p.tg_akhir_pjklm
rowd.tg_akhir_pjkbr = p.tg_akhir_pjkbr
rowd.bbn_pok = p.bbn_pok
rowd.bbn_den = p.bbn_den
rowd.pkb_pok = p.pkb_pok
rowd.pkb_den = p.pkb_den
rowd.swd_pok = p.swd_pok
rowd.swd_den = p.swd_den
rowd.adm_stnk = p.adm_stnk
rowd.adm_tnkb = p.adm_tnkb
rowd.jumlah = p.jumlah
rowd.tg_bayar_bank = p.tg_bayar_bank
rowd.jam_bayar_bank = p.jam_bayar_bank
rowd.kd_trn_bank = p.kd_trn_bank
rowd.kd_trn_dpd = p.kd_trn_dpd
rowd.ivr = p.ivr
DBSession.add(rowd)
DBSession.flush()
return rowd
#return HTTPFound(location=request.route_url('pkb-edit', row=rowd, msg=msg))
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
#values["amount"]=values["amount"].replace('.','')
row = save(request, values, row)
request.session.flash('PKB sudah disimpan.')
return row
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('pkb')) return HTTPFound(location=request.route_url('pkb-add'))
def session_failed(request, session_name): def session_failed(request, session_name):
r = dict(form=request.session[session_name]) r = dict(form=request.session[session_name])
...@@ -141,9 +351,9 @@ def view_add(request): ...@@ -141,9 +351,9 @@ def view_add(request):
req = request req = request
settings = get_settings() settings = get_settings()
print 'XXXXXXXXXX_____________XXXXXXXXXX',settings print 'X--------_______SETTING INFORMIX______--------X',settings
private_key = settings['recaptcha.private_key'] private_key = settings['recaptcha.private_key']
data_key = settings['recaptcha.private_key'] data_key = settings['recaptcha.private_key']
form = get_form(request, AddSchema) form = get_form(request, AddSchema)
if request.POST: if request.POST:
...@@ -162,15 +372,68 @@ def view_add(request): ...@@ -162,15 +372,68 @@ def view_add(request):
return dict(form=form, private_key=private_key) return dict(form=form, private_key=private_key)
except ValidationFailure, e: except ValidationFailure, e:
return dict(form=form, private_key=private_key) return dict(form=form, private_key=private_key)
#request.session[SESS_ADD_FAILED] = e.render() row = save_request(dict(controls), request)
#return HTTPFound(location=request.route_url('pkb-add')) print'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr',row
save_request(dict(controls), request) return HTTPFound(location=request.route_url('pkb-edit',id=row.id))
return route_list(request) return route_list(request)
elif SESS_ADD_FAILED in request.session: elif SESS_ADD_FAILED in request.session:
return session_failed(request, SESS_ADD_FAILED) return session_failed(request, SESS_ADD_FAILED)
return dict(form=form, private_key=private_key) return dict(form=form, private_key=private_key)
########
# Edit #
########
def query_id(request):
return DBSession.query(Pkb).filter(Pkb.id==request.matchdict['id'])
@view_config(route_name='pkb-edit', renderer='templates/pkb/add.pt', @view_config(route_name='pkb-edit', renderer='templates/pkb/add.pt',
permission='view') permission='view')
def view_edit(request): def view_edit(request):
pass row = query_id(request).first()
print '----------------------------X----------------------------', row
form = get_form(request, EditSchema)
if request.POST:
if 'simpan' in request.POST:
controls = request.POST.items()
print '------X------', controls
return route_list(request)
elif SESS_EDIT_FAILED in request.session:
return session_failed(request, SESS_EDIT_FAILED)
values = row.to_dict()
values['kd_status'] = row.kd_status
values['flag_sms'] = row.flag_sms
values['no_rangka1'] = row.no_rangka
values['no_ktp1'] = row.no_ktp
values['tg_pros_daftar'] = row.tg_pros_daftar
values['jam_daftar'] = row.jam_daftar
values['ket'] = row.ket
values['kd_bayar'] = row.kd_bayar
values['kd_wil'] = row.kd_wil
values['kd_wil_proses'] = row.kd_wil_proses
values['nm_pemilik'] = row.nm_pemilik
values['no_polisi'] = row.no_polisi
values['warna_tnkb'] = row.warna_tnkb
values['milik_ke'] = row.milik_ke
values['nm_merek_kb'] = row.nm_merek_kb
values['nm_model_kb'] = row.nm_model_kb
values['th_buatan'] = row.th_buatan
values['tg_akhir_pjklm'] = row.tg_akhir_pjklm
values['tg_akhir_pjkbr'] = row.tg_akhir_pjkbr
values['bbn_pok'] = row.bbn_pok
values['bbn_den'] = row.bbn_den
values['pkb_pok'] = row.pkb_pok
values['pkb_den'] = row.pkb_den
values['swd_pok'] = row.swd_pok
values['swd_den'] = row.swd_den
values['adm_stnk'] = row.adm_stnk
values['adm_tnkb'] = row.adm_tnkb
values['jumlah'] = row.jumlah
values['tg_bayar_bank'] = row.tg_bayar_bank
values['jam_bayar_bank'] = row.jam_bayar_bank
values['kd_trn_bank'] = row.kd_trn_bank
values['kd_trn_dpd'] = row.kd_trn_dpd
values['ivr'] = row.ivr
form.set_appstruct(values)
return dict(form=form)
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<!--arinvoice_id -------------------------------> <!--arinvoice_id ------------------------------->
<div tal:define="field form['arinvoice_id']"> <div tal:define="field form['arinvoice_id']">
......
...@@ -202,7 +202,6 @@ ...@@ -202,7 +202,6 @@
<label class="control-label col-md-3"> <label class="control-label col-md-3">
PEMBAYARAN</label> PEMBAYARAN</label>
</div> </div>
<<<<<<< HEAD
<!--tgl_bayar -------------------------------> <!--tgl_bayar ------------------------------->
<div class="form-group" tal:define="field form['tgl_bayar']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['tgl_bayar']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
...@@ -215,8 +214,6 @@ ...@@ -215,8 +214,6 @@
*</p> *</p>
</div> </div>
</div> </div>
=======
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<!--bunga -------------------------------> <!--bunga ------------------------------->
<div class="form-group" tal:define="field form['bunga']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['bunga']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
...@@ -237,23 +234,7 @@ ...@@ -237,23 +234,7 @@
tal:repeat="error field.error.messages()"> tal:repeat="error field.error.messages()">
*</p> *</p>
</div> </div>
<<<<<<< HEAD
</div> </div>
=======
</div>
<!--tgl_bayar ------------------------------->
<div class="form-group" tal:define="field form['tgl_bayar']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
*</p>
</div>
</div>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
</div> </div>
</div> </div>
......
...@@ -44,23 +44,26 @@ ...@@ -44,23 +44,26 @@
var iPos; var iPos;
var oFormUrl = "/arsspd/"; var oFormUrl = "/arsspd/";
var oTableUrl = oFormUrl+"grid/act"; var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () { $(document).ready(function () {
oTable = $('#table1').dataTable({ oTable = $('#table1').dataTable({
"sAjaxSource": oTableUrl, "sAjaxSource" : oTableUrl,
"bServerSide": true, "bServerSide" : true,
"bProcessing": true, "bProcessing" : true,
"sDom": '<"toolbar">lfrtip', "sDom" : '<"toolbar">lfrtip',
"bScrollCollapse": true, "bScrollCollapse": true,
"bSort": true, "bSort" : true,
"bInfo": false, "bInfo" : false,
"bFilter": true, "bFilter" : true,
"bAutoWidth": false, "bAutoWidth" : false,
"bPaginate": true, "bPaginate" : true,
"sPaginationType": "full_numbers", "sPaginationType": "full_numbers",
"lengthMenu": [ "lengthMenu": [
[10, 25, 50, -1], [10, 25, 50, -1],
[10, 25, 50, "All"] [10, 25, 50, "All"]
], ],
"aoColumnDefs": [ "aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]} {"bSearchable": false, "bVisible": false, "aTargets": [0]}
], ],
...@@ -76,7 +79,7 @@ ...@@ -76,7 +79,7 @@
//{"sWidth": "75px", "sClass": "center"}, //{"sWidth": "75px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"}, //{"sWidth": "40px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"}, //{"sWidth": "40px", "sClass": "center"},
{"sWidth": "50px", "sClass": "center"}, {"sWidth": "60px", "sClass": "center"},
], ],
}); });
......
...@@ -110,16 +110,16 @@ ...@@ -110,16 +110,16 @@
var mID; var mID;
var oTable; var oTable;
var iPos; var iPos;
//Nambahin variable sts_id & kondisi untuk pemanggilan grid
var oFormUrl = "/arstsitem/"; var oFormUrl = "/arstsitem/";
var sts_id = $('#id').val(); var sts_id = $('#id').val();
//Nambahin variable sts_id & kondisi untuk pemanggilan grid
if (!sts_id){ if (!sts_id){
kosong = '0'; kosong = '0';
var oTableUrl = oFormUrl+"grid/act?sts_id="+kosong; var oTableUrl = oFormUrl+"grid/act?sts_id="+kosong;
} }else{
else{ var oTableUrl = oFormUrl+"grid/act?sts_id="+sts_id;
var oTableUrl = oFormUrl+"grid/act?sts_id="+sts_id;
} }
$(document).ready(function () { $(document).ready(function () {
oTable = $('#table1').dataTable({ oTable = $('#table1').dataTable({
"sAjaxSource" : oTableUrl, "sAjaxSource" : oTableUrl,
...@@ -153,9 +153,9 @@ ...@@ -153,9 +153,9 @@
var tb_array = [ var tb_array = [
'<div class="btn-group pull-left">', '<div class="btn-group pull-left">',
' <button id="btn_tambah" class="btn btn btn-primary pull-left" type="button">Pilih</button>', '<button id="btn_tambah" class="btn btn btn-primary pull-left" type="button">Pilih</button>',
' <button id="btn_delete" class="btn btn btn-danger pull-left" type="button">Hapus</button>', '<button id="btn_delete" class="btn btn btn-danger pull-left" type="button">Hapus</button>',
' <button id="btn_print" class="btn btn btn-primary pull-left" type="button">Cetak</button>', '<button id="btn_print" class="btn btn btn-primary pull-left" type="button">Cetak</button>',
//' <button id="btn_close" class="btn btn btn-warning" type="button">Tutup</button>', //' <button id="btn_close" class="btn btn btn-warning" type="button">Tutup</button>',
' &nbsp;', ' &nbsp;',
'</div>', '</div>',
......
...@@ -19,9 +19,10 @@ ...@@ -19,9 +19,10 @@
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Kode</th> <th>Kode</th>
<th>Tanggal</th>
<th>Uraian</th> <th>Uraian</th>
<th>Jumlah</th>
<th>OPD</th> <th>OPD</th>
<th>Jumlah</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -32,49 +33,54 @@ ...@@ -32,49 +33,54 @@
<script src="/static/datatables/media/js/jquery.dataTables.ext.js"></script> <script src="/static/datatables/media/js/jquery.dataTables.ext.js"></script>
<script src="/static/datatables/extensions/TableTools/media/js/ZeroClipboard.js"></script> <script src="/static/datatables/extensions/TableTools/media/js/ZeroClipboard.js"></script>
<script src="/static/datatables/media/js/dataTables.bootstrap.js"></script> <script src="/static/datatables/media/js/dataTables.bootstrap.js"></script>
<script> <script>
var mID; var mID;
var oTable; var oTable;
var iPos; var iPos;
var oFormUrl = "/arsts/"; var oFormUrl = "/arsts/";
var oTableUrl = oFormUrl+"grid/act"; var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () { $(document).ready(function () {
oTable = $('#table1').dataTable({ oTable = $('#table1').dataTable({
"sAjaxSource": oTableUrl, "sAjaxSource" : oTableUrl,
"bServerSide": true, "bServerSide" : true,
"bProcessing": true, "bProcessing" : true,
"sDom": '<"toolbar">lfrtip', "sDom" : '<"toolbar">lfrtip',
"bScrollCollapse": true, "bScrollCollapse": true,
"bSort": true, "bSort" : true,
"bInfo": false, "bInfo" : false,
"bFilter": true, "bFilter" : true,
"bAutoWidth": false, "bAutoWidth" : false,
"bPaginate": true, "bPaginate" : true,
"sPaginationType": "full_numbers", "sPaginationType": "full_numbers",
"lengthMenu": [ "lengthMenu": [
[10, 25, 50, -1], [10, 25, 50, -1],
[10, 25, 50, "All"] [10, 25, 50, "All"]
], ],
"aoColumnDefs": [ "aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]} {"bSearchable": false, "bVisible": false, "aTargets": [0]}
], ],
"aoColumns": [ "aoColumns": [
null, null,
{"sWidth": "100px", "sClass": "left"}, {"sWidth": "100px", "sClass": "left"},
{"sWidth": "40px"},
null, null,
{"sWidth": "100px", "sClass": "right"},
null, null,
{"sWidth": "80px", "sClass": "right"},
], ],
}); });
var tb_array = [ var tb_array = [
'<div class="btn-group pull-left">', '<div class="btn-group pull-left">',
' <button id="btn_tambah" class="btn btn btn-primary pull-left" type="button">Tambah</button>', ' <button id="btn_tambah" class="btn btn btn-primary pull-left" type="button">Tambah</button>',
' <button id="btn_edit" class="btn btn btn-primary pull-left" type="button">Edit</button>', ' <button id="btn_edit" class="btn btn btn-primary pull-left" type="button">Edit</button>',
' <button id="btn_delete" class="btn btn btn-danger pull-left" type="button">Hapus</button>', ' <button id="btn_delete" class="btn btn btn-danger pull-left" type="button">Hapus</button>',
' <button id="btn_print" class="btn btn btn-primary pull-left" type="button">Cetak</button>', ' <button id="btn_print" class="btn btn btn-primary pull-left" type="button">Cetak</button>',
' <button id="btn_close" class="btn btn btn-warning" type="button">Tutup</button>', ' <button id="btn_close" class="btn btn btn-warning" type="button">Tutup</button>',
' &nbsp;', ' &nbsp;',
'</div>', '</div>',
]; ];
......
...@@ -61,10 +61,12 @@ ...@@ -61,10 +61,12 @@
"bAutoWidth" : false, "bAutoWidth" : false,
"bPaginate" : true, "bPaginate" : true,
"sPaginationType" : "full_numbers", "sPaginationType" : "full_numbers",
"lengthMenu": [ "lengthMenu": [
[10, 25, 50, -1], [10, 25, 50, -1],
[10, 25, 50, "All"] [10, 25, 50, "All"]
], ],
"aoColumnDefs": [ "aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]} {"bSearchable": false, "bVisible": false, "aTargets": [0]}
], ],
...@@ -77,7 +79,7 @@ ...@@ -77,7 +79,7 @@
null, null,
null, null,
{"sWidth": "75px", "sClass": "right"}, {"sWidth": "75px", "sClass": "right"},
{"sWidth": "50px", "sClass": "center"}, {"sWidth": "60px", "sClass": "center"},
{"sWidth": "50px", "sClass": "center"}, {"sWidth": "50px", "sClass": "center"},
], ],
......
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Akun<b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Akun<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="/logout">${request.user and request.user.nice_username()} Keluar</a></li> <li><a href="/logout">${request.user and request.user.nice_username()} Keluar</a></li>
<li><a href="/password">Ubah password</a></li> <li><a href="/password">Ubah Kata Sandi</a></li>
</ul> </ul>
</li> </li>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<h3 class="panel-title">Warning</h3> <h3 class="panel-title">Warning</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
Hapus Objek ID #${row.id} ${row.nama} ? Hapus Objek # ${row.kode} ${row.nama} ?
</div> </div>
</div> </div>
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
<thead> <thead>
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Registrasi</th> <th>Kode Subjek</th>
<th>No.</th> <th>Kode Objek</th>
<th>Uraian</th> <th>Uraian</th>
<th>Rekening</th> <th>Rekening</th>
<th>Wilayah</th> <th>Wilayah</th>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
"aoColumns": [ "aoColumns": [
null, null,
{"sWidth": "100px", "sClass": "left"}, {"sWidth": "100px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"}, {"sWidth": "80px", "sClass": "center"},
null, null,
{"sWidth": "75px", "sClass": "center"}, {"sWidth": "75px", "sClass": "center"},
null, null,
......
<html metal:use-macro="load: ../base.pt"> <html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550"> <div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Tambah Tarif</h4> <h4>Tambah Tarif</h4>
=======
<h4>Tambah Pajak</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr> <hr>
<!--div tal:content="structure form"/--> <!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
<html metal:use-macro="load: ../base.pt"> <html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550"> <div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Edit Tarif</h4> <h4>Edit Tarif</h4>
=======
<h4>Edit Pegawai</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr> <hr>
<!--div tal:content="structure form"/--> <!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
<div metal:fill-slot="content"> <div metal:fill-slot="content">
<link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet"> <link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet">
<link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet"> <link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet">
<h4>Tarif</h4> <h4>Tarif</h4>
<hr> <hr>
<div class="container"> <div class="container">
......
...@@ -14,60 +14,48 @@ ...@@ -14,60 +14,48 @@
</div> </div>
</div> </div>
<div class="col-md-12"> <div class="col-md-13">
<!--no_skpd -------------------------------> <!--npwpd ------------------------------->
<div class="form-group" tal:define="field form['no_skpd']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['npwpd']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger" ${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label> tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9"> <div class="col-md-8">
${structure:field.serialize()} ${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error" <p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()"> tal:repeat="error field.error.messages()">
${error}</p> ${error}</p>
</div> </div>
</div> </div>
<!--email ------------------------------->
<div class="form-group" tal:define="field form['email']" id="item-${field.oid}"> <!--Bulan dan Tahun ------------------------------->
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="control-label col-md-2">
Bulan</div>
<div class="col-md-2">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<div class="control-label col-md-2">
Tahun</div>
<div class="col-md-3">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--no_handphone ------------------------------->
<div class="form-group" tal:define="field form['no_handphone']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--g-recaptcha ------------------------------->
<div class="form-group"> <div class="form-group">
<div class="col-md-offset-4"> <label class="control-label col-md-3">Periode :<span class="text text-danger">&nbsp*</span></label>
<div class="g-recaptcha" data-sitekey="6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_"></div> <div class="col-md-4" tal:define="field form['m_pjk_bln']" id="item-${field.oid}">
</div> <label for="${field.oid}" class="control-label col-md-4" id="req-${field.oid}">${field.title}</label>
<div class="col-md-7">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="col-md-4" tal:define="field form['m_pjk_thn']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">${field.title}</label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
</div> </div>
<!--g-recaptcha ------------------------------->
<!--div class="form-group">
<div class="col-md-offset-4">
<div class="g-recaptcha" data-sitekey="6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_"></div>
</div>
</div-->
<!--Button -------------------------------> <!--Button ------------------------------->
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"> <label class="control-label col-md-3">
...@@ -79,6 +67,204 @@ ...@@ -79,6 +67,204 @@
value="cancel">Batal</button> value="cancel">Batal</button>
</div> </div>
</div><hr>
<!--INFORMIX ------------------------------->
<div class="form-group">
<!--kd_bayar ------------------------------->
<label for="kd_bayar" class="control-label col-md-3" id="req-kd_bayar">
Kode Bayar </label>
<div class="col-md-4" tal:define="field form['kd_bayar']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--kd_status ------------------------------->
<label for="kd_status" class="control-label col-md-2" id="req-kd_status">
Status.Bayar </label>
<div class="col-md-3" tal:define="field form['kd_status']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--npwpd1 ------------------------------->
<label for="npwpd1" class="control-label col-md-3" id="req-npwpd1">
NPWPD </label>
<div class="col-md-9" tal:define="field form['npwpd1']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--nm_perus ------------------------------->
<label for="nm_perus" class="control-label col-md-3" id="req-nm_perus">
Nama </label>
<div class="col-md-9" tal:define="field form['nm_perus']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--al_perus ------------------------------->
<label for="al_perus" class="control-label col-md-3" id="req-al_perus">
Alamat </label>
<div class="col-md-9" tal:define="field form['al_perus']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--Volume/NPS ------------------------------->
<label for="vol_air" class="control-label col-md-3" id="req-vol_air">
Volume </label>
<div class="col-md-3" tal:define="field form['vol_air']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--npa ------------------------------->
<label for="npa" class="control-label col-md-3" id="req-npa">
NPS </label>
<div class="col-md-3" tal:define="field form['npa']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--bea_pok_pjk ------------------------------->
<label for="bea_pok_pjk" class="control-label col-md-3" id="req-bea_pok_pjk">
Bea Pokok Pjk </label>
<div class="col-md-3" tal:define="field form['bea_pok_pjk']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--bea_den_pjk ------------------------------->
<label for="bea_den_pjk" class="control-label col-md-3" id="req-bea_den_pjk">
Bea Denda Pjk </label>
<div class="col-md-3" tal:define="field form['bea_den_pjk']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--Periode ------------------------------->
<label class="control-label col-md-3">
Periode </label>
<label for="m_pjk_bln1" class="control-label col-md-1" id="req-m_pjk_bln1">
Bulan </label>
<div class="col-md-2" tal:define="field form['m_pjk_bln1']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--Bea Denda Pjk ------------------------------->
<label for="m_pjk_thn1" class="control-label col-md-3" id="req-m_pjk_thn1">
Tahun </label>
<div class="col-md-3" tal:define="field form['m_pjk_thn1']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--tgl_tetap ------------------------------->
<label for="tgl_tetap" class="control-label col-md-3" id="req-tgl_tetap">
Tgl Penetapan </label>
<div class="col-md-3" tal:define="field form['tgl_tetap']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<label for="tgl_jt_tempo" class="control-label col-md-3" id="req-tgl_jt_tempo">
Tgl Jth Tempo </label>
<div class="col-md-3" tal:define="field form['tgl_jt_tempo']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--keterangan ------------------------------->
<label for="keterangan" class="control-label col-md-3" id="req-keterangan">
Keterangan </label>
<div class="col-md-9" tal:define="field form['keterangan']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
......
<html metal:use-macro="load: base.pt"> <html metal:use-macro="load: base.pt">
<div metal:fill-slot="content"> <div metal:fill-slot="content" class="form-signin">
<link rel="stylesheet" href="/static/css/signin.css">
<div tal:content="structure form"/> <div class="container-fluid">
<h4 class="form-signin-heading">Ubah Kata Sandi</h4>
</div> <hr>
</html> <div tal:content="structure form"/>
</div>
</div> <!-- /container -->
</html>
\ No newline at end of file \ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<div metal:fill-slot="content" class="form-550"> <div metal:fill-slot="content" class="form-550">
<script src="https://www.google.com/recaptcha/api.js" async defer></script> <script src="https://www.google.com/recaptcha/api.js" async defer></script>
<h4>Registrasi e-Samsat</h4> <h4>Registrasi e-Samsat</h4>
<!--h4>Registrasi e-PKB</h4-->
<hr> <hr>
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
class="form-horizontal"> class="form-horizontal">
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
</div> </div>
</div> </div>
<div class="col-md-12"> <div class="col-md-13">
<!--no_rangka -------------------------------> <!--no_rangka ------------------------------->
<div class="form-group" tal:define="field form['no_rangka']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['no_rangka']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
...@@ -27,8 +28,8 @@ ...@@ -27,8 +28,8 @@
${error}</p> ${error}</p>
</div> </div>
</div> </div>
<!--nik -------------------------------> <!--no_ktp ------------------------------->
<div class="form-group" tal:define="field form['nik']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['no_ktp']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger" ${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label> tal:condition="field.required">&nbsp*</span></label>
...@@ -52,7 +53,7 @@ ...@@ -52,7 +53,7 @@
</div> </div>
</div> </div>
<!--no_handphone -------------------------------> <!--no_handphone ------------------------------->
<div class="form-group" tal:define="field form['no_handphone']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['no_hp']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger" ${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label> tal:condition="field.required">&nbsp*</span></label>
...@@ -64,12 +65,11 @@ ...@@ -64,12 +65,11 @@
</div> </div>
</div> </div>
<!--g-recaptcha -------------------------------> <!--g-recaptcha ------------------------------->
<div class="form-group"> <!--div class="form-group">
${private_key} <div class="col-md-offset-4">
<div class="col-md-offset-4" tal:condition="1"> <div class="g-recaptcha" data-sitekey="6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_"></div>
<div class="g-recaptcha" data-sitekey="${private_key}"></div>
</div>
</div> </div>
</div!-->
<!--Button -------------------------------> <!--Button ------------------------------->
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"> <label class="control-label col-md-3">
...@@ -81,7 +81,356 @@ ...@@ -81,7 +81,356 @@
value="cancel">Batal</button> value="cancel">Batal</button>
</div> </div>
</div><hr>
<!--INFORMIX ------------------------------->
<div class="form-group">
<!--kd_bayar ------------------------------->
<label for="kd_bayar" class="control-label col-md-3" id="req-kd_bayar">
Kode Bayar </label>
<div class="col-md-4" tal:define="field form['kd_bayar']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--tg_bayar_bank ------------------------------->
<label for="tg_bayar_bank" class="control-label col-md-2" id="req-tg_bayar_bank">
Tgl Bayar </label>
<div class="col-md-3" tal:define="field form['tg_bayar_bank']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--no_rangka1 ------------------------------->
<label for="no_rangka1" class="control-label col-md-3" id="req-no_rangka1">
No Rangka </label>
<div class="col-md-4" tal:define="field form['no_rangka1']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--no_polisi ------------------------------->
<label for="no_polisi" class="control-label col-md-2" id="req-no_polisi">
No Polisi </label>
<div class="col-md-3" tal:define="field form['no_polisi']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--no_ktp1 ------------------------------->
<label for="no_ktp1" class="control-label col-md-3" id="req-no_ktp">
No Identitas </label>
<div class="col-md-9" tal:define="field form['no_ktp1']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--ket ------------------------------->
<label for="ket" class="control-label col-md-3" id="req-ket">
Keterangan </label>
<div class="col-md-9" tal:define="field form['ket']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--nm_pemilik ------------------------------->
<label for="nm_pemilik" class="control-label col-md-3" id="req-nm_pemilik">
Nama Pemilik </label>
<div class="col-md-9" tal:define="field form['nm_pemilik']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--warna_tnkb ------------------------------->
<label for="warna_tnkb" class="control-label col-md-3" id="req-warna_tnkb">
Warna TNKB </label>
<div class="col-md-3" tal:define="field form['warna_tnkb']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--nm_merek_kb ------------------------------->
<label for="nm_merek_kb" class="control-label col-md-3" id="req-nm_merek_kb">
Merk Kendaraan </label>
<div class="col-md-3" tal:define="field form['nm_merek_kb']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--nm_model_kb ------------------------------->
<label for="nm_model_kb" class="control-label col-md-3" id="req-nm_model_kb">
Model Kendaraan </label>
<div class="col-md-3" tal:define="field form['nm_model_kb']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--th_buatan ------------------------------->
<label for="th_buatan" class="control-label col-md-3" id="req-th_buatan">
Thn Pembuatan </label>
<div class="col-md-3" tal:define="field form['th_buatan']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--tg_akhir_pjklm ------------------------------->
<label for="tg_akhir_pjklm" class="control-label col-md-3" id="req-tg_akhir_pjklm">
Tgl Pajak Lama </label>
<div class="col-md-3" tal:define="field form['tg_akhir_pjklm']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--tg_akhir_pjkbr ------------------------------->
<label for="tg_akhir_pjkbr" class="control-label col-md-3" id="req-tg_akhir_pjkbr">
Tgl Pajak Baru </label>
<div class="col-md-3" tal:define="field form['tg_akhir_pjkbr']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--bbn_pok ------------------------------->
<label for="bbn_pok" class="control-label col-md-3" id="req-bbn_pok">
Pokok BBN </label>
<div class="col-md-3" tal:define="field form['bbn_pok']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--bbn_den ------------------------------->
<label for="bbn_den" class="control-label col-md-3" id="req-bbn_den">
Denda BBN </label>
<div class="col-md-3" tal:define="field form['bbn_den']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--pkb_pok ------------------------------->
<label for="pkb_pok" class="control-label col-md-3" id="req-pkb_pok">
Pokok PKB </label>
<div class="col-md-3" tal:define="field form['pkb_pok']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--pkb_den ------------------------------->
<label for="pkb_den" class="control-label col-md-3" id="req-pkb_den">
Denda PKB </label>
<div class="col-md-3" tal:define="field form['pkb_den']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--swd_pok ------------------------------->
<label for="swd_pok" class="control-label col-md-3" id="req-swd_pok">
Pokok SWDKLLJ </label>
<div class="col-md-3" tal:define="field form['swd_pok']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--swd_den ------------------------------->
<label for="swd_den" class="control-label col-md-3" id="req-swd_den">
Denda SWDKLLJ </label>
<div class="col-md-3" tal:define="field form['swd_den']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--adm_stnk ------------------------------->
<label for="adm_stnk" class="control-label col-md-3" id="req-adm_stnk">
Adm. STNK </label>
<div class="col-md-3" tal:define="field form['adm_stnk']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--adm_tnkb ------------------------------->
<label for="adm_tnkb" class="control-label col-md-3" id="req-adm_tnkb">
Adm. TNKB </label>
<div class="col-md-3" tal:define="field form['adm_tnkb']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--jumlah ------------------------------->
<label for="jumlah" class="control-label col-md-3" id="req-jumlah">
Jumlah </label>
<div class="col-md-4" tal:define="field form['jumlah']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
<!--kd_status ------------------------------->
<label for="kd_status" class="control-label col-md-2" id="req-kd_status">
Status.Bayar</label>
<div class="col-md-3" tal:define="field form['kd_status']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--kd_trn_bank ------------------------------->
<label for="kd_trn_bank" class="control-label col-md-3" id="req-kd_trn_bank">
NTB </label>
<div class="col-md-9" tal:define="field form['kd_trn_bank']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<div class="form-group">
<!--kd_trn_dpd ------------------------------->
<label for="kd_trn_dpd" class="control-label col-md-3" id="req-kd_trn_dpd">
NTP </label>
<div class="col-md-9" tal:define="field form['kd_trn_dpd']" id="item-${field.oid}">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
</form> </form>
......
<html metal:use-macro="load: ../base.pt"> <html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content"> <div metal:fill-slot="content" class="form-550">
<h1>Edit User</h1> <script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div tal:content="structure form"/> <h4>Hasil Registrasi e-Samsat</h4>
<hr>
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
class="form-horizontal">
<fieldset class="deformFormFieldset">
<input type="hidden" name="_charset_" />
<input type="hidden" name="__formid__" value="deform"/>
<div tal:condition="'id' in form">
<div tal:define="field form['id']" style="display: none;">
{structure:field.serialize()}
</div>
</div>
<div class="col-md-13">
<!--no_rangka ------------------------------->
<div class="form-group" tal:define="field form['no_rangka']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--no_ktp ------------------------------->
<div class="form-group" tal:define="field form['no_ktp']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--email ------------------------------->
<div class="form-group" tal:define="field form['email']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--no_handphone ------------------------------->
<div class="form-group" tal:define="field form['no_hp']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--g-recaptcha ------------------------------->
<!--div class="form-group">
<div class="col-md-offset-4">
<div class="g-recaptcha" data-sitekey="6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_"></div>
</div>
</div!-->
<!--Button ------------------------------->
<div class="form-group">
<label class="control-label col-md-3">
</label>
<div class="col-md-9">
<button id="deformsave" name="simpan" type="submit" class="btn btn-primary "
value="simpan">Simpan</button>
<button id="deformcancel" name="cancel" type="submit" class="btn btn-default "
value="cancel">Batal</button>
</div>
</div><hr>
<!--INFORMIX ------------------------------->
<div class="form-group">
<!--kd_bayar ------------------------------->
<label for="kd_bayar" class="control-label col-md-3" id="req-kd_bayar">
Kode Bayar </label>
<div class="col-md-4">
<input id="kd_bayar" class=" form-control " readonly type="text" value="" name="kd_bayar">
</div>
<!--tg_bayar_bank ------------------------------->
<label for="tg_bayar_bank" class="control-label col-md-2" id="req-tg_bayar_bank">
Tgl Bayar </label>
<div class="col-md-3">
<input id="tg_bayar_bank" class=" form-control " readonly type="text" value="" name="tg_bayar_bank">
</div>
</div>
<div class="form-group">
<!--no_rangka ------------------------------->
<label for="no_rangka1" class="control-label col-md-3" id="req-no_rangka1">
No Rangka </label>
<div class="col-md-4">
<input id="no_rangka1" class=" form-control " readonly type="text" value="" name="no_rangka1">
</div>
<!--no_polisi ------------------------------->
<label for="no_polisi" class="control-label col-md-2" id="req-no_polisi">
No Polisi </label>
<div class="col-md-3">
<input id="no_polisi" class=" form-control " readonly type="text" value="" name="no_polisi">
</div>
</div>
<div class="form-group">
<!--no_ktp ------------------------------->
<label for="no_ktp1" class="control-label col-md-3" id="req-no_ktp1">
No Identitas </label>
<div class="col-md-9">
<input id="no_ktp1" class=" form-control " readonly type="text" value="" name="no_ktp1">
</div>
</div>
<div class="form-group">
<!--ket ------------------------------->
<label for="ket" class="control-label col-md-3" id="req-ket">
Keterangan </label>
<div class="col-md-9">
<input id="ket" class=" form-control " readonly type="text" value="" name="ket">
</div>
</div>
<div class="form-group">
<!--nm_pemilik ------------------------------->
<label for="nm_pemilik" class="control-label col-md-3" id="req-nm_pemilik">
Nama Pemilik </label>
<div class="col-md-9">
<input id="nm_pemilik" class=" form-control " readonly type="text" value="" name="nm_pemilik">
</div>
</div>
<div class="form-group">
<!--warna_tnkb ------------------------------->
<label for="warna_tnkb" class="control-label col-md-3" id="req-warna_tnkb">
Warna TNKB </label>
<div class="col-md-3">
<input id="warna_tnkb" class=" form-control " readonly type="text" value="" name="warna_tnkb">
</div>
<!--nm_merek_kb ------------------------------->
<label for="nm_merek_kb" class="control-label col-md-3" id="req-nm_merek_kb">
Merk Kendaraan </label>
<div class="col-md-3">
<input id="nm_merek_kb" class=" form-control " readonly type="text" value="" name="nm_merek_kb">
</div>
</div>
<div class="form-group">
<!--nm_model_kb ------------------------------->
<label for="nm_model_kb" class="control-label col-md-3" id="req-nm_model_kb">
Model Kendaraan </label>
<div class="col-md-3">
<input id="nm_model_kb" class=" form-control " readonly type="text" value="" name="nm_model_kb">
</div>
<!--th_buatan ------------------------------->
<label for="th_buatan" class="control-label col-md-3" id="req-th_buatan">
Thn Pembuatan </label>
<div class="col-md-3">
<input id="th_buatan" class=" form-control " readonly type="text" value="" name="th_buatan">
</div>
</div>
<div class="form-group">
<!--tg_akhir_pjklm ------------------------------->
<label for="tg_akhir_pjklm" class="control-label col-md-3" id="req-tg_akhir_pjklm">
Tgl Pajak Lama </label>
<div class="col-md-3">
<input id="tg_akhir_pjklm" class=" form-control " readonly type="text" value="" name="tg_akhir_pjklm">
</div>
<!--tg_akhir_pjkbr ------------------------------->
<label for="tg_akhir_pjkbr" class="control-label col-md-3" id="req-tg_akhir_pjkbr">
Tgl Pajak Baru </label>
<div class="col-md-3">
<input id="tg_akhir_pjkbr" class=" form-control " readonly type="text" value="" name="tg_akhir_pjkbr">
</div>
</div>
<div class="form-group">
<!--bbn_pok ------------------------------->
<label for="bbn_pok" class="control-label col-md-3" id="req-bbn_pok">
Pokok BBN </label>
<div class="col-md-3">
<input id="bbn_pok" class=" form-control " readonly type="text" value="" name="bbn_pok">
</div>
<!--bbn_den ------------------------------->
<label for="bbn_den" class="control-label col-md-3" id="req-bbn_den">
Denda BBN </label>
<div class="col-md-3">
<input id="bbn_den" class=" form-control " readonly type="text" value="" name="bbn_den">
</div>
</div>
<div class="form-group">
<!--pkb_pok ------------------------------->
<label for="pkb_pok" class="control-label col-md-3" id="req-pkb_pok">
Pokok PKB </label>
<div class="col-md-3">
<input id="pkb_pok" class=" form-control " readonly type="text" value="" name="pkb_pok">
</div>
<!--pkb_den ------------------------------->
<label for="pkb_den" class="control-label col-md-3" id="req-pkb_den">
Denda PKB </label>
<div class="col-md-3">
<input id="pkb_den" class=" form-control " readonly type="text" value="" name="pkb_den">
</div>
</div>
<div class="form-group">
<!--swd_pok ------------------------------->
<label for="swd_pok" class="control-label col-md-3" id="req-swd_pok">
Pokok SWDKLLJ </label>
<div class="col-md-3">
<input id="swd_pok" class=" form-control " readonly type="text" value="" name="swd_pok">
</div>
<!--swd_den ------------------------------->
<label for="swd_den" class="control-label col-md-3" id="req-swd_den">
Denda SWDKLLJ </label>
<div class="col-md-3">
<input id="swd_den" class=" form-control " readonly type="text" value="" name="swd_den">
</div>
</div>
<div class="form-group">
<!--adm_stnk ------------------------------->
<label for="adm_stnk" class="control-label col-md-3" id="req-adm_stnk">
Adm. STNK </label>
<div class="col-md-3">
<input id="adm_stnk" class=" form-control " readonly type="text" value="" name="adm_stnk">
</div>
<!--adm_tnkb ------------------------------->
<label for="adm_tnkb" class="control-label col-md-3" id="req-adm_tnkb">
Adm. TNKB </label>
<div class="col-md-3">
<input id="adm_tnkb" class=" form-control " readonly type="text" value="" name="adm_tnkb">
</div>
</div>
<div class="form-group">
<!--jumlah ------------------------------->
<label for="jumlah" class="control-label col-md-3" id="req-jumlah">
Jumlah </label>
<div class="col-md-4">
<input id="jumlah" class=" form-control " readonly type="text" value="" name="jumlah">
</div>
<!--kd_status ------------------------------->
<label for="kd_status" class="control-label col-md-2" id="req-kd_status">
Status.Bayar</label>
<div class="col-md-3">
<input id="kd_status" class=" form-control " readonly type="text" value="" name="kd_status">
</div>
</div>
<div class="form-group">
<!--kd_trn_bank ------------------------------->
<label for="kd_trn_bank" class="control-label col-md-3" id="req-kd_trn_bank">
NTB </label>
<div class="col-md-9">
<input id="kd_trn_bank" class=" form-control " readonly type="text" value="" name="kd_trn_bank">
</div>
</div>
<div class="form-group">
<!--kd_trn_dpd ------------------------------->
<label for="kd_trn_dpd" class="control-label col-md-3" id="req-kd_trn_dpd">
NTP </label>
<div class="col-md-9">
<input id="kd_trn_dpd" class=" form-control " readonly type="text" value="" name="kd_trn_dpd">
</div>
</div>
</div>
</fieldset>
</form>
</div> </div>
</html> </html>
<html metal:use-macro="load: ../base.pt"> <html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550"> <div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Edit Kode Rekening</h4> <h4>Edit Kode Rekening</h4>
=======
<h4>Edit Rekening</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr> <hr>
<!--div tal:content="structure form"/--> <!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
...@@ -3,12 +3,7 @@ ...@@ -3,12 +3,7 @@
<div metal:fill-slot="content"> <div metal:fill-slot="content">
<link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet"> <link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet">
<link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet"> <link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet">
<<<<<<< HEAD
<h4>Kode Rekening</h4> <h4>Kode Rekening</h4>
=======
<h4>Rekening</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr> <hr>
<!--div class="container"> <!--div class="container">
<form class="form-inline" role="form" id="frm_upload" name="frm_upload"> <form class="form-inline" role="form" id="frm_upload" name="frm_upload">
......
...@@ -9,18 +9,6 @@ ...@@ -9,18 +9,6 @@
<input type="hidden" name="__formid__" value="deform"/> <input type="hidden" name="__formid__" value="deform"/>
<div class="col-md-12"> <div class="col-md-12">
<!--user_id ------------------------------->
<div class="form-group" tal:define="field form['user_id']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--kode -------------------------------> <!--kode ------------------------------->
<div class="form-group" tal:define="field form['kode']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['kode']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
...@@ -106,7 +94,7 @@ ...@@ -106,7 +94,7 @@
</div> </div>
</div> </div>
<!--propinsi -------------------------------> <!--propinsi ------------------------------->
<div class="form-group" tal:define="field form['propinsi']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['provinsi']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger" ${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label> tal:condition="field.required">&nbsp*</span></label>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<h3 class="panel-title">Warning</h3> <h3 class="panel-title">Warning</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
Hapus Subjek ID #${row.id} ${row.nama} ? Hapus Subjek # ${row.kode} ${row.nama} ?
</div> </div>
</div> </div>
......
...@@ -9,18 +9,6 @@ ...@@ -9,18 +9,6 @@
<input type="hidden" name="__formid__" value="deform"/> <input type="hidden" name="__formid__" value="deform"/>
<div class="col-md-12"> <div class="col-md-12">
<!--user_id ------------------------------->
<div class="form-group" tal:define="field form['user_id']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
${structure:field.serialize()}
<p id="error-${field.oid}" class="help-block" tal:condition="field.error"
tal:repeat="error field.error.messages()">
${error}</p>
</div>
</div>
<!--kode -------------------------------> <!--kode ------------------------------->
<div class="form-group" tal:define="field form['kode']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['kode']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
...@@ -106,7 +94,7 @@ ...@@ -106,7 +94,7 @@
</div> </div>
</div> </div>
<!--propinsi -------------------------------> <!--propinsi ------------------------------->
<div class="form-group" tal:define="field form['propinsi']" id="item-${field.oid}"> <div class="form-group" tal:define="field form['provinsi']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}"> <label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger" ${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label> tal:condition="field.required">&nbsp*</span></label>
......
...@@ -15,6 +15,7 @@ from deform import ( ...@@ -15,6 +15,7 @@ from deform import (
from ..models import DBSession, User, UserGroup, Group from ..models import DBSession, User, UserGroup, Group
from ..models.isipkd import( from ..models.isipkd import(
SubjekPajak, SubjekPajak,
ARInvoice
) )
from datatables import ( from datatables import (
...@@ -81,7 +82,7 @@ def form_validator(form, value): ...@@ -81,7 +82,7 @@ def form_validator(form, value):
err_user() err_user()
elif found: elif found:
err_user() err_user()
if 'login' in value and int(value['user_id'])==0: if 'login' in value: # and int(value['user_id'])==0:
found = User.get_by_name(value['kode']) found = User.get_by_name(value['kode'])
if r: if r:
if found and found.id != r.id: if found and found.id != r.id:
...@@ -90,11 +91,13 @@ def form_validator(form, value): ...@@ -90,11 +91,13 @@ def form_validator(form, value):
err_user() err_user()
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
'''
user_id = colander.SchemaNode( user_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget = deferred_user, widget = deferred_user,
#oid="user_id", #oid="user_id",
title="User") title="User")
'''
kode = colander.SchemaNode( kode = colander.SchemaNode(
colander.String(), colander.String(),
) )
...@@ -122,7 +125,7 @@ class AddSchema(colander.Schema): ...@@ -122,7 +125,7 @@ class AddSchema(colander.Schema):
colander.String(), colander.String(),
missing=colander.drop missing=colander.drop
) )
propinsi = colander.SchemaNode( provinsi = colander.SchemaNode(
colander.String(), colander.String(),
missing=colander.drop missing=colander.drop
) )
...@@ -152,9 +155,9 @@ def get_form(request, class_form): ...@@ -152,9 +155,9 @@ def get_form(request, class_form):
schema.request = request schema.request = request
return Form(schema, buttons=('simpan','batal')) return Form(schema, buttons=('simpan','batal'))
def save(values, row=None): def save(request,values, row=None):
login = None login = None
if 'login' in values and values['login'] and int(values['user_id'])==0: if 'login' in values and values['login']: # and int(values['user_id'])==0:
login = User() login = User()
login.user_password = values['kode'] login.user_password = values['kode']
login.status = values['status'] login.status = values['status']
...@@ -166,29 +169,36 @@ def save(values, row=None): ...@@ -166,29 +169,36 @@ def save(values, row=None):
if not row: if not row:
row = SubjekPajak() row = SubjekPajak()
row.from_dict(values) row.from_dict(values)
#Sementara untuk user yg masuk ke Subjek adalah user yg login dan yg menginputkan data subjek (Bukan subjek yg dibuatkan user login)
if login: if login:
row.user_id=login.id row.user_id=request.user.id #login.id
else:
row.user_id=request.user.id
if not row.user_id: if not row.user_id:
row.user_id=None row.user_id=None
DBSession.add(row) DBSession.add(row)
DBSession.flush() DBSession.flush()
if row.user_id: if row.user_id:
q = DBSession.query(UserGroup).join(Group).filter(UserGroup.user_id==row.user_id, q = DBSession.query(UserGroup).join(Group).filter(UserGroup.user_id==row.user_id,
Group.group_name=='wp').first() Group.group_name=='wp').first()
if not q: if not q:
usergroup = UserGroup() usergroup = UserGroup()
usergroup.user_id = row.user_id usergroup.user_id = row.user_id
usergroup.group_id = DBSession.query(Group.id).filter_by(group_name='wp').scalar() usergroup.group_id = DBSession.query(Group.id).filter_by(group_name='wp').scalar()
DBSession.add(usergroup) DBSession.add(usergroup)
DBSession.flush() DBSession.flush()
return row return row
def save_request(values, request, row=None): def save_request(values, request, row=None):
if 'id' in request.matchdict: if 'id' in request.matchdict:
values['id'] = request.matchdict['id'] values['id'] = request.matchdict['id']
row = save(values, row) row = save(request, values, row)
request.session.flash('wp %s sudah disimpan.' % row.kode) request.session.flash('Subjek %s sudah disimpan.' % row.kode)
def route_list(request): def route_list(request):
return HTTPFound(location=request.route_url('wp')) return HTTPFound(location=request.route_url('wp'))
...@@ -224,7 +234,7 @@ def query_id(request): ...@@ -224,7 +234,7 @@ def query_id(request):
return DBSession.query(SubjekPajak).filter_by(id=request.matchdict['id']) return DBSession.query(SubjekPajak).filter_by(id=request.matchdict['id'])
def id_not_found(request): def id_not_found(request):
msg = 'wp ID %s not found.' % request.matchdict['id'] msg = 'Subjek ID %s not found.' % request.matchdict['id']
request.session.flash(msg, 'error') request.session.flash(msg, 'error')
return route_list(request) return route_list(request)
...@@ -232,8 +242,15 @@ def id_not_found(request): ...@@ -232,8 +242,15 @@ def id_not_found(request):
permission='edit') permission='edit')
def view_edit(request): def view_edit(request):
row = query_id(request).first() row = query_id(request).first()
id = row.id
if not row: if not row:
return id_not_found(request) return id_not_found(request)
x = DBSession.query(ARInvoice).filter(ARInvoice.subjek_pajak_id==id).first()
if x:
request.session.flash('Tidak bisa diedit, karena subjek sudah digunakan di daftar bayar.','error')
return route_list(request)
form = get_form(request, EditSchema) form = get_form(request, EditSchema)
if request.POST: if request.POST:
if 'simpan' in request.POST: if 'simpan' in request.POST:
...@@ -261,18 +278,24 @@ def view_edit(request): ...@@ -261,18 +278,24 @@ def view_edit(request):
def view_delete(request): def view_delete(request):
q = query_id(request) q = query_id(request)
row = q.first() row = q.first()
id = row.id
x = DBSession.query(ARInvoice).filter(ARInvoice.subjek_pajak_id==id).first()
if x:
request.session.flash('Tidak bisa dihapus, karena subjek sudah digunakan di daftar bayar.','error')
return route_list(request)
if not row: if not row:
return id_not_found(request) return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel')) form = Form(colander.Schema(), buttons=('delete','cancel'))
if request.POST: if request.POST:
if 'delete' in request.POST: if 'delete' in request.POST:
msg = 'wp ID %d %s has been deleted.' % (row.id, row.kode) msg = 'Subjek %s sudah dihapus.' % (row.kode)
q.delete() q.delete()
DBSession.flush() DBSession.flush()
request.session.flash(msg) request.session.flash(msg)
return route_list(request) return route_list(request)
return dict(row=row, return dict(row=row, form=form.render())
form=form.render())
########## ##########
# Action # # Action #
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!