Commit f7c6616e authored by Deddy Vita Kurniawan's avatar Deddy Vita Kurniawan

* modul tim_pengawasan dan pkpt

parent 0463c2fa
......@@ -411,3 +411,12 @@ if ( ! function_exists('blob_to_string'))
return $userStr;
}
}
if ( ! function_exists('bulan_indonesia'))
{
function bulan_indonesia($bln)
{
$bulan = array ('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember');
return $bulan[$bln-1];
}
}
\ No newline at end of file
......@@ -2954,4 +2954,34 @@ class Pilih extends Pilih_Controller
echo json_encode($response);
}
/*
Pilih tim_pengawasan
Keterangan : mengembalikan daftar tim_pengawasan
Dipakai di modul pkpt
Digunakan untuk komponen select2
*/
function tim_pengawasan()
{
$q = $this->input->post('q');
$mode = $this->input->post('mode');
$req_param = array(
"q" => $q,
"mode" => $mode
);
$result = $this->pilih_model->getTimPengawasanSelect($req_param);
$response = (object) NULL;
$response->results = array();
if ($result) {
for ($i = 0; $i < count($result); $i++) {
$response->results[] = array(
'id' => (string) $result[$i]['id_tim_pengawasan_rinci'],
'text' => (string) $result[$i]['nama_tim'] ." - ". $result[$i]['pejabat'],
);
}
}
$response->sql = $this->db->queries;
echo json_encode($response);
}
}
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Pkpt extends AktivitasBLUD_Controller
class Pkpt extends Base_Controller
{
public function __construct()
......@@ -18,6 +18,98 @@ class Pkpt extends AktivitasBLUD_Controller
$this->message_aktivitas_gagal_dihapus = 'PKPT tidak bisa dihapus.';
}
public function daftar()
{
$this->load->model('auth/login_model', 'auth');
$data['breadcrumbs'] = 'Daftar ' . $this->modul_display;
$data['title'] = get_title($this->modul_display);
$data['modul'] = $this->modul_name;
$data['report_daftar'] = $this->report_daftar;
$data['report_form'] = $this->report_form;
$data['grid']['akses'] = $this->auth->get_level_akses($this->uri->slash_segment(1));
$data['akses'] = $this->auth->get_level_akses($this->uri->slash_segment(1));
$data['grid']['skpd'] = $this->id_skpd;
$data['grid']['url'] = base_url($this->modul_name . '/get_daftar');
$data['grid']['url_add'] = base_url($this->modul_name . '/form');
$data['grid']['url_del'] = base_url($this->modul_name . '/hapus');
$data['grid']['data'] = $this->data_model->get_grid_model();
$data['grid']['fields'] = $this->data_model->get_data_fields();
$data['main_content'] = $this->view_daftar;
$this->load->view('layout/template', $data);
}
public function get_daftar()
{
parent::get_daftar();
$aggregate = $this->data_model->get_data($this->search_param);
$count = count($aggregate);
$response = (object) NULL;
$response->sql = $this->db->queries;
if ($count == 0) // tidak ada data
{
// menambahkan userdata jika ada
$agg_fields = $this->data_model->fieldmap_daftar_aggregate;
foreach ($agg_fields as $kolom => $value) {
$response->userdata[$kolom] = $aggregate[strtoupper($kolom)];
}
echo json_encode($response);
return;
}
$page = $this->page;
$limit = $this->limit;
$total_pages = ceil($count / $limit);
if ($page > $total_pages) $page = $total_pages;
$start = $limit * $page - $limit;
if ($start < 0) $start = 0;
$this->search_param['limit'] = array(
'start' => $start,
'end' => $limit
);
$result = $this->data_model->get_data($this->search_param);
$response->page = $page;
$response->total = $total_pages;
$response->records = $count;
$response->sql = $this->db->queries;
$fields = $this->data_model->fieldmap_daftar;
for ($i = 0; $i < count($result); $i++) {
$response->rows[$i]['id'] = $result[$i][$fields[0]];
$data = array();
for ($n = 1; $n < count($fields); $n++) {
$data[] = $result[$i][$fields[$n]];
}
$response->rows[$i]['cell'] = $data;
}
// menambahkan userdata jika ada
$agg_fields = $this->data_model->fieldmap_daftar_aggregate;
foreach ($agg_fields as $kolom => $value) {
$response->userdata[$kolom] = $aggregate[strtoupper($kolom)];
}
echo json_encode($response);
}
public function form($id = 0)
{
$data = array();
$data['title'] = get_title($this->modul_display);
$data['modul'] = $this->modul_name;
$data['modul_display'] = $this->modul_display;
$data['report_form'] = $this->report_form;
$this->load->model('auth/login_model', 'auth');
$data['akses'] = $this->auth->get_level_akses($this->uri->slash_segment(1));
if ($id !== 0)
$data['data'] = $this->data_model->get_data_by_id($id);
$data['main_content'] = $this->view_form;
$this->load->view('layout/template', $data);
}
public function validasi_form()
{
$this->form_validation->set_rules('nomor', 'Nomor', 'required|trim');
......@@ -35,72 +127,47 @@ class Pkpt extends AktivitasBLUD_Controller
}
function rinci($id = 0)
public function get_rincian_pkpt($id = 0)
{
$result = $this->data_model->get_rinci_by_id($id);
$response = (object) NULL;
if ($result) {
for ($i = 0; $i < count($result); $i++) {
$response->rows[$i]['id'] = $result[$i]['id_pkpt_rinci'];
$response->rows[$i]['cell'] = array(
$result[$i]['id_pkpt_rinci'],
$result[$i]['id_object'],
$result[$i]['id_parent'],
$result[$i]['objek_pemeriksaan'],
$result[$i]['pengampu'],
$result[$i]['jan_1'],
$result[$i]['jan_2'],
$result[$i]['jan_3'],
$result[$i]['jan_4'],
$result[$i]['feb_1'],
$result[$i]['feb_2'],
$result[$i]['feb_3'],
$result[$i]['feb_4'],
$result[$i]['mar_1'],
$result[$i]['mar_2'],
$result[$i]['mar_3'],
$result[$i]['mar_4'],
$result[$i]['apr_1'],
$result[$i]['apr_2'],
$result[$i]['apr_3'],
$result[$i]['apr_4'],
$result[$i]['mei_1'],
$result[$i]['mei_2'],
$result[$i]['mei_3'],
$result[$i]['mei_4'],
$result[$i]['jun_1'],
$result[$i]['jun_2'],
$result[$i]['jun_3'],
$result[$i]['jun_4'],
$result[$i]['jul_1'],
$result[$i]['jul_2'],
$result[$i]['jul_3'],
$result[$i]['jul_4'],
$result[$i]['ags_1'],
$result[$i]['ags_2'],
$result[$i]['ags_3'],
$result[$i]['ags_4'],
$result[$i]['sep_1'],
$result[$i]['sep_2'],
$result[$i]['sep_3'],
$result[$i]['sep_4'],
$result[$i]['okt_1'],
$result[$i]['okt_2'],
$result[$i]['okt_3'],
$result[$i]['okt_4'],
$result[$i]['nov_1'],
$result[$i]['nov_2'],
$result[$i]['nov_3'],
$result[$i]['nov_4'],
$result[$i]['des_1'],
$result[$i]['des_2'],
$result[$i]['des_3'],
$result[$i]['des_4'],
$result[$i]['level']
);
for($i=1; $i<13; $i++)
{
$data = array();
$data[] = 'u'.$i;
$data[] = $i;
$data[] = strtoupper(bulan_indonesia($i));
$data[] = 1; // lvl
$row = new stdClass();
$row->id = $i;
$row->cell = $data;
$response->rows[] = $row;
if($id > 0){
$result = $this->data_model->get_rinci_by_id($id,$i);
for($x=0;$x<count($result);$x++){
$satker = $this->data_model->get_satker($result[$x]['id_pkpt_rinci']);
$data = array();
$data[] = $result[$x]['id_pkpt_rinci'];
$data[] = $i;
$data[] = '';
$data[] = 0; // lvl
$data[] = $result[$x]['id_tim_pengawasan'];
$data[] = $satker['id']?$satker['id']:NULL;
$data[] = $result[$x]['nama_tim'] .' - '.$result[$x]['pejabat'];
$data[] = $result[$x]['uraian'];
$data[] = $satker['kode']?$satker['kode']:NULL;
$data[] = $result[$x]['tanggal'];
$row = new stdClass();
$row->id = $result[$x]['id_pkpt_rinci'];
$row->cell = $data;
$response->rows[] = $row;
}
}
}
$response->sql = $this->db->queries;
echo json_encode($response);
}
}
<?php
class Tim_pengawasan extends Userpage_Controller {
public function __construct()
{
parent::__construct();
$this->modul_name = 'tim_pengawasan';
$this->modul_display = 'Tim Pengawasan';
$this->view_daftar = 'tim_pengawasan_view';
$this->report_daftar = 'Daftar Tim Pengawasan';
$this->load->model('tim_pengawasan_model', 'data_model');
}
public function index()
{
$this->load->model('auth/login_model', 'auth');
$data['breadcrumbs'] = 'Daftar '.$this->modul_display;
$data['modul'] = $this->modul_name;
$data['report_daftar'] = $this->report_daftar;
$data['akses'] = $this->auth->get_level_akses($this->uri->slash_segment(1));
$data['grid']['fields'] = $this->data_model->get_data_fields();
$data['main_content'] = $this->view_daftar;
$this->load->view('layout/template', $data);
}
public function get_daftar()
{
parent::get_daftar();
$result = $this->data_model->get_data($this->search_param);
$response = (object) NULL;
$response->sql = $this->db->queries;
for($i=0; $i<count($result); $i++)
{
$response->rows[$i]['id']=$result[$i]['id_tim_pengawasan'];
$response->rows[$i]['cell']=array(
$result[$i]['nama_inspektur']
);
}
echo json_encode($response);
}
public function form($id = '')
{
$data['title'] = get_title($this->modul_display);
$data['modul'] = $this->modul_name;
$this->load->model('auth/login_model', 'auth');
$data['akses'] = $this->auth->get_level_akses($this->uri->slash_segment(1));
$data['main_content']='tim_pengawasan_form';
if($id)
{
$data['data'] = $this->data_model->get_data_by_id($id);
}
$this->load->view('layout/template',$data);
}
protected function validasi_form()
{
$this->form_validation->set_rules('nama_inspektur','Nama Inspektur','required|trim|callback_duplikasi_nama');
$this->form_validation->set_message('required', '%s tidak boleh kosong.');
$this->form_validation->set_message('_duplikasi_nama', 'Nama sudah ada.');
}
function duplikasi_nama($str)
{
if ($this->data_model->check_duplikasi_tim($str))
{
$this->form_validation->set_message('duplikasi_nama', '%s "'.$str.'" sudah ada.');
return FALSE;
}
else
{
return TRUE;
}
}
function rincian_tim($id)
{
$response = (object) NULL;
$result = $this->data_model->get_rincian_tim($id);
if ($result){
for($i=0; $i<count($result); $i++)
{
$response->rows[$i]['id'] = $result[$i]['id_tim_pengawasan_rinci'];
$response->rows[$i]['cell'][] = $result[$i]['id_tim_pengawasan_rinci'];
$response->rows[$i]['cell'][] = $result[$i]['nama_tim'];
$response->rows[$i]['cell'][] = $result[$i]['aktif'];
}
}
$response->sql = $this->db->queries;
echo json_encode($response);
}
function rincian_tim_pejabat()
{
$response = array();
$id = $this->input->post('id')?$this->input->post('id'):0;
$result = $this->data_model->get_rincian_pejabat($id);
for($i=0; $i<count($result); $i++)
{
$response[$i] = array(
'id_tim_pengawasan_pejabat' => $result[$i]['id_tim_pengawasan_pejabat'],
'id_tim_pengawasan_rinci' => $result[$i]['id_tim_pengawasan_rinci'],
'jabatan' => $result[$i]['uraian'],
'nama' => $result[$i]['nama'],
'id_jab_tim_audit' => $result[$i]['id_jab_tim_audit'],
'id_pejabat_spi' => $result[$i]['id_pejabat_spi'],
);
}
echo json_encode($response);
}
function rincian_pejabat($id = 0)
{
$response = (object) NULL;
$result = $this->data_model->get_rincian_pejabat($id);
if ($result){
for($i=0; $i<count($result); $i++)
{
$response->rows[$i]['id'] = $result[$i]['id_rincian_tim_pengawasan'];
$response->rows[$i]['cell'][] = $result[$i]['id_rincian_tim_pengawasan'];
$response->rows[$i]['cell'][] = $result[$i]['uraian'];
$response->rows[$i]['cell'][] = $result[$i]['no_urut'];
$response->rows[$i]['cell'][] = $result[$i]['nama'];
$response->rows[$i]['cell'][] = $result[$i]['id_pejabat_spi'];
}
}
$response->sql = $this->db->queries;
echo json_encode($response);
}
}
\ No newline at end of file
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark"><?php echo $breadcrumbs; ?></h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="<?php echo base_url(); ?>">Home</a></li>
<li class="breadcrumb-item active"><?php echo $breadcrumbs; ?></li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div id="grid_container">
<div id="search" class="row" style="display : unset;">
</div>
<table id="grid"></table>
<div id="pager"></div>
</div>
<script>
<?php
$akses = isset($akses) ? $akses : 0;
$canEdit = $akses >= 3;
$canPrint = $akses >= 2;
?>
var id = last = 0, canEdit = <?php echo $canEdit ? 'true' : 'false'; ?>, canPrint = <?php echo $canPrint ? 'true' : 'false'; ?>, grid_tim = $('#grid');
$(document).ready(function() {
params = {
container : $('#search'),
grid : grid_tim,
cols : <?php echo json_encode($grid['fields']); ?>,
}
Search.init(params);
grid_tim.jqGrid({
url:root+modul+'/get_daftar',
datatype:'json',
mtype:'POST',
colNames:['Nama Tim'],
colModel:[
{name:'nama_tim', width:600, sortable: true}
],
pager:'#pager',
rowNum:1000000,
scroll:true,
rownumbers:true,
viewrecords:true,
gridview:true,
shrinkToFit:false,
autowidth:true,
sortname:'nama_tim',
height:'400',
recordtext:'{2} baris',
ondblClickRow:edit_row,
});
grid_tim.jqGrid('bindKeys', {"onEnter": edit_row});
grid_tim.jqGrid( 'navGrid', "#pager", {
add: canEdit,
addtext: 'Tambah',
addfunc: add_row,
edit: canEdit,
edittext: 'Ubah',
editfunc:edit_row,
del: canEdit,
deltext: 'Hapus',
delfunc: del_row,
search: false,
searchtext: 'Cari',
refresh: true,
refreshtext: 'Refresh',
},{},{},{},{});
<?php
if ($canPrint)
{
?>
grid_tim.jqGrid().navSeparatorAdd('#pager')
.navButtonAdd('#pager',{
caption:'Cetak',
onClickButton: function(){ preview({"tipe":"daftar"}, grid_tim)},
title:'Cetak Daftar',
buttonicon:'ui-icon-print',
position:'last'
}
);
<?php
}
?>
function add_row(){
if (!canEdit && !canPrint) return false;
location.href =root+modul+'/form';
}
function edit_row(id){
if (!canEdit && !canPrint) return false;
location.href =root+modul+'/form/'+id;
}
function del_row(id){
if (!canEdit && !canPrint) return false;
rs = $(this).jqGrid('getRowData', id);
var question = 'Hapus '+rs.nama_tim+' dari Tim Anggaran ?';
confirmation(question).then(function(answer){
if (!answer) return;
$.ajax({
type: "post",
dataType: "json",
url: root+modul+"/hapus",
data: {id:id},
success: function(res) {
if (res.isSuccess) show_info(res.message, 'Sukses');
else show_error(res.message, 'Gagal');
if(res.isSuccess == true) {
grid_tim.jqGrid('delRowData', id);
}
},
});
});
}
function gridRowAttr(rd){
switch (rd.lvl){
case 1 : return {"class": "row-level row-level-1"}; break;
}
}
grid_tim.gridResize();
});
</script>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment