Commit e5c81f6b by taufikyu

Merge branch 'master' of https://git.opensipkd.com/taufik/esipkd

2 parents 20f05c3f 867858da
...@@ -69,7 +69,7 @@ def view_detail(request): ...@@ -69,7 +69,7 @@ def view_detail(request):
level = rekening.level_id level = rekening.level_id
kd = rekening.kode.strip() kd = rekening.kode.strip()
unit = rekening.nama.strip() unit = rekening.nama.strip()
rek = Rekening.query().filter(Rekening.level_id==(level+1)).order_by(Rekening.kode).all() rek = Rekening.query().filter(Rekening.level_id==(level+1), Rekening.kode.ilike(params['kode']+'%')).order_by(Rekening.kode).all()
else: else:
rek = Rekening.query().filter(Rekening.level_id==2).order_by(Rekening.kode).all() rek = Rekening.query().filter(Rekening.level_id==2).order_by(Rekening.kode).all()
reks = [] reks = []
......
...@@ -60,12 +60,23 @@ log = logging.getLogger(__name__) ...@@ -60,12 +60,23 @@ log = logging.getLogger(__name__)
@view_config(route_name='rek-det', renderer='templates/rekening/rekening_det.pt') @view_config(route_name='rek-det', renderer='templates/rekening/rekening_det.pt')
def view_detail(request): def view_detail(request):
params = request.params params = request.params
kd = ''
unit = ''
no = ''
rekening = Rekening.query().filter(func.trim(Rekening.kode)==params['kode'].strip()).first()
level = DBSession.query(Rekening.level_id).filter(Rekening.kode==params['kode']).scalar() level = DBSession.query(Rekening.level_id).filter(Rekening.kode==params['kode']).scalar()
rek = Rekening.query().filter(Rekening.level_id==(level+1)).order_by(Rekening.kode).all() rek_a = Rekening.query().filter(Rekening.level_id==(level), Rekening.kode.ilike(params['kode']+'%')).order_by(Rekening.kode).all()
rek = Rekening.query().filter(Rekening.level_id==(level+1), Rekening.kode.ilike(params['kode']+'%')).order_by(Rekening.kode).all()
kd = rekening.kode.strip()
unit = rekening.nama.strip()
no = rekening.kode.strip()[-2]
reks = [] reks = []
reks_a = []
for r in rek: for r in rek:
reks.append(dict(kode=r.kode.strip(), nama=r.nama.strip(), target=0, realisasi=0, persen=0)) reks.append(dict(kode=r.kode.strip(), nama=r.nama.strip(), target=0, realisasi=0, persen=0))
for r in rek_a:
reks_a.append(dict(kode=r.kode.strip(), nama=r.nama.strip(), target=0, realisasi=0, persen=0))
payments = DBSession.query( payments = DBSession.query(
ARSspd.tgl_bayar.label('tanggal'), ARSspd.tgl_bayar.label('tanggal'),
...@@ -85,6 +96,9 @@ def view_detail(request): ...@@ -85,6 +96,9 @@ def view_detail(request):
for r in reks: for r in reks:
if p.rek_kode.strip().startswith(r['kode']): if p.rek_kode.strip().startswith(r['kode']):
r['realisasi'] += int(p.jumlah) r['realisasi'] += int(p.jumlah)
for r in reks_a:
if p.rek_kode.strip().startswith(r['kode']):
r['realisasi'] += int(p.jumlah)
## JIKA TIDAK ADA FILTER DEPARTEMEN ## JIKA TIDAK ADA FILTER DEPARTEMEN
elif not 'unit' in params or not params['unit']: elif not 'unit' in params or not params['unit']:
...@@ -92,6 +106,9 @@ def view_detail(request): ...@@ -92,6 +106,9 @@ def view_detail(request):
for r in reks: for r in reks:
if p.rek_kode.strip().startswith(r['kode']): if p.rek_kode.strip().startswith(r['kode']):
r['realisasi'] += int(p.jumlah) r['realisasi'] += int(p.jumlah)
for r in reks_a:
if p.rek_kode.strip().startswith(r['kode']):
r['realisasi'] += int(p.jumlah)
invoices = DBSession.query( invoices = DBSession.query(
ARInvoice.tgl_tetap.label('tanggal'), ARInvoice.tgl_tetap.label('tanggal'),
...@@ -110,19 +127,27 @@ def view_detail(request): ...@@ -110,19 +127,27 @@ def view_detail(request):
for r in reks: for r in reks:
if i.rek_kode.strip().startswith(r['kode']): if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah) r['target'] += int(i.jumlah)
for r in reks_a:
if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah)
## JIKA TIDAK ADA FILTER DEPARTEMEN ## JIKA TIDAK ADA FILTER DEPARTEMEN
elif not 'unit' in params or not params['unit']: elif not 'unit' in params or not params['unit']:
## REKENING ## REKENING
for r in reks: for r in reks:
if i.rek_kode.strip().startswith(r['kode']): if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah) r['target'] += int(i.jumlah)
for r in reks_a:
if i.rek_kode.strip().startswith(r['kode']):
r['target'] += int(i.jumlah)
## Hitung Persen ## Hitung Persen
for r in reks: for r in reks:
r['persen'] = r['target']>0 and str(round((float(r['realisasi'])/float(r['target']))*100,2)) or '0' r['persen'] = r['target']>0 and str(round((float(r['realisasi'])/float(r['target']))*100,2)) or '0'
for r in reks_a:
r['persen'] = r['target']>0 and str(round((float(r['realisasi'])/float(r['target']))*100,2)) or '0'
if len(reks)==0: if len(reks)==0:
raise HTTPFound(location=request.route_url('home')) raise HTTPFound(location=request.route_url('home'))
count_rek = len(reks) > 3 and 3 or 4 count_rek = len(reks) > 3 and 3 or 4
return dict(data=reks, count_rek=count_rek) return dict(data=reks, data_a=reks_a, count_rek=count_rek, no=no, kd=kd, unit=unit)
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
} }
.padding { .padding {
padding: 15px; padding: 15px;
width: auto;
} }
h3 { h3 {
font-weight:bold; font-weight:bold;
...@@ -27,23 +28,17 @@ ...@@ -27,23 +28,17 @@
padding-top: 1px !important; padding-top: 1px !important;
padding-bottom: 1px !important; padding-bottom: 1px !important;
vertical-align: middle !important; vertical-align: middle !important;
word-wrap: break-word !important;
} }
hr { hr {
border-top: 1px dashed black; border-top: 1px dashed black;
} }
table.table-fit { table.main-table{
width: auto !important;
table-layout: auto !important;
}
table.table-fixed {
width: 100%;
table-layout: fixed !important; table-layout: fixed !important;
} }
table.table-fit thead th, table.table-fit tfoot th { table.table-fit {
width: auto !important;
}
table.table-fit tbody td, table.table-fit tfoot td {
width: auto !important; width: auto !important;
table-layout: auto !important;
} }
table.main-table td{ table.main-table td{
border: 1px solid black !important; border: 1px solid black !important;
...@@ -51,6 +46,31 @@ ...@@ -51,6 +46,31 @@
table.child td { table.child td {
border: none !important; border: none !important;
} }
img.qr-code{
width: 100%;
height: 100%;
max-height: 150px;
max-width: 150px;
}
.flex-box {
display: flex;
flex-wrap: wrap;
}
@media screen and (max-width: 800px) {
table.flex-box tr {
display: flex;
flex-direction: row;
flex-wrap: wrap;
text-align: center;
/*margin: 0.5em 0;*/
/*border: 1px solid rgba(3,3,3,0.2);*/
}
table.flex-box td, th {
flex: 1 1 150px;
text-align: center;
/*border: 0.5px solid rgba(3,3,3,0.2);*/
}
}
</style> </style>
<tal:block tal:condition="not found"> <tal:block tal:condition="not found">
...@@ -62,7 +82,7 @@ ...@@ -62,7 +82,7 @@
<br> <br>
</div> --> </div> -->
<div class="col-md-10 col-md-offset-1"> <div class="col-md-10 col-md-offset-1">
<div class="border padding"> <div class="container border padding">
<table class="table table-bordered main-table"> <table class="table table-bordered main-table">
<tr> <tr>
<td><b>PEMERINTAH PROVINSI JAWA BARAT <br> <td><b>PEMERINTAH PROVINSI JAWA BARAT <br>
...@@ -79,14 +99,16 @@ ...@@ -79,14 +99,16 @@
<tr> <tr>
<td></td> <td></td>
<td align="center"> <td align="center">
<table class="table table-fit child"> <table class="table table-fit child flex-box">
<tr class="borderless"> <tr class="borderless">
<td>Masa Retribusi</td> <td>Masa Retribusi</td>
<td>: <b>${data.periode_1} s/d ${data.periode_2}</b></td> <td>:</td>
<td><b>${data.periode_1} s/d ${data.periode_2}</b></td>
</tr> </tr>
<tr class="borderless"> <tr class="borderless">
<td>Tahun</td> <td>Tahun</td>
<td>: <b>${data.tahun_id}</b></td> <td>:</td>
<td><b>${data.tahun_id}</b></td>
</tr> </tr>
</table> </table>
</td> </td>
...@@ -148,7 +170,7 @@ ...@@ -148,7 +170,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center"><p><img src="data:image/png;base64, ${qrcodebase64}" width="150" height="150"></p></td> <td align="center"><p><img class="qr-code" src="data:image/png;base64, ${qrcodebase64}"></p></td>
<td></td> <td></td>
<td align="center"><b>${data.tgl_tetap.strftime('%d %B')} ${data.tahun_id}</b><br> <td align="center"><b>${data.tgl_tetap.strftime('%d %B')} ${data.tahun_id}</b><br>
${data.pejabat_pangkat}<br><br><br><br><br> ${data.pejabat_pangkat}<br><br><br><br><br>
......
...@@ -106,15 +106,52 @@ ...@@ -106,15 +106,52 @@
} }
</style> </style>
<div class="col-md-12"> <div class="col-md-12">
<tal:block tal:repeat="r data"> <div class="col-md-12">
<a class="link-styleless" title="klik untuk melihat daftar lengkap rekening" href="/rek/det?${r['kode'] and 'kode='+r['kode'] or ''}${request.params['year'] and '&year='+str(request.params['year']) or ''}${('unit' in request.params and request.params['unit']) and '&unit='+request.params['unit'].strip() or ''}"> <h5>Detail Rekening Penerimaan Periode ${request.params['year']}</h5>
<div class="col-md-${count_rek} wrapopd">
<font class="kodeopd">${r['kode']}</font>
<font class="namaopd">${r['nama']}</font>
<font class="jmlopd">${'{:n}'.format(r['realisasi'])}</font>
</div> </div>
</a> <div class="clearfix"></div>
<table class="table table-bordered">
<thead>
<tr>
<th style="text-align:center;">No</th>
<th style="text-align:center;">Kode Rekening</th>
<th style="text-align:center;">JENIS PENERIMAAN</th>
<th style="text-align:center;">TARGET<br>Rp.</th>
<th style="text-align:center;">REALISASI<br>Rp.</th>
<th style="text-align:center;">%</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:right;"><b>${'{}.'.format(no)}</b></td>
<td style="text-align:left;"><b>${kd}</b></td>
<td style="text-align:left;"><b>${unit}</b></td>
<td style="text-align:right;"></td>
<td style="text-align:right;"></td>
<td style="text-align:right;"></td>
</tr>
<tal:block tal:repeat="r data">
<tr class="link-styleless" title="klik untuk melihat daftar lengkap rekening" href="/rek/det?${r['kode'] and 'kode='+r['kode'] or ''}${request.params['year'] and '&year='+str(request.params['year']) or ''}${('unit' in request.params and request.params['unit']) and '&unit='+request.params['unit'].strip() or ''}">
<td style="text-align:right;"></td>
<td style="text-align:left;">${r['kode']}</td>
<td style="text-align:left;">${r['nama']}</td>
<td style="text-align:right;">${'{:n}'.format(r['target'])}</td>
<td style="text-align:right;">${'{:n}'.format(r['realisasi'])}</td>
<td style="text-align:right;">${r['persen']}</td>
</tr>
</tal:block> </tal:block>
<tal:block tal:repeat="re data_a">
<tr class="bgth">
<td style="text-align:right;"></td>
<td style="text-align:left;"></td>
<td style="text-align:left;"><b>JUMLAH :</b></td>
<td style="text-align:right;"><b>${'{:n}'.format(re['target'])}</b></td>
<td style="text-align:right;"><b>${'{:n}'.format(re['realisasi'])}</b></td>
<td style="text-align:right;"><b>${re['persen']}</b></td>
</tr>
</tal:block>
</tbody>
</table>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<div class="clearfix"></div> <div class="clearfix"></div>
...@@ -124,15 +161,9 @@ ...@@ -124,15 +161,9 @@
<script type="text/javascript" src="/static/js/jquery-2.1.1.min.js"></script> <script type="text/javascript" src="/static/js/jquery-2.1.1.min.js"></script>
<script> <script>
$(document).ready(function () { $(document).ready(function () {
$('tr.header').click(function() { $('table tbody tr.link-styleless').click(function(){
$('.expanded').slideUp(100, function() {}); window.location = $(this).attr('href');
if (!$(this).hasClass('expanded-header')) { return false;
$(this).nextUntil('tr.header').addClass('expanded').slideToggle(100, function() {});
$('.expanded-header').removeClass('expanded-header');
$(this).addClass('expanded-header');
} else {
$(this).removeClass('expanded-header');
}
}); });
$('.date').pickadate({ $('.date').pickadate({
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!