list_tp.pt 7.82 KB
<html metal:use-macro="load: ./base.pt">
<div metal:fill-slot="content">
  <tal metal:use-macro="load:list_include.pt" />
  <div class="jarviswidget jarviswidget-color-blueLight"> <!-- jarviswidget -->
    <header role="heading">
      <h2>
        <i class="fa fa-fw fa-table"></i>
        ${request.title}
      </h2>
    </header>

    <div role="content">
      <div class="widget-body"> <!-- widget-body -->
        <div class="dataTables_wrapper form-inline no-footer">
          <div class="dt-toolbar" style="padding: 0; margin-bottom: 5px; background: #fff; border-bottom: none;">
            <!-- dt-toolbar -->
            <div class="col-xs-12 col-md-12 col-sm-10">
              <div class="dataTables_filter">
                <label> <!-- Tgl.realisasi -->
                  <span class="input-group-addon text-left" id="label-awal"
                    style="width: 120px!important;padding-left: 10px!important;">Tgl. Laporan</span>
                  <input class="form-control" id="awal" name="awal" type="text" value="${request.session['awal']}" />
                  <span class="input-group-addon" id="label-akhir" style="width: 50px!important;">s.d.</span>
                  <input class="form-control" id="akhir" name="akhir" type="text" value="${request.session['akhir']}" />
                </label>
              </div>
            </div>
          </div>
          <div class="dt-toolbar" style="padding: 0; margin-bottom: 5px; background: #fff; border-bottom: none;">
            <!-- dt-toolbar -->
            <div class="col-xs-12 col-sm-10">
              <!-- input tp -->
              <div class="dataTables_filter" tal:define="kd_tp request.session.get('kd_tp','00')">
                <label>
                  <span class="input-group-addon text-left" id="label-buku"
                    style="width: 120px!important;padding-left: 10px!important;">Tempat Pembayaran</span>
                  <select id="tp" name="tp" class="form-control" style="width:150px;">
                    <option value="00">Semua</option>
                    <tal:block tal:repeat="tp tps">
                      <option tal:condition="tp.kd_tp != kd_tp" tal:attributes="value tp.kd_tp" tal:content="tp.nm_tp">
                      </option>
                      <option tal:condition="tp.kd_tp == kd_tp" tal:attributes="value tp.kd_tp; selected True"
                        tal:content="tp.nm_tp">
                      </option>
                    </tal:block>
                  </select>
                </label>
              </div>
              <!-- /input TP -->
            </div>
          </div> <!-- dt-toolbar -->


          <!--class="display dataTables" class="ui-state-default"  style="border:solid #EDEDED; "-->


        </div>
        <table id="table1" class="display table table-bordered table-hover table-condensed"
          style="width: 100%; border: #0c0c0c;">
          <thead>
            <tr>
              <th class="center">Kode</th>
              <th class="center">Uraian</th>
              <th class="center">Jumlah</th>
            </tr>
          </thead>
          <tbody>
          </tbody>
          <tfoot>
            <tr>
              <th>&nbsp;</th>
              <th class="right">Total</th>
              <th></th>
            </tr>
          </tfoot>
        </table>
      </div> <!-- /widget-body -->

    </div> <!-- /role-content -->
  </div> <!-- /jarviswidget -->

