Add webr.py to import Webr models

1 parent d8e4d127
...@@ -12,7 +12,7 @@ from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR, ...@@ -12,7 +12,7 @@ from ..models.payment import PaymentPBB, PaymentPAD, PaymentBPHTB, PaymentWEBR,
from opensipkd.pbb.monitoring.models import PembayaranSppt, Kecamatan, Kelurahan, Sppt from opensipkd.pbb.monitoring.models import PembayaranSppt, Kecamatan, Kelurahan, Sppt
from datetime import timedelta from datetime import timedelta
from ..models.payment import PCDBSession from ..models.payment import PCDBSession
from opensipkd.webr.models import WebrAnggaran, WebrArPayment
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
PAD_TYP = { PAD_TYP = {
...@@ -155,7 +155,7 @@ class Views(BaseView): ...@@ -155,7 +155,7 @@ class Views(BaseView):
} }
def get_daily_data(self, table, field, today, filters, typ=None): def get_daily_data(self, table, field, today, filters, typ=None):
#todo ada kemungkinan menyebabkan error ke transaksi yang lain # todo ada kemungkinan menyebabkan error ke transaksi yang lain
if type(filters) is not list: if type(filters) is not list:
filters = [filters] filters = [filters]
if PCDBSession.registry().in_transaction(): if PCDBSession.registry().in_transaction():
...@@ -178,14 +178,13 @@ class Views(BaseView): ...@@ -178,14 +178,13 @@ class Views(BaseView):
dailyAccTrx = [] dailyAccTrx = []
amt = trx = acc = accTrx = 0 amt = trx = acc = accTrx = 0
for r in qry: for r in qry:
mapped = r._mapping mapped = r._mapping
step = mapped.get("step","") step = mapped.get("step", "")
bayar = mapped.get("bayar", 0) bayar = mapped.get("bayar", 0)
denda = mapped.get("denda", 0) denda = mapped.get("denda", 0)
pokok = bayar - denda pokok = bayar - denda
tx = mapped.get("trx",0) tx = mapped.get("trx", 0)
daily.append((step, pokok)) daily.append((step, pokok))
dailyTrx.append((step, tx)) dailyTrx.append((step, tx))
acc += pokok acc += pokok
...@@ -219,9 +218,9 @@ class Views(BaseView): ...@@ -219,9 +218,9 @@ class Views(BaseView):
def get_pbb_data(self): def get_pbb_data(self):
today = datetime.now().date() today = datetime.now().date()
#Piutang # Piutang
#Harian # Harian
field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'yyyy-mm-dd') field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'yyyy-mm-dd')
filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between( filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between(
today-timedelta(days=6), today) today-timedelta(days=6), today)
...@@ -230,14 +229,14 @@ class Views(BaseView): ...@@ -230,14 +229,14 @@ class Views(BaseView):
self.get_daily_data(PembayaranSppt, field, self.get_daily_data(PembayaranSppt, field,
today.strftime("%Y-%m-%d"), filter_exp) today.strftime("%Y-%m-%d"), filter_exp)
#Total Setahun # Total Setahun
field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'IYYY') field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'IYYY')
filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between( filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today) datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \ ytd, ytdTrx, yearly, yearlyTrx, yearlyAcc, yearlyAccTrx = \
self.get_daily_data(PembayaranSppt, field, self.get_daily_data(PembayaranSppt, field,
str(today.year), filter_exp) str(today.year), filter_exp)
#Piutang # Piutang
filter_exp = [PembayaranSppt.tgl_pembayaran_sppt.between( filter_exp = [PembayaranSppt.tgl_pembayaran_sppt.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today), datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today),
PembayaranSppt.thn_pajak_sppt < today.year] PembayaranSppt.thn_pajak_sppt < today.year]
...@@ -245,12 +244,12 @@ class Views(BaseView): ...@@ -245,12 +244,12 @@ class Views(BaseView):
self.get_daily_data(PembayaranSppt, field, self.get_daily_data(PembayaranSppt, field,
str(today.year), filter_exp) str(today.year), filter_exp)
#Bulanan # Bulanan
field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'MM') field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \ month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PembayaranSppt, field, None, filter_exp) self.get_daily_data(PembayaranSppt, field, None, filter_exp)
#Mingguan # Mingguan
field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'WW') field = func.to_char(PembayaranSppt.tgl_pembayaran_sppt, 'WW')
filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between( filter_exp = PembayaranSppt.tgl_pembayaran_sppt.between(
today-timedelta(weeks=6), today) today-timedelta(weeks=6), today)
...@@ -296,7 +295,7 @@ class Views(BaseView): ...@@ -296,7 +295,7 @@ class Views(BaseView):
else: else:
today = datetime.now().date() today = datetime.now().date()
#Harian # Harian
field = func.to_char(PaymentBPHTB.tgl, 'yyyy-mm-dd') field = func.to_char(PaymentBPHTB.tgl, 'yyyy-mm-dd')
filter_exp = PaymentBPHTB.tgl.between( filter_exp = PaymentBPHTB.tgl.between(
today-timedelta(days=6), today) today-timedelta(days=6), today)
...@@ -304,7 +303,7 @@ class Views(BaseView): ...@@ -304,7 +303,7 @@ class Views(BaseView):
self.get_daily_data(PaymentBPHTB, field, self.get_daily_data(PaymentBPHTB, field,
today.strftime("%Y-%m-%d"), filter_exp) today.strftime("%Y-%m-%d"), filter_exp)
#Total Tahunan # Total Tahunan
field = func.to_char(PaymentBPHTB.tgl, 'IYYY') field = func.to_char(PaymentBPHTB.tgl, 'IYYY')
filter_exp = PaymentBPHTB.tgl.between( filter_exp = PaymentBPHTB.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today) datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
...@@ -312,12 +311,12 @@ class Views(BaseView): ...@@ -312,12 +311,12 @@ class Views(BaseView):
self.get_daily_data(PaymentBPHTB, field, self.get_daily_data(PaymentBPHTB, field,
str(today.year), filter_exp) str(today.year), filter_exp)
#Bulanan # Bulanan
field = func.to_char(PaymentBPHTB.tgl, 'MM') field = func.to_char(PaymentBPHTB.tgl, 'MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \ month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentBPHTB, field, None, filter_exp) self.get_daily_data(PaymentBPHTB, field, None, filter_exp)
#Mingguan # Mingguan
field = func.to_char(PaymentBPHTB.tgl, 'WW') field = func.to_char(PaymentBPHTB.tgl, 'WW')
filter_exp = PaymentBPHTB.tgl.between( filter_exp = PaymentBPHTB.tgl.between(
today-timedelta(weeks=6), today) today-timedelta(weeks=6), today)
...@@ -356,15 +355,14 @@ class Views(BaseView): ...@@ -356,15 +355,14 @@ class Views(BaseView):
today = datetime.now().date() today = datetime.now().date()
filter_ex = [] filter_ex = []
#Harian # Harian
field = func.to_char(PaymentPAD.tgl, 'yyyy-mm-dd') field = func.to_char(PaymentPAD.tgl, 'yyyy-mm-dd')
filter_exp = PaymentPAD.tgl.between(today-timedelta(days=6), today) filter_exp = PaymentPAD.tgl.between(today-timedelta(days=6), today)
amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \ amt, trx, daily, dailyTrx, dailyAcc, dailyAccTrx = \
self.get_daily_data(PaymentPAD, field, self.get_daily_data(PaymentPAD, field,
today.strftime("%Y-%m-%d"), filter_exp, typ) today.strftime("%Y-%m-%d"), filter_exp, typ)
# Total Tahun Berjalan
#Total Tahun Berjalan
field = func.to_char(PaymentPAD.tgl, 'IYYY') field = func.to_char(PaymentPAD.tgl, 'IYYY')
filter_exp = PaymentPAD.tgl.between( filter_exp = PaymentPAD.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today) datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
...@@ -372,19 +370,19 @@ class Views(BaseView): ...@@ -372,19 +370,19 @@ class Views(BaseView):
self.get_daily_data(PaymentPAD, field, str( self.get_daily_data(PaymentPAD, field, str(
today.year), filter_exp, typ) today.year), filter_exp, typ)
#Bulanan # Bulanan
field = func.to_char(PaymentPAD.tgl, 'MM') field = func.to_char(PaymentPAD.tgl, 'MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \ month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentPAD, field, None, filter_exp, typ) self.get_daily_data(PaymentPAD, field, None, filter_exp, typ)
#Mingguan # Mingguan
field = func.to_char(PaymentPAD.tgl, 'WW') field = func.to_char(PaymentPAD.tgl, 'WW')
filter_exp = PaymentPAD.tgl.between( filter_exp = PaymentPAD.tgl.between(
today-timedelta(weeks=6), today) today-timedelta(weeks=6), today)
week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \ week, weekTrx, weekly, weeklyTrx, weeklyAcc, weeklyAccTrx = \
self.get_daily_data(PaymentPAD, field, None, filter_exp, typ) self.get_daily_data(PaymentPAD, field, None, filter_exp, typ)
#Target # Target
ytd_target = float(self.get_targets(typ)) ytd_target = float(self.get_targets(typ))
ytd_persen = round(ytd/ytd_target * 100, 2) if ytd_target > 0 else 0 ytd_persen = round(ytd/ytd_target * 100, 2) if ytd_target > 0 else 0
return {"today": amt, return {"today": amt,
...@@ -424,7 +422,7 @@ class Views(BaseView): ...@@ -424,7 +422,7 @@ class Views(BaseView):
self.get_daily_data(PaymentWEBR, field, self.get_daily_data(PaymentWEBR, field,
today.strftime("%Y-%m-%d"), filter_exp) today.strftime("%Y-%m-%d"), filter_exp)
#Tahunan # Tahunan
field = func.to_char(PaymentWEBR.tgl, 'IYYY') field = func.to_char(PaymentWEBR.tgl, 'IYYY')
filter_exp = PaymentWEBR.tgl.between( filter_exp = PaymentWEBR.tgl.between(
datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today) datetime.strptime(f"{today.year}-01-01", "%Y-%m-%d"), today)
...@@ -432,12 +430,12 @@ class Views(BaseView): ...@@ -432,12 +430,12 @@ class Views(BaseView):
self.get_daily_data(PaymentWEBR, field, self.get_daily_data(PaymentWEBR, field,
str(today.year), filter_exp) str(today.year), filter_exp)
#Bulanan # Bulanan
field = func.to_char(PaymentWEBR.tgl, 'YYYY-MM') field = func.to_char(PaymentWEBR.tgl, 'YYYY-MM')
month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \ month, monthTrx, monthly, monthlyTrx, monthlyAcc, monthlyAccTrx = \
self.get_daily_data(PaymentWEBR, field, None, filter_exp) self.get_daily_data(PaymentWEBR, field, None, filter_exp)
#Mingguan # Mingguan
field = func.to_char(PaymentWEBR.tgl, 'YYYY-WW') field = func.to_char(PaymentWEBR.tgl, 'YYYY-WW')
filter_exp = PaymentWEBR.tgl.between( filter_exp = PaymentWEBR.tgl.between(
today-timedelta(weeks=6), today) today-timedelta(weeks=6), today)
...@@ -625,6 +623,78 @@ class Views(BaseView): ...@@ -625,6 +623,78 @@ class Views(BaseView):
"persen": round(realisasi/target * 100, 2) if target > 0 else 0} "persen": round(realisasi/target * 100, 2) if target > 0 else 0}
} }
def get_ret_dinas_data(self):
today = datetime.now().date()
result = []
tahun = today.year
anggaran = WebrAnggaran.sum_departemen(tahun)
for dept in anggaran:
d = dept._asdict()
result.append({"kode": d["departemen_kode"],
"nama": d["departemen_nama"],
"target": float(d["total_perubahan"]) or float(d["total_murni"]) or 0,
"realisasi": 0,
}
)
realisasi = WebrArPayment.sum_departemen(tahun)
for dept in realisasi:
found = False
d = dept._asdict()
for res in result:
if d["departemen_kode"] == res["kode"]:
found = True
res["realisasi"] = float(d["total_pokok"]) or 0
res["sisa"] = res["target"] - res["realisasi"]
res["persen"] = round(
res["realisasi"]/res["target"] * 100, 2) if res["target"] > 0 else 0
if not found:
result.append({"kode": d["departemen_kode"],
"nama": d["departemen_nama"],
"target": 0,
"realisasi": float(dept.total_pokok) or 0,
"sisa": 0 - (float(dept.total_pokok) or 0),
"persen": 0,
}
)
return result
def get_ret_jenis_data(self):
today = datetime.now().date()
result = []
tahun = today.year
anggaran = WebrAnggaran.sum_rekening(tahun)
for dept in anggaran:
result.append({"kode": dept.rekening_kode,
"nama": dept.rekening_nama,
"target": dept.total_perubahan or dept.total_murni or 0,
"realisasi": 0,
}
)
realisasi = WebrArPayment.sum_rekening(tahun)
for dept in realisasi:
found = False
for res in result:
if dept.rekening_kode == res["kode"]:
found = True
res["realisasi"] = float(dept.total_pokok) or 0
res["sisa"] = res["target"] - res["realisasi"]
res["persen"] = round(
res["realisasi"]/res["target"] * 100, 2) if res["target"] > 0 else 0
if not found:
result.append({"kode": dept.rekening_kode,
"nama": dept.rekening_nama,
"target": 0,
"realisasi": float(dept.total_pokok) or 0,
"sisa": 0 - (float(dept.total_pokok) or 0),
"persen": 0,
}
)
return result
@view_config(route_name='eis-pcpd-act', renderer='json') @view_config(route_name='eis-pcpd-act', renderer='json')
def view_app_act(self): def view_app_act(self):
tahun = self.ses['tahun'] tahun = self.ses['tahun']
...@@ -675,8 +745,14 @@ class Views(BaseView): ...@@ -675,8 +745,14 @@ class Views(BaseView):
resp = self.get_webr_data() resp = self.get_webr_data()
elif act == 'pajak': elif act == 'pajak':
resp = self.get_pajak_data() resp = self.get_pajak_data()
elif act == 'rdinas':
return self.get_ret_dinas_data()
elif act == 'rjenis':
return self.get_ret_jenis_data()
else: else:
resp = self.get_pad_data(act) resp = self.get_pad_data(act)
resp["time"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") resp["time"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
return resp return resp
......
...@@ -41,14 +41,18 @@ ...@@ -41,14 +41,18 @@
<metal:css define-slot="css_files"></metal:css> <metal:css define-slot="css_files"></metal:css>
<style metal:define-slot="styles"></style> <style metal:define-slot="styles"></style>
<style> <style>
#logo {margin: 0 !important;} #logo {
margin: 0 !important;
}
#logo img { #logo img {
height: 44px; height: 44px;
width: auto; width: auto;
margin: 0; margin: 0;
margin-left: 10px; margin-left: 10px;
} }
.project-context .title-page{
.project-context .title-page {
font-size: 19px; font-size: 19px;
line-height: 40px; line-height: 40px;
color: #474544; color: #474544;
...@@ -108,13 +112,13 @@ ...@@ -108,13 +112,13 @@
</span> </span>
<i class="fa fa-angle-down"></i> </a> <i class="fa fa-angle-down"></i> </a>
<ul class="dropdown-menu pull-right"> <ul class="dropdown-menu pull-right">
<li><a style="text-transform:capitalize" href="${request.route_url('profile')}">Profile</a> <li><a style="text-transform:capitalize" href="${request.route_url('base-profile')}">Profile</a>
</li> </li>
<li tal:condition="not request.user.external"> <li tal:condition="not request.user.external">
<a style="text-transform:capitalize" href="${request.route_url('password')}">Ubah <a style="text-transform:capitalize" href="${request.route_url('base-password')}">Ubah
password</a> password</a>
</li> </li>
<li><a style="text-transform:capitalize" href="${request.route_url('logout')}">Logout</a> <li><a style="text-transform:capitalize" href="${request.route_url('base-logout')}">Logout</a>
</li> </li>
<li tal:condition="request.user.api_key"><a style="text-transform:capitalize" <li tal:condition="request.user.api_key"><a style="text-transform:capitalize"
href="${home}/recreate-api-key">API Key</a></li> href="${home}/recreate-api-key">API Key</a></li>
......
...@@ -134,12 +134,102 @@ ...@@ -134,12 +134,102 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<img src="${home}/eis/static/42x42-statistics.png" class="icon-rounded" alt="" align="left">
<h5 class="text-left bold">Target dan Realisasi per Dinas
<i class="fa fa-info-circle pull-right icon-color"></i>
</h5>
</div>
<div class="panel-body">
<table class="table table-bordered table-sm" id="tableDinas">
<thead>
<tr>
<th class="align-middle text-center">Kode</th>
<th class="align-middle text-center">Instansi</th>
<th class="text-center">Target</th>
<th class="text-center">Realisasi</th>
<th class="text-center">Selisih</th>
<th class="text-center">%</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td class=""></td>
<td class=""></td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
</tr>
</tbody>
<tfoot>
<td colspan="2" class="text-right">Jumlah</td>
<td><span id="sum_target"></span></td>
<td><span id="sum_realisasi"></span></td>
<td><span id="sum_sisa"></span></td>
<td><span id="sum_persen"></span></td>
</tfoot>
</table>
</div>
</div>
</div>
<hr>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<img src="${home}/eis/static/42x42-statistics.png" class="icon-rounded" alt="" align="left">
<h5 class="text-left bold">Target dan Realisasi per Jenis
<i class="fa fa-info-circle pull-right icon-color"></i>
</h5>
</div>
<div class="panel-body">
<table class="table table-bordered table-sm" id="tableJenis">
<thead>
<tr>
<th class="align-middle text-center">Kode</th>
<th class="align-middle text-center">Jenis</th>
<th class="text-center">Target</th>
<th class="text-center">Realisasi</th>
<th class="text-center">Selisih</th>
<th class="text-center">%</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td class=""></td>
<td class=""></td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
</tr>
</tbody>
<tfoot>
<td colspan="2" class="text-right">Jumlah</td>
<td><span id="jns_target"></span></td>
<td><span id="jns_realisasi"></span></td>
<td><span id="jns_sisa"></span></td>
<td><span id="jns_persen"></span></td>
</tfoot>
</table>
</div>
</div>
</div>
<hr>
</div>
</div> </div>
<metal:js fill-slot="js_files"> <metal:js fill-slot="js_files">
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.js"></script> --> <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.js"></script> -->
<script src="${home}/eis/static/js/chart.js"></script> <script src="${home}/eis/static/js/chart.js"></script>
<script src="${home}/eis/static/js/chartjs-adapter-date-fns.bundle.min.js"></script> <script src="${home}/eis/static/js/chartjs-adapter-date-fns.bundle.min.js"></script>
<script src="${home}/eis/static/js/odometer.js"></script> <script src="${home}/eis/static/js/odometer.js"></script>
<script src="${home}/static/v3/plugin/datatables/1.10/media/js/jquery.dataTables.min.js"></script>
<script src="${home}/static/v3/plugin/datatables/1.10/media/js/jquery.dataTables.ext.js"></script>
</metal:js> </metal:js>
...@@ -349,7 +439,134 @@ ...@@ -349,7 +439,134 @@
value: 0, value: 0,
format: '(.ddd)', format: '(.ddd)',
}); });
//Ditambahkan atas permintaan 2025-10-28
//grid per dinas
var tableDinas = $('#tableDinas').DataTable(
{
"destroy": true,
"paging": false,
"searching": false,
"info": false,
"autoWidth": false,
"scrollX": true,
"order": [[0, 'asc']],
"columnDefs": [
{ className: 'text-center', width: "50px", targets: [0] },
{ className: 'text-left', targets: [1] },
{ className: 'text-right', width: "100px", targets: [2, 3, 4], render: $.fn.dataTable.render.number('.', ',', 0, '') },
{ className: 'text-right', width: "100px", targets: [5], render: $.fn.dataTable.render.number('.', ',', 2, '') },
]
}
);
var dinasRefresh = function () {
tableDinas.clear();
var dinasUrl = "${url}".replace("/webr/", "/rdinas/");
$.get(dinasUrl, {}, function (data, status) {
if (status === "success") {
console.log("Data:", data);
var sum_target = 0;
var sum_realisasi = 0;
var sum_sisa = 0;
var sum_persen = 0;
data.forEach(function (row) {
console.log(row);
tableDinas.row.add([
row.kode,
row.nama,
row.target,
row.realisasi,
row.sisa,
row.persen.toFixed(2)
]);
sum_target += row.target;
sum_realisasi += row.realisasi;
sum_sisa += row.sisa;
sum_persen += row.persen;
});
$('#sum_target').html(sum_target.toLocaleString("id-ID"));
$('#sum_realisasi').html(sum_realisasi.toLocaleString("id-ID"));
$('#sum_sisa').html(sum_sisa.toLocaleString("id-ID"));
if (sum_target > 0)
$('#sum_persen').html((sum_realisasi / sum_target * 100).toFixed(2));
else
$('#sum_persen').html("0.00");
tableDinas.draw();
} else {
console.log("Request failed.");
tableDinas.draw();
}
}).fail(function () {
console.log("Request failed.");
tableDinas.draw();
});
}
//grid per jenis
var tableJenis = $('#tableJenis').DataTable(
{
"destroy": true,
"paging": false,
"searching": false,
"info": false,
"autoWidth": false,
"scrollX": true,
"order": [[0, 'asc']],
"columnDefs": [
{ className: 'text-center', width: "50px", targets: [0] },
{ className: 'text-left', targets: [1] },
{ className: 'text-right', width: "100px", targets: [2, 3, 4], render: $.fn.dataTable.render.number('.', ',', 0, '') },
{ className: 'text-right', width: "100px", targets: [5], render: $.fn.dataTable.render.number('.', ',', 2, '') },
]
}
);
var jenisRefresh = function () {
tableJenis.clear();
var jenisUrl = "${url}".replace("/webr/", "/rjenis/");
$.get(jenisUrl, {}, function (data, status) {
if (status === "success") {
console.log(data);
var jns_target = 0;
var jns_realisasi = 0;
var jns_sisa = 0;
var jns_persen = 0;
data.forEach(function (row) {
console.log(row);
tableJenis.row.add([
row.kode,
row.nama,
row.target,
row.realisasi,
row.sisa,
row.persen.toFixed(2)
]);
jns_target += row.target;
jns_realisasi += row.realisasi;
jns_sisa += row.sisa;
jns_persen += row.persen;
});
$('#jns_target').html(jns_target.toLocaleString("id-ID"));
$('#jns_realisasi').html(jns_realisasi.toLocaleString("id-ID"));
$('#jns_sisa').html(jns_sisa.toLocaleString("id-ID"));
if (jns_target > 0)
$('#jns_persen').html((jns_realisasi / jns_target * 100).toFixed(2));
else
$('#jns_persen').html("0.00");
tableJenis.draw();
} else {
console.log("Request failed.");
tableJenis.draw();
}
}).fail(function () {
console.log("Request failed.");
tableJenis.draw();
});
}
$.fn.datarefresh = function () { $.fn.datarefresh = function () {
console.log("data_refresh"); console.log("data_refresh");
console.log("${url}"); console.log("${url}");
...@@ -367,6 +584,8 @@ ...@@ -367,6 +584,8 @@
time.style.fontWeight = 'bold'; time.style.fontWeight = 'bold';
addData(pieChart, newData.pie); addData(pieChart, newData.pie);
trendChart(); trendChart();
dinasRefresh();
jenisRefresh();
} else { } else {
console.log("Request failed."); console.log("Request failed.");
} }
......
from opensipkd.webr.models import (
WebrAnggaran,
WebrProduk,
WebrArInvoice,
Departemen
)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!