Commit d665e387 by aagusti

update esipkd 19-06-2015

1 parent 58457a25
......@@ -307,7 +307,6 @@ class ARSspd(CommonModel, Base):
id = Column(Integer, primary_key=True)
tahun_id = Column(Integer)
unit_id = Column(Integer, ForeignKey("units.id"))
no_id = Column(Integer)
arinvoice_id = Column(Integer, ForeignKey("arinvoices.id"))
pembayaran_ke = Column(Integer)
bunga = Column(BigInteger)
......@@ -318,10 +317,14 @@ class ARSspd(CommonModel, Base):
create_date = Column(DateTime(timezone=True))
update_date = Column(DateTime(timezone=True))
posted = Column(SmallInteger, nullable=False, default=0)
ntb = Column(String(20))
ntp = Column(String(20))
bank_id = Column(Integer)
channel_id = Column(Integer)
arinvoices = relationship("ARInvoice", backref=backref('arsspds'))
units = relationship("Unit", backref=backref('arsspds'))
UniqueConstraint(arinvoice_id,pembayaran_ke,name='arsspd_uq')
UniqueConstraint(tahun_id,unit_id,no_id,name='arsspd_no_uq')
UniqueConstraint(tahun_id,unit_id,name='arsspd_no_uq')
class ARSts(NamaModel,Base):
__tablename__ = 'arsts'
......
......@@ -105,4 +105,12 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid
120,"arinvoicewp-add","Tambah Reg. Bayar WP","/arinvoicewp/add",,"add",0,"2015-03-08 16:45:45",,1
121,"arinvoicewp-edit","Edit Reg. Bayar WP","/arinvoicewp/{id}/edit",,"edit",0,"2015-03-08 16:45:45",,1
122,"arinvoiceb-delete","Hapus Reg. Bayar Bendahara","/arinvoiceb/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
123,"arinvoicewp-delete","Hapus Reg. Bayar WP","/arinvoicewp/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
\ No newline at end of file
123,"arinvoicewp-delete","Hapus Reg. Bayar WP","/arinvoicewp/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
124,"rekon-esamsat","Rekon e-Samsat","/rekon-esamsat",,"read",0,"2015-03-08 16:45:45",,1
125,"rekon-esamsat-act","Baca Rekon e-Samsat","/rekon-esamsat/{act}/act",,"read",0,"2015-03-08 16:45:45",,1
126,"rekon-esamsat-edit","Edit Rekon e-Samsat","/rekon-esamsat/{id}/edit",,"edit",0,"2015-03-08 16:45:45",,1
127,"rekon-esamsat-delete","Hapus Rekon e-Samsat","/rekon-esamsat/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
128,"rekon-epap","Rekon e-PAP","/rekon-epap",,"read",0,"2015-03-08 16:45:45",,1
129,"rekon-epap-act","Baca Rekon e-PAP","/rekon-epap/{act}/act",,"read",0,"2015-03-08 16:45:45",,1
130,"rekon-epap-edit","Edit Rekon e-PAP","/rekon-epap/{id}/edit",,"edit",0,"2015-03-08 16:45:45",,1
131,"rekon-epap-delete","Hapus Rekon e-PAP","/rekon-epap/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
\ No newline at end of file
......@@ -72,10 +72,10 @@ table.dataTable tbody > tr > td{
}
table.dataTable tr.even.selected td {
background-color: #B0BED9;
background-color: #B0BED9 !important;
}
table.dataTable tr.odd.selected td {
background-color: #9FAFD1;
background-color: #9FAFD1 !important;
}
table.dataTable tr.even td {
......
......@@ -238,7 +238,7 @@ def save(request, values, row=None):
ref = Wilayah.get_by_id(row.wilayah_id)
row.wilayah_kode = ref.kode
prefix = '11'
prefix = '20'
tanggal = datetime.now().strftime('%d')
bulan = datetime.now().strftime('%m')
tahun = datetime.now().strftime('%y')
......
......@@ -238,7 +238,7 @@ def save(request, values, row=None):
ref = Wilayah.get_by_id(row.wilayah_id)
row.wilayah_kode = ref.kode
prefix = '11'
prefix = '21'
tanggal = datetime.now().strftime('%d')
bulan = datetime.now().strftime('%m')
tahun = datetime.now().strftime('%y')
......
......@@ -238,7 +238,7 @@ def save(request, values, row=None):
ref = Wilayah.get_by_id(row.wilayah_id)
row.wilayah_kode = ref.kode
prefix = '11'
prefix = '22'
tanggal = datetime.now().strftime('%d')
bulan = datetime.now().strftime('%m')
tahun = datetime.now().strftime('%y')
......
......@@ -27,9 +27,12 @@ from ..models.isipkd import(
Rekening,
ARSspd,
ARInvoice,
Unit
Unit,
UserUnit
)
from ..models.__init__ import(
UserGroup
)
from datatables import (
ColumnDT, DataTables)
......@@ -123,6 +126,29 @@ class AddSchema(colander.Schema):
missing=colander.drop,
oid = "op_nama"
)
bank_id = colander.SchemaNode(
colander.String(),
title="Bank",
oid = "bank_id",
missing=colander.drop,
)
channel_id = colander.SchemaNode(
colander.String(),
oid = "channel_id",
missing=colander.drop
)
ntb = colander.SchemaNode(
colander.String(),
title="NTB",
oid = "ntb",
missing=colander.drop,
)
ntp = colander.SchemaNode(
colander.String(),
oid = "ntp",
missing=colander.drop
)
periode_1 = colander.SchemaNode(
colander.String(),
title="Periode 1",
......@@ -221,15 +247,6 @@ def save(values, row=None):
if not row.tahun_id:
row.tahun_id = datetime.now().strftime('%Y')
if not row.id:
sspd_no = DBSession.query(func.max(ARSspd.no_id)).\
filter(ARSspd.tahun_id==row.tahun_id,
ARSspd.unit_id==row.unit_id).scalar()
if not sspd_no:
row.no_id = 1
else:
row.no_id = sspd_no+1
DBSession.add(row)
DBSession.flush()
if int(row.bayar)>0:
......@@ -335,6 +352,9 @@ def view_edit(request):
row = query_id(request).first()
if not row:
return id_not_found(request)
if row.posted:
request.session.flash('Data sudah diposting pada Menu STS.', 'error')
return route_list(request)
form = get_form(request, EditSchema)
if request.POST:
if 'simpan' in request.POST:
......@@ -356,7 +376,10 @@ def view_edit(request):
values = inv.to_dict()
values['bunga_awal']=values['bunga']
values.update(row.to_dict())
#print values
values['bank_id'] = row and row.bank_id or ''
values['channel_id'] = row and row.channel_id or ''
values['ntb'] = row and row.ntb or ''
values['ntp'] = row and row.ntp or ''
form.set_appstruct(values)
return dict(form=form)
......@@ -390,19 +413,65 @@ def view_act(request):
req = request
params = req.params
url_dict = req.matchdict
user = req.user
if url_dict['act']=='grid':
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('arinvoices.kode'))
columns.append(ColumnDT('arinvoices.wp_kode'))
columns.append(ColumnDT('arinvoices.op_kode'))
columns.append(ColumnDT('arinvoices.op_nama'))
columns.append(ColumnDT('arinvoices.rek_nama'))
columns.append(ColumnDT('bayar', filter=_DTnumberformat))
columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
query = DBSession.query(ARSspd).join(ARInvoice)
rowTable = DataTables(req, ARSspd, query, columns)
return rowTable.output_result()
u = request.user.id
a = DBSession.query(UserGroup.group_id).filter(UserGroup.user_id==u).first()
b = '%s' % a
c = int(b)
x = DBSession.query(UserUnit.unit_id).filter(UserUnit.user_id==u).first()
if x=='None' or not x: #Untuk BUD
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('arinvoices.kode'))
columns.append(ColumnDT('arinvoices.wp_nama'))
columns.append(ColumnDT('arinvoices.op_kode'))
columns.append(ColumnDT('arinvoices.op_nama'))
columns.append(ColumnDT('arinvoices.rek_nama'))
columns.append(ColumnDT('bayar', filter=_DTnumberformat))
columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
columns.append(ColumnDT('posted'))
query = DBSession.query(ARSspd).join(ARInvoice)
rowTable = DataTables(req, ARSspd, query, columns)
return rowTable.output_result()
y = '%s' % x
z = int(y)
if c == 2: #Untuk Bendahara
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('arinvoices.kode'))
columns.append(ColumnDT('arinvoices.wp_nama'))
columns.append(ColumnDT('arinvoices.op_kode'))
columns.append(ColumnDT('arinvoices.op_nama'))
columns.append(ColumnDT('arinvoices.rek_nama'))
columns.append(ColumnDT('bayar', filter=_DTnumberformat))
columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
columns.append(ColumnDT('posted'))
query = DBSession.query(ARSspd).filter(ARSspd.arinvoice_id==ARInvoice.id, ARInvoice.unit_id==z).join(ARInvoice)
rowTable = DataTables(req, ARSspd, query, columns)
return rowTable.output_result()
else: #Untuk BUD
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('arinvoices.kode'))
columns.append(ColumnDT('arinvoices.wp_nama'))
columns.append(ColumnDT('arinvoices.op_kode'))
columns.append(ColumnDT('arinvoices.op_nama'))
columns.append(ColumnDT('arinvoices.rek_nama'))
columns.append(ColumnDT('bayar', filter=_DTnumberformat))
columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
columns.append(ColumnDT('posted'))
query = DBSession.query(ARSspd).join(ARInvoice)
rowTable = DataTables(req, ARSspd, query, columns)
return rowTable.output_result()
......@@ -22,11 +22,14 @@ from ..models.isipkd import(
ObjekPajak,
SubjekPajak,
Unit,
UserUnit,
Wilayah,
Pajak,
Rekening,
ARSts,
Unit
ARSts
)
from ..models.__init__ import(
UserGroup
)
from datatables import (
......@@ -77,12 +80,23 @@ class AddSchema(colander.Schema):
'precision':0
})
unit_id = colander.SchemaNode(
colander.Integer(),
widget=deferred_unit,
title="OPD"
#unit_id = colander.SchemaNode(
# colander.Integer(),
# widget=deferred_unit,
# title="OPD"
#title="SKPD"
)
# )
unit_id = colander.SchemaNode(
colander.Integer(),
widget=widget.HiddenWidget(),
oid="unit_id",
title="OPD",
)
unit_nm = colander.SchemaNode(
colander.String(),
title="OPD",
oid="unit_nm"
)
kode = colander.SchemaNode(
colander.String(),
title="Kode Bayar",
......@@ -218,7 +232,7 @@ def view_edit(request):
elif SESS_EDIT_FAILED in request.session:
return session_failed(request, SESS_EDIT_FAILED)
values = row.to_dict()
#print values
values['unit_nm'] = row and row.units.nama or None
form.set_appstruct(values)
return dict(form=form)
......@@ -256,17 +270,61 @@ def view_act(request):
req = request
params = req.params
url_dict = req.matchdict
user = req.user
if url_dict['act']=='grid':
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama'))
columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
u = request.user.id
a = DBSession.query(UserGroup.group_id).filter(UserGroup.user_id==u).first()
b = '%s' % a
c = int(b)
x = DBSession.query(UserUnit.unit_id).filter(UserUnit.user_id==u).first()
if x=='None' or not x: #Untuk BUD
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama'))
columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
query = DBSession.query(ARSts).\
join(Unit)
rowTable = DataTables(req, ARSts, query, columns)
return rowTable.output_result()
y = '%s' % x
z = int(y)
query = DBSession.query(ARSts).\
join(Unit)
rowTable = DataTables(req, ARSts, query, columns)
return rowTable.output_result()
if c == 2: #Untuk Bendahara
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama'))
columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
query = DBSession.query(ARSts
).join(Unit
).filter(ARSts.unit_id==x
)
rowTable = DataTables(req, ARSts, query, columns)
return rowTable.output_result()
else: #Untuk BUD
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kode'))
columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
columns.append(ColumnDT('nama'))
columns.append(ColumnDT('units.nama'))
columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
query = DBSession.query(ARSts).\
join(Unit)
rowTable = DataTables(req, ARSts, query, columns)
return rowTable.output_result()
......@@ -144,11 +144,11 @@ def view_delete(request):
### ARStsItem
jumlah = DBSession.query(ARStsItem.jumlah).\
filter(ARStsItem.sspd_id==row.sspd_id).scalar()
print'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',jumlah
print'------------------Jumlah STS Item------------------',jumlah
### ARSts
jumlah1 = DBSession.query(ARSts.jumlah).\
filter(ARSts.id==request.session['sts_id']).scalar()
print'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',jumlah1
print'------------------Jumlah STS-----------------------',jumlah1
if jumlah:
hasil = jumlah1-jumlah
rows = DBSession.query(ARSts).filter(ARSts.id==request.session['sts_id']).first()
......@@ -207,7 +207,7 @@ def view_act(request):
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('arinvoices.kode'))
columns.append(ColumnDT('arinvoices.wp_kode'))
columns.append(ColumnDT('arinvoices.wp_nama'))
columns.append(ColumnDT('arinvoices.op_kode'))
columns.append(ColumnDT('arinvoices.op_nama'))
columns.append(ColumnDT('arinvoices.rek_nama'))
......@@ -225,7 +225,7 @@ def view_act(request):
elif url_dict['act']=='grid':
#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
print'ssssssssssssssssssssssssssssssssssssssss',sts_id
print'----------------------ID STS-------------------------',sts_id
columns = []
columns.append(ColumnDT('sspd_id'))
columns.append(ColumnDT('sts_id'))
......
......@@ -15,6 +15,7 @@ from deform import (
from ..models import (
DBSession,
Group,
GroupRoutePermission,
UserGroup,
Route,
)
......@@ -175,6 +176,11 @@ def view_delete(request):
request.session.flash('Tidak bisa dihapus, Karena datanya terpakai diusergroup.','error')
return route_list(request)
y = DBSession.query(GroupRoutePermission).filter(GroupRoutePermission.group_id==id).first()
if y:
request.session.flash('Tidak bisa dihapus, Karena datanya terpakai di group permission.','error')
return route_list(request)
if not row:
return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel'))
......
import colander
import informixdb
from datetime import (datetime, date)
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 ..tools import _DTnumberformat, _DTstrftime
from ..models import (DBSession)
from ..models.isipkd import (Pkb, Pap)
from ..models.informix import EngInformix
SESS_ADD_FAILED = 'rekon_epap add failed'
SESS_EDIT_FAILED = 'rekon_epap edit failed'
########
# List #
########
@view_config(route_name='rekon-epap', renderer='templates/rekon-epap/list.pt',
permission='read')
def view_list(request):
return dict(rows={})
#######
# Add #
#######
def form_validator(form, value):
def err_no_rangka():
raise colander.Invalid(form,
'No Rangka Harus diisi'
)
def err_nik():
raise colander.Invalid(form,
'NIK Harus diisi'
)
def err_no_handphone():
raise colander.Invalid(form,
'No handphone harus diisi'
)
def err_no_handphone():
raise colander.Invalid(form,
'Kode validasi harus diisi'
)
class AddSchema(colander.Schema):
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"
)
npwpd = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'NPWPD',
oid="npwpd"
)
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_bln = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Bulan',
oid="m_pjk_bln"
)
m_pjk_thn = colander.SchemaNode(
colander.String(),
missing=colander.drop,
title = 'Tahun',
oid="m_pjk_thn"
)
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(),
missing=colander.drop,
widget=widget.HiddenWidget(readonly=True))
def get_form(request, class_form):
schema = class_form(validator=form_validator)
schema.request = request
return Form(schema, buttons=('simpan','batal'))
def save(request, values, row=None):
if not row:
row = Pap()
row.from_dict(values)
DBSession.add(row)
DBSession.flush()
return row
def save_request(values, request, row=None):
if 'id' in request.matchdict:
values['id'] = request.matchdict['id']
row = save(request, values, row)
request.session.flash('PAP sudah proses.')
return row
def route_list(request):
return HTTPFound(location=request.route_url('rekon-epap'))
def session_failed(request, session_name):
r = dict(form=request.session[session_name])
del request.session[session_name]
return r
def query_id(request):
return DBSession.query(Pap).filter_by(id=request.matchdict['id'])
def id_not_found(request):
msg = 'Rekon E-PAP ID %s not found.' % request.matchdict['id']
request.session.flash(msg, 'error')
return route_list(request)
@view_config(route_name='rekon-epap-edit', renderer='templates/rekon-epap/edit.pt',
permission='edit')
def view_edit(request):
row = query_id(request).first()
if not row:
return id_not_found(request)
form = get_form(request, EditSchema)
if request.POST:
if 'simpan' in request.POST:
controls = request.POST.items()
try:
c = form.validate(controls)
except ValidationFailure, e:
return dict(form=form)
return HTTPFound(location=request.route_url('rekon-epap-edit', id=row.id))
save_request(dict(controls), request, row)
return route_list(request)
elif SESS_EDIT_FAILED in request.session:
return session_failed(request, SESS_EDIT_FAILED)
values = row.to_dict()
form.set_appstruct(values)
return dict(form=form)
##########
# Delete #
##########
@view_config(route_name='rekon-epap-delete', renderer='templates/rekon-epap/delete.pt',
permission='delete')
def view_delete(request):
q = query_id(request)
row = q.first()
if not row:
return id_not_found(request)
form = Form(colander.Schema(), buttons=('delete','cancel'))
if request.POST:
if 'delete' in request.POST:
msg = 'Rekon E-PAP ID %d berhasil dihapus.' % (row.id)
q.delete()
DBSession.flush()
request.session.flash(msg)
return route_list(request)
return dict(row=row, form=form.render())
##########
# Action #
##########
@view_config(route_name='rekon-epap-act', renderer='json',
permission='read')
def view_act(request):
req = request
params = req.params
url_dict = req.matchdict
if url_dict['act']=='grid':
columns = []
columns.append(ColumnDT('id'))
columns.append(ColumnDT('kd_bayar'))
columns.append(ColumnDT('m_pjk_bln'))
columns.append(ColumnDT('m_pjk_thn'))
columns.append(ColumnDT('npwpd'))
columns.append(ColumnDT('nm_perus'))
columns.append(ColumnDT('keterangan'))
columns.append(ColumnDT('bea_pok_pjk', filter=_DTnumberformat))
columns.append(ColumnDT('bea_den_pjk', filter=_DTnumberformat))
query = DBSession.query(Pap)
rowTable = DataTables(req, Pap, query, columns)
return rowTable.output_result()
\ No newline at end of file
......@@ -299,13 +299,16 @@ def view_act(request):
if c == 1: #Untuk login WP
x = DBSession.query(UserUnit.unit_id).filter(UserUnit.user_id==u).first()
if x=='None' or not x:
return {'success':False}
y = '%s' % x
z = int(y)
print '---------------Unit_id---------------',z
rows = DBSession.query(Unit.id, Unit.nama
).filter( Unit.id==z,
Unit.nama.ilike('%%%s%%' % term)).all()
Unit.nama.ilike('%%%s%%' % term), Unit.level_id==3).all()
r = []
for k in rows:
d={}
......@@ -318,13 +321,16 @@ def view_act(request):
elif c == 2: #Untuk login Bendahara
x = DBSession.query(UserUnit.unit_id).filter(UserUnit.user_id==u).first()
if x=='None' or not x:
return {'success':False}
y = '%s' % x
z = int(y)
print '---------------Unit_id---------------',z
rows = DBSession.query(Unit.id, Unit.nama
).filter( Unit.id==z,
Unit.nama.ilike('%%%s%%' % term)).all()
Unit.nama.ilike('%%%s%%' % term), Unit.level_id==3).all()
r = []
for k in rows:
d={}
......@@ -337,7 +343,7 @@ def view_act(request):
elif c == 3: #Untuk login Admin
rows = DBSession.query(Unit.id, Unit.nama
).filter(Unit.nama.ilike('%%%s%%' % term)).all()
).filter(Unit.nama.ilike('%%%s%%' % term), Unit.level_id==3).all()
r = []
for k in rows:
d={}
......@@ -350,7 +356,7 @@ def view_act(request):
else: #Untuk login BUD
rows = DBSession.query(Unit.id, Unit.nama
).filter(Unit.nama.ilike('%%%s%%' % term)).all()
).filter(Unit.nama.ilike('%%%s%%' % term), Unit.level_id==3).all()
r = []
for k in rows:
d={}
......
......@@ -41,6 +41,10 @@
$("#denda").val("0");
$("#bunga_awal").val("0");
$("#jumlah").val("0");
$("#bank_id").val("");
$("#channel_id").val("");
$("#ntb").val("");
$("#ntp").val("");
$("#periode_1").val("");
$("#periode_2").val("");
$("#tgl_tetap").val("");
......@@ -101,6 +105,48 @@
</script>
</div>
</div>
<!--Bank & Channel ------------------------------->
<div class="form-group" tal:define="field form['bank_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-3">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
<div class="control-label col-md-3">
Channel
</div>
<div class="col-md-3" tal:define="field form['channel_id']">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
</div>
<!--NTB & NTP ------------------------------->
<div class="form-group" tal:define="field form['ntb']" 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">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
<div class="control-label col-md-1">
NTP
</div>
<div class="col-md-4" tal:define="field form['ntp']">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
</div>
<!--periode_1 ------------------------------->
<div class="form-group" tal:define="field form['periode_1']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
......
......@@ -42,6 +42,10 @@
$("#denda").val("0");
$("#bunga_awal").val("0");
$("#jumlah").val("0");
$("#bank_id").val("");
$("#channel_id").val("");
$("#ntb").val("");
$("#ntp").val("");
$("#periode_1").val("");
$("#periode_2").val("");
$("#tgl_tetap").val("");
......@@ -102,6 +106,48 @@
</script>
</div>
</div>
<!--Bank & Channel ------------------------------->
<div class="form-group" tal:define="field form['bank_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-3">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
<div class="control-label col-md-3">
Channel
</div>
<div class="col-md-3" tal:define="field form['channel_id']">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
</div>
<!--NTB & NTP ------------------------------->
<div class="form-group" tal:define="field form['ntb']" 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">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
<div class="control-label col-md-1">
NTP
</div>
<div class="col-md-4" tal:define="field form['ntp']">
${structure:field.serialize()}
<script>
$("#${field.oid}").attr("readonly", true);
</script>
</div>
</div>
<!--periode_1 ------------------------------->
<div class="form-group" tal:define="field form['periode_1']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-3" id="req-${field.oid}">
......
......@@ -23,11 +23,9 @@
<th>Objek</th>
<th>Uraian</th>
<th>Rekening</th>
<!--th>Pokok</th>
<th>Denda</th>
<th>Bunga</th-->
<th>Jumlah</th>
<th>Tgl. Bayar</th>
<th>Status STS</th>
</tr>
</thead>
<tbody>
......@@ -66,23 +64,52 @@
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
{ "bSearchable": false,
"bVisible" : false,
"aTargets" : [0]
},{
"aTargets" : [8], // Column number which needs to be modified
"mRender" : function (data, type, full) {
if (data == "0") {
return 'N';
} else if (data == "1") {
return 'Y';
}
}
}],
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"},
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "40px", "sClass": "center"},
{"sWidth": "30px", "sClass": "center"},
null,
null,
{"sWidth": "75px", "sClass": "right"},
//{"sWidth": "75px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
{"sWidth": "60px", "sClass": "center"},
{"sWidth": "60px", "sClass": "center"},
{"sWidth": "30px", "sClass": "center"},
],
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
$(nRow).on("click", function (event) {
if ($(this).hasClass('row_selected')) {
/* mID = '';
$(this).removeClass('row_selected'); */
} else {
var data = oTable.fnGetData(this);
oTable.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
}
})
//Kondisi Background-color Posting
switch(aData[8]){
case '1' :
$('td',nRow).css("background-color","#ddffdd")
break;
}
},
});
var tb_array = [
......
......@@ -16,7 +16,13 @@
</div>
</div>
<!--unit_id ------------------------------->
<div class="form-group" tal:define="field form['unit_id']" id="item-${field.oid}">
<div class="form-group">
<!--unit_id ------------------------------->
<div tal:define="field form['unit_id']">
${structure:field.serialize()}
</div>
</div>
<div class="form-group" tal:define="field form['unit_nm']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-1" id="req-${field.oid}">
${field.title}<span id="error-${field.oid}" class="text text-danger"
tal:condition="field.required">&nbsp*</span></label>
......@@ -24,6 +30,22 @@
${structure:field.serialize()}
</div>
</div>
<script>
//Untuk headof OPD
$('#unit_nm').typeahead({
"hint" : true,
"highlight": true,
"minLength": 1,
"remote" : "/skpd/hon_wp/act?term=%QUERY",
},{
"name" : 'unit_nm',
"displayKey": 'value',
});
$('#unit_nm').bind('typeahead:selected', function(obj, datum, name) {
$('#unit_id').val(datum.id);
});
</script>
<!--kode ------------------------------->
<div class="form-group" tal:define="field form['kode']" id="item-${field.oid}">
<label for="${field.oid}" class="control-label col-md-1" id="req-${field.oid}">
......
......@@ -69,8 +69,19 @@
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
{ "bSearchable": false,
"bVisible" : false,
"aTargets" : [0]
},{
"aTargets" : [8], // Column number which needs to be modified
"mRender" : function (data, type, full) {
if (data == "0") {
return 'N';
} else if (data == "1") {
return 'Y';
}
}
}],
"aoColumns": [
null,
......
......@@ -81,6 +81,8 @@
<li><a href="/rekening">Kode Rekening</a></li>
<li><a href="/pajak">Tarif</a></li>
<li><a href="/wilayah">Wilayah</a></li>
<li><a href="/rekon-esamsat">Rekon e-Samsat</a></li>
<li><a href="/rekon-epap">Rekon e-PAP</a></li>
</ul>
</li>
</ul>
......
......@@ -4,7 +4,7 @@
<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>Group User</h4>
<h4>Group</h4>
<hr>
<div class="container">
<!--form class="form-inline" role="form" id="frm_upload" name="frm_upload">
......
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Warning</h3>
</div>
<div class="panel-body">
Hapus Rekon E-PAP ID #${row.id} ${row.kd_bayar} ${row.npwpd} ${row.nm_perus}?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<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>Rekon e-PAP</h4>
<hr>
<table id="table1" name="table1" class="table table-bordered table-hover table-condensed" >
<thead>
<tr>
<th>ID</th>
<th>Kode Bayar</th>
<th>Pjk Bulan</th>
<th>Pjk Tahun</th>
<th>NPWPD</th>
<th>Nama</th>
<th>Keterangan</th>
<th>Bea Pokok</th>
<th>Bea Denda</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="/static/datatables/media/js/jquery.dataTables.min.js"></script>
<!--script src="/static/datatables/media/js/jquery.jeditable.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/media/js/dataTables.bootstrap.js"></script>
<script>
var mID;
var oTable;
var iPos;
var oFormUrl = "/rekon-epap/";
var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource" : oTableUrl,
"bStateSave" : true,
"bServerSide" : true,
"bProcessing" : true,
"sDom" : '<"toolbar">lfrtip',
"bScrollCollapse" : true,
"bSort" : true,
"bInfo" : false,
"bFilter" : true,
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType" : "full_numbers",
"lengthMenu": [
[10, 25, 50, 100, 500, 1000],
[10, 25, 50, 100, 500, 1000]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
"aoColumns": [
null,
{"sWidth": "80px" },
{"sWidth": "10px" },
{"sWidth": "10px" },
{"sWidth": "60px" },
{"sWidth": "80px" },
{"sWidth": "150px" },
{"sWidth": "50px", "sClass": "right"},
{"sWidth": "30px", "sClass": "right"}
],
});
var tb_array = [
'<div class="btn-group pull-left">',
//' <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">Detail</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>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
mID = '';
$(this).removeClass('selected');
} else {
iPos = oTable.fnGetPosition(this);
var aData = oTable.fnGetData(iPos);
mID = aData[0];
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});
$('#btn_tambah').click(function () {
window.location = oFormUrl+'add';
});
$('#btn_edit').click(function () {
if (mID) {
window.location = oFormUrl+mID+'/edit';
} else {
alert('Silahkan pilih data yang akan dicek');
}
});
$('#btn_print').click(function () {
url = "/reports/act/r003"
window.open(url);
});
$('#btn_close').click(function () {
window.location = "/"
});
$('#btn_delete').click(function () {
if (mID) {
var hapus = confirm('Hapus data ini?');
if (hapus == true) {
window.location = oFormUrl+mID+'/delete';
};
} else {
alert('Silahkan pilih data yang akan dihapus');
}
});
});
</script>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Warning</h3>
</div>
<div class="panel-body">
Hapus Rekon E-Samsat ID #${row.id} ${row.kd_bayar} ${row.no_ktp} ${row.no_rangka}?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<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>Rekon e-Samsat</h4>
<hr>
<table id="table1" name="table1" class="table table-bordered table-hover table-condensed" >
<thead>
<tr>
<th>ID</th>
<th>Kode Bayar</th>
<th>No. Identitas</th>
<th>No. Rangka</th>
<th>No. Handphone</th>
<th>E-mail</th>
<th>Keterangan</th>
<th>Total Bayar</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="/static/datatables/media/js/jquery.dataTables.min.js"></script>
<!--script src="/static/datatables/media/js/jquery.jeditable.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/media/js/dataTables.bootstrap.js"></script>
<script>
var mID;
var oTable;
var iPos;
var oFormUrl = "/rekon-esamsat/";
var oTableUrl = oFormUrl+"grid/act";
$(document).ready(function () {
oTable = $('#table1').dataTable({
"sAjaxSource" : oTableUrl,
"bStateSave" : true,
"bServerSide" : true,
"bProcessing" : true,
"sDom" : '<"toolbar">lfrtip',
"bScrollCollapse" : true,
"bSort" : true,
"bInfo" : false,
"bFilter" : true,
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType" : "full_numbers",
"lengthMenu": [
[10, 25, 50, 100, 500, 1000],
[10, 25, 50, 100, 500, 1000]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0]}
],
"aoColumns": [
null,
{"sWidth": "80px" },
{"sWidth": "60px" },
{"sWidth": "80px" },
{"sWidth": "40px" },
{"sWidth": "80px" },
{"sWidth": "150px" },
{"sWidth": "50px", "sClass": "right"}
],
});
var tb_array = [
'<div class="btn-group pull-left">',
//' <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">Detail</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>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
mID = '';
$(this).removeClass('selected');
} else {
iPos = oTable.fnGetPosition(this);
var aData = oTable.fnGetData(iPos);
mID = aData[0];
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});
$('#btn_tambah').click(function () {
window.location = oFormUrl+'add';
});
$('#btn_edit').click(function () {
if (mID) {
window.location = oFormUrl+mID+'/edit';
} else {
alert('Silahkan pilih data yang akan dicek');
}
});
$('#btn_print').click(function () {
url = "/reports/act/r003"
window.open(url);
});
$('#btn_close').click(function () {
window.location = "/"
});
$('#btn_delete').click(function () {
if (mID) {
var hapus = confirm('Hapus data ini?');
if (hapus == true) {
window.location = oFormUrl+mID+'/delete';
};
} else {
alert('Silahkan pilih data yang akan dihapus');
}
});
});
</script>
</div>
</html>
......@@ -177,7 +177,7 @@
if(email!=''){
$('#email').attr('readonly', true)
}
//Untuk headof OPD
$('#unit_nm').typeahead({
"hint" : true,
......
......@@ -59,7 +59,7 @@ def form_validator(form, value):
if found and found.id != r.id:
err_kode()
elif found:
err_email()
err_kode()
if 'nama' in value: # optional
found = Wilayah.get_by_nama(value['nama'])
if r:
......
......@@ -298,7 +298,9 @@ def id_not_found(request):
permission='edit')
def view_edit(request):
row = query_id(request).first()
uid = row.id
uid = row.id
email = row.email
found = 0
if not row:
return id_not_found(request)
......@@ -306,7 +308,10 @@ def view_edit(request):
if x:
request.session.flash('Tidak bisa diedit, karena penyetor sudah digunakan di daftar bayar.','error')
return route_list(request)
y = DBSession.query(User.email).filter(User.email==email).first()
if y:
found = 1
form = get_form(request, EditSchema)
if request.POST:
if 'simpan' in request.POST:
......@@ -380,7 +385,7 @@ def view_edit(request):
values['unit_nm'] = row and row.units.nama or None
form.set_appstruct(values)
return dict(form=form)
return dict(form=form, found=found)
##########
# Delete #
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!