</div>
<div metal:fill-slot="scripts">
  <link href="${home}/static/js/plugin/bootstrap-datepicker/css/bootstrap-datepicker.min.css" rel="stylesheet">
  <script src="${home}/static/js/plugin/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
  <script src="${home}/static/js/plugin/bootstrap-timepicker/bootstrap-timepicker.min.js"></script>
  <script>
    var mID;
    var mThn;
    var oTable;
    var iPos;
    var oTableUrl = "${home}/pbbm/realisasi/tp";
    var oTableUri = oTableUrl + "/grid/act";
    $(document).ready(function () {

      $('#awal, #akhir').datepicker({
        format: "dd-mm-yyyy"
      });

      $("#tp, #awal, #akhir").change(function () {
        var awal = $("#awal").val();
        var akhir = $("#akhir").val();
        var kd_tp = $("#tp").val();
        window.location = oTableUrl + "?kd_tp=" + kd_tp + "&awal=" + awal + "&akhir=" + akhir;
      });
    });

    function formatNumber(toFormat) {
      return toFormat.toString().replace(
        /\B(?=(\d{3})+(?!\d))/g, "."
      );
    };
    $(document).ready(function () {
      oTable = $('#table1').DataTable({
        dom: '<"row"<"col-md-6"<"toolbar">Bl><"col-md-6"fr>>tip',
        buttons: [
          'copyHtml5',
          'excelHtml5',
          'csvHtml5',
          'pdfHtml5'
        ],
        processing: true,
        serverSide: true,
        ajax: oTableUri,
        stateSave: true,
        scrollCollapse: true,
        sort: true,
        info: false,
        filter: true,
        autoWidth: false,
        paginate: true,
        paginationType: "full_numbers",

        lengthMenu: [
          [10, 25, 50, 100],
          [10, 25, 50, 100]
        ],
        columndefs: [{
          "targets": [2, 3, 8, 9, 10],
          "render": $.fn.dataTable.render.number('.', ',', 0, ''),
        }],
        columns: [
          { "data": "kode", "width": "200px", "className": "text-center", },
          { "data": "nama", "class": "left" },
          {
            "data": 'jumlah', "width": "150px", "class": "text-right",
            "render": $.fn.dataTable.render.number('.', ',', 0, '')
          },
        ],
        "language": {
          "search": "Cari: ",
          "paginate": {
            "first": "Awal ",
            "last": "Akhir ",
            "previous": "Mundur ",
            "next": "Maju ",
          },
          "lengthMenu": " _MENU_ baris "
        },

        "footerCallback": function (row, data, start, end, display) {
          var api = this.api(), data;

          // Remove the formatting to get integer data for summation
          var intVal = function (i) {
            return typeof i === 'string' ?
              i.replace(/[\$,]/g, '') * 1 :
              typeof i === 'number' ?
                i : 0;
          };

          // Total over all pages
          //total = api
          //    .column( 4 )
          //    .data()
          //    .reduce( function (a, b) {
          //        return intVal(a) + intVal(b);
          //    }, 0 );

          // Total over this page
          pageTotal = api
            .column(2, { page: 'current' })
            .data()
            .reduce(function (a, b) {
              return intVal(a) + intVal(b);
            }, 0);

          // Update footer
          $(api.column(2).footer()).html(
            formatNumber(pageTotal)
          );// +' ( $'+ total +' total)'
        }
      });
      // '<button id="btn_add" class="btn btn btn-success" type="button"><i class="fa fa-fw fa-plus"></i>&nbsp;Tambah</button>',
      // '	<button id="btn_close" class="btn btn btn-warning" type="button"><i class="fa fa-fw fa-undo"></i>&nbsp;Tutup</button>',

      var tb_array = [
        '<div class="btn-group pull-left">',
        '<button id="btn_pdf" class="btn btn btn-primary" type="button"><i class="fa fa-fw fa-file"></i>&nbsp;PDF</button>',
        '<button id="btn_csv" class="btn btn btn-primary" type="button"><i class="fa fa-fw fa-file"></i>&nbsp;CSV</button>',
        '	&nbsp;',
        '</div>',
      ];


      var tb = tb_array.join(' ');
      $("div.toolbar").html(tb);
      $("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');

      $("#btn_close").click(function () {
        window.location = '/pbbm';
        return false;
      });

      $('#btn_pdf').click(function () {
        url = oTableUrl + "/pdf/rpt"
        window.open(url);
      });


      $('#btn_csv').click(function () {
        url = oTableUrl + "/csv/rpt"
        window.open(url);
      });

    });
  </script>
</div>

</html>