home.pt 12.1 KB
<html metal:use-macro="load: base.pt">
<div metal:fill-slot="content">
<style>
    h4 {
        font-weight:bold;
        text-align:left;
        color: #15915b;
    }
    h5 {
        font-weight:bold;
        font-size:18px;
        text-align:left;
        color: #264184;
    }
    .wraplabel {
        border:1px solid #15915b;
        border-radius: 5px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        padding:10px;
        margin-top:10px;
        margin-bottom:20px;
    }
    .labeltab {
        color:#264184;
        font-weight:bold;
        font-size:16px;
    }
    .textlabel {
        display:block;
        text-align:right;
        color:#005500;
        font-weight:bold;
    }
    .wrapchart {
        border:1px solid #c4c4c4;
        padding:0px;
        margin-top:10px;
        margin-bottom:20px;
    }
    .table {
        font-size: 12px;
        margin-top: 10px;
        margin-bottom: 20px;
    }
    .table th {
        background-color:#ddebf6;
    }
    .no-padding {
        padding:0px;
    }
    .wrapopd {
        border:1px solid #c4c4c4;
        min-height:120px;
        padding-top:5px;
        padding-bottom:5px;
    }
    .kodeopd {
        display:block;
        color:#264184;
        font-size:120%;
        font-weight:bold;
    }
    .namaopd {
        display:block;
        color:#264184;
        font-weight:500;
    }
    .jmlopd {
        display:block;
        font-size:120%;
        color:#264184;
        font-weight:bold;
        text-align:right;
        position: absolute;
        bottom: 5px;
        right: 10px;
    }
    .picker {
        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 -->

<!-- <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 class="col-md-6">
    <h4>REALISASI PENDAPATAN DAERAH TAHUN ${dates['year']}</h4>
</div>
<div class="col-md-6">
    <form method="get">
    <div class="col-md-5">
        <input id="date" type="text" class="form-control date" name="date" value="${request.session['date']}">
    </div>
    <div class="col-md-7">
        <select id="unit" class="form-control" name="unit">
            <option></option>
            <option tal:repeat="o opds" value="${o.kode.strip()}">${o.kode.strip()} - ${o.nama}</option>
        </select>
    </div>
    </form>
</div>
<div class="col-md-12">
    <div class="col-md-3">
        <div class="wraplabel">
            <font class="labeltab">Tahun ini</font><br>
            <font class="textlabel">${'{:n}'.format(data['tabular']['tahun']['q'])}</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['tahun']['n'])}</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="wraplabel">
            <font class="labeltab">Bulan ini</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['bulan']['q'])}</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['bulan']['n'])}</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="wraplabel">
            <font class="labeltab">Minggu ini</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['minggu']['q'])}</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['minggu']['n'])}</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="wraplabel">
            <font class="labeltab">Hari ini</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['hari']['q'])}</font>
            <font class="textlabel">${'{:n}'.format(data['tabular']['hari']['n'])}</font>
        </div>
    </div>
</div>
<div class="col-md-12">
    <div class="col-md-7">
        <font class="labeltab">Perkembangan Realisasi Pendapatan Daerah tahun ${dates['year']}</font><br>
        <div class="clearfix"></div>
        <canvas id="chart" class="wrapchart">
        </canvas>
    </div>
    <div class="col-md-5">
        <font class="labeltab">10 Penerimaan OPD Tertinggi Periode ${dates['day'].strftime('%d-%m-%Y')}</font><br>
        <div class="clearfix"></div>
        <table class="table table-bordered">
          <thead>
            <tr>
              <th style="text-align:center;">Peringkat</th>
              <th style="text-align:center;">Nama Unit</th>
              <th style="text-align:center;">Nominal</th>
            </tr>
          </thead>
          <tbody>
            <tal:block tal:repeat="s data['sopd10']">
            <tr>
              <td style="text-align:center;">${s['peringkat']}</td>
              <td style="text-align:left;">${s['unit']}</td>
              <td style="text-align:right;">${'{:n}'.format(s['nominal'])}</td>
            </tr>
            </tal:block>
          </tbody>
        </table>
    </div>
</div>
<div class="col-md-12">
    <tal:block tal:repeat="opd data['opd']">
    <div class="col-md-3 wrapopd">
        <font class="kodeopd">${opd['kode']}</font>
        <font class="namaopd">${opd['unit']}</font>
        <font class="jmlopd">${'{:n}'.format(opd['jumlah'])}</font>
    </div>
    </tal:block>
</div>
<div class="col-md-12">
<div class="clearfix"></div>
<br>
<div class="col-md-6">
    <h5>Ranking Penerimaan OPD Periode ${dates['day'].strftime('%d-%m-%Y')}</h5>
</div>
<div class="clearfix"></div>
        <table class="table table-bordered">
          <thead>
            <tr>
              <th style="text-align:center;">Peringkat</th>
              <th style="text-align:center;">Kode Unit</th>
              <th style="text-align:center;">Nama Unit</th>
              <th style="text-align:center;">Nominal</th>
            </tr>
          </thead>
          <tbody>
            <tal:block tal:repeat="so data['sopd']">
            <tr>
              <td style="text-align:center;">${so['peringkat']}</td>
              <td style="text-align:left;">${so['kode']}</td>
              <td style="text-align:left;">${so['unit']}</td>
              <td style="text-align:right;">${'{:n}'.format(so['nominal'])}</td>
            </tr>
            </tal:block>
          </tbody>
        </table>
</div>
<script type="text/javascript" src="/static/js/Chart.min.js"></script> 
<script type="text/javascript" src="/static/js/jquery-2.1.1.min.js"></script> 
<script>
    $(document).ready(function () {
        //CHART
        Chart.pluginService.register({
          beforeRender: function (chart) {
            if (chart.config.options.showAllTooltips) {
                // create an array of tooltips
                // we can't use the chart tooltip because there is only one tooltip per chart
                chart.pluginTooltips = [];
                chart.config.data.datasets.forEach(function (dataset, i) {
                    chart.getDatasetMeta(i).data.forEach(function (sector, j) {
                        chart.pluginTooltips.push(new Chart.Tooltip({
                            _chart: chart.chart,
                            _chartInstance: chart,
                            _data: chart.data,
                            _options: chart.options.tooltips,
                            _active: [sector]
                        }, chart));
                    });
                });

                // turn off normal tooltips
                chart.options.tooltips.enabled = false;
            }
        },
          afterDraw: function (chart, easing) {
            if (chart.config.options.showAllTooltips) {
                // we don't want the permanent tooltips to animate, so don't do anything till the animation runs atleast once
                if (!chart.allTooltipsOnce) {
                    if (easing !== 1)
                        return;
                    chart.allTooltipsOnce = true;
                }

                // turn on tooltips
                chart.options.tooltips.enabled = true;
                Chart.helpers.each(chart.pluginTooltips, function (tooltip) {
                    tooltip.initialize();
                    tooltip.update();
                    // we don't actually need this since we are not animating tooltips
                    tooltip.pivot();
                    tooltip.transition(easing).draw();
                });
                chart.options.tooltips.enabled = false;
            }
          }
        });
        
        //BAR
        var config = {
            type: 'bar',
            data: {
                labels: ['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Agt','Sep','Okt','Nov','Des'],
                datasets: [{
                    label: 'Transaksi',
                    backgroundColor: "#264184",
                    borderColor: "#264184",
                    data: ${data['chart']['q']},
                },
                {
                    label: 'Nominal',
                    backgroundColor: "#15915b",
                    borderColor: "#15915b",
                    data: ${str(data['chart']['n']).replace('L','')},
                }]
            },
            options: {
                responsive: true,
                showAllTooltips: false,
                tooltips: {
                  enabled: true,
                  callbacks: {
                    title: function(tooltipItem, data) {
                      return '';
                    },
                    label: function(tooltipItem, data) {
                      var label = data.labels[tooltipItem.index];
                      var val = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
                      return val;
                    },
                    labelTextColor: function(tooltipItem, data) {
                      return 'rgba(0,0,0,0.8)';
                    },
                    displayColors: false,
                    borderWidth: 0,
                  },
                  backgroundColor: "rgba(0, 0, 0, 0)",
                  titleFontSize: 11,
                  mode: 'point'
                },
                hover: {
                    mode: 'nearest',
                    intersect: true
                },
                scales: {
                    xAxes: [{
                        display: true,
                        scaleLabel: {
                            display: false,
                        },
                        gridLines: {
                            color: "rgba(0, 0, 0, 0)",
                        }
                    }],
                    yAxes: [{
                        display: true,
                        scaleLabel: {
                            display: false,
                            labelString: 'Value'
                        },
                        ticks: {
                            beginAtZero: true
                        }
                    }]
                },
                elements: {
                    line: {
                        tension: 0
                    }
                }
            }
        };
        var ctx = document.getElementById('chart').getContext('2d');
        BAR = new Chart(ctx, config);
        
        $('.date').pickadate({
            "submitFormat": "dd-mm-yyyy", 
            "format": "dd-mm-yyyy",});
        });
        $("#date, #unit").change(function(){
            $(this).parents('form').submit();
        });
        $('.date').attr('readonly', true);
        $('.date').css('background-color', 'transparent');
        <tal:block tal:condition="'unit' in request.session and request.session['unit']">
        $("#unit").val("${request.session['unit']}");
        </tal:block>
</script>
</div>
</html>