Commit ae9c745e by aagusti

gilang

1 parent c68590bc
......@@ -7,14 +7,16 @@ class EngInformix(object):
self.database = None
self.user = None
self.password = None
settings = get_settings()
url = settings['otherdb.url']
self.dbtype, url = url.split('://')
user_pass, url = url.split('@')
self.user, self.password = user_pass.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)
return self.conn
......@@ -33,6 +35,7 @@ class EngInformix(object):
cursor.execute(sql)
row = cursor.fetchone()
return row
def query_obj(self, sql):
if not self.conn:
self.connect()
......
......@@ -22,23 +22,66 @@ from ..models import(
User,
CommonModel
)
###########################
#
###########################
#######################
## Model E-SIPKD ##
#######################
class Pkb(DefaultModel,Base):
__tablename__ = 'pkbs'
id = Column(BigInteger, primary_key=True)
nik = Column(String(16))
no_rangka = Column(String(16))
email = Column(String(32))
mobile_phone = Column(String(16))
kd_status = Column(SmallInteger, default=0)
flag_sms = Column(SmallInteger, default=0)
no_ktp = 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):
__tablename__ = 'paps'
id = Column(BigInteger, primary_key=True)
no_skpd = Column(String(16))
email = Column(String(32))
mobile_phone = Column(String(16))
kd_status = Column(SmallInteger, default=0)
kd_bayar = 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):
__tablename__ = 'units'
......@@ -123,6 +166,7 @@ class SubjekPajak(NamaModel, Base):
kecamatan = Column(String(128))
kota = Column(String(128))
user_id = Column(Integer,ForeignKey("users.id"))
provinsi = Column(String(128))
users = relationship("User", backref=backref('subjekpajaks'))
UniqueConstraint('kode')
......
......@@ -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
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
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,8 +45,10 @@ def view_home(request):
# Login #
#########
class Login(colander.Schema):
username = colander.SchemaNode(colander.String())
username = colander.SchemaNode(colander.String(),
title="Nama Pengguna")
password = colander.SchemaNode(colander.String(),
title="Kata Sandi",
widget=widget.PasswordWidget())
......@@ -116,10 +118,13 @@ def view_logout(request):
###################
class Password(colander.Schema):
old_password = colander.SchemaNode(colander.String(),
title="Kata Sandi Lama",
widget=widget.PasswordWidget())
new_password = colander.SchemaNode(colander.String(),
title="Kata Sandi Baru",
widget=widget.PasswordWidget())
retype_password = colander.SchemaNode(colander.String(),
title="Ketik Ulang Kata Sandi",
widget=widget.PasswordWidget())
......
......@@ -16,7 +16,7 @@ from deform import (
widget,
ValidationFailure,
)
from ..tools import _DTnumberformat
from ..tools import _DTnumberformat,_DTstrftime
from ..models import DBSession
from ..models.isipkd import(
ObjekPajak,
......@@ -56,7 +56,7 @@ def view_list(request):
def form_validator(form, value):
def err_kode():
raise colander.Invalid(form,
'Kode invoice %s sudah digunakan oleh ID %d' % (
'Kode STS %s sudah digunakan oleh ID %d' % (
value['kode'], found.id))
def err_name():
......@@ -152,7 +152,7 @@ def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
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):
return HTTPFound(location=request.route_url('arsts'))
......@@ -190,7 +190,7 @@ def query_id(request):
return DBSession.query(ARSts).filter(ARSts.id==request.matchdict['id'])
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')
return route_list(request)
......@@ -227,18 +227,22 @@ def view_edit(request):
def view_delete(request):
q = query_id(request)
row = q.first()
if not row:
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'))
if 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()
DBSession.flush()
request.session.flash(msg)
return route_list(request)
return dict(row=row,
form=form.render())
return dict(row=row, form=form.render())
##########
# Action #
......@@ -253,10 +257,10 @@ def view_act(request):
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama'))
#columns.append(ColumnDT('jumlah'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
query = DBSession.query(ARSts).\
join(Unit)
......
......@@ -140,6 +140,22 @@ def view_delete(request):
return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel'))
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()
DBSession.flush()
......
......@@ -12,6 +12,9 @@ from ..models.isipkd import(
Wilayah, Jabatan, Unit, Rekening, SubjekPajak, Pajak, ObjekPajak
)
#############################
## Untuk perhitungan bunga ##
#############################
def hitung_bunga(pokok, jatuh_tempo):
row = DBSession.query(Param.denda).first()
if row:
......@@ -33,19 +36,33 @@ def hitung_bunga(pokok, jatuh_tempo):
denda = bln_tunggakan * persen_denda / 100 * pokok
return denda
###################################
## Untuk validasi struktur email ##
###################################
def email_validator(node, value):
name, email = parseaddr(value)
if not email or email.find('@') < 0:
raise colander.Invalid(node, 'Invalid email format')
############################
## Untuk pemilihan Status ##
############################
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
return widget.SelectWidget(values=values)
STATUS = (
(1, 'Aktif'),
(0, 'Inaktif'),
)
#############################
## Untuk pemilihan Summary ##
#############################
@colander.deferred
def deferred_status(node, kw):
values = kw.get('daftar_status', [])
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
return widget.SelectWidget(values=values)
SUMMARIES = (
......@@ -53,24 +70,30 @@ SUMMARIES = (
(0, 'Detail'),
)
#############################
## Untuk pemilihan Wilayah ##
#############################
@colander.deferred
def deferred_summary(node, kw):
values = kw.get('daftar_summary', [])
def deferred_wilayah(node, kw):
values = kw.get('daftar_wilayah',[])
return widget.SelectWidget(values=values)
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=[]
d = (0,'Pilih Wilayah')
r.append(d)
for row in rows:
d = (row.id, row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
#############################
## Untuk pemilihan Jabatan ##
#############################
@colander.deferred
def deferred_wilayah(node, kw):
values = kw.get('daftar_wilayah',[])
def deferred_jabatan(node, kw):
values = kw.get('daftar_jabatan',[])
return widget.SelectWidget(values=values)
def daftar_jabatan():
......@@ -83,119 +106,99 @@ def daftar_jabatan():
r.append(d)
return r
####################################
## Untuk pemilihan Unit Kerja/OPD ##
####################################
@colander.deferred
def deferred_jabatan(node, kw):
values = kw.get('daftar_jabatan',[])
def deferred_unit(node, kw):
values = kw.get('daftar_unit',[])
return widget.SelectWidget(values=values)
def daftar_unit():
rows = DBSession.query(Unit).filter_by(level_id=3).all()
r=[]
d = (0,'Pilih OPD')
#d = (0,'Pilih SKPD')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
r.append(d)
return r
@colander.deferred
def deferred_unit(node, kw):
values = kw.get('daftar_unit',[])
return widget.SelectWidget(values=values)
def daftar_rekening():
rows = DBSession.query(Rekening).filter_by(is_summary=0).all()
r=[]
d = (0,'Pilih REKENING')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
##############################
## Untuk pemilihan Rekening ##
##############################
@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()
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
def deferred_user(node, kw):
values = kw.get('daftar_user',[])
return widget.SelectWidget(values=values)
def daftar_pajak():
rows = DBSession.query(Pajak).all()
def daftar_rekening():
rows = DBSession.query(Rekening).filter_by(is_summary=0).all()
r=[]
d = (0,'Pilih PAJAK')
d = (0,'Pilih Rekening')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
###########################
## Untuk pemilihan Pajak ##
###########################
@colander.deferred
def deferred_pajak(node, kw):
values = kw.get('daftar_pajak',[])
return widget.SelectWidget(values=values)
def daftar_subjekpajak():
rows = DBSession.query(SubjekPajak).all()
def daftar_pajak():
rows = DBSession.query(Pajak).all()
r=[]
d = (0,'Pilih SP')
d = (0,'Pilih Pajak')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
############################
## Untuk pemilihan Subjek ##
############################
@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()
def daftar_subjekpajak():
rows = DBSession.query(SubjekPajak).all()
r=[]
d = (0,'Pilih SP')
d = (0,'Pilih Subjek')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
###########################
## Untuk pemilihan Objek ##
###########################
@colander.deferred
def deferred_objekpajak(node, kw):
values = kw.get('daftar_objekpajak',[])
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():
rows = DBSession.query(ObjekPajak).all()
r=[]
d = (0,'Pilih SP')
d = (0,'Pilih Objek')
r.append(d)
for row in rows:
d = (row.id, row.kode+':'+row.nama)
d = (row.id, row.kode+' : '+row.nama)
r.append(d)
return r
##########################
## Untuk pemilihan User ##
##########################
@colander.deferred
def deferred_user(node, kw):
values = kw.get('daftar_user',[])
......@@ -207,10 +210,13 @@ def daftar_user():
d = (0,'Pilih User')
r.append(d)
for row in rows:
d = (row.id, row.user_name+':'+row.email)
d = (row.id, row.user_name+' : '+row.email)
r.append(d)
return r
###########################
## Untuk pemilihan Group ##
###########################
@colander.deferred
def deferred_group(node, kw):
values = kw.get('daftar_group',[])
......@@ -226,6 +232,9 @@ def daftar_group():
r.append(d)
return r
###########################
## Untuk pemilihan Route ##
###########################
@colander.deferred
def deferred_route(node, kw):
values = kw.get('daftar_route',[])
......@@ -241,7 +250,9 @@ def daftar_route():
r.append(d)
return r
## Kumpulan Headofkode & Headofname
######################################
## Kumpulan Headofkode & Headofname ##
######################################
auto_unit_nm = widget.AutocompleteInputWidget(
size=60,
values = '/skpd/hon/act',
......
......@@ -19,7 +19,8 @@ from ..models.isipkd import(
Unit,
Wilayah,
Pajak,
Rekening
Rekening,
ARInvoice
)
from datatables import (
......@@ -105,8 +106,7 @@ class AddSchema(colander.Schema):
title="Pajak"
)
kode = colander.SchemaNode(
colander.String(),
)
colander.String())
nama = colander.SchemaNode(
colander.String(),
title="Uraian")
......@@ -147,7 +147,7 @@ def save_request(values, request, row=None):
values['id'] = request.matchdict['id']
print "****",values, "****", request
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):
return HTTPFound(location=request.route_url('op'))
......@@ -183,7 +183,7 @@ def query_id(request):
return DBSession.query(ObjekPajak).filter_by(id=request.matchdict['id'])
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')
return route_list(request)
......@@ -191,8 +191,15 @@ def id_not_found(request):
permission='edit')
def view_edit(request):
row = query_id(request).first()
id = row.id
if not row:
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)
if request.POST:
if 'simpan' in request.POST:
......@@ -217,18 +224,24 @@ def view_edit(request):
def view_delete(request):
q = query_id(request)
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:
return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel'))
if 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()
DBSession.flush()
request.session.flash(msg)
return route_list(request)
return dict(row=row,
form=form.render())
return dict(row=row, form=form.render())
##########
# Action #
......
import colander
import informixdb
from datetime import (datetime, date)
from time import (strptime, strftime)
from sqlalchemy import (not_, or_)
from time import (strptime, strftime, time, sleep)
from sqlalchemy import (not_, or_, text)
from pyramid.view import (view_config,)
from pyramid.httpexceptions import (HTTPFound,)
from deform import (Form, widget, ValidationFailure,)
from datatables import (ColumnDT, DataTables)
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.isipkd import (Pap)
from ..models.informix import EngInformix
SESS_ADD_FAILED = 'user add failed'
SESS_EDIT_FAILED = 'user edit failed'
......@@ -37,39 +39,201 @@ def form_validator(form, value):
class AddSchema(colander.Schema):
no_skpd = colander.SchemaNode(
npwpd = colander.SchemaNode(
colander.String(),
widget = widget.TextInputWidget(max=5),
title = "NPWPD"
widget = widget.TextInputWidget(max=14),
title = "NPWPD :",
oid="npwpd"
)
email = colander.SchemaNode(
m_pjk_bln = colander.SchemaNode(
colander.String(),
validator=email_validator,
title = "Periode"
title = "Bulan",
oid="m_pjk_bln"
)
no_handphone = colander.SchemaNode(
m_pjk_thn = colander.SchemaNode(
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):
schema = class_form(validator=form_validator)
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(values, user, row=None):
row = {}
row['email'] = 'aagusti@1'
return row
def save(request, values, row=None):
engInformix = EngInformix()
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):
if 'id' in request.matchdict:
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.')
return row
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):
r = dict(form=request.session[session_name])
......@@ -82,30 +246,74 @@ def session_failed(request, session_name):
permission='view')
def view_add(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)
if request.POST:
if 'simpan' in request.POST:
controls = request.POST.items()
try:
c = form.validate(controls)
if private_key:
response = captcha_submit(
'6LcGLQATAAAAAPlQuLEaUUrmAO845hlNKbZeUr1J', #req.args['recaptcha_challenge_field']
data_key,
req.params['g-recaptcha-response'],
private_key, None
)
if not response.is_valid:
req.session.flash(response.error_code,'error')
return dict(form=form)
except ValidationFailure, e:
return dict(form=form)
return dict(form=form, private_key=private_key)
#request.session[SESS_ADD_FAILED] = e.render()
#return HTTPFound(location=request.route_url('pap-add'))
save_request(dict(controls), request)
except ValidationFailure, e:
return dict(form=form, private_key=private_key)
row = save_request(dict(controls), request)
print'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr',row
return HTTPFound(location=request.route_url('pap-edit',id=row.id))
return route_list(request)
elif SESS_ADD_FAILED in request.session:
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)
\ No newline at end of file
import colander
import informixdb
from datetime import (datetime, date)
from time import (strptime, strftime, time, sleep)
......@@ -7,7 +8,7 @@ from pyramid.view import (view_config,)
from pyramid.httpexceptions import (HTTPFound,)
from deform import (Form, widget, ValidationFailure,)
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.isipkd import (Pkb)
from ..models.informix import EngInformix
......@@ -43,34 +44,191 @@ def form_validator(form, value):
class AddSchema(colander.Schema):
no_rangka = colander.SchemaNode(
colander.String(),
widget = widget.TextInputWidget(max=5),
validator=form_validator
widget = widget.TextInputWidget(max=40),
validator=form_validator,
title = 'No. Rangka'
)
nik = colander.SchemaNode(
colander.String()
no_ktp = colander.SchemaNode(
colander.String(),
title = 'No. Identitas'
)
email = colander.SchemaNode(
colander.String(),
validator=email_validator
validator=email_validator,
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"
)
no_handphone = colander.SchemaNode(
colander.String()
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):
schema = class_form(validator=form_validator)
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(values, user, row=None):
pass
def save_request(values, request, row=None):
def save(request, values, row=None):
engInformix = EngInformix()
c_now = datetime.now()
c_date = c_now.strftime('%m-%d-%Y')
c_time = c_now.strftime('%H:%M:%S')
sql = """INSERT INTO v_daftsms (no_rangka, no_ktp, email, no_hp, ivr,
tg_pros_daftar, jam_daftar, kd_status, flag_sms)
VALUES('{no_rangka}', '{no_ktp}', '{email}', '{no_hp}', '{ivr}',
......@@ -78,17 +236,18 @@ def save_request(values, request, row=None):
row = engInformix.execute(sql.format(
no_rangka = values['no_rangka'],
no_ktp = values['nik'],
no_ktp = values['no_ktp'],
email = values['email'],
no_hp = values['no_handphone'],
no_hp = values['no_hp'],
ivr = '11',
c_date = c_date ,
c_time = c_time,
kd_status = '0',
flag_sms = '0'))
kd_status = 0,
flag_sms = 0))
tm_awal = datetime.now()
row_result = None
sql_result = """
SELECT * FROM v_daftsms
WHERE no_rangka= '{no_rangka}' and no_ktp= '{no_ktp}'
......@@ -97,18 +256,20 @@ def save_request(values, request, row=None):
and kd_status='{kd_status}'
""".format(
no_rangka = values['no_rangka'],
no_ktp = values['nik'],
no_ktp = values['no_ktp'],
email = values['email'],
no_hp = values['no_handphone'],
no_hp = values['no_hp'],
ivr = '11',
c_date = c_date ,
c_time = c_time,
kd_status = '0')
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:
......@@ -122,11 +283,60 @@ def save_request(values, request, row=None):
if p:
break
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):
return HTTPFound(location=request.route_url('pkb'))
return HTTPFound(location=request.route_url('pkb-add'))
def session_failed(request, session_name):
r = dict(form=request.session[session_name])
......@@ -141,7 +351,7 @@ def view_add(request):
req = request
settings = get_settings()
print 'XXXXXXXXXX_____________XXXXXXXXXX',settings
print 'X--------_______SETTING INFORMIX______--------X',settings
private_key = settings['recaptcha.private_key']
data_key = settings['recaptcha.private_key']
......@@ -162,15 +372,68 @@ def view_add(request):
return dict(form=form, private_key=private_key)
except ValidationFailure, e:
return dict(form=form, private_key=private_key)
#request.session[SESS_ADD_FAILED] = e.render()
#return HTTPFound(location=request.route_url('pkb-add'))
save_request(dict(controls), request)
row = save_request(dict(controls), request)
print'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr',row
return HTTPFound(location=request.route_url('pkb-edit',id=row.id))
return route_list(request)
elif SESS_ADD_FAILED in request.session:
return session_failed(request, SESS_ADD_FAILED)
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',
permission='view')
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 @@
</div>
</div>
<div class="col-md-6">
<!--arinvoice_id ------------------------------->
<div tal:define="field form['arinvoice_id']">
......
......@@ -202,7 +202,6 @@
<label class="control-label col-md-3">
PEMBAYARAN</label>
</div>
<<<<<<< HEAD
<!--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}">
......@@ -215,8 +214,6 @@
*</p>
</div>
</div>
=======
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<!--bunga ------------------------------->
<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}">
......@@ -237,23 +234,7 @@
tal:repeat="error field.error.messages()">
*</p>
</div>
<<<<<<< HEAD
</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>
......
......@@ -44,23 +44,26 @@
var iPos;
var oFormUrl = "/arsspd/";
var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource": oTableUrl,
"bServerSide": true,
"bProcessing": true,
"sDom": '<"toolbar">lfrtip',
"sAjaxSource" : oTableUrl,
"bServerSide" : true,
"bProcessing" : true,
"sDom" : '<"toolbar">lfrtip',
"bScrollCollapse": true,
"bSort": true,
"bInfo": false,
"bFilter": true,
"bAutoWidth": false,
"bPaginate": true,
"bSort" : true,
"bInfo" : false,
"bFilter" : true,
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType": "full_numbers",
"lengthMenu": [
[10, 25, 50, -1],
[10, 25, 50, "All"]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
......@@ -76,7 +79,7 @@
//{"sWidth": "75px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
{"sWidth": "50px", "sClass": "center"},
{"sWidth": "60px", "sClass": "center"},
],
});
......
......@@ -110,16 +110,16 @@
var mID;
var oTable;
var iPos;
//Nambahin variable sts_id & kondisi untuk pemanggilan grid
var oFormUrl = "/arstsitem/";
var sts_id = $('#id').val();
//Nambahin variable sts_id & kondisi untuk pemanggilan grid
if (!sts_id){
kosong = '0';
var oTableUrl = oFormUrl+"grid/act?sts_id="+kosong;
}
else{
}else{
var oTableUrl = oFormUrl+"grid/act?sts_id="+sts_id;
}
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource" : oTableUrl,
......@@ -153,9 +153,9 @@
var tb_array = [
'<div class="btn-group pull-left">',
' <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_print" class="btn btn btn-primary pull-left" type="button">Cetak</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_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>',
' &nbsp;',
'</div>',
......
......@@ -19,9 +19,10 @@
<tr>
<th>ID</th>
<th>Kode</th>
<th>Tanggal</th>
<th>Uraian</th>
<th>Jumlah</th>
<th>OPD</th>
<th>Jumlah</th>
</tr>
</thead>
<tbody>
......@@ -32,29 +33,33 @@
<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/media/js/dataTables.bootstrap.js"></script>
<script>
var mID;
var oTable;
var iPos;
var oFormUrl = "/arsts/";
var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource": oTableUrl,
"bServerSide": true,
"bProcessing": true,
"sDom": '<"toolbar">lfrtip',
"sAjaxSource" : oTableUrl,
"bServerSide" : true,
"bProcessing" : true,
"sDom" : '<"toolbar">lfrtip',
"bScrollCollapse": true,
"bSort": true,
"bInfo": false,
"bFilter": true,
"bAutoWidth": false,
"bPaginate": true,
"bSort" : true,
"bInfo" : false,
"bFilter" : true,
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType": "full_numbers",
"lengthMenu": [
[10, 25, 50, -1],
[10, 25, 50, "All"]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
......@@ -62,9 +67,10 @@
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "40px"},
null,
{"sWidth": "100px", "sClass": "right"},
null,
{"sWidth": "80px", "sClass": "right"},
],
});
......
......@@ -61,10 +61,12 @@
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType" : "full_numbers",
"lengthMenu": [
[10, 25, 50, -1],
[10, 25, 50, "All"]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
......@@ -77,7 +79,7 @@
null,
null,
{"sWidth": "75px", "sClass": "right"},
{"sWidth": "50px", "sClass": "center"},
{"sWidth": "60px", "sClass": "center"},
{"sWidth": "50px", "sClass": "center"},
],
......
......@@ -87,7 +87,7 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Akun<b class="caret"></b></a>
<ul class="dropdown-menu">
<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>
</li>
......
......@@ -6,7 +6,7 @@
<h3 class="panel-title">Warning</h3>
</div>
<div class="panel-body">
Hapus Objek ID #${row.id} ${row.nama} ?
Hapus Objek # ${row.kode} ${row.nama} ?
</div>
</div>
......
......@@ -16,8 +16,8 @@
<thead>
<tr>
<th>ID</th>
<th>Registrasi</th>
<th>No.</th>
<th>Kode Subjek</th>
<th>Kode Objek</th>
<th>Uraian</th>
<th>Rekening</th>
<th>Wilayah</th>
......@@ -62,7 +62,7 @@
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"},
{"sWidth": "80px", "sClass": "center"},
null,
{"sWidth": "75px", "sClass": "center"},
null,
......
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Tambah Tarif</h4>
=======
<h4>Tambah Pajak</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr>
<!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Edit Tarif</h4>
=======
<h4>Edit Pegawai</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr>
<!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
......@@ -3,7 +3,6 @@
<div metal:fill-slot="content">
<link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet">
<link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet">
<h4>Tarif</h4>
<hr>
<div class="container">
......
......@@ -14,47 +14,34 @@
</div>
</div>
<div class="col-md-12">
<!--no_skpd ------------------------------->
<div class="form-group" tal:define="field form['no_skpd']" id="item-${field.oid}">
<div class="col-md-13">
<!--npwpd ------------------------------->
<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}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
<div class="col-md-9">
<div class="col-md-8">
${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="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">
<!--Bulan dan Tahun ------------------------------->
<div class="form-group">
<label class="control-label col-md-3">Periode :<span class="text text-danger">&nbsp*</span></label>
<div class="col-md-4" tal:define="field form['m_pjk_bln']" id="item-${field.oid}">
<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>
<!--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-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"
......@@ -62,12 +49,13 @@
${error}</p>
</div>
</div>
</div>
<!--g-recaptcha ------------------------------->
<div class="form-group">
<!--div class="form-group">
<div class="col-md-offset-4">
<div class="g-recaptcha" data-sitekey="6LcGLQATAAAAABtqq0J20BATKsZPGXwBVj6i5zk_"></div>
</div>
</div>
</div-->
<!--Button ------------------------------->
<div class="form-group">
<label class="control-label col-md-3">
......@@ -79,6 +67,204 @@
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" 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>
</fieldset>
......
<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>
<div class="container-fluid">
<h4 class="form-signin-heading">Ubah Kata Sandi</h4>
<hr>
<div tal:content="structure form"/>
</div>
</div> <!-- /container -->
</html>
\ No newline at end of file
......@@ -2,6 +2,7 @@
<div metal:fill-slot="content" class="form-550">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<h4>Registrasi e-Samsat</h4>
<!--h4>Registrasi e-PKB</h4-->
<hr>
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
class="form-horizontal">
......@@ -14,7 +15,7 @@
</div>
</div>
<div class="col-md-12">
<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}">
......@@ -27,8 +28,8 @@
${error}</p>
</div>
</div>
<!--nik ------------------------------->
<div class="form-group" tal:define="field form['nik']" id="item-${field.oid}">
<!--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>
......@@ -52,7 +53,7 @@
</div>
</div>
<!--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}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
......@@ -64,12 +65,11 @@
</div>
</div>
<!--g-recaptcha ------------------------------->
<div class="form-group">
${private_key}
<div class="col-md-offset-4" tal:condition="1">
<div class="g-recaptcha" data-sitekey="${private_key}"></div>
</div>
<!--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">
......@@ -81,7 +81,356 @@
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" 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>
</fieldset>
</form>
......
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<h1>Edit User</h1>
<div tal:content="structure form"/>
<div metal:fill-slot="content" class="form-550">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<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>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content" class="form-550">
<<<<<<< HEAD
<h4>Edit Kode Rekening</h4>
=======
<h4>Edit Rekening</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr>
<!--div tal:content="structure form"/-->
<form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
......
......@@ -3,12 +3,7 @@
<div metal:fill-slot="content">
<link href="/static/datatables/extensions/TableTools/css/dataTables.tableTools.min.css" rel="stylesheet">
<link href="/static/datatables/media/css/dataTables.bootstrap.css" rel="stylesheet">
<<<<<<< HEAD
<h4>Kode Rekening</h4>
=======
<h4>Rekening</h4>
>>>>>>> aa2db1210dbe0b6f7b09e18c512117de747379b4
<hr>
<!--div class="container">
<form class="form-inline" role="form" id="frm_upload" name="frm_upload">
......
......@@ -9,18 +9,6 @@
<input type="hidden" name="__formid__" value="deform"/>
<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 ------------------------------->
<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}">
......@@ -106,7 +94,7 @@
</div>
</div>
<!--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}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
......
......@@ -6,7 +6,7 @@
<h3 class="panel-title">Warning</h3>
</div>
<div class="panel-body">
Hapus Subjek ID #${row.id} ${row.nama} ?
Hapus Subjek # ${row.kode} ${row.nama} ?
</div>
</div>
......
......@@ -9,18 +9,6 @@
<input type="hidden" name="__formid__" value="deform"/>
<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 ------------------------------->
<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}">
......@@ -106,7 +94,7 @@
</div>
</div>
<!--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}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
......
......@@ -15,6 +15,7 @@ from deform import (
from ..models import DBSession, User, UserGroup, Group
from ..models.isipkd import(
SubjekPajak,
ARInvoice
)
from datatables import (
......@@ -81,7 +82,7 @@ def form_validator(form, value):
err_user()
elif found:
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'])
if r:
if found and found.id != r.id:
......@@ -90,11 +91,13 @@ def form_validator(form, value):
err_user()
class AddSchema(colander.Schema):
'''
user_id = colander.SchemaNode(
colander.Integer(),
widget = deferred_user,
#oid="user_id",
title="User")
'''
kode = colander.SchemaNode(
colander.String(),
)
......@@ -122,7 +125,7 @@ class AddSchema(colander.Schema):
colander.String(),
missing=colander.drop
)
propinsi = colander.SchemaNode(
provinsi = colander.SchemaNode(
colander.String(),
missing=colander.drop
)
......@@ -152,9 +155,9 @@ def get_form(request, class_form):
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(values, row=None):
def save(request,values, row=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_password = values['kode']
login.status = values['status']
......@@ -166,13 +169,19 @@ def save(values, row=None):
if not row:
row = SubjekPajak()
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:
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:
row.user_id=None
DBSession.add(row)
DBSession.flush()
if row.user_id:
q = DBSession.query(UserGroup).join(Group).filter(UserGroup.user_id==row.user_id,
Group.group_name=='wp').first()
......@@ -182,13 +191,14 @@ def save(values, row=None):
usergroup.group_id = DBSession.query(Group.id).filter_by(group_name='wp').scalar()
DBSession.add(usergroup)
DBSession.flush()
return row
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
row = save(values, row)
request.session.flash('wp %s sudah disimpan.' % row.kode)
row = save(request, values, row)
request.session.flash('Subjek %s sudah disimpan.' % row.kode)
def route_list(request):
return HTTPFound(location=request.route_url('wp'))
......@@ -224,7 +234,7 @@ def query_id(request):
return DBSession.query(SubjekPajak).filter_by(id=request.matchdict['id'])
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')
return route_list(request)
......@@ -232,8 +242,15 @@ def id_not_found(request):
permission='edit')
def view_edit(request):
row = query_id(request).first()
id = row.id
if not row:
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)
if request.POST:
if 'simpan' in request.POST:
......@@ -261,18 +278,24 @@ def view_edit(request):
def view_delete(request):
q = query_id(request)
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:
return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel'))
if 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()
DBSession.flush()
request.session.flash(msg)
return route_list(request)
return dict(row=row,
form=form.render())
return dict(row=row, form=form.render())
##########
# Action #
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!