Commit cf6ba005 by taufikyu

penambahan menu kode bayar (ws) dan revisi laporan skrd

1 parent 4c93baf0
No preview for this file type
No preview for this file type
......@@ -235,4 +235,6 @@ id,kode,nama,path,factory,perm_name,disabled,created,updated,create_uid
250,"anggaran-edit","Edit Anggaran","/anggaran/{id}/edit",,"edit",0,"2015-03-08 16:45:45",,1
251,"anggaran-delete","Hapus Anggaran","/anggaran/{id}/delete",,"delete",0,"2015-03-08 16:45:45",,1
252,"anggaran-csv","CSV Anggaran","/anggaran/{csv}/csv",,"read",0,"2015-03-08 16:45:45",,1
253,"anggaran-pdf","PDF Anggaran","/anggaran/{pdf}/pdf",,"read",0,"2015-03-08 16:45:45",,1
\ No newline at end of file
253,"anggaran-pdf","PDF Anggaran","/anggaran/{pdf}/pdf",,"read",0,"2015-03-08 16:45:45",,1
254,"arinvoice-ws","Invoice WS","/arinvoicews",,"read",0,"2020-09-18 16:45:45",,1
255,"arinvoice-ws-act","Invoice WS Act","/arinvoicews/{act}/act",,"read",0,"2020-09-18 16:45:45",,1
\ No newline at end of file
......@@ -43,49 +43,72 @@ from pyramid.view import notfound_view_config
########
@view_config(route_name='home', renderer='templates/home.pt')
def view_home(request):
if 'date' in request.params and request.params['date']:
request.session['date'] = request.params['date'].strip()
if 'date' in request.session and request.session['date']:
now = date_from_str(request.session['date'])
else:
now = date.today()
request.session['date'] = dmy(now)
if 'unit' in request.params:
request.session['unit'] = request.params['unit'].strip()
dates = dict(
year = now.year,
month = now.month,
week = int(now.strftime('%W')),
day = now,
)
opd_ls = Unit.query().order_by(Unit.kode).all()
data_dashboard = dict(
tabular = dict(
tahun = dict(q=0,n=0),
bulan = dict(q=0,n=0),
minggu = dict(q=0,n=0),
hari = dict(q=0,n=0),
),
chart = dict(
q = [0,0,0,0,0,0,0,0,0,0,0,0],
n = [0,0,0,0,0,0,0,0,0,0,0,0],
),
opd= [],
sopd10= [],
sopd= [],
statusadmin = False
if hasattr(request.user,'groups'):
for g in request.user.groups:
if g.group_name=='admin':
statusadmin = True
break
if statusadmin == True:
if 'date' in request.params and request.params['date']:
request.session['date'] = request.params['date'].strip()
if 'date' in request.session and request.session['date']:
now = date_from_str(request.session['date'])
else:
now = date.today()
request.session['date'] = dmy(now)
if 'unit' in request.params:
request.session['unit'] = request.params['unit'].strip()
dates = dict(
year = now.year,
month = now.month,
week = int(now.strftime('%W')),
day = now,
)
payments = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'),
ARSspd.bayar.label('jumlah'),
Unit.kode.label('kode'),
Unit.nama.label('nama'),
).join(ARInvoice, ARInvoice.id == ARSspd.arinvoice_id).\
join(Unit, func.trim(Unit.kode) == func.trim(ARInvoice.unit_kode)).\
filter(ARSspd.tahun_id==dates['year']).order_by(ARInvoice.unit_kode)
payments = payments.all()
for p in payments:
if 'unit' in request.session and request.session['unit']:
if p.kode.strip().startswith(request.session['unit']):
opd_ls = Unit.query().order_by(Unit.kode).all()
data_dashboard = dict(
tabular = dict(
tahun = dict(q=0,n=0),
bulan = dict(q=0,n=0),
minggu = dict(q=0,n=0),
hari = dict(q=0,n=0),
),
chart = dict(
q = [0,0,0,0,0,0,0,0,0,0,0,0],
n = [0,0,0,0,0,0,0,0,0,0,0,0],
),
opd= [],
sopd10= [],
sopd= [],
)
payments = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'),
ARSspd.bayar.label('jumlah'),
Unit.kode.label('kode'),
Unit.nama.label('nama'),
).join(ARInvoice, ARInvoice.id == ARSspd.arinvoice_id).\
join(Unit, func.trim(Unit.kode) == func.trim(ARInvoice.unit_kode)).\
filter(ARSspd.tahun_id==dates['year']).order_by(ARInvoice.unit_kode)
payments = payments.all()
for p in payments:
if 'unit' in request.session and request.session['unit']:
if p.kode.strip().startswith(request.session['unit']):
data_dashboard['tabular']['tahun']['q'] += 1
data_dashboard['tabular']['tahun']['n'] += int(p.jumlah)
if p.tanggal.month == dates['month']:
data_dashboard['tabular']['bulan']['q'] += 1
data_dashboard['tabular']['bulan']['n'] += int(p.jumlah)
if int(p.tanggal.strftime('%W')) == dates['week']:
data_dashboard['tabular']['minggu']['q'] += 1
data_dashboard['tabular']['minggu']['n'] += int(p.jumlah)
if p.tanggal.date() == dates['day']:
data_dashboard['tabular']['hari']['q'] += 1
data_dashboard['tabular']['hari']['n'] += int(p.jumlah)
for x in range(12):
if p.tanggal.month == x+1:
data_dashboard['chart']['q'][x] += int(1)
data_dashboard['chart']['n'][x] += int(p.jumlah)
elif not 'unit' in request.session or not request.session['unit']:
data_dashboard['tabular']['tahun']['q'] += 1
data_dashboard['tabular']['tahun']['n'] += int(p.jumlah)
if p.tanggal.month == dates['month']:
......@@ -101,50 +124,36 @@ def view_home(request):
if p.tanggal.month == x+1:
data_dashboard['chart']['q'][x] += int(1)
data_dashboard['chart']['n'][x] += int(p.jumlah)
elif not 'unit' in request.session or not request.session['unit']:
data_dashboard['tabular']['tahun']['q'] += 1
data_dashboard['tabular']['tahun']['n'] += int(p.jumlah)
if p.tanggal.month == dates['month']:
data_dashboard['tabular']['bulan']['q'] += 1
data_dashboard['tabular']['bulan']['n'] += int(p.jumlah)
if int(p.tanggal.strftime('%W')) == dates['week']:
data_dashboard['tabular']['minggu']['q'] += 1
data_dashboard['tabular']['minggu']['n'] += int(p.jumlah)
if p.tanggal.date() == dates['day']:
data_dashboard['tabular']['hari']['q'] += 1
data_dashboard['tabular']['hari']['n'] += int(p.jumlah)
for x in range(12):
if p.tanggal.month == x+1:
data_dashboard['chart']['q'][x] += int(1)
data_dashboard['chart']['n'][x] += int(p.jumlah)
tanggal_berjalan = datetime.now()
tahun_berjalan = tanggal_berjalan.year
opd = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'),
ARSspd.bayar.label('jumlah'),
Unit.kode.label('kode'),
Unit.nama.label('nama'),
).join(ARInvoice, ARInvoice.id == ARSspd.arinvoice_id).\
join(Unit, func.trim(Unit.kode) == func.trim(ARInvoice.unit_kode)).\
filter(ARSspd.tahun_id==tahun_berjalan).order_by(ARInvoice.unit_kode).all()
prev_opd = ''
i = -1
for o in opd:
##OPD SESUAI TANGGAL
if prev_opd != o.kode:
tanggal_berjalan = datetime.now()
tahun_berjalan = tanggal_berjalan.year
opd = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'),
ARSspd.bayar.label('jumlah'),
Unit.kode.label('kode'),
Unit.nama.label('nama'),
).join(ARInvoice, ARInvoice.id == ARSspd.arinvoice_id).\
join(Unit, func.trim(Unit.kode) == func.trim(ARInvoice.unit_kode)).\
filter(ARSspd.tahun_id==tahun_berjalan).order_by(ARInvoice.unit_kode).all()
prev_opd = ''
i = -1
for o in opd:
##OPD SESUAI TANGGAL
if prev_opd != o.kode:
i += 1
data_dashboard['opd'].append(dict(kode=o.kode.strip(),unit=o.nama.strip(),jumlah=0))
prev_opd = o.kode
data_dashboard['opd'][i]['jumlah']+=int(o.jumlah)
sort_opd = sorted(data_dashboard['opd'], key = lambda i: (i['jumlah']), reverse=True)
i = -1
for sopd in sort_opd:
i += 1
data_dashboard['opd'].append(dict(kode=o.kode.strip(),unit=o.nama.strip(),jumlah=0))
prev_opd = o.kode
data_dashboard['opd'][i]['jumlah']+=int(o.jumlah)
sort_opd = sorted(data_dashboard['opd'], key = lambda i: (i['jumlah']), reverse=True)
i = -1
for sopd in sort_opd:
i += 1
if i < 10:
data_dashboard['sopd10'].append(dict(peringkat=i+1, kode=sopd['kode'], unit=sopd['unit'], nominal=sopd['jumlah']))
data_dashboard['sopd'].append(dict(peringkat=i+1, kode=sopd['kode'], unit=sopd['unit'], nominal=sopd['jumlah']))
return dict(project='esipkd', dates=dates, data = data_dashboard, opds=opd_ls)
if i < 10:
data_dashboard['sopd10'].append(dict(peringkat=i+1, kode=sopd['kode'], unit=sopd['unit'], nominal=sopd['jumlah']))
data_dashboard['sopd'].append(dict(peringkat=i+1, kode=sopd['kode'], unit=sopd['unit'], nominal=sopd['jumlah']))
return dict(project='esipkd', dates=dates, data = data_dashboard, opds=opd_ls, statusadmin=statusadmin)
else:
return dict(project='esipkd', statusadmin=statusadmin)
#########
......
......@@ -24,7 +24,8 @@ from ..tools import (
odt_export,
terbilang,
thousand,
dmy
dmy,
BULANS
)
from ..models import DBSession
from ..models.isipkd import(
......@@ -816,15 +817,20 @@ def view_pdf(request):
item.wp_alamat = (row.wp_alamat_2 and row.wp_alamat_2 != '-') and ('{} {}'.format(row.wp_alamat_1, row.wp_alamat_2)) or row.wp_alamat_1
item.wp_kode = row.wp_kode
item.rek_nama = row.rek_nama
item.periode_1 = row.periode_1
item.periode_2 = row.periode_2
item.rek_kode = row.rek_kode
item.periode_1 = dmy(row.periode_1)
item.periode_2 = dmy(row.periode_2)
item.kodebayar = row.kode
item.no_skrd = row.no_skrd
item.tahunskrd = row.tahun_id
BULAN = dict(BULANS)
bulan = row.tgl_tetap.strftime('%m')
item.tgl_tetap = '{} {},'.format(row.tgl_tetap.strftime('%d'),BULAN[bulan])
item.tahun_tetap = row.tgl_tetap.year
item.tahun = datetime.now().year
item.jumlah = thousand(row.jumlah)
item.jatuh_tempo = dmy(row.jatuh_tempo)
item.terbilang = terbilang(row.jumlah)
item.jatuh_tempo = dmy(row.jatuh_tempo)
item.terbilang = terbilang(row.jumlah) + ' Rupiah'
data = {}
data['item'] = item
......
......@@ -100,7 +100,7 @@ def custom_error(code, message):
def get_mandatory(data, values):
for value in values:
if not value in data or not data[value]:
raise JsonRpcInvalidDataError
raise JsonRpcInvalidDataError(message="{} Not Found".format(value))
def get_seconds():
begin_unix_time = datetime(1970, 1, 1)
......@@ -163,6 +163,7 @@ def set_invoice(request, data):
- periode_1
- periode_2
- jatuh_tempo
- no_skrd
- tgl_skrd
:return:
- kd_bayar
......@@ -171,7 +172,7 @@ def set_invoice(request, data):
auth_from_rpc(request)
param = ['op_kode','rek_kode','dasar','tarif',
'pokok','denda','bunga','jumlah','periode_1',
'periode_2','jatuh_tempo','tgl_tetap']
'periode_2','jatuh_tempo','tgl_tetap','no_skrd']
get_mandatory(data, param)
values = clear_null_value(data)
if 'jatuh_tempo' in values and values['jatuh_tempo']:
......@@ -180,12 +181,10 @@ def set_invoice(request, data):
values['periode_1'] = date_from_str(values['periode_1'])
if 'periode_2' in values and values['periode_2']:
values['periode_2'] = date_from_str(values['periode_2'])
# if not 'status_bayar' in values or not values['status_bayar']:
# values['status_bayar'] = 0
values['status_bayar'] = 0
op = ObjekPajak.get_by_kode(values['op_kode'])
if not op:
return custom_error(-1,'Objek Pajak not found')
return custom_error(-1,'Objek Pajak kode {} not found'.format(values['op_kode']))
values['objek_pajak_id'] = op.id
values['op_kode'] = op.kode
values['op_nama'] = op.nama
......@@ -196,30 +195,26 @@ def set_invoice(request, data):
values['unit_id'] = op.unit_id
subjek = SubjekPajak.get_by_id(values['subjek_pajak_id'])
if not subjek:
return custom_error(-1,'Subjek Pajak not found, contact admin')
return custom_error(-1,'Subjek Pajak id {} not found, contact admin'.format(values['subjek_pajak_id']))
values['wp_kode'] = subjek.kode
values['wp_nama'] = subjek.nama
values['wp_alamat_1'] = subjek.alamat_1
values['wp_alamat_2'] = subjek.alamat_2
unit = Unit.get_by_id(values['unit_id'])
if not unit:
return custom_error(-1,'Unit not found, contact admin')
return custom_error(-1,'Unit id {} not found, contact admin'.format(values['unit_id']))
values['unit_kode'] = unit.id
values['unit_nama'] = unit.nama
rek = Rekening.get_by_kode(values['rek_kode'])
if not rek:
return custom_error(-1,'Rekening not found, contact admin')
return custom_error(-1,'Rekening kode {} not found, contact admin'.format(values['rek_kode']))
values['rekening_id'] = rek.id
values['rek_nama'] = rek.nama
rdata = {}
for v in values:
v = v.strip()
row_invoice = DBSession.query(ARInvoice).\
filter(
ARInvoice.tgl_tetap == values['tgl_tetap'],
ARInvoice.op_kode == values['op_kode'],
ARInvoice.rekening_id == values['rekening_id'],
).first()
filter(ARInvoice.no_skrd == values['no_skrd']).first()
if row_invoice:
if row_invoice.status_bayar == 1:
raise JsonRpcBillAllreadyPaidError
......@@ -229,6 +224,7 @@ def set_invoice(request, data):
# Save Departemen_Route
values['kode'] = invoice.kode
values['no_skrd'] = invoice.no_skrd
values['tgl_skrd'] = invoice.tgl_tetap
values['ar_invoice_id'] = invoice.id
save_departemen_route(request, values)
......
<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>Daftar Kode Bayar (Bendahara)</h4>
<hr>
<div class="container">
<!--form class="form-inline" role="form" id="frm_upload" name="frm_upload">
<label for="upload" class="control-label">Upload:</label>
<input type="text" class="form-control" id="upload">
<button type="submit" class="btn btn-default">Upload</button>
</form-->
</div>
<p>
<table id="table1" name="table1" class="table table-bordered table-hover table-condensed" >
<thead>
<tr>
<th>ID</th>
<th>Kode Bayar</th>
<th>Penyetor</th>
<th>Objek</th>
<th>Uraian</th>
<th>Rekening</th>
<th>Jumlah</th>
<th>OPD</th>
<th>TBP</th>
<th>SSPD</th>
<th>STS</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="/static/datatables/media/js/jquery.dataTables.min.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 = "/arinvoicews/";
var oTableUrl = oFormUrl+"grid/act";
$.fn.dataTable.ext.search.push(
function( oSettings, aData, iDataIndex ) {
var iFini = document.getElementById('awal').value;
var iFfin = document.getElementById('akhir').value;
var iStartDateCol = 6;
var iEndDateCol = 7;
alert(iFini);
iFini=iFini.substring(6,10) + iFini.substring(3,5)+ iFini.substring(0,2);
iFfin=iFfin.substring(6,10) + iFfin.substring(3,5)+ iFfin.substring(0,2);
var datofini = aData[iStartDateCol].substring(6,10) + aData[iStartDateCol].substring(3,5) + aData[iStartDateCol].substring(0,2);
var datoffin = aData[iEndDateCol].substring(6,10) + aData[iEndDateCol].substring(3,5) + aData[iEndDateCol].substring(0,2);
if ( iFini === "" && iFfin === "" )
{
return true;
}
else if ( iFini <= datofini && iFfin === "")
{
return true;
}
else if ( iFfin >= datoffin && iFini === "")
{
return true;
}
else if (iFini <= datofini && iFfin >= datoffin)
{
return true;
}
return false;
}
);
$(document).ready(function () {
oTable = $('#table1').DataTable({
ajaxSource : oTableUrl,
//"bStateSave" : true,
serverSide : true,
"bProcessing" : true,
"sDom" : '<"toolbar">lfrtip',
"bScrollCollapse" : true,
"bSort" : true,
"bSearch" : true,
"bInfo" : false,
"bFilter" : true,
"bAutoWidth" : false,
"bPaginate" : true,
"sPaginationType" : "full_numbers",
"lengthMenu": [
[10, 25, 50, 100],
[10, 25, 50, 100]
],
"aoColumnDefs": [
{"bSearchable": false, "bVisible": false, "aTargets": [0,8,9,10]}
],
"aoColumns": [
null,
{"sWidth": "100px", "sClass": "left"},
{"sWidth": "30px", "sClass": "center"},
{"sWidth": "30px", "sClass": "center"},
null,
null,
{"sWidth": "75px", "sClass": "right"},
//{"sWidth": "75px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
//{"sWidth": "40px", "sClass": "center"},
null,
{"sWidth": "30px", "sClass": "center"},
{"sWidth": "30px", "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 TBP
//switch(aData[8]){
// case '1' :
// $('td',nRow).css("background-color","#AFEEEE")
// break;
//}
////Kondisi SSPD
//switch(aData[9]){
// case '1' :
// $('td',nRow).css("background-color","#F0E68C")
// break;
//}
////Kondisi STS
//switch(aData[10]){
// case '1' :
// $('td',nRow).css("background-color","#ddffdd")
// break;
//}
},
"language": {
"search" : "Cari: ",
"paginate":{
"first" : "Pertama ",
"last" : "Terakhir ",
"previous": "Sebelumnya ",
"next" : "Selanjutnya ",
},
"lengthMenu": "Tampil _MENU_ baris "
}
});
var tb_array = [
'<div class="btn-group pull-left">',
' <button id="btn_pdf" class="btn btn btn-success pull-left" type="button">PDF</button>',
' <button id="btn_csv" class="btn btn btn-info pull-left" type="button">CSV</button>',
' <button id="btn_close" class="btn btn btn-warning" type="button">Tutup</button>',
' <label class="pull-left">Periode',
' <input id="awal" class="input-sm " type="text" value="${rows.awal}">',
' s.d <input id="akhir" class="input-sm " type="text" value="${rows.akhir}">',
' </label>',
' &nbsp;',
'</div>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
var tb_periode = [
];
var tb = tb_periode.join(' ');
$("div.periode").html(tb);
$('#awal').pickadate({"selectMonths" : true,
"submitFormat" : "yyyy-mm-dd",
"selectYears" : true,
"format" : "yyyy-mm-dd"});
$('#akhir').pickadate({"selectMonths": true,
"submitFormat": "yyyy-mm-dd",
"selectYears" : true,
"format" : "yyyy-mm-dd"});
$('#awal, #akhir').change(function(){
oTableUrl = oFormUrl+"grid/act?awal="+$('#awal').val()+"&akhir="+$('#akhir').val();
oTable.ajax.url(oTableUrl).load();
});
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
mID = '';
$(this).removeClass('selected');
} else {
//iPos = oTable.fnGetPosition(this);
//var aData = oTable.fnGetData(iPos);
var aData = oTable.row( this ).data();
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 diedit');
}
});
$('#btn_posting').click(function () {
url = oFormUrl+'posting?awal='+$('#awal').val()+"&akhir="+$('#akhir').val();
window.location = url;
});
$('#btn_print').click(function () {
url = "/reports/act/r100?id="+mID;
if (mID) {
window.open(url);
} else {
alert('Silahkan pilih Kode Bayar');
}
});
$('#btn_print1').click(function () {
if (mID) {
url = oFormUrl+'cetak/pdf?awal='+$('#awal').val()+"&akhir="+$('#akhir').val()+"&id1="+mID;
window.open(url);
} else {
alert('Silahkan pilih data yang akan dicetak kwitansinya.');
}
});
$('#btn_skrd').click(function () {
if (mID) {
url = oFormUrl+'skrd/pdf?id='+mID;
window.open(url);
} else {
alert('Silahkan pilih data yang akan dicetak skrdnya.');
}
});
$('#btn_csv').click(function () {
url = oFormUrl+'csv/act?awal='+$('#awal').val()+"&akhir="+$('#akhir').val();
window.open(url);
});
$('#btn_pdf').click(function () {
url = oFormUrl+'pdf/act?awal='+$('#awal').val()+"&akhir="+$('#akhir').val();
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>
......@@ -60,6 +60,7 @@
<li><a href="/arinvoice">Kode Bayar (BUD)</a></li>
<li><a href="/arinvoiceb">Kode Bayar (Bendahara)</a></li>
<li><a href="/arinvoicewp">Kode Bayar (WP)</a></li>
<li><a href="/arinvoicews">Kode Bayar (WS)</a></li>
<li><a href="/report">Laporan</a></li>
</ul>
</li>
......
......@@ -80,29 +80,32 @@
font-size:13px;
}
</style>
<!-- <div class="well"> -->
<!-- <h1>SISTEM PENDAPATAN TERPADU</h1> -->
<!-- <p><img src="/static/img/logo-sipandu-pemda-bjb.png" class="img-float img-thumbnail"/> -->
<!-- Selamat datang di aplikasi SIPANDU -->
<tal:block tal:condition="not statusadmin">
<div class="well">
<h1>SISTEM PENDAPATAN TERPADU</h1>
<p><img src="/static/img/logo-sipandu-pemda-bjb.png" class="img-float img-thumbnail"/>
Selamat datang di aplikasi SIPANDU
<!-- <p>SIPANDU merupakan sub sistem dari aplikasi i-SIPKD yang bertujuan -->
<!-- meningkatkan pelayanan kepada masyarakat seluruh Provinsi Jawa Barat -->
<!-- khususnya dalam melayani registrasi pembayaran Pajak Daerah Provinsi yang -->
<!-- terdiri dari:</p> -->
<!-- <p> -->
<!-- <ul> -->
<!-- <li>Pajak Kendaraan Bermotor</li> -->
<!-- <li>Pajak Bahan Bakar Kendaraan Bermotor </li> -->
<!-- <li>Hibah Masyarakat/Lembaga Swasta</li> -->
<!-- <li>Pendapatan Lainnya</li> -->
<!-- </ul> -->
<!-- </p> -->
<!-- <p>Aplikasi Sistem Pendapatan Terpadu ini terselenggara atas kerjasama:</p> -->
<!-- <ul> -->
<!-- <li>Pemerintah Provinsi Jawa Barat,</li> -->
<!-- <li>PT. Bank Pembangunan Daerah Jawa Barat dan Banten, Tbk (Bank BJB)</li> -->
<p>SIPANDU merupakan sub sistem dari aplikasi i-SIPKD yang bertujuan
meningkatkan pelayanan kepada masyarakat seluruh Provinsi Jawa Barat
khususnya dalam melayani registrasi pembayaran Pajak Daerah Provinsi yang
terdiri dari:</p>
<p>
<ul>
<li>Pajak Kendaraan Bermotor</li>
<li>Pajak Bahan Bakar Kendaraan Bermotor </li>
<li>Hibah Masyarakat/Lembaga Swasta</li>
<li>Pendapatan Lainnya</li>
</ul>
</p>
<p>Aplikasi Sistem Pendapatan Terpadu ini terselenggara atas kerjasama:</p>
<ul>
<li>Pemerintah Provinsi Jawa Barat,</li>
<li>PT. Bank Pembangunan Daerah Jawa Barat dan Banten, Tbk (Bank BJB)</li>
<!-- </div> -->
</div>
</tal:block>
<tal:block tal:condition="statusadmin">
<div class="col-md-6">
<h4>REALISASI PENDAPATAN DAERAH TAHUN ${dates['year']}</h4>
</div>
......@@ -356,5 +359,6 @@
$("#unit").val("${request.session['unit']}");
</tal:block>
</script>
</tal:block>
</div>
</html>
......@@ -30,7 +30,9 @@ requires=['pyramid>=1.5a2<=1.6a1',
'z3c.rml',
'xlrd',
'pyramid_rpc',
'requests'
'requests',
'unoconv',
'py3o.template'
]
if sys.argv[1:] and sys.argv[1] == 'develop-use-pip':
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!